For the complete documentation index, see llms.txt. This page is also available as Markdown.

GET Last Updated Odds

Returns the pre-match odds updated in the last 10 seconds.

https://api.sportmonks.com/v3/football/odds/pre-match/latest
{
  "data": [
    {
      "id": 1,
      "fixture_id": 18533878,
      "market_id": 1,
      "bookmaker_id": 34,
      "label": "Home",
      "value": "1.48",
      "name": "Home",
      "sort_order": null,
      "market_description": "Match Winner",
      "probability": "67.57%",
      "dp3": "1.480",
      "fractional": "37/25",
      "american": "-209",
      "winning": false,
      "stopped": false,
      "total": null,
      "handicap": null,
      "participants": null,
      "created_at": "2023-01-11T14:40:25.000000Z",
      "updated_at": "2023-01-11T14:47:50.000000Z",
      "original_label": null,
      "latest_bookmaker_update": "2023-01-11 14:40:25"
    },
Field
Description
Type

id

Refers to the unique id of the odd

integer

fixture_id

Refers to the fixture related to the odd

integer

market_id

Refers to the market related to the odd

integer

bookmaker_id

Refers to the bookmaker related to the odd

integer

label

Displays the label of the odd

string

value

Displays the value of the odd

string

name

Displays the name of the odd

string

market_description

Displays the description of the market

string

probability

Displays the probability odd

string

dp3

Displays the dp3 odd

string

fractional

Displays the fractional odd

string

american

Displays the american odd

string

winning

Determines if the odd is winning or not (only available with markets where has_winning_calculations is true)

boolean

stopped

Determines if the odd is stopped or not

boolean

total

Displays the total of the odd

string / null

handicap

Displays the handicap of the odd

string / null

participants

Displays the participants of the odd

string / null

latest_bookmaker_update

Displays the date when the odd was last confirmed to be up-to-date (in UTC)

string / null

Note this endpoint returns the pre-match odds which were updated in the last 10 seconds.

Name
Required?
Description

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

select

NO

Select specific fields on the base entity. Read how to select fields in our tutorial.

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.

Static filters are always the same and filter in one specific way without any custom options. Each static filter is listed below and has a description of how it filters. For more information, please look at our Filters page.

Static Filters
Available on Entity
Description
Example

markets

Odds

Filter the odds on a selection of markets separated by a comma.

&include=market&filters=markets:marketIDs &include=market&filters=markets:12,14

bookmakers

Odds

Filter the odds on a selection of bookmakers separated by a comma. (e.g: 2,14).

&include=bookmaker&filters=bookmakers:bookmakerIDs

&include=bookmaker&filters=bookmakers:2,14

WinningOdds

Odds

Filter all winning odds.

&filters=winningOdds

The dynamic filters are based on entities and includes. Each dynamic filter uses an entity to filter on and one entity to apply the filter to. Below is an example with an explanation of how filters are set up. For more information, please look at our Filters page.

Using an include? Check their respective filters on their entity page. For example if you use &include=fixtures, you can apply fixture-related filters.

Dynamic Filters
Available on Entity
Description
Examples

N/A

N/A

Not available for this endpoint.

N/A

Definition of “Latest Updated”

This endpoint returns every fixture whose odds data has changed in the last 10 seconds. The odds data fields include market_id, bookmaker_id, value, name, market_description, probability, winning, stopped, created_at, updated_at, and latest_bookmaker_update. The 10-second update window is fixed and cannot be changed.

A change in any of these fields during the last 10 seconds means that the fixture is included in the response:

  • market_id

    • Change means the fixture moved to a different betting market.

  • bookmaker_id

    • Change means a different bookmaker provided or updated the odds.

  • value

    • Change means the numeric odd value (for example, 1.48) was adjusted.

  • name

    • Change means the label name (for example “Home” or “Away”) was modified.

  • market_description

    • Change means the description of the market (for example “Match Winner”) was edited.

  • probability

    • Change means the implied probability (for example “67.57%”) was recalculated.

  • winning

    • Change means the boolean flag indicating if this odd is the current winning outcome was toggled.

  • stopped

    • Change means the boolean flag indicating if this odd is no longer available was toggled.

  • created_at

    • Change means a new odd entry was created within the last 10 seconds.

  • updated_at

    • Change means the timestamp of the last update to this odd entry was modified.

  • latest_bookmaker_update

    • Change means the bookmaker’s own timestamp for their last update was modified.

Frequency of updates & no-change responses

Any fixture with at least one of the above fields changed in the last 10 seconds will appear on each API call. If no fixture changed during that window, the API returns HTTP 200 with an empty data array. An empty array means there is nothing new to process.

Polling frequency & rate limits

  • Poll every 10 seconds to match the fixed update window exactly (360 calls per hour).

  • Optionally 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 missing updates or sending duplicate requests.

Caching strategy & best practices

  • Cache all returned fields per fixture in your local store.

  • On each response, compare each fixture’s new payload against the cache.

  • Discard fixtures with no actual differences.

  • Update the cache with only the changed fixtures.

  • Cache rarely changing lookup data (such as bookmaker names and market descriptions) locally.

  • If you observe long runs of empty responses, temporarily reduce your polling frequency to minimise unnecessary calls.

Filters

More information on how to use filters can be found on 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 1 nested includes on this endpoint

Include options

market bookmaker fixture

Odd

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.

Run in Postman

Code Example

Last updated

Was this helpful?