Matching Markets
Find equivalent markets across different prediction market platforms (Polymarket, Kalshi, etc.) using platform-specific identifiers — Polymarket slugs and Kalshi ticker IDs.
Case StudySee how Elastics built their AI trading terminal on this endpoint→
Matches aren't always 100% accurate. Verify all data before executing a trade.
/matching-marketsQuery Parameters
A Polymarket market slug to find matches for. Provide exactly one identifier per request — either a Polymarket slug or a Kalshi ticker, not both.
A Kalshi event ticker to find matches for. Provide exactly one identifier per request — either a Polymarket slug or a Kalshi ticker, not both.
Legacy method. Can be passed as a query parameter, but header-based authentication is highly recommended for security.
Response Schema
Indicates if the request was successful.
Number of events matching the provided inputs.
The human-readable name of the event (e.g. "2026 NBA Champions").
Match confidence level: "high" or "medium". Events with "low" confidence are excluded.
The specific market group title (e.g. "Los Angeles Lakers").
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 →
Always `false` on error responses.
Short, human-readable title (e.g. 'Invalid API Key.').
Human-readable explanation for the error. Safe to surface in UIs.
Stable, hierarchical machine-readable code (e.g. 'validation.invalid_enum'). Use for programmatic handling.
Link to this code's entry in the Error Reference.
Optional. Present only on validation failures with field-level detail.
Name of the offending parameter.
Field-level machine code.
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.
X-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:
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: 412If 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
Market Identifiers
1 per requestResponse
—Click EXECUTE to send a request →