pnclFEED Chave gratuita

api de odds da pinnacle / google sheets / apps script

API de odds da Pinnacle no Google Sheets

loop[a cada 15 minutos, 96 chamadas por dia]

GET/kit/v1/markets?event_type=prematch&sport_id=1

linhas gravadas na aba Odds200 OK

Um Apps Script curto chama a API de odds da Pinnacle para o painel pré-jogo de futebol e escreve uma linha por partida: horário, liga, times e os preços 1X2. Um gatilho de tempo o reexecuta a cada 15 minutos, o que dá 96 chamadas por dia e cabe em uma chave gratuita.

Criar uma chave gratuita

US$ 0 · 100 chamadas por dia · sem cartão

Aba Oddslinha de exemplo da documentação
LinhaABCDEFG
1InícioLigaInícioFora1X2
24 mai 16:30Itália - Serie ACremoneseLazio2.453.302.90
3uma linha para cada partida do quadro pré-jogo

O script

Ele lê sua URL base e sua chave das propriedades do script, então nenhuma delas fica no código. Ele pede event_type=prematch e sport_id=1, futebol, e depois achata a money line da partida completa de cada evento nas colunas E a G.

Uma chamada com falha não grava nada e registra a resposta, então um minuto ruim nunca apaga a aba. Troque SPORT_ID para outro esporte; os IDs estão na página inicial.

Code.gs
// Extensions > Apps Script, then paste.
const PROPS = PropertiesService
  .getScriptProperties();
const BASE = PROPS.getProperty('BASE');
const KEY = PROPS.getProperty('KEY');
const SPORT_ID = 1; // 1 = soccer

function refreshOdds() {
  const url = BASE + '/kit/v1/markets' +
    '?event_type=prematch&sport_id=' +
    SPORT_ID;
  const res = UrlFetchApp.fetch(url, {
    headers: { 'x-portal-apikey': KEY },
    muteHttpExceptions: true,
  });
  if (res.getResponseCode() !== 200) {
    console.warn(res.getContentText());
    return;
  }
  const data = JSON.parse(
    res.getContentText());
  const rows = data.events.map((ev) => {
    const p = ev.periods || {};
    const ml = (p.num_0 || {})
      .money_line || {};
    return [new Date(ev.starts),
      ev.league_name, ev.home, ev.away,
      ml.home || '', ml.draw || '',
      ml.away || ''];
  });
  const sheet = SpreadsheetApp
    .getActive().getSheetByName('Odds');
  sheet.clearContents();
  sheet.appendRow(['Starts', 'League',
    'Home', 'Away', '1', 'X', '2']);
  if (rows.length) {
    sheet.getRange(2, 1, rows.length, 7)
      .setValues(rows);
  }
}

configure uma vez

Cinco passos, depois ele roda sozinho

  1. Adicione uma aba chamada Odds à sua planilha.
  2. Abra Extensões, depois Apps Script, e cole o script sobre a função vazia.
  3. Em Configurações do projeto, adicione duas propriedades de script: BASE, o endereço da API da documentação, e KEY, sua chave.
  4. Execute refreshOdds uma vez e conceda as permissões que o Google pedir.
  5. Em Acionadores, adicione um acionador por tempo para refreshOdds com timer de 15 minutos.

Quanto um acionador custa do limite diário.

AcionadorChamadas por diaPlano
A cada 15 minutos, um esporte96Chave gratuita
A cada 30 minutos, dois esportes96Chave gratuita
A cada 15 minutos, dois esportes192poll
A cada minuto, um esporte1,440poll

As cotas do próprio Apps Script se aplicam por cima; o acionador por tempo mais curto é de um minuto.

PRÓXIMOrefreshOdds()

Uma chave, uma aba, um acionador

A chave gratuita cobre uma planilha de 15 minutos para um esporte. Se a planilha virar um modelo que precisa de todos os esportes a cada minuto, as 10 chamadas por segundo do poll são o próximo passo; a página de preços tem os números.