Polymarket Search Markets logo

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, liquidity, and parent eventSlug/eventTitle. Search ranking: keyword queries match against EVENT titles, then surface that event's markets — so per-game markets (e.g. 'Belgium vs. Egypt') only appear when the query matches the event title. Results are volume-ranked by default so the liquid flagship market (e.g. 'World Cup Winner') surfaces first ahead of low-volume novelty markets (e.g. 'World Cup: Glove Brand'); for specific matchups, search by team/entity names alone (e.g. 'Belgium Egypt'). Absence from one query does not mean absence from Polymarket. Query vs tag: use query for keyword/entity search (e.g. 'bitcoin', 'Belgium Egypt'); use tag to BROWSE a whole category by its Polymarket slug (e.g. tag: 'weather' | 'sports' | 'politics' | 'fifa-world-cup'), which returns the same live markets as polymarket.com/<slug>. Prefer tag for topic/category requests — keyword search misses category markets whose text omits the word (e.g. query 'weather' finds nothing, but tag 'weather' surfaces the live 'Highest temperature in <city>' markets). A bare tag browses by volume. Ideal for: market discovery, automated market selection, finding short-duration markets, dashboards.

At a Glance

FieldValue
Action IDpolymarket-search-markets
CategoryUtility
ConnectorNot required
Requires gasNo
Funds movementNone declared
Tagspolymarket, search, market-data, read

Payload Schema

FieldTypeRequiredDescription
querystringNoKeyword/entity search (e.g., 'bitcoin', 'Belgium Egypt'). Matches a market's text. When used alone, searches via keyword matching; when combined with date filters, filters results by question text client-side. For a whole topic/category (weather, sports, politics, …), use 'tag' instead — keyword search misses category markets whose text omits the word (e.g. query 'weather' returns nothing).
startDateMinstringNoISO 8601 date-time. Only return markets starting AFTER this time. Only works in browse mode (with date filters). Example: '2026-03-17T05:00:00Z'
startDateMaxstringNoISO 8601 date-time. Only return markets starting BEFORE this time. Only works in browse mode (with date filters). Example: '2026-03-17T06:00:00Z'
endDateMinstringNoISO 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'
endDateMaxstringNoISO 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'
volumeNumMinnumberNoMinimum trading volume in USDC. Filters out low-volume markets. Only works in browse mode (with date filters).
liquidityNumMinnumberNoMinimum liquidity in USDC. Filters out illiquid markets. Only works in browse mode (with date filters).
includeInactivebooleanNoAlso show inactive markets that aren't currently trading.
includeClosedbooleanNoAlso show closed/resolved markets, plus markets whose end date has already passed. By default, browsing without a date filter only returns markets that haven't ended yet.
tagstringNoBrowse a whole Polymarket category by its slug (e.g., 'weather', 'politics', 'crypto', 'sports', 'fifa-world-cup') — returns the same live markets as polymarket.com/<slug>. Prefer this over 'query' for topic/category requests. Can be used alone (browses the category by volume) or alongside 'query'/date filters to scope a keyword search to that category.
orderBystringNoOrder results by the specified criteria. 'relevance' (default) volume-ranks keyword results so the liquid flagship market surfaces first (a low-volume novelty market can otherwise outrank it in the raw API order), 'volume' sorts by total trading volume, 'newest' sorts by end date, 'liquidity' sorts by current liquidity.
ascendingbooleanNoSort in ascending order instead of descending. Only applies when orderBy is set.
limitnumberNoMaximum number of results to return (default: 10, max: 100)
cursorstringNoOpaque 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).
fetchAllPagesbooleanNoWhen 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

FieldTypeRequiredDescription
marketsarrayYesArray of matching markets
countnumberYesNumber of results returned
querystringNoThe search query used
orderBystringNoThe ordering criteria used
nextCursorstringNoOpaque 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": []}

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.