Prediction Hunt/ API

Matching Markets

Find equivalent markets across different prediction market platforms (Polymarket, Kalshi, etc.) using platform-specific identifiers — Polymarket slugs and Kalshi ticker IDs.

Case Study

See how Elastics built their AI trading terminal on this endpoint

Matches aren't always 100% accurate. Verify all data before executing a trade.

GET/matching-markets

Query Parameters

polymarket_slugsstring

A Polymarket market slug to find matches for. Provide exactly one identifier per request — either a Polymarket slug or a Kalshi ticker, not both.

kalshi_tickersstring

A Kalshi event ticker to find matches for. Provide exactly one identifier per request — either a Polymarket slug or a Kalshi ticker, not both.

api_keystring

Legacy method. Can be passed as a query parameter, but header-based authentication is highly recommended for security.

Response Schema

successboolean

Indicates if the request was successful.

countinteger

Number of events matching the provided inputs.

eventsobject[]
titlestring

The human-readable name of the event (e.g. "2026 NBA Champions").

confidencestring

Match confidence level: "high" or "medium". Events with "low" confidence are excluded.

groupsobject[]
titlestring

The specific market group title (e.g. "Los Angeles Lakers").

marketsobject[]

Array of matched markets: source, source_url, id.

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

Market Identifiers

1 per request
PolymarketActive
KalshiPreview

Response

Click EXECUTE to send a request →