> For the complete documentation index, see [llms.txt](https://docs.odds88.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.odds88.io/odds88-client-api/odds88-api-endpoints/translations-api.md).

# 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":"[T728-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":"[T728-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":"[T728-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":"[T728-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":"[T728-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":"[T728-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":"[T728-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":"[T728-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.**
{% endhint %}

## Gets all existing translations for a specific region.

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

```json
{"openapi":"3.0.4","info":{"title":"[T728-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":"[T728-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":"[T728-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":"[T728-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":"[T728-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 %}
