Traducoes (i18n)

Localized names for teams, leagues, countries, venues, and match status

Use o parametro ?lang= em qualquer endpoint da Football API para receber nomes traduzidos em PT-BR, ES, EN ou DE. As traducoes sao adicionadas como campos irmaos ao lado do campo original (ex.: name_long, name_short, name_sigla) — o campo original (name) nunca e sobrescrito, entao clientes existentes continuam funcionando sem mudancas.

Use the ?lang= parameter on any Football API endpoint to get localized names in PT-BR, ES, EN, or DE. Translations are added as sibling fields next to the original field (e.g., name_long, name_short, name_sigla) — the original field (name) is never overwritten, so existing clients keep working unchanged.

1. Como usar / How to use

Adicione ?lang=pt-br (ou es, en, de) a qualquer URL. Combine com o parametro key de autenticacao normalmente.

curl "https://football.api.insyde.one/fixtures?id=215662&lang=pt-br&key=YOUR_API_KEY"

Idiomas suportados / Supported languages:

Valor / Value Idioma / Language
pt-brPortugues (Brasil)
esEspanol
enIngles (variantes / overrides)
deAlemao / Deutsch
Default: sem ?lang=, ou com um valor invalido, a resposta passa direto (sem campos traduzidos). Comportamento 100% backward-compatible.
Default: without ?lang=, or with an invalid value, the response passes through (no translated fields). 100% backward-compatible behavior.

2. Campos adicionados / Added fields

Para cada nome traduzivel encontrado na resposta, o edge consulta o dicionario e adiciona campos irmaos ao objeto. A forma da entrada no dicionario determina quais campos sao adicionados:

Tipo / Type Aplicado em / Applied to Campos adicionados / Fields added
Clube / Selecao / Country / League
(formato objeto)
team.name, teams.home.name, teams.away.name, teams.in.name, teams.out.name, league.name, venue.name, country, country.name <field>_long
<field>_short
<field>_sigla
String simples / Plain string nationality, venue.city, league names sem variantes <field>_long
Status / Periodo
(formato desktop/mobile)
fixture.status.long long_desktop
long_mobile

3. Exemplo completo / Full example

Request:

GET https://football.api.insyde.one/fixtures?id=215662&lang=pt-br&key=YOUR_API_KEY

Response (recortado / trimmed):

{
  "response": [{
    "teams": {
      "home": {
        "id": 463,
        "name": "Aldosivi",                   // original, intocado
        "name_long": "Aldosivi",
        "name_short": "Aldosivi",
        "name_sigla": "ALD"
      },
      "away": {
        "id": 442,
        "name": "Defensa Y Justicia",
        "name_long": "Defensa y Justicia",
        "name_short": "Defensa",
        "name_sigla": "DYJ"
      }
    },
    "league": {
      "id": 128,
      "name": "Liga Profesional Argentina",
      "country": "Argentina",
      "country_long": "Argentina"             // country traduzido tambem
    },
    "fixture": {
      "status": {
        "long": "Match Finished",
        "short": "FT",
        "long_desktop": "Encerrado",          // versao desktop
        "long_mobile": "Enc."                 // versao mobile
      }
    }
  }]
}

4. Endpoints traduzidos / Translatable endpoints

O parametro lang aplica traducao apenas em endpoints que retornam nomes traduziveis. Em outros endpoints (/timezone, /seasons, etc.) o parametro e ignorado e a resposta passa direto.

Endpoint Nomes traduzidos / Translated names
/teams, /teams/statistics, /teams/countriesteam, country
/leagues, /standingsleague, country, team
/venues, /countriesvenue (name/city), country
/fixtures, /fixtures/headtoheadteams, league, venue, status
/fixtures/events, /fixtures/lineups, /fixtures/statistics, /fixtures/playersteam
/players, /players/squads, /players/top*team, nationality
/coachs, /transfers, /injuries, /predictionsteam, league, country

5. Desambiguacao por escopo / Scoped disambiguation

A mesma string em ingles pode aparecer em contextos diferentes. Para esses casos o edge tenta uma chave composta antes de cair no lookup simples. Dois escopos suportados hoje:

The same English string can appear in different contexts. For those cases the edge tries a composite key before falling back to the plain key. Two scopes are supported today:

5.1 league.name por pais / by country

Serie A e usada pelo Brasileirao e pela Serie A italiana. O edge tenta "<name>__<country>" usando league.country do mesmo objeto.
Serie A is used by both the Brazilian top flight and the Italian one. The edge tries "<name>__<country>" using league.country from the same object.

{
  "Serie A__Brazil": { "long": "Brasileirao Serie A", "short": "Brasileirao", "sigla": "BRA" },
  "Serie A__Italy":  { "long": "Serie A",             "short": "Serie A",     "sigla": "SA"  }
}

5.2 venue.city por escopo / by scope

Sao Paulo aparece como cidade (venue.city) e tambem como nome de clube (team.name → Sao Paulo FC). Sem desambiguacao, a sigla do clube (SPFC/SAO) acaba sendo injetada como sigla da cidade. O edge tenta "<value>__city" antes da chave plana.
Sao Paulo appears as a city (venue.city) and as a club name (team.name → Sao Paulo FC). Without scoping, the club sigla (SPFC/SAO) ends up injected as the city's sigla. The edge tries "<value>__city" first, then falls back.

{
  "Sao Paulo":        { "long": "Sao Paulo", "short": "SPFC", "sigla": "SAO" },   // club
  "Sao Paulo__city":  { "long": "Sao Paulo" }                                      // city only
}

Entradas __city normalmente nao tem short nem sigla — cidades nao seguem o padrao TV. Sem entrada __city, o lookup cai na chave plana (comportamento atual).
__city entries typically don't carry short or sigla — cities don't follow the broadcast pattern. Without a __city entry, lookup falls back to the plain key (current behavior).

Times com nomes ambiguos entre paises (ex.: Nacional URU/PAR, River Plate ARG/URU) sao desambiguados manualmente pela curadoria, via qualificadores no nome (ex.: "Nacional (URU)") — nao via composite key.
Teams with ambiguous names across countries (e.g. Nacional URU/PAR, River Plate ARG/URU) are disambiguated manually by curation using name qualifiers (e.g. "Nacional (URU)") — not via composite key.

6. Headers de resposta / Response headers

Header Quando / When Significado / Meaning
x-i18n-lang Traducao aplicada / Translation applied Idioma efetivamente usado, ex.: pt-br
x-i18n-missing Sempre que > 0 Numero de nomes nao encontrados no dicionario. Util para auditar gaps. / Count of names not found in dictionary. Useful to audit gaps.
x-i18n-error Em caso de falha / On failure dict-load = dicionario indisponivel; walk-failed = parse falhou. Em qualquer caso a resposta original passa intocada.

7. Exemplos por linguagem / Examples by language

JavaScript (fetch):

const API_KEY = 'YOUR_API_KEY';
const BASE = 'https://football.api.insyde.one';

const res = await fetch(`${BASE}/fixtures?id=215662&lang=pt-br&key=${API_KEY}`);
const data = await res.json();

const match = data.response[0];
// Render: prefer short for mobile, long for desktop, fallback to original
const homeName = match.teams.home.name_short || match.teams.home.name_long || match.teams.home.name;
const statusLabel = match.fixture.status.long_mobile || match.fixture.status.long;

Python (requests):

import requests

API_KEY = "YOUR_API_KEY"
BASE = "https://football.api.insyde.one"

resp = requests.get(f"{BASE}/fixtures", params={
    "id": 215662,
    "lang": "pt-br",
    "key": API_KEY,
})
data = resp.json()

home = data["response"][0]["teams"]["home"]
# Use sigla (3-letter code) for compact display, fallback to short / name
display = home.get("name_sigla") or home.get("name_short") or home["name"]

8. Boas praticas / Best practices

O campo original e a fonte de verdade. Nunca remova ou ignore name/country/etc. — eles seguem vindo da API upstream. Os campos _long/_short/_sigla sao enriquecimento opcional.
The original field is the source of truth. Never remove or ignore name/country/etc. — they still come from the upstream API. The _long/_short/_sigla fields are optional enrichment.

Back to Football API docs