GET Latest Updated Livescores
Returns you all livescores that have received updates within 10 seconds.
https://api.sportmonks.com/v3/football/livescores/latest
api_token
YES
Another option is to provide the API token in the header.
Your unique API token. Ex. ?api_token=YOUR_TOKEN
include
NO
Enrich the API response with more data by using includes. Ex. &include=participants;events
filters
NO
Filter the API response on multiple related entities. There are static filters and dynamic filters. Please find the possibilities in the Static and Dynamic Filter tab.
locale
NO
Translate name fields of the API Response in your selected language. Find more information and which languages are available on our translations page.
Definition of "Latest Updated"
The Latest Updated endpoint returns all fixtures whose livescore data has changed within the last 10 seconds. Specifically, it tracks changes to these eight fields: state_id, venue_id, name, starting_at, starting_at_timestamp, result_info, leg, and length. The update window is fixed at 10 seconds and cannot be altered.
Changes to each core field mean the following:
State_id – the match phase progressed (for example, from 1 to 2 at kick-off or from 2 to 3 at half-time)
Venue_id – the assigned venue was updated (for example, moved from stadium A to stadium B)
Name – the fixture name text was modified (for example, team abbreviations or formatting changed)
Starting_at – the kick-off time string was rescheduled (for example, “2024-08-04 15:30:00” to “2024-08-04 16:00:00”)
Starting_at_timestamp – the UNIX timestamp for kick-off was rescheduled (for example, 1722785400 to 1722787200)
Result_info – the score summary text was updated (for example, “0-0” to “1-0”)
Leg – the leg designation changed (for example, “1/2” to “2/2”)
Length – the fixture duration changed (for example, 90 to 120 when extra time is added)
Frequency of updates & no-change responses
On each call, any fixture that experienced a change to one or more of the eight fields in the last 10 seconds will be returned in the data array.
If no fixture changed during that window, the API returns HTTP 200 with "data": [], signalling that there is nothing new to process.
Polling frequency
It is recommended to poll every 5 to 8 seconds to reduce end-to-end latency, provided your rate limits allow the extra calls.
Monitor for network jitter and clock skew to avoid missed updates or duplicate requests.
Caching strategy & best practices
Cache only the eight core fields per fixture (state_id, venue_id, name, starting_at, starting_at_timestamp, result_info, leg, length).
On each response:
Compare incoming values to your cache.
Discard fixtures with no differences.
Process and update your cache for fixtures with changes.
Cache lookup data (such as team names and league info) locally, since it changes rarely.
If you encounter long runs of empty responses, back off on polling frequency or check for network issues to avoid unnecessary calls.
Filters
More information on how to use filters can be found in our tutorials on how to filter. If you want more information on which filters to use, you can check out the following endpoint:
Pagination
NO
Include depth
You can use a total of 3
nested includes on this endpoint
Include options
sport
round
stage
group
aggregate
league
season
coaches
tvStations
venue
state
weatherReport
lineups
events
timeline
comments
trends
statistics
periods
participants
odds
premiumOdds
inplayOdds
prematchNews
metadata
sidelined
predictions
referees
formations
ballCoordinates
scores
xGFixture
expectedLineups
Related Entities:
Get an overview and explanation of all the fields returned in the API response. The related entities for the livescores endpoints are:
Postman
We also offer detailed postman documentation with examples and a complete up-to-date version of all our endpoints. Below is a button that lets your fork the collection or import it.
Code Example
require "uri"
require "net/http"
url = URI("https://api.sportmonks.com/v3/football/livescores/latest?api_token=YOUR_TOKEN")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Get.new(url)
response = https.request(request)
puts response.read_body
Last updated
Was this helpful?