pnclFEED Chave gratuita

Notas de quickstart

Chame a API de odds a partir de um Cloudflare Worker

Um Worker é JavaScript no servidor na borda: sua chave fica secreta, sua página fica estática, e a chamada da API acontece a um salto do usuário.

Você nunca deve chamar a API de odds de JavaScript no navegador, porque a chave ficaria visível para todo visitante. Um Cloudflare Worker é o caminho do meio limpo: JavaScript que roda na borda, no lado do servidor, onde a chave vive num segredo e nunca chega a um navegador. Sua página pode ficar estática, e a chamada de odds acontece a um salto do leitor.

O formato que mantém o segredo

O Worker guarda a chave como um segredo de ambiente, não no código, a mesma fronteira que o quickstart de curl mantém com suas variáveis de ambiente, verificado em 2026-10-16. A página chama o seu Worker, o Worker chama a API com a chave no cabeçalho x-portal-apikey, corta a resposta para o que a página precisa, e a retorna. O navegador vê a URL do seu Worker, nunca a da API, e nunca a chave.

export default {
  async fetch(request, env) {
    const url = `${env.ODDS_BASE_URL}/kit/v1/markets?sport_id=1`;
    const r = await fetch(url, {
      headers: { "x-portal-apikey": env.ODDS_API_KEY }
    });
    const data = await r.json();
    const rows = data.events.slice(0, 20).map((ev) => ({
      home: ev.home, away: ev.away,
      line: ev.periods?.num_0?.money_line ?? null,
    }));
    return Response.json({ rows, last: data.last });
  },
};

A resposta mantém o hábito do envelope também: eventos mais o cursor last, para a sua página poder pedir o próximo delta depois.

Por que a borda vale a pena aqui

Páginas de odds são pesadas no lado da leitura: muitos leitores, um upstream. Um Worker pode cachear a resposta cortada por alguns segundos na borda, então cem leitores da mesma página custam uma chamada upstream, o mesmo princípio de um leitor e muitos consumidores que os quickstarts usam no servidor. As 100 chamadas por dia da chave gratuita rendem muito mais quando a borda absorve o tráfego.

A alternativa, uma página estática chamando a API diretamente, coloca a chave nas mãos de todo visitante, que é a única coisa que você não consegue desfazer.

Mantenha o Worker honesto

Corte antes de enviar: o board completo é grande, e a sua página precisa de vinte linhas, não centenas. Mantenha o cursor fora da resposta se a página não faz polling, e mantenha a chave fora de qualquer URL, porque uma chave numa URL acaba em logs. Quando o board falhar, responda com uma idade, não uma página de erro: seus leitores convivem com preços um pouco velhos, claramente marcados, melhor do que com nada.

Chave num segredo, chamada na borda, corte antes de enviar. O Worker é o jeito seguro-para-o-navegador de colocar preços ao vivo numa página estática.