# Translations API

Translations API endpoints can be used to fetch translations to different languages for the Odds88 entities.

Currently Odds88 support the following languages:

* English
* German
* Spanish
* Japanese
* Portuguese
* Russian
* Thai
* Turkish
* Vietnamese
* Chinese
* Korean
* French
* Afar
* Indonesian

{% hint style="warning" %}
These endpoints are rate-limited.
{% endhint %}

## Gets translations to specific language for specified sports.

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

```json
{"openapi":"3.0.4","info":{"title":"[T1159-STAGE] Odds88 API","version":"v1"},"tags":[{"name":"Translations"}],"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.Translations.TranslationViewModel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"language":{"type":"string","nullable":true},"translation":{"type":"string","nullable":true}},"additionalProperties":false}}},"paths":{"/api/translations/{lang}/sports":{"get":{"tags":["Translations"],"summary":"Gets translations to specific language for specified sports.","description":"\n**Rate Limits (per account):**\n- **40 req/1s**","operationId":"Get sport translations","parameters":[{"name":"lang","in":"path","description":"Language code of translation.","required":true,"schema":{"type":"string"}},{"name":"sports","in":"query","description":"Sports which will be translated.","schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.TranslationViewModel"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.TranslationViewModel"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.TranslationViewModel"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"429":{"description":"Too many requests"}}}}}}
```

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

## Gets translations to specific language for specified regions.

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

```json
{"openapi":"3.0.4","info":{"title":"[T1159-STAGE] Odds88 API","version":"v1"},"tags":[{"name":"Translations"}],"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.Translations.TranslationViewModel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"language":{"type":"string","nullable":true},"translation":{"type":"string","nullable":true}},"additionalProperties":false}}},"paths":{"/api/translations/{lang}/regions":{"get":{"tags":["Translations"],"summary":"Gets translations to specific language for specified regions.","description":"\n**Rate Limits (per account):**\n- **40 req/1s**","operationId":"Get regions translations","parameters":[{"name":"lang","in":"path","description":"Language code for translation.","required":true,"schema":{"type":"string"}},{"name":"regions","in":"query","description":"Regions which will be translated.","schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.TranslationViewModel"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.TranslationViewModel"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.TranslationViewModel"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"429":{"description":"Too many requests"}}}}}}
```

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

## Gets translations to specific language for specific leagues.

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

```json
{"openapi":"3.0.4","info":{"title":"[T1159-STAGE] Odds88 API","version":"v1"},"tags":[{"name":"Translations"}],"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.Translations.TranslationViewModel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"language":{"type":"string","nullable":true},"translation":{"type":"string","nullable":true}},"additionalProperties":false}}},"paths":{"/api/translations/{lang}/leagues":{"get":{"tags":["Translations"],"summary":"Gets translations to specific language for specific leagues.","description":"\n**Rate Limits (per account):**\n- **40 req/1s**","operationId":"Get leagues translations","parameters":[{"name":"lang","in":"path","description":"Language code for translation.","required":true,"schema":{"type":"string"}},{"name":"leagues","in":"query","description":"Leagues which will be translated.","schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.TranslationViewModel"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.TranslationViewModel"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.TranslationViewModel"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"429":{"description":"Too many requests"}}}}}}
```

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

## Gets translation to specific language for specific markets.

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

```json
{"openapi":"3.0.4","info":{"title":"[T1159-STAGE] Odds88 API","version":"v1"},"tags":[{"name":"Translations"}],"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.Translations.MarketTranslationViewModel":{"type":"object","properties":{"marketTypeId":{"type":"integer","format":"int64"},"market":{"allOf":[{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.TranslationViewModel"}],"nullable":true},"selections":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.TranslationViewModel"},"nullable":true}},"additionalProperties":false},"Marlin.SportsbetApi.Host.Models.Translations.TranslationViewModel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"language":{"type":"string","nullable":true},"translation":{"type":"string","nullable":true}},"additionalProperties":false},"Microsoft.AspNetCore.Mvc.ProblemDetails":{"type":"object","properties":{"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{}}}},"paths":{"/api/translations/{lang}/{eventId}/markets":{"get":{"tags":["Translations"],"summary":"Gets translation to specific language for specific markets.","description":"\n**Rate Limits (per account):**\n- **40 req/1s**","operationId":"Get markets translations","parameters":[{"name":"lang","in":"path","description":"Language code for translation.","required":true,"schema":{"type":"string"}},{"name":"eventId","in":"path","description":"TradeArt event id.","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"markets","in":"query","description":"Markets which will be translated.","schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.MarketTranslationViewModel"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.MarketTranslationViewModel"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.MarketTranslationViewModel"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"text/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}},"429":{"description":"Too many requests"},"500":{"description":"Internal Server Error"}}}}}}
```

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

## Gets translations to specific language for specific competitors.

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

```json
{"openapi":"3.0.4","info":{"title":"[T1159-STAGE] Odds88 API","version":"v1"},"tags":[{"name":"Translations"}],"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.Translations.TranslationViewModel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"language":{"type":"string","nullable":true},"translation":{"type":"string","nullable":true}},"additionalProperties":false}}},"paths":{"/api/translations/{lang}/competitors":{"get":{"tags":["Translations"],"summary":"Gets translations to specific language for specific competitors.","description":"\n**Rate Limits (per account):**\n- **40 req/1s**","operationId":"Get competitors translations","parameters":[{"name":"lang","in":"path","description":"Language code for translation.","required":true,"schema":{"type":"string"}},{"name":"competitors","in":"query","description":"Competitors which will be translated.","schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.TranslationViewModel"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.TranslationViewModel"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.TranslationViewModel"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"429":{"description":"Too many requests"}}}}}}
```

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

## Gets all existing translations 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":"Translations"}],"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.Translations.EntityTranslationsViewModel":{"type":"object","properties":{"id":{"type":"integer","description":"ID of the entity.","format":"int64"},"translations":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Translations for the entity, where the key is the language code and the value is the translated text.","nullable":true}},"additionalProperties":false,"description":"Contains entity translation information."}}},"paths":{"/api/translations/all/sport/{sportId}":{"get":{"tags":["Translations"],"summary":"Gets all existing translations for a specific sport.","description":"\n**Rate Limits (per account):**\n- **20 req/1s**","operationId":"Get all sport translations","parameters":[{"name":"sportId","in":"path","description":"TradeArt sport id.","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"429":{"description":"Too many requests"}}}}}}
```

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

## Gets all existing translations for a specific event.

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

```json
{"openapi":"3.0.4","info":{"title":"[T1159-STAGE] Odds88 API","version":"v1"},"tags":[{"name":"Translations"}],"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.Translations.EventTranslationsViewModel":{"type":"object","properties":{"eventTranslation":{"allOf":[{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"}],"description":"Contains entity translation information.","nullable":true},"sport":{"allOf":[{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"}],"description":"Contains entity translation information.","nullable":true},"region":{"allOf":[{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"}],"description":"Contains entity translation information.","nullable":true},"league":{"allOf":[{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"}],"description":"Contains entity translation information.","nullable":true},"competitors":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"},"nullable":true}},"additionalProperties":false},"Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel":{"type":"object","properties":{"id":{"type":"integer","description":"ID of the entity.","format":"int64"},"translations":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Translations for the entity, where the key is the language code and the value is the translated text.","nullable":true}},"additionalProperties":false,"description":"Contains entity translation information."},"Microsoft.AspNetCore.Mvc.ProblemDetails":{"type":"object","properties":{"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{}}}},"paths":{"/api/translations/all/event/{eventId}":{"get":{"tags":["Translations"],"summary":"Gets all existing translations for a specific event.","description":"\n**Rate Limits (per account):**\n- **40 req/1s**","operationId":"Get all event translations","parameters":[{"name":"eventId","in":"path","description":"TradeArt event id.","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EventTranslationsViewModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EventTranslationsViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EventTranslationsViewModel"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"text/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}},"429":{"description":"Too many requests"}}}}}}
```

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

## Gets all existing translations for specific markets.

> \
> \*\*Rate Limits (per account):\*\*\
> \- \*\*40 req/1s (with query parameters)\*\*\
> \- \*\*1 req/10s\*\*

```json
{"openapi":"3.0.4","info":{"title":"[T1159-STAGE] Odds88 API","version":"v1"},"tags":[{"name":"Translations"}],"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.Translations.TranslatedMarketViewModel":{"type":"object","properties":{"marketTypeId":{"type":"integer","format":"int64"},"marketTranslations":{"allOf":[{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"}],"description":"Contains entity translation information.","nullable":true},"selections":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"},"nullable":true}},"additionalProperties":false},"Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel":{"type":"object","properties":{"id":{"type":"integer","description":"ID of the entity.","format":"int64"},"translations":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Translations for the entity, where the key is the language code and the value is the translated text.","nullable":true}},"additionalProperties":false,"description":"Contains entity translation information."},"Microsoft.AspNetCore.Mvc.ProblemDetails":{"type":"object","properties":{"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{}}}},"paths":{"/api/translations/all/{eventId}/markets":{"get":{"tags":["Translations"],"summary":"Gets all existing translations for specific markets.","description":"\n**Rate Limits (per account):**\n- **40 req/1s (with query parameters)**\n- **1 req/10s**","operationId":"Get all market translations","parameters":[{"name":"eventId","in":"path","description":"TradeArt event id.","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"markets","in":"query","description":"Markets which will be translated.","schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.TranslatedMarketViewModel"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.TranslatedMarketViewModel"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.TranslatedMarketViewModel"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"text/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}},"429":{"description":"Too many requests"},"500":{"description":"Internal Server Error"}}}}}}
```

{% hint style="warning" %}
This endpoint is rate-limited to **40 requests per second with specific markets and 1 request per 10 seconds without specific markets.**&#x20;
{% endhint %}

## Gets all existing translations for a specific region.

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

```json
{"openapi":"3.0.4","info":{"title":"[T1159-STAGE] Odds88 API","version":"v1"},"tags":[{"name":"Translations"}],"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.Translations.EntityTranslationsViewModel":{"type":"object","properties":{"id":{"type":"integer","description":"ID of the entity.","format":"int64"},"translations":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Translations for the entity, where the key is the language code and the value is the translated text.","nullable":true}},"additionalProperties":false,"description":"Contains entity translation information."}}},"paths":{"/api/translations/all/region/{regionId}":{"get":{"tags":["Translations"],"summary":"Gets all existing translations for a specific region.","description":"\n**Rate Limits (per account):**\n- **20 req/1s**","operationId":"Get all region translations","parameters":[{"name":"regionId","in":"path","description":"TradeArt region id.","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"429":{"description":"Too many requests"}}}}}}
```

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

## Gets all existing translations for a specific league.

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

```json
{"openapi":"3.0.4","info":{"title":"[T1159-STAGE] Odds88 API","version":"v1"},"tags":[{"name":"Translations"}],"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.Translations.EntityTranslationsViewModel":{"type":"object","properties":{"id":{"type":"integer","description":"ID of the entity.","format":"int64"},"translations":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Translations for the entity, where the key is the language code and the value is the translated text.","nullable":true}},"additionalProperties":false,"description":"Contains entity translation information."}}},"paths":{"/api/translations/all/league/{leagueId}":{"get":{"tags":["Translations"],"summary":"Gets all existing translations for a specific league.","description":"\n**Rate Limits (per account):**\n- **20 req/1s**","operationId":"Get all league translations","parameters":[{"name":"leagueId","in":"path","description":"TradeArt league id.","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"429":{"description":"Too many requests"}}}}}}
```

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

## Gets all existing translations for a specific competitor.

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

```json
{"openapi":"3.0.4","info":{"title":"[T1159-STAGE] Odds88 API","version":"v1"},"tags":[{"name":"Translations"}],"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.Translations.EntityTranslationsViewModel":{"type":"object","properties":{"id":{"type":"integer","description":"ID of the entity.","format":"int64"},"translations":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Translations for the entity, where the key is the language code and the value is the translated text.","nullable":true}},"additionalProperties":false,"description":"Contains entity translation information."}}},"paths":{"/api/translations/all/competitor/{competitorId}":{"get":{"tags":["Translations"],"summary":"Gets all existing translations for a specific competitor.","description":"\n**Rate Limits (per account):**\n- **20 req/1s**","operationId":"Get all competitor translations","parameters":[{"name":"competitorId","in":"path","description":"TradeArt competitor id.","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"429":{"description":"Too many requests"}}}}}}
```

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

## Gets selection translation templates for specific selections.

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

```json
{"openapi":"3.0.4","info":{"title":"[T1159-STAGE] Odds88 API","version":"v1"},"tags":[{"name":"Translations"}],"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.Translations.EntityTranslationsViewModel":{"type":"object","properties":{"id":{"type":"integer","description":"ID of the entity.","format":"int64"},"translations":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Translations for the entity, where the key is the language code and the value is the translated text.","nullable":true}},"additionalProperties":false,"description":"Contains entity translation information."},"Microsoft.AspNetCore.Mvc.ProblemDetails":{"type":"object","properties":{"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{}}}},"paths":{"/api/translations/templates/selections":{"get":{"tags":["Translations"],"summary":"Gets selection translation templates for specific selections.","description":"\n**Rate Limits (per account):**\n- **10 req/1s**","parameters":[{"name":"selections","in":"query","description":"Collection of selection ids (up to 100).","schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"}}}}},"400":{"description":"Bad Request","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"text/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"429":{"description":"Too many requests"}}}}}}
```

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

## Gets market type translation template for a specific sport and market types.

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

```json
{"openapi":"3.0.4","info":{"title":"[T1159-STAGE] Odds88 API","version":"v1"},"tags":[{"name":"Translations"}],"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.Translations.EntityTranslationsViewModel":{"type":"object","properties":{"id":{"type":"integer","description":"ID of the entity.","format":"int64"},"translations":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Translations for the entity, where the key is the language code and the value is the translated text.","nullable":true}},"additionalProperties":false,"description":"Contains entity translation information."},"Microsoft.AspNetCore.Mvc.ProblemDetails":{"type":"object","properties":{"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{}}}},"paths":{"/api/translations/templates/market-types":{"get":{"tags":["Translations"],"summary":"Gets market type translation template for a specific sport and market types.","description":"\n**Rate Limits (per account):**\n- **10 req/1s**","parameters":[{"name":"sportId","in":"query","description":"Sport id.","schema":{"type":"integer","format":"int64"}},{"name":"marketTypes","in":"query","description":"Collection of market type ids (up to 100).","schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Marlin.SportsbetApi.Host.Models.Translations.EntityTranslationsViewModel"}}}}},"400":{"description":"Bad Request","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"text/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"429":{"description":"Too many requests"}}}}}}
```

{% hint style="warning" %}
This endpoint is rate-limited to 1**0 requests per second.**
{% 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/translations-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.
