← Protocols
Sportmonks
Indexing / Data·Multi-chain (data only — chain-agnostic)

Sportmonks

01Description

Sports data REST API covering 2,500+ football leagues plus cricket, F1 and other sports. Provides fixtures, live scores, lineups, statistics, odds and pre-match predictions — commonly used as the offchain data layer for prediction markets and sportsbooks.

02Best for
  • 01sports data feeds for prediction markets
  • 02live score and odds widgets
  • 03fantasy sports apps
  • 04World Cup 2026 / league dashboards
  • 05betting analytics and predictions
03Install
  • pnpm add sportmonks
  • pip install sportmonks
04Environment variables
VariableScopeDescription
SPORTMONKS_API_TOKENServerAPI token from your MySportmonks dashboard. Send as `?api_token=...` query param or `Authorization: <token>` header. Server-only — quotas are billed per token.
05Prompt snippet
Use Sportmonks as the sports data layer behind a prediction market or sportsbook UI. Auth via `?api_token=$SPORTMONKS_API_TOKEN` (or the `Authorization` header) on every request. The Football API v3 base is `https://api.sportmonks.com/v3/football` — list fixtures with `GET /fixtures/between/{start}/{end}` (use `include=participants;scores;state;odds;lineups` to compose nested data in one call), live matches via `GET /livescores/inplay`, and pre-match odds with `GET /odds/pre-match/fixtures/{id}`. For the World Cup 2026 specifically use `seasonId` filters on `/fixtures` and `/standings`. Cache aggressively and respect the per-entity rate limit (3,000 req/hr on enterprise tiers).
06Gotchas
  • Sportmonks is a data provider, not an oracle — there is no on-chain attestation. If you use it to settle prediction markets you must add your own dispute / multi-source verification layer (e.g. cross-check with Chainlink Sports or a UMA optimistic oracle).
  • Rate limits are PER ENTITY (per league/sport scope), not per account. Hitting one busy league can throttle a single endpoint while others stay fine — instrument 429s per route.
  • The `include` parameter is the main perf lever. Loading fixtures without includes returns minimal data; over-including (`participants;scores;events;statistics;lineups;odds`) on a 1,000-fixture window will time out. Tune includes per UI surface.
  • Coverage tiers vary by plan — lower tiers omit lineups, xG, detailed stats and player tracking. Verify the league/sport you need is included in your subscription before launching.
  • Timestamps are UTC ISO 8601 but `state.short_name` (NS / LIVE / FT / AET / PEN) is the source of truth for match status — don't infer 'finished' from kickoff + 90 minutes, extra time and pens break it.
  • The 2026 World Cup uses an expanded 48-team format with new group/knockout structure. Standings and bracket endpoints return slightly different shapes than past tournaments — code defensively against the new `groups` payload.
07Alternatives