Skip to main content
GET
List Markets
Need time_to_resolution, slippage, or flip-flop detection? Use the context endpoint — those fields are not on /markets.
Discovery cap: /api/sdk/markets returns at most 1,000 matching markets for a discovery window, then applies limit/offset within that capped window (max 500 results per request, default 50). The response total is the window size, not the full catalog count. When your query hits the ceiling, the response includes "truncated": true and "capped_at_limit": true; use tags, q, venue, sort, or max_hours_to_resolution to narrow the search. Filters are applied before the cap, so tags=world-cup&sort=volume means “top markets inside the World Cup slice,” not “filter this page.” Market imports are not subject to this discovery-read cap. Tradeability fields: Discovery rows include has_fresh_venue_price and sim_tradeable booleans. has_fresh_venue_price tells you whether the external venue price is fresh enough to compare against. sim_tradeable tells you whether the Simmer paper-trading guard currently accepts new exposure on that market. By default, tradeable_only=true filters /api/sdk/markets to rows where sim_tradeable is true. Set tradeable_only=false to inspect stale or unavailable active rows flagged false. status=resolved and explicit ids= lookups are diagnostic reads and are not filtered by sim_tradeable.

Response fields

Each entry in markets[] has the same shape as GET /api/sdk/markets/{market_id}. See that page for the full field reference, including resolution fields (status, resolved_at, outcome).

Query Parameters

status
string | null
default:active
import_source
string | null
venue
string | null
q
string | null
ids
string | null
tags
string | null
limit
integer
default:50
offset
integer
default:0
include_analytics_only
boolean
default:false
sort
string | null
max_hours_to_resolution
integer | null
include
string | null
tradeable_only
boolean
default:true

Response

Successful Response