Matches: find the same market on the other venue
Give a venue link (url) or a venue id (venue + id). Get back the TPM event and the matching listings on the other venue.
When to use it
- A user pastes a Kalshi link and you want the Polymarket price, or the reverse.
- You hold venue tickers or condition ids and need TPM event slugs.
Same question, maybe different rules
A match means the listings are about the same question. Settlement rules can still differ, so check event detail before treating the prices as one bet.
/api/public/v1/matchesAPI key requiredFind matches
Send either url, or both venue and id.
Parameters
| Name | In | Type | Required | Default | Description |
|---|---|---|---|---|---|
| url | query | string | No | — | A Kalshi or Polymarket market or event link. URL-encode it. |
| venue | query | "kalshi" | "polymarket" | No | — | With id: the venue the id belongs to. |
| id | query | string | No | — | With venue: a market id or contract id (Kalshi ticker, Polymarket event slug or condition id). |
Request
curl -s 'https://api.thepredictionmarkets.com/api/public/v1/matches?venue=kalshi&id=KXPRESNOMD-28-GN' \
-H 'X-API-Key: tpm_demo_key_authorized_2026'Response
Example 200 response. Values are illustrative and change over time.
{
"data": {
"source": {
"venue": "kalshi",
"market_id": "KXPRESNOMD-28",
"url": "https://kalshi.com/markets/kxpresnomd",
"title": "Democratic Presidential Nominee 2028",
"status": "active"
},
"matched_contract": {
"title": "Gavin Newsom",
"platform_outcome_id": "KXPRESNOMD-28-GN"
},
"event_slug": "democratic-presidential-nominee-2028",
"web_url": "https://thepredictionmarkets.com/odds/democratic-presidential-nominee-2028",
"matches": [
{
"venue": "polymarket",
"market_id": "democratic-presidential-nominee-2028",
"url": "https://polymarket.com/event/democratic-presidential-nominee-2028",
"event_slug": "democratic-presidential-nominee-2028",
"match_state": "AUTO_CANONICAL",
"match_score": 0.93
}
]
}
}Response fields
| Field | Type | Description |
|---|---|---|
| source | object | {venue, market_id, url, title, status} of the market your link or id points at. |
| matched_contract | object | null | {title, platform_outcome_id} when your link or id pointed at one contract, not the whole market. platform_outcome_id is its contract_id. |
| event_slug | string | The TPM event. Use it with /events/{slug}. |
| web_url | string | The event page on thepredictionmarkets.com. |
| matches[].venue, market_id, url | string | The matching listing on the other venue. |
| matches[].event_slug | string | null | Its TPM event. |
| matches[].match_state | string | null | How the link was made, e.g. AUTO_CANONICAL or MANUAL_CANONICAL; SAME_EVENT when both are grouped under one TPM event; COMPARABLE when only the titles match, so check the settlement rules. |
| matches[].match_score | number | null | Match confidence from 0 to 1, when scored. |
Errors
| HTTP | Code | When |
|---|---|---|
| 400 | validation.missing_parameter | Neither url nor venue + id was sent. |
| 400 | validation.invalid_url | url is not a Kalshi or Polymarket link. |
| 404 | not_found.market | TPM does not track that market yet. |
| 401 | auth.missing_key | No X-API-Key header was sent. |
| 401 | auth.invalid_key | The key is wrong or was revoked. |
| 429 | rate_limit.per_second | Too many requests this second. Wait for Retry-After. |
{
"error": {
"code": "validation.missing_parameter",
"message": "Pass `url`, or `venue` and `id`.",
"request_id": "0f8969a6-0968-4d7c-9cbb-de379e8c19c4"
}
}All codes are listed on the errors page.
Try it
Runs a live request from your browser. Pre-filled with the shared demo key (5 requests per second for everyone); paste your own key for steadier results.
Press Send to run this request.Match by link
URL-encode the link. curl --data-urlencode, Python requests and URLSearchParams all do it for you.
curl -sG 'https://api.thepredictionmarkets.com/api/public/v1/matches' \
--data-urlencode 'url=https://polymarket.com/event/democratic-presidential-nominee-2028' \
-H 'X-API-Key: tpm_demo_key_authorized_2026'Related
Build with TPM
Get your free API key
One key gives you Kalshi and Polymarket events, prices with freshness, price history, cross-venue gaps and the live quotes WebSocket.