Ricette curl per l'API di quote Pinnacle
Risposta: punta curl su https://pinnfeed.io con l'header x-api-key: $PINNFEED_KEY. Il contratto aggiornato è /openapi.json. Free (0 €, 30 s di ritardo, 2 sport) copre tutti i percorsi qui sotto tranne le quote di chiusura (Builder e superiori).
Preparazione#
export PINNFEED_KEY="ps_live_..."
alias pf='curl -sS -H "x-api-key: $PINNFEED_KEY" -H "accept: application/json"'
Account e sport#
pf https://pinnfeed.io/v1/account | jq .
pf https://pinnfeed.io/v1/sports | jq '.sports[] | {id,slug,inPlan,live,prematch}'
Eventi e quote (paginati)#
# Moneyline calcio in arrivo, linee principali
pf "https://pinnfeed.io/v1/odds?sport=soccer&market=moneyline&main=true&limit=20" | jq '.events | length'
# Pagina successiva
pf "https://pinnfeed.io/v1/odds?sport=soccer&market=moneyline&main=true&limit=20&offset=20" | jq .
# Una squadra (ricerca testo su casa, trasferta o campionato)
pf "https://pinnfeed.io/v1/odds?sport=soccer&q=juventus&main=true" | jq .
# Un evento con i suoi mercati
pf "https://pinnfeed.io/v1/events/EVENT_ID?main=true" | jq .
Cali e chiusure#
# Cali di quota ≥ 5% negli ultimi 15 minuti
pf "https://pinnfeed.io/v1/drops?sport=soccer&minutes=15&min_pct=5&limit=50" | jq .
# Chiusure di un giorno UTC (Builder e superiori)
pf "https://pinnfeed.io/v1/closing?date=2026-11-08&sport=soccer&main=true&limit=50" | jq .
Errori comuni#
| HTTP | Significato |
|---|---|
| 400 | invalid_filter: sport o mercato sconosciuto |
| 401 | x-api-key assente o non valida |
| 403 | Il piano non include la risorsa (es. Free su /v1/closing) |
| 429 | rate_limited (con Retry-After) o daily_quota (Free: 1.000/giorno) |
Per il push invece del polling: esempio Python WebSocket su Builder (99 €/mese). Prova di 3 giorni; serve una carta, addebitata dopo il giorno 3 salvo disdetta. Contenuto educativo per maggiorenni (18+).
Domande frequenti#
curl funziona con il piano Free?#
Sì per /v1/account, /v1/sports, /v1/events, /v1/odds e /v1/drops (30 s di ritardo, 2 sport, 1.000 richieste al giorno). Le chiusure richiedono Builder o Pro.
E il WebSocket da riga di comando?#
Non con curl; usa wscat: ricetta wscat.
Dov'è il file OpenAPI?#
https://pinnfeed.io/openapi.json, da importare in Postman, Insomnia o openapi-generator.