pnclFEED Clave gratuita

api de cuotas de pinnacle / google sheets / apps script

API de cuotas de Pinnacle en Google Sheets

bucle[cada 15 minutos, 96 llamadas al día]

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

filas escritas en la pestaña Odds200 OK

Un Apps Script corto llama a la API de cuotas de Pinnacle para el tablero prepartido de fútbol y escribe una fila por partido: hora de inicio, liga, equipos y los precios 1X2. Un disparador temporal lo vuelve a ejecutar cada 15 minutos, que son 96 llamadas al día y caben en una clave gratuita.

Crear una clave gratuita

0 USD · 100 llamadas al día · sin tarjeta

Pestaña Oddsfila de ejemplo de la documentación
FilaABCDEFG
1InicioLigaInicioVisitante1X2
24 may 16:30Italia - Serie ACremoneseLazio2.453.302.90
3una fila por cada partido del tablero prepartido

El script

Lee tu URL base y tu clave de las propiedades del script, así que ninguna está en el código. Pide event_type=prematch y sport_id=1, fútbol, y luego aplana la money line de partido completo de cada evento en las columnas E a G.

Una llamada fallida no escribe nada y registra la respuesta, así que un mal minuto nunca deja la pestaña en blanco. Cambia SPORT_ID para otro deporte; los IDs están en la página de inicio.

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);
  }
}

configúralo una vez

Cinco pasos y luego funciona solo

  1. Añade una pestaña llamada Odds a tu hoja de cálculo.
  2. Abre Extensiones, luego Apps Script, y pega el script sobre la función vacía.
  3. En Configuración del proyecto, añade dos propiedades de script: BASE, la dirección de la API de la documentación, y KEY, tu clave.
  4. Ejecuta refreshOdds una vez y concede los permisos que pida Google.
  5. En Activadores, añade un activador basado en tiempo para refreshOdds con un temporizador de 15 minutos.

Cuánto cuesta un activador respecto al límite diario.

ActivadorLlamadas al díaPlan
Cada 15 minutos, un deporte96Clave gratuita
Cada 30 minutos, dos deportes96Clave gratuita
Cada 15 minutos, dos deportes192poll
Cada minuto, un deporte1,440poll

Las cuotas propias de Apps Script se aplican además; el activador de tiempo más corto es de un minuto.

SIGUIENTErefreshOdds()

Una clave, una pestaña, un activador

La clave gratuita cubre una hoja de 15 minutos para un deporte. Si la hoja se convierte en un modelo que necesita todos los deportes cada minuto, las 10 llamadas por segundo de poll son el siguiente paso; la página de precios tiene las cifras.