# Schema API

Schema API endpoints allow to get internal entities which exist in Odds88.

{% hint style="warning" %}
All endpoints in the API are rate-limited.
{% endhint %}

## Gets all existing leagues for a specific sport.

> \
> \*\*Rate Limits (per account):\*\*\
> \- \*\*20 req/1s\*\*

```json
{"openapi":"3.0.4","info":{"title":"[T1159-STAGE] Odds88 API","version":"v1"},"tags":[{"name":"Schema"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"http","description":"JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"","scheme":"Bearer","bearerFormat":"JWT"}},"schemas":{"Marlin.SportsbetApi.Host.Models.Schema.LeagueViewModel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string","nullable":true},"sportId":{"type":"integer","format":"int64"},"locationId":{"type":"integer","format":"int64"}},"additionalProperties":false}}},"paths":{"/api/schema/leagues/{sportId}":{"get":{"tags":["Schema"],"summary":"Gets all existing leagues for a specific sport.","description":"\n**Rate Limits (per account):**\n- **20 req/1s**","operationId":"Get leagues","parameters":[{"name":"sportId","in":"path","description":"TradeArt sport id.","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Schema.LeagueViewModel"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Schema.LeagueViewModel"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Schema.LeagueViewModel"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"429":{"description":"Too many requests"},"500":{"description":"Internal Server Error"}}}}}}
```

{% hint style="warning" %}
This endpoint is rate-limited to **20 requests per second.**
{% endhint %}

## Gets all existing locations for a specific sport.

> \
> \*\*Rate Limits (per account):\*\*\
> \- \*\*20 req/1s\*\*

```json
{"openapi":"3.0.4","info":{"title":"[T1159-STAGE] Odds88 API","version":"v1"},"tags":[{"name":"Schema"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"http","description":"JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"","scheme":"Bearer","bearerFormat":"JWT"}},"schemas":{"Marlin.SportsbetApi.Host.Models.Schema.LocationViewModel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string","nullable":true}},"additionalProperties":false}}},"paths":{"/api/schema/locations":{"get":{"tags":["Schema"],"summary":"Gets all existing locations for a specific sport.","description":"\n**Rate Limits (per account):**\n- **20 req/1s**","operationId":"Get locations","parameters":[{"name":"sportId","in":"query","description":"TradeArt sport id. Will return all locations if not specified.","schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Schema.LocationViewModel"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Schema.LocationViewModel"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Schema.LocationViewModel"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"429":{"description":"Too many requests"},"500":{"description":"Internal Server Error"}}}}}}
```

{% hint style="warning" %}
This endpoint is rate-limited to **20 requests per second.**
{% endhint %}

## Gets all existing market types for a specific sport.

> \
> \*\*Rate Limits (per account):\*\*\
> \- \*\*20 req/1s\*\*

```json
{"openapi":"3.0.4","info":{"title":"[T1159-STAGE] Odds88 API","version":"v1"},"tags":[{"name":"Schema"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"http","description":"JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"","scheme":"Bearer","bearerFormat":"JWT"}},"schemas":{"Marlin.SportsbetApi.Host.Models.Schema.MarketTypeViewModel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string","nullable":true},"groups":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Schema.MarketGroupViewModel"},"nullable":true},"isMultilineMarket":{"type":"boolean"},"isFreeText":{"type":"boolean"}},"additionalProperties":false,"description":"Represents Market Type."},"Marlin.SportsbetApi.Host.Models.Schema.MarketGroupViewModel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string","nullable":true},"order":{"type":"integer","format":"int32"},"sportId":{"type":"integer","format":"int64"}},"additionalProperties":false,"description":"Represents Market Group."}}},"paths":{"/api/schema/market-types":{"get":{"tags":["Schema"],"summary":"Gets all existing market types for a specific sport.","description":"\n**Rate Limits (per account):**\n- **20 req/1s**","operationId":"Get market types","parameters":[{"name":"sportId","in":"query","description":"TradeArt sport id. Will return all market types if not specified.","schema":{"type":"integer","format":"int64"}},{"name":"includeFreeText","in":"query","description":"A flag indicating whether the response should include free text types or not.","schema":{"type":"boolean","default":true}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Schema.MarketTypeViewModel"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Schema.MarketTypeViewModel"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Schema.MarketTypeViewModel"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"429":{"description":"Too many requests"},"500":{"description":"Internal Server Error"}}}}}}
```

{% hint style="warning" %}
This endpoint is rate-limited to **20 requests per second.**
{% endhint %}

## Gets all existing periods for a specific sport.

> \
> \*\*Rate Limits (per account):\*\*\
> \- \*\*20 req/1s\*\*

```json
{"openapi":"3.0.4","info":{"title":"[T1159-STAGE] Odds88 API","version":"v1"},"tags":[{"name":"Schema"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"http","description":"JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"","scheme":"Bearer","bearerFormat":"JWT"}},"schemas":{"Marlin.SportsbetApi.Host.Models.Schema.SportPeriodViewModel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string","nullable":true},"sportId":{"type":"integer","format":"int64"}},"additionalProperties":false}}},"paths":{"/api/schema/periods":{"get":{"tags":["Schema"],"summary":"Gets all existing periods for a specific sport.","description":"\n**Rate Limits (per account):**\n- **20 req/1s**","operationId":"Get sport periods","parameters":[{"name":"sportId","in":"query","description":"TradeArt sport id. Will return all periods if not specified.","schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Schema.SportPeriodViewModel"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Schema.SportPeriodViewModel"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Schema.SportPeriodViewModel"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"429":{"description":"Too many requests"},"500":{"description":"Internal Server Error"}}}}}}
```

{% hint style="warning" %}
This endpoint is rate-limited to **20 requests per second.**
{% endhint %}

## Gets all existing sports.

> \
> \*\*Rate Limits (per account):\*\*\
> \- \*\*1 req/1m\*\*

```json
{"openapi":"3.0.4","info":{"title":"[T1159-STAGE] Odds88 API","version":"v1"},"tags":[{"name":"Schema"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"http","description":"JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"","scheme":"Bearer","bearerFormat":"JWT"}},"schemas":{"Marlin.SportsbetApi.Host.Models.Schema.SportViewModel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string","nullable":true}},"additionalProperties":false}}},"paths":{"/api/schema/sports":{"get":{"tags":["Schema"],"summary":"Gets all existing sports.","description":"\n**Rate Limits (per account):**\n- **1 req/1m**","operationId":"Get sports","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Schema.SportViewModel"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Schema.SportViewModel"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Schema.SportViewModel"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"429":{"description":"Too many requests"},"500":{"description":"Internal Server Error"}}}}}}
```

{% hint style="warning" %}
This endpoint is rate-limited to **1 request per minute.**
{% endhint %}


---

# 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.odds88.io/odds88-client-api/odds88-api-endpoints/schema-api.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.
