> For the complete documentation index, see [llms.txt](https://docs.sportmonks.com/v3/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sportmonks.com/v3/tutorials-and-guides/tutorials/odds-and-predictions/markets.md).

# Markets

After you’ve determined if the bookmaker we have is available, you can check for market availabilities. Just like the bookmakers, the market endpoints will help you set up odds properly on your website/application. This endpoint is very useful for administrative purposes to check and structure the markets’ availability.

This section will briefly discuss all the options available to request markets.

An overview of all the options available:

* **GET All Markets**: returns all the markets available in our football API.
* **GET Markets by ID**: returns markets' information from your requested market id.&#x20;
* **GET Markets by Search by Name:** returns the markets that match your search query.

For all the market endpoints the base URL is the same:&#x20;

```http
https://api.sportmonks.com/v3/odds/markets 
```

Per endpoint the rest of the URL requires additional information. We will explain this per endpoint.&#x20;

{% hint style="danger" %}
**Important: Please note that the domain in the URL is odds instead of football.**
{% endhint %}

## Requesting markets

### GET All Markets&#x20;

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

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

{% tabs %}
{% tab title="Request" %}

```http
https://api.sportmonks.com/v3/odds/markets?api_token=YOUR_TOKEN
```

{% endtab %}

{% tab title="Response" %}

```json
{
  "data": [
    {
      "id": 1,
      "legacy_id": 1,
      "name": "Fulltime Result",
      "developer_name": "FULLTIME_RESULT",
      "has_winning_calculations": true
    },
    {
      "id": 2,
      "legacy_id": 63,
      "name": "Double Chance",
      "developer_name": "DOUBLE_CHANGE",
      "has_winning_calculations": false
    },
    {
      "id": 3,
      "legacy_id": null,
      "name": "X Goal",
      "developer_name": "X_GOAL",
      "has_winning_calculations": false
    },
    {
      "id": 4,
      "legacy_id": 28077,
      "name": "Match Goals",
      "developer_name": "MATCH_GOALS",
      "has_winning_calculations": true
    },
    {
      "id": 5,
      "legacy_id": 136703813,
      "name": "Alternative Match Goals",
      "developer_name": "ALTERNATIVE_MATCH_GOALS",
      "has_winning_calculations": true
    },
    {
      "id": 6,
      "legacy_id": 28,
      "name": "Asian Handicap",
      "developer_name": "ASIAN_HANDICAP",
      "has_winning_calculations": false
    },
    //and more
```

{% endtab %}
{% endtabs %}

Let’s take a look at what the API returns. You can see the id of the market, the legacy id (what the market id was in our old API), and the market's name. You can also see the indication if the winning odds is calculated during/after the match.

{% hint style="info" %}
Not all markets we cover have winning odds calculations. Every market has a flag marking whether you can expect winning odds for it.
{% endhint %}

Now you’ve gathered an overview of the available markets with their unique, you can use this id on the Markets by ID endpoint.

### GET Markets by ID&#x20;

This endpoint returns market' information from your requested market id. All you’ve to do is add the unique id of the market you want.&#x20;

```http
https://api.sportmonks.com/v3/odds/markets/{market_id}
```

For example, if you’re interested in the Alternative match goals market (id: 5):

{% tabs %}
{% tab title="Request" %}

```http
https://api.sportmonks.com/v3/odds/markets/5?api_token=YOUR_TOKEN
```

{% endtab %}

{% tab title="Response" %}

```json
{
  "data": {
    "id": 5,
    "legacy_id": 136703813,
    "name": "Alternative Match Goals",
    "developer_name": "ALTERNATIVE_MATCH_GOALS",
    "has_winning_calculations": true
  },
```

{% endtab %}
{% endtabs %}

### **GET Markets by Search by Name**

This endpoint returns all the markets based on your search query. This might be handy if you cannot find a market. To search on market name, you’ll need to add `/search/{search_query}` to the markets base URL:

```http
https://api.sportmonks.com/v3/odds/markets/search/{search_query}
```

For example, if you’re only interested in markets with “alternative” in the name, your request will be:

{% tabs %}
{% tab title="Request" %}

```http
https://api.sportmonks.com/v3/odds/markets/search/alternative?api_token=YOUR_TOKEN
```

{% endtab %}

{% tab title="Response" %}

```json
{
  "data": [
    {
      "id": 5,
      "legacy_id": 136703813,
      "name": "Alternative Match Goals",
      "developer_name": "ALTERNATIVE_MATCH_GOALS",
      "has_winning_calculations": true
    },
    {
      "id": 69,
      "legacy_id": 136703825,
      "name": "Alternative Corners",
      "developer_name": "ALTERNATIVE_CORNERS",
      "has_winning_calculations": false
    },
    {
      "id": 81,
      "legacy_id": 137918022,
      "name": "Alternative Total Goals",
      "developer_name": "ALTERNATIVE_TOTAL_GOALS",
      "has_winning_calculations": false
    },
    {
      "id": 94,
      "legacy_id": 137918037,
      "name": "Alternative Handicap Result",
      "developer_name": "ALTERNATIVE_HANDICAP_RESULT",
      "has_winning_calculations": false
    },
    //and more
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
The more complete your search query is, the more relevant response you’ll get.**.**
{% endhint %}

### Market coverage by tier

{% hint style="danger" %}
**A previously published figure of "42 Premium Odds markets" is incorrect.** The full market catalogue contains 186 markets. Of those, 25 markets are independently available in Premium Odds, and 164 markets have some form of Premium availability in total (including markets "Combined with Standard"). If you've seen "42" referenced elsewhere, that figure should be corrected.
{% endhint %}

#### Corners

| ID  | Name                   | Standard           | Premium                |
| --- | ---------------------- | ------------------ | ---------------------- |
| 68  | Total Corners          | Yes                | Yes                    |
| 70  | First Half Corners     | Yes                | Yes                    |
| 265 | Second Half Corners    | Yes (in-play only) | —                      |
| 74  | Team Corners           | Yes                | Combined with Standard |
| 61  | Asian Total Corners    | Yes                | Combined with Standard |
| 62  | Asian Handicap Corners | Yes                | Combined with Standard |
| 69  | Alternative Corners    | Yes                | Combined with Standard |
| 322 | Odd/Even Corners       | No                 | Yes (Premium-only)     |
| 324 | Handicap Corners       | No                 | Yes (Premium-only)     |

#### Fouls

{% hint style="warning" %}
**There is no match-level "Total Fouls" market.** Only two foul-related markets exist, both player-level: `Player Fouls Committed` (id: 338) and `Player To Be Fouled` (id: 339).
{% endhint %}

#### Correct Score

Market 57 (`CORRECT_SCORE`) is available in Standard Odds, and Combined with Standard in Premium Odds. `Half Time Correct Score` (id: 30) is also available. Two older variants (ids 58, 59) are inactive/historical, don't build against these.

#### Player markets

| Category   | Market                       | ID  |
| ---------- | ---------------------------- | --- |
| Goalscorer | Goalscorers                  | 90  |
| Goalscorer | Team Goalscorer              | 92  |
| Shots      | Player Total Shots on Target | 267 |
| Shots      | Player Total Shots           | 268 |
| Shots      | Player Shots on Target       | 334 |
| Shots      | Player Shots                 | 336 |
| Cards      | Team Cards                   | 281 |
| Cards      | Number of Cards              | 255 |
| Cards      | Asian Total Cards            | 272 |
| Cards      | Asian Handicap Cards         | 273 |
| Cards      | Handicap Cards               | 277 |
| Cards      | Alternative Handicap Cards   | 278 |
| Assists    | Player to Assist             | 332 |
| Assists    | Player to Score or Assist    | 333 |

{% hint style="warning" %}
`Player Total Assists` (id: 288) is inactive/historical, don't build against this market.
{% endhint %}

#### First-half goals

`1st Half Goal Line` (id: 27) is the Over/Under line market. `1st Half Goals` (id: 28) is also available.

#### Winning Odds

Winning Odds (result-settled outcomes) are only available in the Standard Odds Feed, and only for 12 specific markets: Fulltime Result, Draw No Bet, Both Teams To Score, Home Team Exact Goals, Away Team Exact Goals, First Half Exact Goals, Second Half Exact Goals, Away Team Win Both Halves, Home Team Win Both Halves, Odd/Even, Clean Sheet Home, Clean Sheet Away.

#### Field conventions across markets

`label: "1"` = home team, `label: "2"` = away team is consistent across every team-scoped market (confirmed on Team Total Goals, Team Cards, and Team Corners), with the specific line carried in the `total` field (e.g. "Over 7.5").

For Asian Handicap (market 6), split/quarter lines: the `handicap` field is the averaged decimal value (e.g. `-1.75` = average of `-1.5` and `-2.0`), while `original_label` shows the raw split line as sent by the bookmaker (e.g. `"-1.5,-2.0"`). Handicap values are sign-mirrored between home and away.

### Adding useful information

There are no include options available for the market endpoints.

## 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. By default, our API returns a set of data related to the market. We can imagine you’re not interested in all the market data the API returns. Let’s say you’re only interested in the name.

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

{% tabs %}
{% tab title="Request" %}

<pre class="language-http"><code class="lang-http"><strong>https://api.sportmonks.com/v3/odds/markets?api_token=YOUR_TOKEN&#x26;select=name
</strong></code></pre>

{% endtab %}

{% tab title="Response" %}

```json
{
  "data": [
    {
      "name": "Fulltime Result",
      "id": 1
    },
    {
      "name": "Double Chance",
      "id": 2
    },
    {
      "name": "X Goal",
      "id": 3
    },
    {
      "name": "Match Goals",
      "id": 4
    },
    {
      "name": "Alternative Match Goals",
      "id": 5
    },
    {
      "name": "Asian Handicap",
      "id": 6
    },
    {
      "name": "Goal Line",
      "id": 7
    },
    //And more
```

{% endtab %}
{% endtabs %}

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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.sportmonks.com/v3/tutorials-and-guides/tutorials/odds-and-predictions/markets.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
