AGG is currently in alpha. APIs, components, and docs may change.
Agg.market — Prediction Market Aggregator logo

Get Venue Event

Returns a single venue event. By default the response includes an embedded venueMarkets array.

GEThttps://api.agg.market/venue-events/{id}

Returns a single venue event. By default the response includes an embedded venueMarkets array. DEPRECATION: embedded venueMarkets is deprecated and will be removed — fetch the event's markets from GET /venue-markets?venueEventId=. To opt into the lean response now (no venueMarkets), send the expand query without markets (e.g. ?expand=); send ?expand=markets to pin markets inline across the future default change.

Loading code example
Loading code example

Authorizations

appIdstringheaderrequired

API key passed in the header.

Path Parameters

idstringrequired

Response

application/json

200

idstringrequired

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.

externalIdentifierstringrequired
titlestringrequired
descriptionstring
imagestringrequired
venue"kalshi" | "polymarket" | "limitless" | "opinion" | "predict" | "probable" | "myriad" | "hyperliquid"required
Allowed values: "kalshi" | "polymarket" | "limitless" | "opinion" | "predict" | "probable" | "myriad" | "hyperliquid"
volumenumber
Required range: x >= 0
status"open" | "closed" | "resolved" | "unopened" | "paused"
Allowed values: "open" | "closed" | "resolved" | "unopened" | "paused"
startDatestring
endDatestring
creationDatestring
gameStartTimestring
categoriesarray<object>required
categories.idstringrequired
categories.categoryobjectrequired
slugstring
subtitlestring
venuesarray<"kalshi" | "polymarket" | "limitless" | "opinion" | "predict" | "probable" | "myriad" | "hyperliquid">

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.

marketCountinteger

Number of markets on this event. Use this rather than the length of an embedded venueMarkets array, which is a preview on list responses.

Required range: x >= 0
venueCountinteger

Length of `venues` — the size of the matched cluster.

Required range: x >= 0
groupMarketCountinteger
Required range: x >= 0
updatedAtstring
venueMarketsarray<object>

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=.

venueMarkets.idstringrequired
venueMarkets.venue"kalshi" | "polymarket" | "limitless" | "opinion" | "predict" | "probable" | "myriad" | "hyperliquid"required
Allowed values: "kalshi" | "polymarket" | "limitless" | "opinion" | "predict" | "probable" | "myriad" | "hyperliquid"
venueMarkets.marketIdstring
venueMarkets.externalIdentifierstringrequired
venueMarkets.venueEventIdstring
venueMarkets.questionstringrequired
venueMarkets.descriptionstring
venueMarkets.rulesPrimarystring
venueMarkets.rulesSecondarystring
venueMarkets.conditionIdstring
venueMarkets.volumenumber
Required range: x >= 0
venueMarkets.imagestring
venueMarkets.venueMarketOutcomesarray<object>required
venueMarkets.status"open" | "closed" | "resolved" | "unopened" | "paused"
Allowed values: "open" | "closed" | "resolved" | "unopened" | "paused"
venueMarkets.startDatestring
venueMarkets.endDatestring
venueMarkets.creationDatestring
venueMarkets.createdAtstring
venueMarkets.resolutionDatestring
venueMarkets.negRiskboolean
venueMarkets.venuesarray<"kalshi" | "polymarket" | "limitless" | "opinion" | "predict" | "probable" | "myriad" | "hyperliquid">
venueMarkets.venueCountinteger
Required range: x >= 0
venueMarkets.matchStatus"pending" | "unmatched" | "review" | "matched" | "verified" | "rejected"
Allowed values: "pending" | "unmatched" | "review" | "matched" | "verified" | "rejected"
venueMarkets.arbReturnnumber
venueMarkets.aggKeystring

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.

venueMarkets.sportsMarketTypestring
venueMarkets.sectionRankinteger
venueMarkets.periodstring
venueMarkets.marketCategorystring
venueMarkets.marketGroupstring
venueMarkets.marketSubtypestring
venueMarkets.lineValuenumber
venueMarkets.matchedVenueMarketsarray<object>

The same market on other venues, as linked by AGG's matching pipeline. This is the cross-venue linkage — it hangs off each market, not off the event, and is complete regardless of which cluster member you queried.

matchStatus"pending" | "unmatched" | "review" | "matched" | "verified" | "rejected"
Allowed values: "pending" | "unmatched" | "review" | "matched" | "verified" | "rejected"
arbReturnnumber
seriesobject
series.externalIdentifierstringrequired
recurrencestring
aggKeystring

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"candidate" | "sport" | "axis" | "dates"
Allowed values: "candidate" | "sport" | "axis" | "dates"
sportstring
settlementDiffobject
settlementDiff.sharedSummarystringrequired
settlementDiff.differencesarray<object>required
matchedVenueEventsarray<object>
matchedVenueEvents.idstringrequired

Sibling event id. Re-resolve from discovery rather than persisting: cluster merges re-point members onto the surviving root, after which this id remains a valid event but is no longer the cluster head.

matchedVenueEvents.venue"kalshi" | "polymarket" | "limitless" | "opinion" | "predict" | "probable" | "myriad" | "hyperliquid"required
Allowed values: "kalshi" | "polymarket" | "limitless" | "opinion" | "predict" | "probable" | "myriad" | "hyperliquid"
matchedVenueEvents.externalIdentifierstringrequired
matchedVenueEvents.titlestringrequired
matchedVenueEvents.slugstring
matchedVenueEvents.status"open" | "closed" | "resolved" | "unopened" | "paused"
Allowed values: "open" | "closed" | "resolved" | "unopened" | "paused"
matchedVenueEvents.seriesobject