Markets

Get Venue Event

GET
/venue-events/{id}

Authorization

appId
headerx-app-id<token>

Your application ID. Required on app-tier and user-tier routes. Omitted on routes that authenticate with x-app-api-key only.

Path Parameters

id*string

Query Parameters

cluster?string
Value in"true""false"
minVolume?number
Range0 <= value

Response Body

200

application/json
  1. response
id*string

Event id. List responses return one row per matched cluster, and for a matched event this id is the cluster anchor — the handle to use for cross-venue lookups. Re-resolve it from discovery rather than storing it as a permanent key: clusters can merge, after which the id remains a valid event but is no longer the cluster head. See the Matched Clusters guide.

externalIdentifier*string
title*string
description?string
image*string
venue*Venue
Value in"kalshi""polymarket""limitless""predict""pred""tiprun""myriad""hyperliquid""novig""prophetx""betdex""lighter"
deployerVenue?string
volume?number
Range0 <= value
status?string
Value in"open""closed""resolved""unopened""paused"
startDate?string
endDate?string
creationDate?string
gameStartTime?string
categories*array<>
slug?string
subtitle?string
venues?array<>

Venues this row's matched cluster spans — use it for venue badges. On a cluster anchor this is the cluster-wide set; a non-anchor member usually reports the same set, but narrows to its own venue when none of its markets have cross-venue counterparts.

marketCount?integer

Number of markets on this event. Use this rather than the length of an embedded venueMarkets array, which is a preview on list responses. On GET /venue-events/:id this counts the whole matched cluster (send cluster=false to scope it to the single venue event); on list responses it counts the row's own event.

Range0 <= value
venueCount?integer

Length of venues — the size of the matched cluster.

Range0 <= value
groupMarketCount?integer
Range0 <= value
groupParentId?string

Same-venue companion grouping: the id of this event's group base. NULL means the event IS the base, or is standalone. A venue splits one game into several events (… - More Markets, … : Spread), and same-venue events never share a matched cluster (the sole exception is Hyperliquid HIP-4 deployers, see /recipes/hyperliquid-deployers) — so on a companion, matchedVenueEvents[] lists the other venues' EQUIVALENT companions, not the game's cluster. Use this id (or the shared aggKey) to reach the base. See /recipes/sports-market-detail.

updatedAt?string
venueMarkets?array<>

Embedded markets. On list responses this is a preview of up to three markets chosen to represent the event on a card — not the complete set, and not necessarily the largest; use marketCount for totals. On the by-id response it is uncapped. Deprecated on both — fetch markets from GET /venue-markets?venueEventId=.

arbReturn?number
series?
recurrence?string
aggKey?string

Deterministic canonical key computed from this venue's own data; null when not canonicalizable. This is a fetch filter, not a cross-venue join key — it is guaranteed identical across venues only for sports head-to-head and crypto up/down markets, and two members of the same matched cluster can carry different keys. Use the event id and matchedVenueMarkets for identity.

structureType?string
Value in"candidate""sport""axis""dates"
sport?string
settlementDiff?
settlementDiffStatus?string
Value in"computed""pending""not_applicable"
matchedVenueEvents?array<>
Example Request
curl -X GET 'https://api.t.sufwankhalid.com/venue-events/string'
Example Response
{  "id": "string",  "externalIdentifier": "string",  "title": "string",  "description": "string",  "image": "string",  "venue": "kalshi",  "deployerVenue": "string",  "volume": 0,  "status": "open",  "startDate": "string",  "endDate": "string",  "creationDate": "string",  "gameStartTime": "string",  "categories": [    {      "id": "string",      "category": {        "id": "string",        "name": "string",        "displayName": "string",        "parentId": "string",        "eventCount": 0,        "volume24hr": 0,        "volume": 0      }    }  ],  "slug": "string",  "subtitle": "string",  "venues": [    "kalshi"  ],  "marketCount": 0,  "venueCount": 0,  "groupMarketCount": 0,  "groupParentId": "string",  "updatedAt": "string",  "venueMarkets": [    {      "id": "string",      "venue": "kalshi",      "deployerVenue": "string",      "marketId": "string",      "externalIdentifier": "string",      "venueEventId": "string",      "question": "string",      "detailsDeferred": true,      "description": "string",      "rulesPrimary": "string",      "rulesSecondary": "string",      "conditionId": "string",      "volume": 0,      "volume24hr": 0,      "image": "string",      "venueMarketOutcomes": [        {          "id": "string",          "venueMarketId": "string",          "externalIdentifier": "string",          "label": "string",          "title": "string",          "price": 0,          "priceChange24h": 0,          "winner": true,          "payoutPerShare": 0,          "refundAtCost": true,          "winnerSource": "venue",          "matchedVenueMarketOutcomes": [            {              "venueMarketId": "string",              "venueMarketOutcomeId": "string"            }          ]        }      ],      "status": "open",      "startDate": "string",      "endDate": "string",      "creationDate": "string",      "createdAt": "string",      "resolutionDate": "string",      "negRisk": true,      "venues": [        "kalshi"      ],      "venueCount": 0,      "arbReturn": 0,      "aggKey": "string",      "sportsMarketType": "string",      "sectionRank": 0,      "period": "string",      "marketCategory": "string",      "marketGroup": "string",      "marketSubtype": "string",      "lineValue": 0,      "minOrderSize": 0,      "tickSize": 0,      "feeRate": 0,      "feeExponent": 0,      "feeBasis": "fill",      "matchedVenueMarkets": [        {          "id": "string",          "venue": "kalshi",          "deployerVenue": "string",          "externalIdentifier": "string",          "question": "string",          "detailsDeferred": true,          "description": "string",          "rulesPrimary": "string",          "rulesSecondary": "string",          "volume": 0,          "volume24hr": 0,          "status": "open",          "conditionId": "string",          "arbReturn": 0,          "shortTitle": "string",          "image": "string",          "venueEvent": {            "id": "string",            "externalIdentifier": "string",            "slug": "string",            "title": "string",            "series": {              "id": "string",              "name": "string",              "venue": "string",              "externalIdentifier": "string"            }          },          "venueMarketOutcomes": [            {              "id": "string",              "venueMarketId": "string",              "externalIdentifier": "string",              "label": "string",              "title": "string",              "price": 0,              "winner": true,              "payoutPerShare": 0,              "refundAtCost": true,              "winnerSource": "venue"            }          ]        }      ]    }  ],  "arbReturn": 0,  "series": {    "externalIdentifier": "string"  },  "recurrence": "string",  "aggKey": "string",  "structureType": "candidate",  "sport": "string",  "settlementDiff": {    "sharedSummary": "string",    "differences": [      {        "type": "string",        "title": "string",        "perVenue": {          "property1": "string",          "property2": "string"        },        "summary": "string"      }    ]  },  "settlementDiffStatus": "computed",  "matchedVenueEvents": [    {      "id": "string",      "venue": "kalshi",      "externalIdentifier": "string",      "title": "string",      "slug": "string",      "status": "open",      "series": {        "externalIdentifier": "string"      }    }  ]}