Skip to main content

Live Events

GET /events/live returns all currently in-play events, optionally filtered by sport:
Each event includes live scores and, where available, a clock object with the current match clock. The same clock field also appears on live events returned by GET /events?status=live and GET /events/{id}.

The Clock Object

Live events carry an optional clock field:
A few things to know:
  • clock is omitted entirely when no clock data is available for an event. Treat it as optional.
  • minute and playedSeconds are extrapolated server-side from the live feed, so they stay accurate even when the response is served from cache.
  • The clock only advances while running is true. During half-time and other breaks it freezes at the last played second.
  • For a per-second ticker in your UI, extrapolate client-side from playedSeconds at the moment you received the response, while running is true.

statusDetail values

statusDetail is the live feed’s phase description passed through as-is. The exact strings vary by sport; treat it as display text rather than an enum, and use period + running for any betting logic. Values you can expect:

Rendering a football clock the conventional way

minute is cumulative elapsed play, so first-half stoppage time reads 46, 47, 48… To render the conventional 45+X / 90+X style, cap the minute at the period boundary:
injuryTime carries the announced stoppage minutes when the fourth official raises the board, so 45+2 with injuryTime: 4 tells you about two more minutes of the half remain.

Participant Logos

GET /participants/{id}/logo returns the team or player crest as a PNG, served directly from the Odds-API domain:
Use the homeId / awayId fields from event responses as the participant id, or look ids up via GET /participants.
  • Responses include Cache-Control: public, max-age=86400, so browsers and CDNs cache them for a day. You can hotlink the URL in an <img> tag.
  • Returns 404 when no logo exists for the participant. Misses are cached server-side, so repeated lookups for logo-less participants stay fast.
  • Logos are served from our infrastructure; no third-party provider URLs are exposed to your users.

Next Steps

  • Stream live scores and match status over WebSocket instead of polling, see the WebSocket guide
  • Fetch odds for live events with Fetching Odds