# Polymarket Odds Tracker | Price History & Alerts (`aurelix/polymarket-odds-tracker`) Actor

Extract Polymarket odds: every market outcome with its price as implied probability, best bid/ask, volume, liquidity, end date and resolved result, plus price history and odds movement alerts. $0.40 per 1,000 outcomes on the free plan.

- **URL**: https://apify.com/aurelix/polymarket-odds-tracker.md
- **Developed by:** [Aurelix](https://apify.com/aurelix) (community)
- **Categories:** Automation, Developer tools, AI
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.28 / 1,000 outcomes

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What is Polymarket Odds Tracker?

**Get every Polymarket outcome with its implied probability, bid/ask, volume, liquidity and result, plus price history and price-move alerts, for $0.40 per 1,000 outcomes, no login.**

For analysts, researchers, journalists, newsletters and AI agents. Keyword, tag or link input, open or resolved markets, and an only-new-or-moved mode for alerts. A data tool, not betting advice. Your first run with the example input costs about $0.017 (40 outcomes in our test run).

[![Polymarket Odds Tracker: example output from a real run](https://api.apify.com/v2/key-value-stores/twkCCtTWzsi8fVbx5/records/polymarket-odds-tracker-card-v2.png)](https://apify.com/aurelix/polymarket-odds-tracker)

| | |
|---|---|
| **Source** | Polymarket's official public market-data APIs (markets, events and search; price history), read-only |
| **Input** | Keywords, tags (politics, crypto, sports...), event or market links or slugs; open, closed or all; minimum volume and liquidity |
| **Output** | One row per outcome, 33 fields (plus change fields in only-new mode); optional one row per price-history point; JSON, CSV, Excel, API |
| **Automate** | Only new or moved since last run (threshold in percentage points), Slack/webhook digest, schedules, MCP |
| **Price** | $0.40 per 1,000 outcomes (from $0.28 per 1,000 outcomes on paid Apify plans) |
| **Free to try** | Runs on Apify's free plan: the $5 monthly credit covers about 12,000 outcomes |
| **Login needed** | No |

### Daily monitor: only what's new, every morning

Set it once, get only the new outcomes every morning. With **Only new or moved since last run** on, the first run returns everything that matches; each later run skips outcomes that earlier runs already returned, so you pay only for new ones.

```json
{
  "tags": [
    "politics"
  ],
  "minVolume": 100000,
  "maxResults": 1000,
  "incremental": true,
  "changeThreshold": 5,
  "stateKey": "politics-moves"
}
```

1. Paste this input into the **Input** tab (JSON view) and click **Save as a new task**; it appears under **Saved tasks**.
2. Open the task from **Saved tasks** and click **Schedule**.
3. Choose **Daily**, pick the hour, and save.

**Cost example:** open politics markets with $100K+ volume, about 150 new or moved outcomes a day ≈ $1.83/month on the free plan (from $1.29 on paid plans): one run a day for 30 days, start fee included. The first run returns everything that matches, so it costs more.

Add a Slack incoming-webhook URL in `slackWebhookUrl` (or any URL in `webhookUrl`) to get a short digest of each run's new outcomes; nothing is sent when a run finds nothing.

### Why Polymarket Odds Tracker users pick this one

- **Probability ready to use.** Price as 0-1 and as a percentage, with bid, ask and spread.
- **Price-move alerts.** Scheduled runs return only new markets and outcomes that moved.
- **Price history included.** Per outcome, from the last hour to the market's whole life.
- **Resolved results.** Closed markets carry the winning outcome and won/lost per row.
- **Cheaper than the leading tools.** $0.40 per 1,000 outcomes, from $0.28 on paid plans.

### Get started in 3 steps

1. Type keywords (e.g. election, bitcoin), tags (politics, crypto, sports) or paste Polymarket event or market links; leave all empty for the top open markets by 24-hour volume.
2. Pick open, closed or all markets, set minimum volume or liquidity, and optionally add price history or turn on 'Only new or moved since last run' with a move threshold.
3. Click Start, then download JSON, CSV or Excel, or schedule it hourly or daily and send new markets and price moves to Slack, Google Sheets, Zapier, Make or n8n.

**[▶ Try it with the example input](https://apify.com/aurelix/polymarket-odds-tracker)**

The form opens with an example input already filled in: that run costs about $0.017 on the free plan.

### How much does it cost to get Polymarket odds?

Pay per event: you pay only for what the run returns, plus a small start fee. Bronze, Silver, Gold and higher Apify plans pay less per result. Paid plans pay $0.35 (Bronze), $0.31 (Silver) and $0.28 (Gold and higher) per 1,000 outcomes.

| Outcomes | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
| 100 | $0.041 | $0.036 | $0.032 | $0.029 |
| 1,000 | $0.40 | $0.35 | $0.31 | $0.28 |
| 10,000 | $4.00 | $3.50 | $3.10 | $2.80 |

Totals include the $0.001 start fee per run, rounded to the cent (amounts under $0.10 to four decimals). Apify's free plan includes $5 of credit a month, enough for about 12,000 outcomes.

Outcomes outside your filters, unchanged outcomes in 'Only new or moved' mode and outcomes beyond 'Max outcome rows' are not charged. Price-history points cost $0.02 per 1,000 ($0.00002 each).

#### Billing events

| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
| `outcome` | $0.40 per 1,000 outcomes | $0.35 per 1,000 outcomes | $0.31 per 1,000 outcomes | $0.28 per 1,000 outcomes |
| `price-point` | $0.02 per 1,000 outcomes | $0.02 per 1,000 outcomes | $0.02 per 1,000 outcomes | $0.02 per 1,000 outcomes |
| `apify-actor-start` | $0.001 per run | $0.001 per run | $0.001 per run | $0.001 per run |

### Benchmarks: how we compare

| Run | Rows returned | Run time |
|---|---|---|
| Prefilled form: search 'election', 40 rows | 40 outcomes (20 markets) | 4 s |
| Top markets, open and closed, 4,000 cap | 4,000 outcomes (2,000 markets) | 9 s |
| One event link with hourly price history for a week | 20 outcomes + 3,254 history points | 8 s |
| Crypto tag, $50K+ volume, whole-life hourly history | 40 outcomes + 11,742 history points | 8 s |
| Only new or moved, first run on one event | 116 outcomes | 3 s |
| Same input, run again | 0 (116 unchanged, not charged) | 3 s |
| 30 keywords that match nothing above the volume minimum | 0 | 10 s |

Single runs on the Apify cloud at 256 MB memory; run time is the platform's reported run time.

### What data you get

**Polymarket Odds Tracker** turns Polymarket's official public market data into one clean row per market outcome: the event and market question, the outcome, its current price as an implied probability, the best bid and ask, the last trade and 24-hour change, total and 24-hour volume, liquidity, start and end dates, status and, for finished markets, the resolved result. Search by keyword, list tags such as politics, crypto or sports, or paste event and market links; add the price history of every outcome at the step you choose; and turn on 'Only new or moved since last run' for a scheduled feed of new markets and price moves, with a Slack or webhook digest.

- row_type 'outcome': event_title, question, group_item_title, outcome, outcome_index, price (implied probability 0-1), probability_pct, best_bid, best_ask, spread, last_trade_price, price_change_24h
- volume, volume_24h, liquidity (USD), start_date, end_date (UTC), status (open, closed, resolved, inactive), accepting_orders, resolved_outcome, result (won / lost)
- market_url, event_slug, market_slug, event_id, market_id, condition_id, token_id, row_id (stable: market_id:outcome_index), scraped_at
- Only new or moved: change ('new' or 'moved'), previous_price, price_move
- row_type 'price_history' (when asked): time (UTC), timestamp, price, probability_pct, interval, with the outcome, question, market_url and IDs

| event_title | question | outcome | probability_pct | best_bid | best_ask | volume_24h | liquidity |
|---|---|---|---|---|---|---|---|
| Republican Presidential Nominee 2028 | Will John McEntee win the 2028 Republican presidential no... | Yes | 3.55 | 0.035 | 0.036 | 220139.04 | 363923.41 |
| Republican Presidential Nominee 2028 | Will John Thune win the 2028 Republican presidential nomi... | Yes | 0.05 |  | 0.001 | 111000 | 1569221.55 |
| Republican Presidential Nominee 2028 | Will Nikki Haley win the 2028 Republican presidential nom... | Yes | 0.9 | 0.008 | 0.01 | 100499.5 | 412130.23 |
| Republican Presidential Nominee 2028 | Will Ron DeSantis win the 2028 Republican presidential no... | Yes | 15.95 | 0.159 | 0.16 | 74375.73 | 245834.39 |
| Republican Presidential Nominee 2028 | Will Brian Kemp win the 2028 Republican presidential nomi... | Yes | 2.7 | 0.024 | 0.03 | 65451.7 | 202725.36 |

One full outcome record, exactly as a real run returned it (long text and lists shortened here):

```json
{
  "row_type": "outcome",
  "row_id": "562016:0",
  "title": "Will John McEntee win the 2028 Republican presidential nomination? - Yes",
  "event_title": "Republican Presidential Nominee 2028",
  "question": "Will John McEntee win the 2028 Republican presidential nomination?",
  "group_item_title": "John McEntee",
  "outcome": "Yes",
  "outcome_index": 0,
  "price": 0.0355,
  "probability_pct": 3.55,
  "best_bid": 0.035,
  "best_ask": 0.036,
  "spread": 0.001,
  "last_trade_price": 0.036,
  "price_change_24h": null,
  "volume": 1847713.79,
  "volume_24h": 220139.04,
  "liquidity": 363923.41,
  "start_date": "2025-07-11T19:42:49.017489Z",
  "end_date": "2028-11-07T00:00:00Z",
  "status": "open",
  "accepting_orders": true,
  "resolved_outcome": null,
  "result": null,
  "market_url": "https://polymarket.com/event/republican-presidential-nominee-2028/will-john-mcentee-win-the-2028-republican-presidential... [11 more characters]",
  "event_slug": "republican-presidential-nominee-2028",
  "market_slug": "will-john-mcentee-win-the-2028-republican-presidential-nomination",
  "event_id": "31875",
  "market_id": "562016",
  "condition_id": "0x90ba5eeb935da5a2e7d16ee635ae441f95b5b62fd0db9336eb9f8a59645bf714",
  "token_id": "50730508396692945396787154191308995513666087024795374376582570929738968294242",
  "source_url": "https://polymarket.com/event/republican-presidential-nominee-2028/will-john-mcentee-win-the-2028-republican-presidential... [11 more characters]",
  "scraped_at": "2026-11-11T04:48:37Z"
}
```

### Use cases

- Analysts and researchers tracking what prediction markets price for elections, rates, crypto and world events
- Journalists and newsletters publishing today's odds and the biggest moves since yesterday
- Quant and data teams backtesting against market-implied probabilities with full price history
- AI agents and dashboards that need current probabilities for a question in one call

### Use-case recipes

#### Morning odds digest for a newsletter

Schedule a daily run on the tags you cover (politics, economy) with a minimum volume, 'Only new or moved since last run' on and a 5-point threshold. Each morning's run returns new markets and the outcomes that moved since yesterday, with previous_price and price_move; send it to Slack or Google Sheets.

```json
{
  "tags": [
    "politics",
    "economy"
  ],
  "minVolume": 50000,
  "maxResults": 1000,
  "incremental": true,
  "changeThreshold": 5,
  "stateKey": "newsletter-moves"
}
```

#### Price history of one event for a chart

Paste the event link, turn on price history with range 1m and a 1,440-minute step: every outcome of the event gets about 30 daily points (row_type 'price_history') ready for a chart or a backtest.

```json
{
  "urls": [
    "https://polymarket.com/event/presidential-election-winner-2028"
  ],
  "maxResults": 40,
  "priceHistory": true,
  "historyInterval": "1m",
  "historyFidelity": 1440
}
```

#### Resolved markets for calibration studies

Set status to closed and a minimum volume to pull finished markets with the winning outcome and won/lost per row, to check how often a given price came true.

```json
{
  "status": "closed",
  "minVolume": 1000000,
  "maxResults": 2000
}
```

### Input

| Field | Type | What it does | Default |
|---|---|---|---|
| `searchTerms` (Search keywords) | array | Find events and their markets by keyword, like the search box on Polymarket. |  |
| `maxResults` (Max outcome rows) | integer | Stop after this many outcome rows (a yes/no market is 2 rows). | 200 |
| `tags` (Tags / categories) | array | Polymarket tags as names or slugs. |  |
| `urls` (Event or market links / slugs) | array | Polymarket event or market pages, or their slugs. |  |
| `status` (Market status) | string | 'open' = markets taking orders now; 'closed' = finished markets with the resolved result; 'all' = both. | "open" |
| `minVolume` (Minimum total volume (USD)) | integer | Skip markets that traded less than this in total. | 0 |

All 15 fields, with examples: see the **Input** tab.

### Use with AI agents (MCP)

MCP (Model Context Protocol) is the open standard that lets AI assistants such as Claude, ChatGPT and Cursor call outside tools. Apify's hosted MCP server at `https://mcp.apify.com/?tools=aurelix/polymarket-odds-tracker` gives your assistant this Actor only: it fills in the input from your request, runs it and reads the outcomes back, at the same per-result price as a run started by hand.

#### Example prompts

- "Get the top 20 open Polymarket markets about the Fed and show each outcome's implied probability, bid and ask as a table"
- "Find Polymarket markets about the 2028 US presidential election with at least $1M volume and list the leading outcomes"
- "Get last week's hourly price history for the Polymarket market on a December Fed rate cut and tell me the biggest move"

#### Claude Desktop and claude.ai

**Settings > Connectors > Add custom connector**, name it Apify, paste `https://mcp.apify.com/?tools=aurelix/polymarket-odds-tracker`, keep the detected OAuth settings, select **Add** and sign in to Apify.

#### Claude Code

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=aurelix/polymarket-odds-tracker"
```

#### Cursor and VS Code

Add this to `~/.cursor/mcp.json` (Cursor); in VS Code's `.vscode/mcp.json` put the same entry under `"servers"` with `"type": "http"`. Sign in to Apify when asked.

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com/?tools=aurelix/polymarket-odds-tracker"
    }
  }
}
```

#### ChatGPT

Turn on **Developer mode**, open **Settings > Apps & Connectors > Create**, paste the URL above as the MCP server URL, choose **OAuth** and authorize Apify.

Clients without sign-in send `Authorization: Bearer <YOUR_APIFY_TOKEN>` instead. No Apify account? This Actor supports Apify's agentic payments: an agent can pay per run with a prepaid, spend-capped token, bought with x402 stablecoin payments.

#### n8n AI agent

Give an **AI Agent** node an **MCP Client Tool** with the endpoint `https://mcp.apify.com/?tools=aurelix/polymarket-odds-tracker` and a Bearer credential holding your Apify token.

### Use it from AI agents (MCP), the API or no-code

#### Copy this to your AI assistant

```text
Use the Apify Actor aurelix/polymarket-odds-tracker (Polymarket Odds Tracker) through Apify's MCP server or API. Main input: searchTerms (Search keywords); maxResults (Max outcome rows). Example input: {"tags": ["politics"], "status": "open", "minVolume": 100000, "maxResults": 500, "incremental": true, "changeThreshold": 5, "stateKey": "politics-moves"}. Each result is one outcome with fields such as row_type, row_id, title, event_title, question, group_item_title, outcome, outcome_index. It costs $0.40 per 1,000 outcomes on Apify's free plan plus a $0.001 start fee per run, and needs no login.
```

MCP server URL for this Actor: `https://mcp.apify.com/?tools=aurelix/polymarket-odds-tracker` (setup for each client in the section above).

#### API

Start a run and read the dataset with Apify's REST API or the Python and JavaScript clients:

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("aurelix/polymarket-odds-tracker").call(run_input={'tags': ['politics'], 'status': 'open', 'minVolume': 100000, 'maxResults': 500, 'incremental': True, 'changeThreshold': 5, 'stateKey': 'politics-moves'})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

#### No-code: schedule it in 3 clicks

Send the results to Google Sheets, Zapier, Make, n8n, Slack or any webhook URL.

1. Fill in the input, then click **Save as a new task**.
2. In the task, click **Schedule** and pick daily or weekly (Apify Schedules).
3. Turn on **Only new or moved since last run** so each run returns only what is new, and paste a Slack or webhook URL into **Slack webhook URL** / **Webhook URL** to get a digest of the new items (count plus the top 10) after every run.

Prefer n8n or Make? Ask in the **Issues** tab and we will share a ready-made workflow for it.

### FAQ

#### Can I get Polymarket odds without an account or API key?

Yes. It never logs in, so you need no Polymarket account, password or cookies; only a free Apify account to run it.

#### Is there a Polymarket odds API?

You can use this Actor as one. Start it with Apify's REST API or the Python and JavaScript clients and read the results as JSON (see the code above), or call it from an AI agent through MCP.

#### How much does it cost to get Polymarket odds?

About $0.40 for 1,000 outcomes on Apify's free plan and from $0.28 on paid plans, start fee included. The free $5 monthly credit covers about 12,000 outcomes.

#### Can I export Polymarket odds to Excel or Google Sheets?

Yes. Download the results as Excel, CSV, JSON, XML or HTML from the run's **Storage** tab, or send them to Google Sheets with Apify's Google Sheets integration or the API.

#### Is it legal to collect Polymarket odds?

It reads only public data any logged-out visitor can see: Polymarket's official public market-data APIs (markets, events, search and price history), which need no key or login, at a polite pace with a declared bot user-agent. It never logs in, never trades and never reads wallets, user profiles, comments or holder lists. Market prices and volumes are facts about public markets; no personal data about traders or users (questions may name public figures exactly as Polymarket writes them). To have a record removed, open an issue on this Actor's Issues tab; if Polymarket formally asks us to stop, this Actor will stop. You are responsible for using the data lawfully where you are, including any rules on prediction markets and data reuse; this is not legal advice.

#### Is there a free Polymarket odds API?

Polymarket publishes public read endpoints; this Actor calls them for you, handles paging, search, tags, price history and change detection, and returns flat rows. It runs on Apify's free plan, whose $5 monthly credit covers thousands of outcome rows.

#### Can I export Polymarket odds into Google Sheets, n8n or an AI agent?

Yes. Send results to Google Sheets with Apify's integration, start runs from n8n, Make or Zapier, or call it from an AI agent through MCP; each row is flat JSON.

#### Is it cheaper than the leading tools?

Yes: $0.40 per 1,000 outcomes (from $0.28 on paid plans) with a $0.001 start fee, and alert runs charge only for new or moved outcomes.

#### Is this betting advice, or can I trade with it?

No. It is a read-only data tool: it reads public market data and never places orders, holds funds or logs in. Prices are what the market shows, not predictions or recommendations, and nothing here says where trading on Polymarket is or is not available; check the rules that apply to you.

#### What does the price mean?

The price of an outcome share, from 0 to 1. A price of 0.63 means the market as a whole puts that outcome at about 63%; probability_pct gives the same number as a percentage. It is the price Polymarket displays: the midpoint of the best bid and ask, or the last trade when the spread is wide.

#### How do price-move alerts work?

Turn on 'Only new or moved since last run', set a threshold in percentage points (default 5) and schedule the run. Each run returns outcomes it has not returned before and outcomes whose price moved by at least the threshold since the price it last returned, with previous_price and price_move. Unchanged outcomes are skipped and not charged. Add a Slack or webhook URL for a digest.

#### Can I get the price history of a market?

Yes. Turn on 'Add price history' and pick the range (last hour up to the market's whole life) and the step in minutes. Each point is one row with row_type 'price_history', charged $0.00002. A week at hourly steps is about 168 points per outcome.

#### Can I get resolved markets and who won?

Yes. Set status to 'closed' (or 'all'). Resolved markets carry resolved_outcome, and each outcome row has result 'won' or 'lost', with the final price.

#### Does it include trader wallets, usernames or comments?

No. Only market-level data: questions, outcomes, prices, volume, liquidity, dates and results. No wallets, positions, usernames, comments or holder lists.

#### What am I charged for a run that returns nothing?

Only the $0.001 start fee: no outcome is charged when a search matches nothing, a tag does not exist or every outcome is unchanged in alert mode. The status message says exactly what was charged.

#### How many markets can one run return?

Up to 10,000 outcome rows. A tag or top-markets listing reaches its 2,100 busiest markets (Polymarket's listing depth); add a minimum volume, more tags or keywords for more. A run of a few hundred outcomes takes seconds.

#### What happens if Polymarket slows down or a request fails?

Each request is retried with back-off. After 3 failed requests in a row the run stops, keeps every row already saved and says so in its status message; if only price history stops answering, the outcome rows still come through without it.

### Limits (stated honestly)

- One source: Polymarket. Markets, prices and volumes are as Polymarket's public APIs report them, read-only.
- Best bid/ask, last trade and 24-hour change are quoted for the first outcome and mirrored for the second of two-outcome markets; empty for other outcomes of markets with three or more.
- A tag or top-markets listing reaches the 2,100 busiest markets per tag (Polymarket's listing depth); keyword search follows Polymarket's own relevance.
- No order books, trades, wallets, positions, comments or holder lists.
- Not betting or investment advice; no statement about where trading on Polymarket is available.

### Works great with

- **Then: [Google Trends by Region](https://apify.com/aurelix/google-trends-scraper)**: put the event titles or candidate names into its `keywords` input to compare search interest with the market's odds

### Related Aurelix tools

Public Aurelix Actors, grouped by the data they collect. All are pay-per-result and need no login.

#### More data tools

- **[Agoda API (Unofficial)](https://apify.com/aurelix/agoda-reviews-scraper)**: Scrape Agoda guest reviews at $0.50 per 1,000 with this unofficial Agoda API, cheaper than the leading tools: Agoda and...
- **[Tennis Betting Odds Scraper](https://apify.com/aurelix/tennis-odds-scraper)**: Tennis results and upcoming matches with opening and closing odds per bookmaker and implied probabilities.

#### Jobs and hiring data

- **[Job Bank Canada Scraper API](https://apify.com/aurelix/job-bank-canada-scraper)**: Official Job Bank Canada postings by month: NOC and NAICS codes, wages, hours and location.
- **[Greenhouse Jobs Scraper](https://apify.com/aurelix/greenhouse-jobs-scraper)**: Live jobs from a company's Greenhouse, Lever, Ashby or SmartRecruiters board, with salary and Canadian province tags.
- **[Career Page Monitor](https://apify.com/aurelix/hiring-signal-monitor)**: New, removed and reposted roles plus hiring velocity per company, from seven job-board systems including Workday.
- **[LinkedIn Jobs Country Filter Scraper](https://apify.com/aurelix/linkedin-jobs)**: Public LinkedIn job postings by keyword and country: title, company, location, seniority, job type, salary text, description.
- **[Multiple Job Boards Scraper](https://apify.com/aurelix/multi-job-board-scraper)**: LinkedIn, about 50 company career sites, Remote OK and We Work Remotely jobs in one deduplicated list.
- **[Remote Job Board Scraper API](https://apify.com/aurelix/remote-jobs-scraper)**: Remote OK and We Work Remotely jobs in one deduplicated list with salary, regions and tags.
- **[Wellfound Jobs API & Scraper](https://apify.com/aurelix/wellfound-jobs-scraper)**: Wellfound startup jobs with salary and equity ranges, company stage and size, $0.50 per 1,000.
- **[Workday Job Postings Scraper](https://apify.com/aurelix/workday-jobs-scraper)**: Jobs from any Workday career site by link or company name, with full descriptions and Canadian province tags.

#### E-commerce and product data

- **[AliExpress Scraper API](https://apify.com/aurelix/aliexpress-product-search)**: AliExpress search results by keyword: price, discount, rating, units sold, ship-from country and sponsored flag.
- **[Amazon Best Sellers & Amazon New Releases](https://apify.com/aurelix/amazon-best-sellers)**: Amazon Best Sellers and New Releases top 100 on 10 marketplaces: rank, ASIN, price, rating, rank change.
- **[Best Buy Canada Scraper API](https://apify.com/aurelix/best-buy-canada-scraper)**: Best Buy Canada search results: CAD price, sale savings, rating, reviews and seller, plus optional UPC and specs.
- **[Shopify App Store Scraper](https://apify.com/aurelix/shopify-app-store-scraper)**: Shopify App Store apps with pricing plans, ratings, category ranks and reviews; new-app and new-review watch.
- **[Shopify Product Export Scraper](https://apify.com/aurelix/shopify-products-scraper)**: Every public product of any Shopify store with variants, SKUs, prices, barcodes, stock counts and collections.
- **[Shopify Best Sellers Tracker](https://apify.com/aurelix/shopify-best-sellers-tracker)**: Competitor Shopify stores' best-sellers, new products, price changes, stock-outs and restocks since your last run, plus catalogue summary.

#### Leads and company data

- **[Companies House Scraper](https://apify.com/aurelix/companies-house-scraper)**: Newly incorporated UK companies from Companies House: SIC codes, region, registered office, directors with roles.
- **[Contact Page Scraper](https://apify.com/aurelix/contact-details-scraper)**: Published company emails, phones, addresses, social pages and team members from a list of company websites.
- **[Decision Maker Finder](https://apify.com/aurelix/decision-maker-finder)**: Founders, CEOs, VPs and department heads from company team pages, with title, seniority and function.
- **[Newly Funded Companies Hiring](https://apify.com/aurelix/funded-companies-hiring)**: Companies that just raised money (SEC Form D), with their open roles and business contacts, as a new-only monitor.
- **[Google Maps Phone Scraper](https://apify.com/aurelix/google-maps-scraper)**: Local business lists from Google Maps: phones, websites, ratings, hours, coordinates; optional website emails and socials.
- **[Recently Funded Companies API](https://apify.com/aurelix/recently-funded-companies)**: US companies that just filed an SEC Form D: amount raised, industry, state, executives, confirmed website.
- **[Tech Stack API](https://apify.com/aurelix/tech-stack-detector)**: CMS, e-commerce platform, analytics, ad pixels, chat, CDN and email provider for each domain you enter.
- **[Yellow Pages Canada Scraper](https://apify.com/aurelix/yellow-pages-canada-scraper)**: YellowPages.ca businesses by search term and city: phone, website, address, postal code, hours and rating.

#### Ad intelligence

- **[Competitor Watch](https://apify.com/aurelix/competitor-watch)**: One report per competitor with only what is new: Meta and TikTok ads, page changes, Shopify products and prices, jobs.
- **[Facebook Ad Library Search & API](https://apify.com/aurelix/facebook-ad-library-scraper)**: Facebook and Instagram business ads from the Meta Ad Library: copy, creatives, landing pages, dates, optional EU reach.
- **[TikTok Ads Library API](https://apify.com/aurelix/tiktok-ads-library-scraper)**: TikTok Ads Library ads for Europe, UK, Switzerland and Turkey with targeting, reach, ad text and landing pages.

#### Canada and government data

- **[Canada Building Permits](https://apify.com/aurelix/canada-building-permits-scraper)**: Building permits and development applications from 7 Canadian cities: address, type, status, dates, value, applicant, contractor and Toronto planner contact.
- **[Government Tenders Scraper](https://apify.com/aurelix/government-tenders-scraper)**: Open tenders from SAM.gov, CanadaBuys and EU TED in one table: buyer, codes, value, deadline, contact and link.
- **[USPTO Trademark API](https://apify.com/aurelix/uspto-trademark-search)**: US trademark search and watch from USPTO: mark, owner or number lookups, new filings, owner, attorney, goods.

#### AI, content and SEO

- **[Google Trends by Region](https://apify.com/aurelix/google-trends-scraper)**: Google Trends interest over time, by region and rising queries for any number of keywords, plus trending searches.
- **[Google Autocomplete API](https://apify.com/aurelix/google-autocomplete-scraper)**: Expands seed keywords into hundreds of real Google and YouTube autocomplete phrases, tagged by search intent.
- **[PDF Table Extraction & PDF to Markdown OCR](https://apify.com/aurelix/pdf-to-markdown)**: Turns linked PDF and Word files into Markdown per page, with tables as JSON rows, RAG chunks and OCR.
- **[Broken Link Crawler & SEO Audit](https://apify.com/aurelix/seo-audit-crawler)**: Audits a whole site: one row per page with SEO checks and broken links, plus a ranked issues summary.
- **[Bulk TikTok Transcripts Scraper](https://apify.com/aurelix/tiktok-transcript-scraper)**: Returns TikTok video transcripts as text, timed segments and SRT, from video links or @profiles' latest videos.
- **[Website to Markdown API](https://apify.com/aurelix/website-to-markdown)**: Crawls a site and returns one row of clean main-content Markdown per page, with title, headings and links.
- **[YouTube Transcript Scraper](https://apify.com/aurelix/youtube-transcript-scraper)**: Returns YouTube video transcripts as text, timed segments and AI chunks, from videos, channels, playlists or searches.
- **[YouTube Video Scraper API](https://apify.com/aurelix/youtube-video-scraper)**: Full details for every YouTube video in a search, channel or playlist: views, likes, comments, tags, publish time.

### Recent changes

- **0.1**: First release: Polymarket markets by keyword, tag or link, one row per outcome with implied probability, bid/ask, volume, liquidity, end date and resolved result; price history; only-new-or-moved mode with a threshold; Slack/webhook digest.

The full history is on the **Changelog** tab.

### Tested daily

An automated health check runs this Actor every day on a fixed input and checks that at least 16 outcomes come back with `row_id`, `question`, `outcome`, `price`, `probability_pct`, `volume` filled in; a failed check alerts the maintainer straight away.

### Was this useful?

- **Something went wrong?** [Open an issue](https://apify.com/aurelix/polymarket-odds-tracker/issues) and tell us what you ran: we answer fast and aim to reply within a day.
- **It worked?** [Leave a review](https://apify.com/aurelix/polymarket-odds-tracker/reviews): it takes a minute and helps other people find this tool.

# Changelog

This Actor's version history is a separate document: https://apify.com/aurelix/polymarket-odds-tracker/changelog.md

# Actor input Schema

## `searchTerms` (type: `array`):

Find events and their markets by keyword, like the search box on Polymarket. Example: \['election', 'bitcoin', 'fed rates']. Leave empty with no tags or links to get the top open markets by 24-hour volume.

## `tags` (type: `array`):

Polymarket tags as names or slugs. Example: \['politics', 'crypto', 'sports', 'nba']. Markets are listed by 24-hour volume (open) or total volume (closed / all).

## `urls` (type: `array`):

Polymarket event or market pages, or their slugs. Example: \['https://polymarket.com/event/fed-decision-in-december', 'presidential-election-winner-2028']. An event link returns every market in it.

## `status` (type: `string`):

'open' = markets taking orders now; 'closed' = finished markets with the resolved result; 'all' = both. Example: open.

## `minVolume` (type: `integer`):

Skip markets that traded less than this in total. Example: 10000. 0 = no minimum.

## `minLiquidity` (type: `integer`):

Skip markets with less resting order-book liquidity than this. Example: 1000. 0 = no minimum.

## `maxResults` (type: `integer`):

Stop after this many outcome rows (a yes/no market is 2 rows). Example: 100. Price-history points do not count toward this cap.

## `priceHistory` (type: `boolean`):

Also return the price history of every outcome returned, one row per point (row_type 'price_history'), charged per point. Example: false.

## `historyInterval` (type: `string`):

How far back the price history goes, counted from now. Example: 1w.

## `historyFidelity` (type: `integer`):

Minutes between history points. Example: 60 = hourly (about 168 points for a week); 1440 = daily.

## `incremental` (type: `boolean`):

Return only outcomes not returned before, and outcomes whose price moved by at least the threshold since the price last returned. Unchanged outcomes are skipped and not charged. Schedule it hourly or daily for price-move alerts.

## `changeThreshold` (type: `number`):

With 'Only new or moved': the probability move that counts, in percentage points. Example: 5 = a move from 40% to 45% or more.

## `stateKey` (type: `string`):

Name for the 'only new or moved' memory, e.g. 'election-moves'. Leave empty to derive it from the search, tags, links, status and minimums.

## `slackWebhookUrl` (type: `string`):

Post a short digest (count + top 10) to this Slack incoming webhook after each run that found something. Example: https://hooks.slack.com/services/T000/B000/XXXX

## `webhookUrl` (type: `string`):

POST the same digest as JSON to this URL (Zapier, Make, n8n). Example: https://hooks.zapier.com/hooks/catch/123/abc

## Actor input object example

```json
{
  "searchTerms": [
    "election"
  ],
  "tags": [],
  "urls": [],
  "status": "open",
  "minVolume": 0,
  "minLiquidity": 0,
  "maxResults": 40,
  "priceHistory": false,
  "historyInterval": "1w",
  "historyFidelity": 60,
  "incremental": false,
  "changeThreshold": 5
}
```

# Actor output Schema

## `outcomes` (type: `string`):

One item per market outcome (and per price-history point when asked), with price as implied probability.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchTerms": [
        "election"
    ],
    "maxResults": 40
};

// Run the Actor and wait for it to finish
const run = await client.actor("aurelix/polymarket-odds-tracker").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchTerms": ["election"],
    "maxResults": 40,
}

# Run the Actor and wait for it to finish
run = client.actor("aurelix/polymarket-odds-tracker").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchTerms": [
    "election"
  ],
  "maxResults": 40
}' |
apify call aurelix/polymarket-odds-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,aurelix/polymarket-odds-tracker"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/pjafNWpNb3PkxCFkr/builds/mebY4fzl8KI6wkfAn/openapi.json
