# Pre-match odds

> **📦 Add-on required**
>
> Pre-match odds data requires the **Odds add-on** (€14-€69 depending on your base plan).
>
> This add-on includes both pre-match and in-play odds data.
>
> Available with all base plans (Starter, Growth, Pro, Enterprise).\
> [View pricing and add-ons →](https://www.sportmonks.com/football-api/plans-pricing)
>
> **💰 Bundle Available:** Save by combining with Predictions (€15-€149 total depending on plan).

In the previous sections, you’ve learnt about bookmakers and markets and how to retrieve them via our API. Now, let’s take a look at the odds from those bookmakers and markets.

### Understanding what influences odds

Bookmakers calculate odds based on multiple factors including:

* **Team statistics:** Recent form, home/away performance, goals scored/conceded
* **Head-to-head records:** Historical results between the two teams
* **Player availability:** Injuries, suspensions, and key player form
* **Advanced metrics:** Expected Goals (xG), possession statistics, defensive strength

**Want to analyse the same data bookmakers use?** Our [Statistics API](https://docs.sportmonks.com/v3/tutorials-and-guides/tutorials/statistics) provides comprehensive team and player performance metrics that correlate with odds movements.

**Pro tip:** Compare historical statistics with odds to identify value bets or build your own prediction models.

{% hint style="info" %}
It’s good to note that we’ve separated pre-match odds from live odds. Interested in live odds? Check our [live odds section.](/v3/tutorials-and-guides/tutorials/odds-and-predictions/live-inplay-odds.md)&#x20;
{% endhint %}

An overview of all the options available to request pre-match odds:&#x20;

* **GET All Odds**: returns all the pre-match odds.&#x20;
* **GET Odds by Fixture ID**: returns the pre-match odds from your requested fixture id.&#x20;
* **GET Odds by Fixture ID and Bookmaker ID:** returns the pre-match odds filtered on bookmaker id from your requested fixture id.&#x20;
* **GET Odds by Fixture ID and Market ID:** returns the pre-match odds filtered on market id from your requested fixture id.&#x20;

For all the pre-match odds endpoints the base URL is the same:&#x20;

`https://api.sportmonks.com/v3/football/odds/pre-match`&#x20;

Per endpoint the rest of the URL requires additional information. We will explain this per endpoint.

## Requesting Odds

### GET All Odds

The first option is to request all the odds available in our APIs. With this information, you can determine if the odds you’re interested in are available.

The URL to get all pre-match odds is the same as the base URL for pre-match odds. All you have to do is authorize the request with your API token. Check our [authentication section](/v3/welcome/authentication.md) for more info.

{% code overflow="wrap" %}

```javascript
https://api.sportmonks.com/v3/football/odds/pre-match?api_token=YOUR_TOKEN
```

{% endcode %}

<details>

<summary>Response</summary>

```javascript
{
  "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"
    },
    {
      "id": 2,
      "fixture_id": 18533878,
      "market_id": 80,
      "bookmaker_id": 34,
      "label": "Over",
      "value": "1.85",
      "name": "Over",
      "sort_order": null,
      "market_description": "Goals Over/Under",
      "probability": "54.05%",
      "dp3": "1.850",
      "fractional": "37/20",
      "american": "-118",
      "winning": false,
      "stopped": false,
      "total": "2.75",
      "handicap": null,
      "participants": null,
      "created_at": "2023-01-11T14:40:25.000000Z",
      "updated_at": "2023-01-11T14:43:44.000000Z",
      "original_label": null,
      "latest_bookmaker_update": "2023-01-11 14:40:25"
    },
    //And more
```

</details>

Let’s take a look together at the key values the API returns:

* `id`: the unique id of the odd&#x20;
* `fixture_id`: the unique fixture id the odd is available for&#x20;
* `market_id`: the unique id of the market the odd belongs to&#x20;
* `bookmaker_id`: the unique id of the bookmaker who offers the odd&#x20;
* `label`: the label name of the odd&#x20;
* `value`: the odd value&#x20;
* `name`: the name of the odd&#x20;
* `sort_order`: n/a&#x20;
* `market_description`: the description of the market the odd belongs to

Now you’ve gathered an overview of the available pre-match odds. You can also retrieve the odds for only a specific fixture.

### GET Pre-match Odds by Fixture ID

A lot of our customers are not interested in all odds, but only in odds of a specific fixture. This endpoint is perfectly suited for this. The only thing you’ve to do is parse the `fixture_id` you want the odds for:

`https://api.sportmonks.com/v3/football/odds/pre-match/`**`fixtures/{fixture_id}`**

For example, if you’re interested in the pre-match odds available for Celtic vs Rangers (fixture id: 18535517)

{% code overflow="wrap" %}

```javascript
https://api.sportmonks.com/v3/football/odds/pre-match/fixtures/18535517?api_token=YOUR_TOKEN
```

{% endcode %}

<details>

<summary>Response</summary>

```javascript
{
  "data": [
    {
      "id": 532896946,
      "fixture_id": 18535517,
      "market_id": 2,
      "bookmaker_id": 1,
      "label": "12",
      "value": "1.28",
      "name": "12",
      "sort_order": null,
      "market_description": "Double Chance",
      "probability": "78.13%",
      "dp3": "1.280",
      "fractional": "32/25",
      "american": "-358",
      "winning": true,
      "stopped": false,
      "total": null,
      "handicap": null,
      "participants": null,
      "created_at": "2022-08-29T13:09:23.000000Z",
      "updated_at": "2023-01-11T22:50:55.000000Z",
      "original_label": null,
      "latest_bookmaker_update": "2022-09-03 11:17:01"
    },
    {
      "id": 532896944,
      "fixture_id": 18535517,
      "market_id": 2,
      "bookmaker_id": 1,
      "label": "1X",
      "value": "1.22",
      "name": "1X",
      "sort_order": null,
      "market_description": "Double Chance",
      "probability": "81.97%",
      "dp3": "1.220",
      "fractional": "50/41",
      "american": "-455",
      "winning": true,
      "stopped": false,
      "total": null,
      "handicap": null,
      "participants": null,
      "created_at": "2022-08-29T13:09:23.000000Z",
      "updated_at": "2023-01-11T22:50:55.000000Z",
      "original_label": null,
      "latest_bookmaker_update": "2022-09-03 11:17:01"
    },
    //And more
```

</details>

### GET Pre-match Odds by Fixture ID and Bookmaker ID

As you might have noticed in the previous example, requesting all the pre-match odds for a single fixture is quite a big response. Maybe you’re only interested in the odds of a specific fixture from a single bookmaker?

[This endpoint](/v3/endpoints-and-entities/endpoints/standard-odds-feed/pre-match-odds.md) is perfectly suited for this. The only thing you’ve to do is parse the `fixture_id` and `bookmaker_id` you want the odds for:

`https://api.sportmonks.com/v3/football/odds/pre-match/`**`fixtures/{fixture_id}/bookmakers/{bookmaker_id}`**

For example, if you’re interested in the pre-match odds from bet365 (id: 2) available for Celtic vs Rangers (fixture id: 18535517)

{% code overflow="wrap" %}

```javascript
https://api.sportmonks.com/v3/football/odds/pre-match/fixtures/18535517/bookmakers/2?api_token=YOUR_TOKEN
```

{% endcode %}

<details>

<summary>Response</summary>

```javascript
{
  "data": [
    {
      "id": 532890929,
      "fixture_id": 18535517,
      "market_id": 1,
      "bookmaker_id": 2,
      "label": "1",
      "value": "1.75",
      "name": "1",
      "sort_order": null,
      "market_description": "Fulltime Result",
      "probability": "57.14%",
      "dp3": "1.750",
      "fractional": "7/4",
      "american": "-134",
      "winning": true,
      "stopped": false,
      "total": null,
      "handicap": null,
      "participants": "53",
      "created_at": "2022-08-28T07:14:02.000000Z",
      "updated_at": "2023-01-11T22:50:55.000000Z",
      "original_label": null,
      "latest_bookmaker_update": "2022-09-03 11:18:13"
    },
    {
      "id": 532890934,
      "fixture_id": 18535517,
      "market_id": 1,
      "bookmaker_id": 2,
      "label": "X",
      "value": "3.80",
      "name": "X",
      "sort_order": null,
      "market_description": "Fulltime Result",
      "probability": "26.32%",
      "dp3": "3.800",
      "fractional": "19/5",
      "american": "280",
      "winning": false,
      "stopped": false,
      "total": null,
      "handicap": null,
      "participants": null,
      "created_at": "2022-08-28T07:14:02.000000Z",
      "updated_at": "2023-01-11T22:50:55.000000Z",
      "original_label": null,
      "latest_bookmaker_update": "2022-09-03 11:18:13"
    },
    //And more
```

</details>

### GET Pre-match Odds by Fixture ID and Market ID

You can also request all the pre-match odds from a specific market and a specific fixtur&#x65;**.** The only thing you’ve to do is parse the `fixture_id` and `market_id` you want the odds for:

`https://api.sportmonks.com/v3/football/odds/pre-match/`**`fixtures/{fixture_id}/markets/{market_id}`**

For example, if you’re interested in the pre-match odds from the BTTS market (id: 14) available for Celtic vs Rangers (fixture id: 18535517)

{% code overflow="wrap" %}

```javascript
https://api.sportmonks.com/v3/football/odds/pre-match/fixtures/18535517/markets/14?api_token=YOUR_TOKEN
```

{% endcode %}

<details>

<summary>Response</summary>

```javascript
{
  "data": [
    {
      "id": 532896804,
      "fixture_id": 18535517,
      "market_id": 14,
      "bookmaker_id": 1,
      "label": "No",
      "value": "2.20",
      "name": "No",
      "sort_order": null,
      "market_description": "Both Teams To Score",
      "probability": "45.45%",
      "dp3": "2.200",
      "fractional": "11/5",
      "american": "120",
      "winning": true,
      "stopped": false,
      "total": null,
      "handicap": null,
      "participants": null,
      "created_at": "2022-08-29T13:09:23.000000Z",
      "updated_at": "2023-01-11T22:50:55.000000Z",
      "original_label": null,
      "latest_bookmaker_update": "2022-09-03 11:16:59"
    },
    {
      "id": 532896802,
      "fixture_id": 18535517,
      "market_id": 14,
      "bookmaker_id": 1,
      "label": "Yes",
      "value": "1.60",
      "name": "Yes",
      "sort_order": null,
      "market_description": "Both Teams To Score",
      "probability": "62.5%",
      "dp3": "1.600",
      "fractional": "8/5",
      "american": "-167",
      "winning": false,
      "stopped": false,
      "total": null,
      "handicap": null,
      "participants": null,
      "created_at": "2022-08-29T13:09:23.000000Z",
      "updated_at": "2023-01-11T22:50:55.000000Z",
      "original_label": null,
      "latest_bookmaker_update": "2022-09-03 11:16:59"
    },
    //And more
```

</details>

## Adding useful information&#x20;

As you’ve learnt in the [includes tutorial,](/v3/tutorials-and-guides/tutorials/includes.md) you can enrich your request with includes. This section will discuss some of the most common requests used on the odds endpoints.

First of all, you can find a list of all available includes on the [endpoint pages](/v3/endpoints-and-entities/endpoints/standard-odds-feed/pre-match-odds.md). For the odds, there are only 3 includes available:

* `market`: includes the market information the oddd belongs to.&#x20;
* `bookmaker`: includes the bookmaker information of the bookmaker that offers the odd.&#x20;
* `fixture`: includes the fixture information the odds is available for.

For example, if you’re interested in the pre-match odds available for Celtic vs Rangers (fixture id: 18535517) with the name of the bookmakers, markets and fixture info.

{% code overflow="wrap" %}

```javascript
https://api.sportmonks.com/v3/football/odds/pre-match/fixtures/18535517?api_token=YOUR_TOKEN&include=bookmaker;market;fixture
```

{% endcode %}

<details>

<summary>Response</summary>

```javascript
{
  "data": [
    {
      "id": 532896804,
      "fixture_id": 18535517,
      "market_id": 14,
      "bookmaker_id": 1,
      "label": "No",
      "value": "2.20",
      "name": "No",
      "sort_order": null,
      "market_description": "Both Teams To Score",
      "probability": "45.45%",
      "dp3": "2.200",
      "fractional": "11/5",
      "american": "120",
      "winning": true,
      "stopped": false,
      "total": null,
      "handicap": null,
      "participants": null,
      "created_at": "2022-08-29T13:09:23.000000Z",
      "updated_at": "2023-01-11T22:50:55.000000Z",
      "original_label": null,
      "latest_bookmaker_update": "2022-09-03 11:16:59",
      "bookmaker": {
        "id": 1,
        "legacy_id": 1,
        "name": "10Bet"
      },
      "market": {
        "id": 14,
        "legacy_id": 976105,
        "name": "Both Teams To Score",
        "developer_name": "BOTH_TEAMS_TO_SCORE",
        "has_winning_calculations": true
      },
      "fixture": {
        "id": 18535517,
        "sport_id": 1,
        "league_id": 501,
        "season_id": 19735,
        "stage_id": 77457866,
        "group_id": null,
        "aggregate_id": null,
        "round_id": 274719,
        "state_id": 5,
        "venue_id": 8909,
        "name": "Celtic vs Rangers",
        "starting_at": "2022-09-03 11:30:00",
        "result_info": "Celtic won after full-time.",
        "leg": "1/1",
        "details": null,
        "length": 90,
        "placeholder": false,
        "last_processed_at": "2023-03-02 17:47:38",
        "has_odds": true,
        "starting_at_timestamp": 1662204600
      }
    },
    //And more
```

</details>

## Selecting and filtering&#x20;

In our [filtering tutorial](/v3/tutorials-and-guides/tutorials/filter-and-select-fields/filtering.md) you’ve learnt how to select specific fields or filter only on the data you’re interested in. Our API returns a set of data related to the odd by default. We can imagine you’re not interested in all the odds data the API returns. Let’s say you’re only interested in the market description and value.

We’re going to use the [GET Pre-match Odd by Fixture ID](/v3/endpoints-and-entities/endpoints/standard-odds-feed/pre-match-odds.md) endpoint for this example.

You can add the `&select=` parameter followed by the fields you want. In our case: `market_description`**,**`value`. This results in the below request and response:

<pre class="language-javascript" data-overflow="wrap"><code class="lang-javascript"><strong>https://api.sportmonks.com/v3/football/odds/pre-match/fixtures/18535517?api_token=YOUR_TOKEN&#x26;select=market_description,value
</strong></code></pre>

<details>

<summary>Response</summary>

```javascript
{
  "data": [
    {
      "market_description": "Both Teams To Score",
      "value": "2.20",
      "id": 532896804,
      "fixture_id": 18535517,
      "market_id": 14,
      "bookmaker_id": 1
    },
    {
      "market_description": "Both Teams To Score",
      "value": "1.60",
      "id": 532896802,
      "fixture_id": 18535517,
      "market_id": 14,
      "bookmaker_id": 1
    },
    {
      "market_description": "Both Teams To Score",
      "value": "2.28",
      "id": 532897895,
      "fixture_id": 18535517,
      "market_id": 14,
      "bookmaker_id": 5
    },
    {
      "market_description": "Both Teams To Score",
      "value": "1.58",
      "id": 532897893,
      "fixture_id": 18535517,
      "market_id": 14,
      "bookmaker_id": 5
    },
    //And more
```

</details>

{% hint style="info" %}
Check our [filtering tutorial](/v3/tutorials-and-guides/tutorials/filter-and-select-fields/filtering.md) for more tips and tricks.
{% endhint %}

### See also

#### Understanding the data behind odds

* [Statistics Tutorial](https://docs.sportmonks.com/v3/tutorials-and-guides/tutorials/statistics) - Team and player performance data
* [Fixture Statistics](https://docs.sportmonks.com/v3/tutorials-and-guides/tutorials/statistics/fixture-statistics) - Match-level statistical analysis
* [Expected Goals (xG)](https://docs.sportmonks.com/v3/tutorials-and-guides/tutorials/expected) - Advanced metrics used by bookmakers
* [Trends Tutorial](https://docs.sportmonks.com/v3/tutorials-and-guides/tutorials/trends) - Performance trends and form analysis

#### Related odds features

* [Live (Inplay) Odds](https://docs.sportmonks.com/v3/tutorials-and-guides/tutorials/odds-and-predictions/live-inplay-odds) - Real-time odds during matches
* [Bookmakers](https://docs.sportmonks.com/v3/tutorials-and-guides/tutorials/odds-and-predictions/bookmakers) - Available bookmaker data
* [Markets](https://docs.sportmonks.com/v3/tutorials-and-guides/tutorials/odds-and-predictions/markets) - Betting market types

#### Predictions & analysis

* [Predictions](https://docs.sportmonks.com/v3/tutorials-and-guides/tutorials/odds-and-predictions/predictions) - ML-powered match predictions
* [Value Bet](https://docs.sportmonks.com/v3/tutorials-and-guides/tutorials/odds-and-predictions/predictions/value-bet) - Identify betting value

#### Building applications

* [Fixtures Tutorial](https://docs.sportmonks.com/v3/tutorials-and-guides/tutorials/livescores-and-fixtures/fixtures) - Match scheduling and data
* [Livescores Tutorial](https://docs.sportmonks.com/v3/tutorials-and-guides/tutorials/livescores-and-fixtures/livescores) - Real-time match tracking

#### API reference

* [Pre-match Odds Endpoints](https://docs.sportmonks.com/v3/endpoints-and-entities/endpoints/standard-odds-feed/pre-match-odds) - API documentation


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sportmonks.com/v3/tutorials-and-guides/tutorials/odds-and-predictions/pre-match-odds.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
