Como usar os resumos de jogos com IA

How to use AI-powered match summaries

O endpoint /summary gera resumos de jogos usando inteligencia artificial. Dependendo do status do jogo, o formato da resposta muda automaticamente: atualizacoes curtas para jogos ao vivo, previews para jogos futuros, e artigos completos para jogos encerrados.

The /summary endpoint generates match summaries using AI. Depending on match status, the response format changes automatically: short updates for live matches, previews for upcoming, and full articles for finished matches.

1. Buscar resumo de um jogo / Get a match summary

O endpoint recebe o ID do jogo e o idioma desejado:

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

async function getSummary(fixtureId, lang = 'pt') {
  const url = `${BASE}/summary?id=${fixtureId}&lang=${lang}&key=${API_KEY}`;
  const res = await fetch(url);
  return res.json();
}

const summary = await getSummary(1500872, 'pt');

2. Idiomas disponiveis / Available languages

CodigoIdioma / LanguageEstilo / Style
ptPortuguesDramatico, apelidos de times (Mengao, Verdao, Timao), minutos por tempo
enEnglishEnergetic but restrained, standard minute notation
esEspanolVivid, colorful, standard minute notation

3. Formatos por status do jogo / Formats by match status

Jogo ao vivo (1H, HT, 2H, ET, P): Formato curto de ticker ao vivo.

{
  "fixture_id": 1500872,
  "status": "2H",
  "language": "pt",
  "score": "Fluminense 1-0 Flamengo",
  "minute": "52'",
  "headline": "Serna abre o placar para o Flu no classico!",
  "situation": "Kevin Serna recebeu de Samuel Moreno e abriu o placar. Flamengo tenta reagir mas encontra dificuldade para furar a defesa tricolor.",
  "last_event": "Gol de K. Serna aos 52 do segundo tempo — Fluminense 1-0",
  "key_events": "9' 1T Allan (FLA) Cartao Amarelo\n52' 2T K. Serna (FLU) 1-0",
  "pulse": "HEATED"
}

Jogo encerrado (FT, AET, PEN): Artigo completo.

{
  "fixture_id": 1500872,
  "status": "FT",
  "language": "pt",
  "title": "Fluminense vence Flamengo 2-1 no Rio pela 4a rodada do Carioca",
  "subtitle": "Classico carioca fica com o Flu apos virada no segundo tempo",
  "introduction": "Fluminense recebeu o Flamengo no Rio de Janeiro pela Carioca - 1, quarta rodada...",
  "key_moments": "Aos 52 do segundo tempo, K. Serna abriu o placar com assistencia de S. Moreno...",
  "stats_narrative": "Flamengo dominou a posse de bola (60%), mas Flu finalizou 10 vezes com 6 no alvo...",
  "conclusion": "A vitoria garante ao Flu tres pontos importantes no inicio da campanha do Carioca."
}

Jogo futuro (NS, TBD): Preview com expectativas.

{
  "fixture_id": 1500872,
  "status": "NS",
  "language": "en",
  "title": "Fla-Flu: Fluminense host Flamengo in Carioca Round 4",
  "subtitle": "Rio derby at the Maracana — Carioca Regular Season",
  "introduction": "Fluminense and Flamengo meet again in the biggest derby in Rio...",
  "key_moments": "Fluminense won the last encounter 2-1; Flamengo dominated possession...",
  "stats_narrative": "Recent head-to-head: Flu won 2, Fla won 1 of the last 3 meetings...",
  "conclusion": "A heated Carioca derby with both sides chasing early-season momentum."
}

4. Cache por status / Cache by status

Status do jogoCDN CacheStorage Cache
Ao vivo (1H, HT, 2H, ET, P)5 minutes5 minutes
Nao iniciado (NS, TBD)1 hour1 hour
Encerrado (FT, AET, PEN)7 daysPermanente
Cancelado/Adiado (PST, CANC)7 daysPermanente
Dica: Resumos de jogos encerrados sao gerados uma vez e cacheados permanentemente. Jogos ao vivo geram atualizacoes curtas a cada 5 minutos. Use o campo pulse (HEATED, CALM, TENSE, etc.) para indicadores visuais na sua UI.
Tip: Finished match summaries are generated once and cached permanently. Live matches generate short updates every 5 minutes. Use the pulse field for visual indicators in your UI.

5. Exemplo completo / Complete example

async function showMatchSummary(fixtureId) {
  const data = await getSummary(fixtureId, 'pt');

  if (data.pulse) {
    // Live match — short update format
    console.log(`[${data.pulse}] ${data.score} (${data.minute})`);
    console.log(data.headline);
    console.log(data.situation);
  } else {
    // Finished or upcoming — full article
    console.log(data.title);
    console.log(data.subtitle);
    console.log('\n' + data.introduction);
    console.log('\n' + data.key_moments);
    console.log('\n' + data.stats_narrative);
    console.log('\n' + data.conclusion);
  }
}

Back to Football API docs