Search
Search
Search markets and events with a unified text query, rich filters, and full detail in each result.
GET
Search
Discover markets and events with a single text field (
Leverage filters vs market
Text search plus NO-side cap:
Sports + leverage sort:
Open and resolved markets together:
Only markets under review:
q), structured filters (category, sports, resolution time, price, margin), per-side leverage bounds, and full market or event detail in each hit.
Query Parameters
Unified search phrase (whitespace normalized). Minimum 2 characters when non-empty. Matched against market and event titles, descriptions, outcome labels, and
condition_id (token + substring).Comma-separated lifecycle filters (OR semantics). Each value must be one of
open, under_review, resolved, closed (lowercase). Examples: open, open,resolved, resolved,closed.For events, a hit matches if any sub-market falls in the selected bucket(s). See Lifecycle filters.Comma-separated sport slugs from Sports catalog.
Comma-separated league slugs from the catalog (
leagues[].slug). Requires sport on the same request.Unix timestamp (seconds, UTC). Only include markets/events with resolution time after this value.
Unix timestamp (seconds, UTC). Only include markets/events with resolution time before this value. Must be greater than
resolution_time_gt when both are set.Maximum YES-implied probability in
[0, 1]. Must be greater than or equal to price_gte when both are set.When
true, only margin-enabled markets and events with at least one margin sub-market. When false, only non-margin markets and events with at least one non-margin sub-market.Minimum indexed
max_leverage_yes (inclusive). Matches config.max_leverage_yes on market detail. Non-margin markets use 0.Maximum indexed
max_leverage_yes (inclusive). Use 0 for spot-only. Must be greater than or equal to max_leverage_yes_gte when both are set.Minimum indexed
max_leverage_no (inclusive). Matches config.max_leverage_no on market detail. Non-margin markets use 0.Maximum indexed
max_leverage_no (inclusive). Use 0 for spot-only. Must be greater than or equal to max_leverage_no_gte when both are set.Restrict hits to
market or event only. Omit to return both. result_type alone is not enough — combine with another filter or non-empty q.Sort key. One of
created, ending_soon, last_trade, leverage, market_cap, total_volume, trending.At least one filter is required: non-empty
q, any structured filter above (including max_leverage_yes_* / max_leverage_no_*), a valid sport / league pair from the catalog, or a non-empty state value.Lifecycle filters
Pass one or more buckets, comma-separated; results match if any bucket matches (OR). These filters are search-only lifecycle buckets — not the same as thestate field on individual market or event resources.
Duplicate values in the same request are ignored (
open,open is the same as open). Unknown values return 400.
Leverage filters vs market config
You can filter YES and NO independently (for example, high YES leverage with low NO leverage). Event rows use the maximum YES and NO leverage across their sub-markets for indexing.
Sort keys
With a non-empty
q and no sort, the API ranks by text relevance first.