Prediction Hunt/ API
REST API / Core Resources / Markets

Markets

Browse and search all markets across platforms. Paginated by internal market id (stable order). Each market includes its latest price data. Pagination cursors are tied to the exact filter set: reuse next_cursor only with the same platform, status, category, and q parameters.

GET/v2/markets

Query Parameters

platformstring

Filter by platform: polymarket, kalshi, predictit, prophetx, opinion, predictfun (lowercase).

statusstring

Market status: active, closed, or all. Default: active.

categorystring

Category filter (e.g. 'sports', 'politics', 'economics').

qstring

Full-text search on market title.

limitinteger

Results per page. Default: 50, max: 500.

cursorstring

Opaque cursor from a previous response. Must match the same filters (platform, status, category, q) as that response; otherwise the API returns 400.

Response Schema

marketsobject[]

List of markets matching the filters.

idinteger

Internal market ID.

market_idstring

Platform-native market identifier.

platformstring

Source platform (polymarket, kalshi, etc.).

titlestring

Market title / question.

categorystring

Market category (sports, politics, economics, etc.).

statusstring

Market status (active, closed).

expiration_datestring

ISO 8601 expiration timestamp.

source_urlstring

Direct link to the market on the platform.

priceobject

Latest price snapshot for this market.

yes_bidnumber

Best bid for YES.

yes_asknumber

Best ask for YES.

no_bidnumber

Best bid for NO.

no_asknumber

Best ask for NO.

last_pricenumber

Last traded price.

volumeinteger

Trading volume.

liquiditynumber

Current liquidity (USD).

next_cursorstring

Opaque cursor for the next page (null if none). Must be reused only with the same platform, status, category, and search query as the request that produced it; changing filters requires omitting the cursor and starting from the first page.

total_countinteger | null

Total number of markets matching the filters (across all pages). Null when no platform, category, or search query is applied (unfiltered count is omitted to avoid expensive full-table scans).

Error Responses

All errors return the same envelope. The code field is stable and programmatically branchable; error and message are human-readable. errors[] is present only on validation failures with field-level detail. See the full error code reference →

successboolean

Always `false` on error responses.

errorstring

Short, human-readable title (e.g. 'Invalid API Key.').

messagestring

Human-readable explanation for the error. Safe to surface in UIs.

codestring

Stable, hierarchical machine-readable code (e.g. 'validation.invalid_enum'). Use for programmatic handling.

doc_urlstring

Link to this code's entry in the Error Reference.

errorsobject[]

Optional. Present only on validation failures with field-level detail.

fieldstring

Name of the offending parameter.

codestring

Field-level machine code.

messagestring

Human-readable explanation.

Authentication

API Key

To secure your requests, we strongly recommend passing your API key via the X-API-Key header. This prevents sensitive keys from being exposed in access logs or browser history.

Request HeaderX-API-Key: pmx_test_5e8f...

Rate Limits

API rate limits are enforced based on the tier associated with your API key. Limits are tracked on two dimensions: requests per second and requests per month. Each completed request counts toward the global monthly quota. Separate endpoint-group monthly limits (matched markets, arbitrage, EV) only advance when the response body has success: true.

Usage is returned on responses via headers such as:

Response Headers (global)X-RateLimit-Limit-Second: 10X-RateLimit-Remaining-Second: 9X-RateLimit-Limit-Month: 1000X-RateLimit-Remaining-Month: 842Example (endpoint-group, when applicable)X-RateLimit-Limit-Arb-Month: 500X-RateLimit-Remaining-Arb-Month: 412

If you exceed a rate limit, the API returns a 429 status with a Retry-After header indicating when you can resume.

Request

Live API Key

Demo Mode
Verified

Filters

Platform
Status
Category
Search
Limit

Response

Click EXECUTE to send a request →