groupItemTitle.
Every public market response includes the parent event slug; every
event response carries its full markets array. Most clients query
GET /api/events for the home grid and fall back to
GET /api/markets/{symbol} for the trading detail page.
Event shape
Football metadata fields
| Field | When populated |
|---|---|
group | Tournament group letter (A..L). Set on group-stage events only. |
stage | group / r32 / r16 / quarter_finals / semi_finals / third_place / final. Null for non-fixture events. |
teamA / teamB | FIFA 3-letter country codes. Both populated for 1-vs-1 fixtures; only teamA for tournament-winner markets in focus on a single team; both null for picker-style multi-outcome markets. |
tags | Curated taxonomy from GET /api/tags. Use the slug as ?tag=<slug> to filter. |
eventStartTime | Real-world fixture kickoff. Separate from createdAt. |
Per-market fields driven by the event grouping
Field on MarketSummary | Meaning |
|---|---|
groupItemTitle | Per-market label inside the event accordion (e.g. "Real Madrid", "Liverpool", "Draw"). Equal to title for single-market events. |
initialOutcomePrices | Per-outcome seed price aligned to outcomeLabels. Equivalent to Polymarket’s outcomePrices. |
Filtering
| Query | Behaviour |
|---|---|
stage | Exact match against the EventStage enum. |
group | Group letter; case-sensitive. |
team | FIFA 3-letter code matched against teamA OR teamB. |
tag | Single tag slug, exact match. Combine with other filters via repeated requests; the API does not support multi-tag in a single call. |
from / to | Inclusive bounds on eventStartTime. |
sort | trending (24h volume DESC) / ending_soon (non-past closesAt ASC) / starting_soon (future market kickoff ASC) / live (kickoff passed and a market is still OPEN; most-recently-started DESC). Default (no sort): earliest public-market kickoff ASC, then title ASC, then event id ASC — not createdAt. starting_soon / live use per-market kickoff as the source of truth; eventStartTime is a fallback used only when kickoff is NULL. |
Tags
The tag taxonomy is admin-curated rather than free-form. UseGET /api/tags for the full active list and the slug as the value
for ?tag=.
isFeatured tags are surfaced in the primary navigation strip;
non-featured tags remain selectable through filter UI but are not
pinned.