# Polymarket Search Results Scraper (`solidcode/polymarket-search-results-scraper`) Actor

\[💰 $3 / 1K] Search Polymarket prediction markets by keyword. Get odds, outcome prices, 24h and all-time volume, liquidity, open interest, and resolution dates. Filter open vs resolved markets, sort by volume, liquidity or closest odds, or track specific events by link.

- **URL**: https://apify.com/solidcode/polymarket-search-results-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (community)
- **Categories:** Automation, Developer tools, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Polymarket Search Results Scraper

Search Polymarket's prediction markets by keyword and pull live odds, outcome prices, 24-hour and all-time volume, liquidity, and resolution dates — one clean row per Yes/No market. Paste event links to track a fixed watchlist, or search a topic and let every matching market flatten into its own row. Built for traders, quant researchers, and data journalists who follow prediction markets and need structured odds and volume data without copying numbers off the site by hand.

### Why This Scraper?

- **Live Yes/No odds on every market** — each row carries the current `outcomePrices` array (the implied probability of each outcome) plus `bestBid`, `bestAsk`, `spread`, and `lastTradePrice`, so you get the full price picture, not just a single number.
- **Volume and liquidity at market and event level** — `volume24hr` and all-time `volume` per market, plus five event-level volume windows (24-hour, 1-week, 1-month, 1-year, and all-time), `eventLiquidity`, and `eventOpenInterest`.
- **Seven sort modes** — most-traded in the last 24 hours, most-traded all-time, highest liquidity, closest odds (competitiveness), newest, ending soonest, and best-match relevance.
- **One row per market, never a nested blob** — a single Polymarket event bundles 20–130 individual Yes/No markets; every one is exploded into its own row with its own odds, instead of buried inside a parent object you have to unpack.
- **Open, resolved, or both** — filter to markets still trading, markets already settled, or all of them, using Polymarket's own status flags (`active`, `closed`, `archived`).
- **Paste event links for a watchlist** — batch dozens of Polymarket event URLs in a single run to re-pull the exact same markets on a schedule, instead of searching from scratch each time.
- **Topical tags on every row** — Politics, Crypto, Sports, and more as ready-to-filter label strings, so you can slice a run by category in one step.
- **Resolution details for settlement tracking** — `endDate`, `resolutionSource`, `umaResolutionStatus`, and `resolvedBy` on every market for time-based analysis and outcome auditing.
- **On-chain identifiers, full precision** — `conditionId` and the 78-digit `clobTokenIds` per outcome are kept as strings so they never lose precision, ready to join against Polymarket's order book or on-chain data.

### Use Cases

**Trading Signals & Odds Monitoring**
- Track live implied probabilities across a topic and spot mispriced markets
- Watch best-bid/best-ask spreads to find the tightest, most liquid contracts
- Surface the closest-odds (near 50/50) markets where uncertainty is highest
- Monitor 24-hour volume spikes to catch markets moving on fresh news

**Market Research**
- Map every open market on a theme — crypto, elections, sports, macro
- Rank a category by liquidity or all-time volume to size the real action
- Compare event-level open interest across competing narratives
- Build a daily snapshot of a fixed watchlist of events

**Political & Sentiment Analysis**
- Read prediction-market odds as a real-money sentiment gauge on elections
- Track how implied probabilities shift day over day with `oneDayPriceChange`
- Compare candidate or outcome markets side by side within one event
- Flag markets nearing resolution to time your analysis

**Data Journalism**
- Cite market-implied odds with the volume and liquidity that back them
- Pull resolution sources and settlement dates for accountability stories
- Chart the crowd's forecast against real-world outcomes after resolution
- Assemble reproducible datasets straight from event links you can share

**Quantitative Research & Backtesting**
- Build odds and volume time series by re-running on a schedule
- Join markets to on-chain order-book data via `conditionId` and `clobTokenIds`
- Screen thousands of markets by liquidity, spread, or competitiveness
- Assemble labeled outcome datasets for calibration and forecasting studies

### Getting Started

#### Simple Keyword Search

The simplest run — one topic, up to 50 markets:

```json
{
    "searchQueries": ["trump"],
    "maxResults": 50
}
````

#### Filtered & Sorted

Only markets still open for trading, highest 24-hour volume first:

```json
{
    "searchQueries": ["bitcoin", "ethereum"],
    "marketStatus": "active",
    "sortBy": "volume_24hr",
    "maxResults": 200
}
```

#### Track Specific Events by Link

Paste Polymarket event URLs to pull an exact watchlist:

```json
{
    "eventUrls": [
        "https://polymarket.com/event/presidential-election-winner-2024",
        "https://polymarket.com/event/will-bitcoin-hit-150k-in-2025"
    ]
}
```

#### Advanced — Search + Watchlist Combined

Mix keyword searches with pinned event links, resolved markets only, ending soonest:

```json
{
    "searchQueries": ["super bowl", "fed rate decision"],
    "eventUrls": [
        "https://polymarket.com/event/presidential-election-winner-2024"
    ],
    "marketStatus": "resolved",
    "sortBy": "end_date",
    "maxResults": 1000
}
```

### Input Reference

#### Search

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchQueries` | string\[] | `["trump"]` | Words or phrases to search for, such as `trump`, `bitcoin`, or `super bowl`. Each term is searched separately and returns its own set of markets. |
| `eventUrls` | string\[] | `[]` | Links to specific Polymarket events you already know, e.g. `https://polymarket.com/event/will-trump-win`. Ideal for tracking a fixed watchlist instead of searching. Use with or without search terms. |

#### Filters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `marketStatus` | select | `All markets` | Which markets to include: **All markets**, **Open for trading only**, or **Already resolved only**. |
| `sortBy` | select | `Best match` | Result order: **Best match**, **Most traded (last 24 hours)**, **Most traded (all time)**, **Highest liquidity**, **Closest odds**, **Newest first**, or **Ending soonest**. |

#### Limits

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `maxResults` | integer | `50` | How many markets to collect per search term. Each row is one market and one event can hold many markets, so a run can return more markets than this number — a page is never cut off part-way. Set to `0` for as many as possible (up to 50,000 markets per term). |

### Output

Each row is a single market, carrying its own odds and pricing plus the context of the parent event. Here's a representative open-market row:

```json
{
    "id": "253591",
    "question": "Will Donald Trump win the 2024 US Presidential Election?",
    "slug": "will-donald-trump-win-the-2024-us-presidential-election",
    "groupItemTitle": "Donald Trump",
    "outcomes": ["Yes", "No"],
    "outcomePrices": [0.9945, 0.0055],
    "lastTradePrice": 0.995,
    "bestBid": 0.994,
    "bestAsk": 0.996,
    "spread": 0.002,
    "oneDayPriceChange": 0.012,
    "volume": 41598234.55,
    "volume24hr": 285412.9,
    "liquidity": 1543201.7,
    "conditionId": "0xdd22472e552920b8438158ea7238bfadfa4f735aa4cf588d3a4c9d1c6a1f0e8b",
    "clobTokenIds": ["71432009951982285", "12345678901234567"],
    "active": true,
    "closed": false,
    "archived": false,
    "acceptingOrders": true,
    "startDate": "2024-01-04T20:00:00Z",
    "endDate": "2024-11-05T12:00:00Z",
    "resolutionSource": "https://www.electoral-vote.com",
    "eventId": "903193",
    "eventTitle": "Presidential Election Winner 2024",
    "eventSlug": "presidential-election-winner-2024",
    "eventTicker": "presidential-election-winner-2024",
    "eventVolume": 1403339017.4,
    "eventVolume24hr": 8534120.3,
    "eventLiquidity": 42039182.5,
    "eventOpenInterest": 0,
    "eventCommentCount": 84213,
    "eventEndDate": "2024-11-05T12:00:00Z",
    "eventActive": true,
    "eventClosed": false,
    "eventFeatured": true,
    "tags": ["Politics", "Elections", "U.S. Politics", "2024 Election"],
    "marketCount": 2,
    "url": "https://polymarket.com/event/presidential-election-winner-2024",
    "searchQuery": "trump"
}
```

#### Market Fields

| Field | Type | Description |
|-------|------|-------------|
| `id` | string | Unique market identifier |
| `question` | string | The market's Yes/No question |
| `slug` | string | Market URL slug |
| `description` | string | Full market rules and description |
| `groupItemTitle` | string | Short label for this option within a multi-outcome event (e.g. a candidate name) |
| `active` | boolean | Market is currently open for trading |
| `closed` | boolean | Market is closed |
| `archived` | boolean | Market is archived |
| `acceptingOrders` | boolean | Order book is accepting new orders |
| `startDate` | string | ISO 8601 market start date |
| `endDate` | string | ISO 8601 market end / resolution date |

#### Odds & Pricing

| Field | Type | Description |
|-------|------|-------------|
| `outcomes` | string\[] | Outcome labels, e.g. `["Yes", "No"]` |
| `outcomePrices` | number\[] | Current price (implied probability) per outcome, aligned to `outcomes` |
| `lastTradePrice` | number | Price of the most recent trade |
| `bestBid` | number | Highest current bid |
| `bestAsk` | number | Lowest current ask |
| `spread` | number | Gap between best bid and best ask |
| `oneDayPriceChange` | number | Price change over the last 24 hours |
| `volume` | number | All-time traded volume for this market |
| `volume24hr` | number | Traded volume over the last 24 hours |
| `liquidity` | number | Current market liquidity |

#### Resolution & Status

| Field | Type | Description |
|-------|------|-------------|
| `resolutionSource` | string | Source used to settle the market |
| `umaResolutionStatus` | string | UMA oracle resolution status, when present |
| `resolvedBy` | string | Address or entity that resolved the market |

#### Event Context

Every market row also carries its parent event's context under `event`-prefixed keys.

| Field | Type | Description |
|-------|------|-------------|
| `eventId` | string | Parent event identifier |
| `eventTitle` | string | Parent event title |
| `eventSlug` | string | Parent event URL slug |
| `eventTicker` | string | Parent event ticker |
| `eventVolume` | number | All-time event volume |
| `eventVolume24hr` | number | Event volume over the last 24 hours |
| `eventVolume1wk` / `eventVolume1mo` / `eventVolume1yr` | number | Event volume over 1 week, 1 month, and 1 year |
| `eventLiquidity` | number | Event-level liquidity |
| `eventOpenInterest` | number | Event open interest |
| `eventCommentCount` | number | Number of comments on the event |
| `eventEndDate` | string | Event end / resolution date |
| `eventActive` / `eventClosed` / `eventFeatured` | boolean | Event status flags |
| `tags` | string\[] | Category labels (Politics, Crypto, Sports, etc.) |
| `marketCount` | number | Number of markets in the parent event |
| `url` | string | Direct link to the Polymarket event page |
| `searchQuery` | string | The search term that returned this row (empty for event-link rows) |

#### Identifiers

| Field | Type | Description |
|-------|------|-------------|
| `conditionId` | string | On-chain condition ID for the market |
| `clobTokenIds` | string\[] | 78-digit order-book token IDs, one per outcome — kept as strings to preserve precision |

### Tips for Best Results

- **Pair "Ending soonest" with "Open for trading only"** — on its own, ending-soonest surfaces markets that settled years ago. Combining the two gives you a clean list of markets about to resolve.
- **Sort by "Closest odds" to find the uncertain markets** — this ranks by competitiveness, floating the near-50/50 contracts to the top where prediction-market signal is richest.
- **`maxResults` counts markets and overshoots to a whole page** — one event can hold 100+ markets, so even a small cap can return hundreds of rows. Set it to `0` to collect as much as a term returns, up to a ceiling of 50,000 markets per term (very broad terms hit this — narrow or split them to go deeper).
- **Use event links for a repeatable watchlist** — paste the same set of Polymarket event URLs on every run to build consistent day-over-day snapshots of the markets you care about.
- **Combine search terms and event links in one run** — discover new markets by keyword while pinning the specific events you already track, all in a single dataset.
- **Keep `conditionId` and `clobTokenIds` as text when exporting** — the 78-digit token IDs overflow spreadsheet number precision; treat those columns as strings to join cleanly to on-chain data.

### Pricing

**From $3.00 per 1,000 results** — undercutting the going market rate for Polymarket data. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.

| Results | No discount | Bronze | Silver | Gold |
|---------|-------------|--------|--------|------|
| 100 | $0.36 | $0.34 | $0.32 | $0.30 |
| 1,000 | $3.60 | $3.40 | $3.20 | $3.00 |
| 10,000 | $36.00 | $34.00 | $32.00 | $30.00 |
| 100,000 | $360.00 | $340.00 | $320.00 | $300.00 |

A "result" is one market row in your dataset. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications on new results
- **Webhooks** — Trigger custom actions on run completion
- **Apify API** — Full programmatic access

### Legal & Ethical Use

This actor is designed for legitimate market research, trading analysis, and journalism. Results come from publicly available Polymarket pages. Users are responsible for complying with applicable laws and Polymarket's Terms of Service, and for observing any regional restrictions that apply to prediction markets in their jurisdiction. Do not use extracted data for any unlawful purpose. Nothing produced by this actor is financial advice.

# Actor input Schema

## `searchQueries` (type: `array`):

Words or phrases to search for on Polymarket, such as 'trump', 'bitcoin', or 'super bowl'. Each term is searched separately and returns its own set of results.

## `eventUrls` (type: `array`):

Links to specific Polymarket events you already know, for example https://polymarket.com/event/will-trump-win. Handy for tracking a fixed watchlist instead of searching.

## `marketStatus` (type: `string`):

Choose whether to include markets that are still open for trading, markets that have already been settled, or both.

## `sortBy` (type: `string`):

The order results come back in. 'Best match' ranks by how closely a market matches your search term. Tip: pair 'Ending soonest' with the 'Open for trading only' status — on its own it surfaces markets that settled years ago.

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

How many markets to collect per search term. Each row is one market (a single Yes/No question), and one event can contain many markets. Markets are collected one page of up to 50 events at a time, so a run can return considerably more markets than this number — a page is never cut off part-way through. Set to 0 for as many as possible. Each search term returns up to 50,000 markets; very broad terms (for example a single common word) are capped there.

## Actor input object example

```json
{
  "searchQueries": [
    "trump"
  ],
  "eventUrls": [],
  "marketStatus": "all",
  "sortBy": "relevance",
  "maxResults": 50
}
```

# Actor output Schema

## `overview` (type: `string`):

Table of matching markets with their event, outcome prices, volume, liquidity, and status.

## `details` (type: `string`):

Full detail rows including outcomes, on-chain identifiers, bid/ask, event volume, tags, and resolution source.

# 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 = {
    "searchQueries": [
        "trump"
    ],
    "eventUrls": [],
    "marketStatus": "all",
    "sortBy": "relevance",
    "maxResults": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/polymarket-search-results-scraper").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 = {
    "searchQueries": ["trump"],
    "eventUrls": [],
    "marketStatus": "all",
    "sortBy": "relevance",
    "maxResults": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/polymarket-search-results-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "searchQueries": [
    "trump"
  ],
  "eventUrls": [],
  "marketStatus": "all",
  "sortBy": "relevance",
  "maxResults": 50
}' |
apify call solidcode/polymarket-search-results-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=solidcode/polymarket-search-results-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Polymarket Search Results Scraper",
        "description": "[💰 $3 / 1K] Search Polymarket prediction markets by keyword. Get odds, outcome prices, 24h and all-time volume, liquidity, open interest, and resolution dates. Filter open vs resolved markets, sort by volume, liquidity or closest odds, or track specific events by link.",
        "version": "1.0",
        "x-build-id": "as7NaWf8JfmLTpYRV"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~polymarket-search-results-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-polymarket-search-results-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/solidcode~polymarket-search-results-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-polymarket-search-results-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/solidcode~polymarket-search-results-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-polymarket-search-results-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchQueries": {
                        "title": "Search Terms",
                        "type": "array",
                        "description": "Words or phrases to search for on Polymarket, such as 'trump', 'bitcoin', or 'super bowl'. Each term is searched separately and returns its own set of results.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "eventUrls": {
                        "title": "Event Links",
                        "type": "array",
                        "description": "Links to specific Polymarket events you already know, for example https://polymarket.com/event/will-trump-win. Handy for tracking a fixed watchlist instead of searching.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "marketStatus": {
                        "title": "Market Status",
                        "enum": [
                            "all",
                            "active",
                            "resolved"
                        ],
                        "type": "string",
                        "description": "Choose whether to include markets that are still open for trading, markets that have already been settled, or both."
                    },
                    "sortBy": {
                        "title": "Sort Results By",
                        "enum": [
                            "relevance",
                            "volume_24hr",
                            "volume",
                            "liquidity",
                            "competitive",
                            "start_date",
                            "end_date"
                        ],
                        "type": "string",
                        "description": "The order results come back in. 'Best match' ranks by how closely a market matches your search term. Tip: pair 'Ending soonest' with the 'Open for trading only' status — on its own it surfaces markets that settled years ago."
                    },
                    "maxResults": {
                        "title": "Maximum Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "How many markets to collect per search term. Each row is one market (a single Yes/No question), and one event can contain many markets. Markets are collected one page of up to 50 events at a time, so a run can return considerably more markets than this number — a page is never cut off part-way through. Set to 0 for as many as possible. Each search term returns up to 50,000 markets; very broad terms (for example a single common word) are capped there."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
