Skip to content

Browse World Cup Games

GET /browse/topics/world-cup/games

Server: https://api.openfish.me (port 3002)

Auth: None

Tags: Browse, Market Data

The endpoint returns World Cup markets grouped by game and section. It is intended for pages and agents that need a tournament view rather than a flat market list.


NameInTypeDescription
sectionquerystringOptional comma-separated section filter. Omit it, use all, or pass values such as winner, total, or spread.
eventSlugquerystringOptional game/event slug filter.
localequerystringOptional display locale. Supports en, zh, ja, ko, fr, es and BCP-47 aliases such as zh-CN or ja-JP. If omitted, Accept-Language may be used; otherwise the API falls back to English.

200 — Topic document with game, market, outcome, and stream metadata.

{
"topic": {
"slug": "world-cup-games",
"title": "世界杯",
"canonicalTitle": "World Cup",
"source": "openfish:mv_world_cup_games_topic",
"updatedAt": "2026-06-15T00:00:00Z"
},
"localization": {
"requestedLocale": "zh",
"locale": "zh",
"fallbackLocale": "en",
"source": "query",
"translated": true,
"supportedLocales": ["en", "zh", "ja", "ko", "fr", "es"],
"contentSources": {
"marketTranslations": "clob_markets.translations",
"fallbackTemplates": "world_cup_deterministic_v1"
},
"fallbackCounts": {
"topic": 0,
"events": 0,
"sections": 0,
"markets": 0,
"outcomes": 0
}
},
"summary": {
"eventCount": 64,
"marketCount": 320,
"activeMarketCount": 320,
"liveMarketCount": 320,
"volume": "0",
"volume24h": "0"
},
"dates": [
{
"date": "2026-06-11",
"eventCount": 1,
"activeMarketCount": 5,
"liveMarketCount": 5
}
],
"events": [
{
"eventId": "fifwc-team-a-team-b-2026-06-11",
"eventSlug": "fifwc-team-a-team-b-2026-06-11",
"title": "西班牙 对 佛得角",
"canonicalTitle": "Spain vs. Cabo Verde",
"homeTeam": "Spain",
"awayTeam": "Cabo Verde",
"homeTeamDisplay": "西班牙",
"awayTeamDisplay": "佛得角",
"startTime": "2026-06-11T20:00:00Z",
"eventDate": "2026-06-11",
"status": "upcoming",
"marketCount": 5,
"sections": [
{
"key": "winner",
"title": "胜平负",
"canonicalTitle": "Winner",
"markets": [
{
"conditionId": "0x...",
"questionText": "2026-06-11 西班牙 会获胜吗?",
"canonicalQuestionText": "Will Spain win on 2026-06-11?",
"status": "LIVE",
"openfishLive": true,
"outcomes": [
{
"tokenId": "71321045...",
"label": "",
"canonicalLabel": "Yes",
"price": "0.52",
"bestBid": "0.51",
"bestAsk": "0.53",
"pct": "52.0"
}
]
}
]
}
]
}
],
"priceStream": {
"type": "websocket",
"publicEndpoint": "wss://api.openfish.me/ws/market",
"assetIdField": "events[].sections[].markets[].outcomes[].tokenId"
}
}

The topic response is cached for 300 seconds per filter. It is a discovery and initial-render response, not a real-time price feed.

Locale is part of the cache key. ?locale=en and ?locale=zh are cached independently.

For current prices:

  • Use tokenId with GET /price, POST /prices, GET /book, or POST /books.
  • Use priceStream.publicEndpoint and subscribe to token IDs for near-real-time updates.
  • Use conditionId with /prices-history?market={condition_id} for persisted snapshot history.

Terminal window
curl "https://api.openfish.me/browse/topics/world-cup/games"
curl "https://api.openfish.me/browse/topics/world-cup/games?locale=zh"
curl "https://api.openfish.me/browse/topics/world-cup/games?section=winner"
curl "https://api.openfish.me/browse/topics/world-cup/games?eventSlug=fifwc-team-a-team-b-2026-06-11"

Localized display text is best-effort. World Cup localization uses three layers: clob_markets.translations when present, deterministic World Cup templates and team dictionaries, then canonical English fallback. Machine fields such as conditionId, tokenId, eventSlug, section.key, status, prices, and WebSocket payloads remain language-neutral.