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 gratuita0 USD · 100 llamadas al día · sin tarjeta
| Fila | A | B | C | D | E | F | G |
|---|---|---|---|---|---|---|---|
| 1 | Inicio | Liga | Inicio | Visitante | 1 | X | 2 |
| 2 | 4 may 16:30 | Italia - Serie A | Cremonese | Lazio | 2.45 | 3.30 | 2.90 |
| 3 | una 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.
// 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);
}
}
Selecciona el código para copiarlo.
configúralo una vez
Cinco pasos y luego funciona solo
- Añade una pestaña llamada
Oddsa tu hoja de cálculo. - Abre Extensiones, luego Apps Script, y pega el script sobre la función vacía.
- En Configuración del proyecto, añade dos propiedades de script:
BASE, la dirección de la API de la documentación, yKEY, tu clave. - Ejecuta
refreshOddsuna vez y concede los permisos que pida Google. - En Activadores, añade un activador basado en tiempo para
refreshOddscon un temporizador de 15 minutos.
Cuánto cuesta un activador respecto al límite diario.
| Activador | Llamadas al día | Plan |
|---|---|---|
| Cada 15 minutos, un deporte | 96 | Clave gratuita |
| Cada 30 minutos, dos deportes | 96 | Clave gratuita |
| Cada 15 minutos, dos deportes | 192 | poll |
| Cada minuto, un deporte | 1,440 | poll |
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.