Polymarket Search Markets
Search and browse Polymarket prediction markets. Use orderBy 'volume'/'newest'/'liquidity' to browse all active markets without any filters. Add a query for keyword search, or date filters (endDateMin/Max) for time-bounded browsing. Returns markets with question, outcomes, prices, volume, and liquidity. Ideal for: market discovery, automated market selection, finding short-duration markets, dashboards.
Catalog action Utility
Search and browse Polymarket prediction markets. Use orderBy 'volume'/'newest'/'liquidity' to browse all active markets without any filters. Add a query for keyword search, or date filters (endDateMin/Max) for time-bounded browsing. Returns markets with question, outcomes, prices, volume, and liquidity. Ideal for: market discovery, automated market selection, finding short-duration markets, dashboards.
At a Glance
| Field | Value |
|---|---|
| Action ID | polymarket-search-markets |
| Category | Utility |
| Connector | Not required |
| Requires gas | No |
| Funds movement | None declared |
| Tags | polymarket, search, market-data, read |
Payload Schema
| Field | Type | Required | Description |
|---|---|---|---|
query | string | No | Search query to find markets by keyword (e.g., 'bitcoin', 'election 2024'). When used alone, searches via keyword matching. When combined with date filters, filters results by question text client-side. |
startDateMin | string | No | ISO 8601 date-time. Only return markets starting AFTER this time. Only works in browse mode (with date filters). Example: '2026-03-17T05:00:00Z' |
startDateMax | string | No | ISO 8601 date-time. Only return markets starting BEFORE this time. Only works in browse mode (with date filters). Example: '2026-03-17T06:00:00Z' |
endDateMin | string | No | ISO 8601 date-time. Only return markets ending AFTER this time. Enables browse mode using the /markets endpoint with server-side date filtering. Example: '2026-03-17T05:00:00Z' |
endDateMax | string | No | ISO 8601 date-time. Only return markets ending BEFORE this time. Use with endDateMin to find markets ending within a specific window. Example: '2026-03-17T06:00:00Z' |
volumeNumMin | number | No | Minimum trading volume in USDC. Filters out low-volume markets. Only works in browse mode (with date filters). |
liquidityNumMin | number | No | Minimum liquidity in USDC. Filters out illiquid markets. Only works in browse mode (with date filters). |
includeInactive | boolean | No | Also show inactive markets that aren't currently trading. |
includeClosed | boolean | No | Also show closed/resolved markets. |
tag | string | No | Filter markets by tag/category slug (e.g., 'politics', 'crypto', 'sports'). |
orderBy | string | No | Order results by the specified criteria. 'relevance' keeps API order (search mode only), 'volume' sorts by total trading volume, 'newest' sorts by end date, 'liquidity' sorts by current liquidity. |
ascending | boolean | No | Sort in ascending order instead of descending. Only applies when orderBy is set. |
limit | number | No | Maximum number of results to return (default: 10, max: 100) |
cursor | string | No | Opaque cursor for keyset pagination. Pass the nextCursor value from a previous response to fetch the next page. Only works in browse mode (with date filters). |
fetchAllPages | boolean | No | When true, automatically paginates through all available pages and returns the combined result set. Only works in browse mode (with date filters). The limit param is ignored when this is enabled. Capped at 10,000 markets for safety. |
Result Schema
| Field | Type | Required | Description |
|---|---|---|---|
markets | array | Yes | Array of matching markets |
count | number | Yes | Number of results returned |
query | string | No | The search query used |
orderBy | string | No | The ordering criteria used |
nextCursor | string | No | Opaque cursor for fetching the next page. Present only when more results are available. Pass as the cursor input to get the next page. |
Examples
json{ "type": "polymarket-search-markets", "payload": { "query": "status:open", "startDateMin": "2026-04-25T12:00:00Z", "startDateMax": "2026-04-25T12:00:00Z", "endDateMin": "2026-04-25T12:00:00Z", "endDateMax": "2026-04-25T12:00:00Z" }, "children": []}
bashcurl -X POST "https://api.b3os.org/v1/actions/polymarket-search-markets/test" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "inputs": { "query": "status:open", "startDateMin": "2026-04-25T12:00:00Z", "startDateMax": "2026-04-25T12:00:00Z", "endDateMin": "2026-04-25T12:00:00Z", "endDateMax": "2026-04-25T12:00:00Z" }}'
Payload fields can use workflow expressions such as {{$trigger.body.amount}}, {{$nodes.fetch.result.price}}, and {{$props.asset}} when the value should come from a trigger, prior node, or reusable workflow prop.
