Le quote dei bookmaker italiani,
in un'unica API

Quote normalizzate da decine di bookmaker — inclusi gli italiani che le API globali non hanno — in un formato JSON stabile. Per i tuoi modelli, bot e strumenti.

● book IT a ciclo continuo · freschezza misurata event_id stabile · last_update per quota self-serve · senza carta

GET /api/v1/odds feed live
# una richiesta, tutte le quote di un evento
curl "https://odss-api.com/api/v1/odds?sport=calcio&league=serie%20a" \
  -H "x-api-key: odss_live_..."

{ "count": 118, "offset": 0, "returned": 118, "state": "prematch", "odds": [{
  "event_id": "a3f9c1e07b2d4865", "event": "Inter - Milan",
  "league": "Serie A", "market": "1x2", "commence_time": "2026-08-23T18:45:00Z",
  "bookmakers": [
    { "key":"snai", "outcomes":{"HOME":2.10,"DRAW":3.40,"AWAY":3.60}, "last_update":"2026-07-14T10:32:05Z" },
    { "key":"bet365", "outcomes":{"HOME":2.05,"DRAW":3.50,"AWAY":3.70}, "last_update":"2026-07-14T10:28:12Z" },
    { "key":"leovegas", "outcomes":{"HOME":2.08,"AWAY":3.55}, "suspended":["DRAW"], "last_update":"2026-07-14T10:31:44Z" } ]}]}

Tre mosse per integrare le quote

01

Crea la chiave

Registrati e genera una chiave odss_live in un minuto. Il piano Free è per sempre, senza carta.

02

Chiama /odds

Un endpoint, tutte le quote cross-book per evento e mercato. Filtri per sport, lega, mercato e bookmaker.

03

Integra e sincronizza

event_id stabile per riconoscere gli eventi, last_update per la freschezza, offset per leggere tutto il palinsesto.

Il moat: i book italiani.

I bookmaker ADM che le API globali non hanno

Decine di concessionari italiani con licenza ADM, più book di riferimento internazionali ed exchange. L'elenco attivo in questo momento è su /api/v1/bookmakers, con una chiave API: nessuna lista di marchi da credere sulla parola. country, playable_it e is_exchange sono campi della risposta, non parametri di query — l'endpoint non ne accetta.

GET /bookmakerskeycountryplayable_itis_exchange

Schema stabile

Un formato JSON pubblico e versionato: la forma interna del motore non ti arriva mai addosso.

Integrazione affidabile

event_id deterministico per tutta la vita del prematch, last_update ISO per ogni book, paginazione con offset: sync senza sorprese.

Freschezza onesta

I book italiani girano a ciclo continuo e la freschezza reale è misurata e pubblica, book per book, sulla status page; bet365 arriva via un fornitore di dati terzo su licenza contrattuale, con cadenza di qualche minuto. Ogni quota dichiara il suo last_update: niente numeri stantii spacciati per live.

Il confronto onesto.

Dove ci mettiamo rispetto alle API globali e alla media del mercato. Senza nomi, senza promesse.

Caratteristica
odss-api
Media del mercato
Book ADM italiani
Copertura diretta e verificabile (/coverage pubblico, /bookmakers con chiave), freschezza misurata e pubblica (p50/p95 su /status).
Assenti: coprono book esteri (US/UK/offshore), nessun book ADM.
Come si paga
Per account: quota mensile + rate/min. Più book o mercati per evento non aumentano il costo.
Per book simultaneo, o a crediti mercati×regioni: il costo esplode sul multi-book.
Cross-book
event_id deterministico condiviso da tutti i mercati dell'incontro: confronto nativo, matching non euristico.
Spesso quote proprietarie o matching non deterministico.
Freschezza
last_update ISO in chiaro, book per book: sai quanto è recente ogni gamba.
Spesso non esposta per singolo book.
Pronta per gli agenti
OpenAPI 3.1, llms.txt, JSON-LD, /.well-known/api-catalog: un agente la trova e la legge da solo.
Docs dietro login o crawler bloccati, nessuno standard agentico.
Prezzo e avvio
Listino pubblico con Free tier; Enterprise self-serve configurabile. Chiave in un minuto.
Enterprise sales-gated e opachi, oppure self-serve senza book italiani.
Chiavi mirate
Scopabili per sport/lega (es. una chiave "solo calcio"), senza limite di numero.
Non documentato.

Confronto con la media dei provider globali/enterprise valutati (lug 2026). Le voci del nostro lato sono verificabili dagli endpoint pubblici e dalla documentazione.

Bookmaker & leghe

Numeri live, contati dal feed in questo momento — non un inventario di catalogo.

bookmaker attivi nel feed

sport quotati adesso

leghe nel palinsesto

L'elenco nominativo dei book attivi in questo momento è su GET /api/v1/bookmakers, con i campi country, playable_it, is_exchange e source: richiede una chiave API (la Free si genera in un minuto, senza carta). Senza chiave sono pubblici GET /api/v1/leagues — da cui vengono i conteggi qui sopra — e GET /api/v1/coverage.

Le leghe nel palinsesto adesso

Dati live dal feed (endpoint pubblico /api/v1/leagues): per ogni sport, le leghe quotate in questo momento. I nomi sono i valori del filtro league.

Non escludiamo nessuna lega. Seguiamo i principali bookmaker ADM — l'elenco esatto è su /api/v1/bookmakers — e mostriamo tutto ciò che quotano: se un book del feed quota una partita, la vedi anche qui — dalle grandi leghe europee alle serie minori e alle competizioni internazionali. Quello che compare dipende dalla stagione e dal periodo: se non ci sono partite, i bookmaker non le quotano, quindi non appaiono. La lista qui sotto è il palinsesto di questo momento.

Carico il palinsesto…

Il palinsesto segue la stagione: d'estate il calcio di club è naturalmente ridotto.

Documentazione

Base URL https://odss-api.com. Autenticazione con header x-api-key: odss_live_… oppure Authorization: Bearer. Risposte JSON, quote decimali europee.

GET /api/v1/mock/odds senza chiave

Ogni endpoint ha un gemello sotto /api/v1/mock/ che risponde subito, senza registrarti e senza consumare quota: stessa forma della risposta, stessi parametri, stessa validazione stretta del feed vero. I prezzi sono sintetici — mock: true, header X-Odss-Mock: 1, id con prefisso mock_ — servono a scrivere e collaudare il codice, non a giocarci.

curl "https://odss-api.com/api/v1/mock/odds?sport=calcio&limit=3"

Disponibili: /mock/odds · /mock/odds/history · /mock/sports · /mock/bookmakers · /mock/leagues · /mock/status · /mock/stream (SSE). Il parametro seed rende la risposta riproducibile: usalo nella CI invece di bruciare quota a ogni run.

Sul feed VERO sono pubblici senza chiave anche /api/v1/leagues, /api/v1/coverage e /api/v1/status.

Prima chiamata in 3 passi

01

Crea la chiave

Registrati e genera una chiave nella dashboard. Il piano Free è per sempre.

02

Elenca gli sport

Verifica la chiave con una chiamata a /sports.

03

Chiedi le quote

Chiama /odds con sport e mercato: ricevi le quote cross-book.

GET /api/v1/odds esempio

curl "https://odss-api.com/api/v1/odds?sport=calcio&league=serie%20a&limit=5" \
  -H "x-api-key: odss_live_..."
const r = await fetch(
  "https://odss-api.com/api/v1/odds?sport=calcio&league=serie%20a&limit=5",
  { headers: { "x-api-key": "odss_live_..." } }
);
const { count, odds } = await r.json();
import requests
r = requests.get(
    "https://odss-api.com/api/v1/odds",
    params={"sport": "calcio", "league": "serie a", "limit": 5},
    headers={"x-api-key": "odss_live_..."},
)
data = r.json()  # { count, offset, returned, state, odds: [...] }

GET /api/v1/odds

Le quote cross-book correnti, raggruppate per evento, mercato e linea. Ogni record elenca i bookmaker con i loro esiti e il timestamp dell'ultimo aggiornamento.

Parametri

ParametroDescrizione
sportFiltro esatto sullo sport (es. calcio, tennis, basket). Valori: vedi /api/v1/sports.
marketMercato canonico: 1x2, ou, btts, dc, ah (handicap asiatico), eh (handicap europeo), moneyline…
bookmakersLista CSV di chiavi book (es. snai,bet365). Valori: vedi /api/v1/bookmakers.
leagueFiltro per sottostringa, case-insensitive (es. serie a). Valori: vedi /api/v1/leagues.
event_idUn solo evento, per id esatto.
stateprematch (default), live (in-play, con punteggio e minuto) o all (entrambi). Con live, se il motore in-play è spento la lista è vuota e live_enabled=false.
limitRecord per pagina. Default 500, max 2000.
offsetIndice di partenza per la paginazione. Default 0.

Campi della risposta

CampoDescrizione
countTotale record che soddisfano i filtri (su tutte le pagine).
offset · returnedEco dell'offset richiesto e record effettivamente restituiti in questa pagina.
odds[].event_idId deterministico dell'evento: identico per tutti i mercati dello stesso incontro e stabile per l'intera finestra prematch.
odds[].eventNome normalizzato dell'evento (Casa - Ospite).
odds[].sport · leagueSport e lega/competizione dell'evento.
odds[].home_team · away_teamLe due squadre, quando disponibili.
odds[].commence_timeInizio dell'evento, ISO 8601 UTC.
odds[].market · line · scope · periodMercato canonico, eventuale linea (es. 2.5), ambito (es. squadra) e periodo (es. 1° tempo).
odds[].state · score · minutestate = prematch o live. Per il live: score (es. "1-0") e minute (es. "63'") correnti. Stesso event_id del prematch → correla la stessa partita nei due stati.
…bookmakers[].keyChiave del bookmaker, con country, playable_it e is_exchange.
…bookmakers[].outcomesMappa esito → quota decimale (es. HOME: 2.10).
…bookmakers[].suspendedEsiti che quel book quota ma su cui ora non accetta giocate. Non stanno in outcomes (un esito sospeso non ha un prezzo giocabile) ma sono nominati qui, così «questo book non quota l'esito» e «lo quota ed è chiuso adesso» restano due fatti distinti. Campo opzionale, e l'assenza vuol dire qualcosa: se manca, la fonte di quel book non dichiara lo stato; [] vuol dire letta, e niente di sospeso. Non leggere l'assenza come lista vuota.
…bookmakers[].last_updateTimestamp ISO dell'ultimo aggiornamento riuscito delle quote di quel book.

Paginazione

Ripeti la chiamata aumentando offset di returned, finché offset + returned < count. Il palinsesto è vivo: count può variare leggermente tra le pagine.

GET /api/v1/odds?sport=calcio&limit=1000&offset=0
GET /api/v1/odds?sport=calcio&limit=1000&offset=1000
# … finché offset + returned < count

GET /api/v1/sports

Gli sport disponibili in questo momento nel feed (i valori del parametro sport).

GET /api/v1/bookmakers

I bookmaker attivi nel feed, con country (codice ISO 3166-1 alpha-2 del paese di licenza — IT, GB, US, SE… — oppure world quando non è attribuito), playable_it (true solo per i book con concessione ADM, cioè giocabili dall'Italia: false per tutti gli altri book del feed, dalle sharp di riferimento come Pinnacle ai marchi esteri), is_exchange (commissione sulla vincita) e source (direct se leggiamo noi il book, partner_feed se il listino ci arriva da un fornitore di dati terzo).

GET /api/v1/leagues pubblico, senza chiave

Il palinsesto corrente aggregato: per ogni sport le leghe quotate, con numero di eventi e di bookmaker. Utile per scoprire i valori del filtro league.

GET /api/v1/stream Pro ed Enterprise

Server-Sent Events: alla connessione un evento hello, poi eventi odds con i record CAMBIATI (stesso schema di /odds) e i rimossi, entro ~10 secondi da quando il motore li rileva — niente polling. Parametro opzionale sport; snapshot iniziale via GET /odds. La cadenza dei dati resta quella del motore (freschezza per book misurata sulla status page; bet365 via un fornitore di dati terzo su licenza contrattuale): lo stream elimina la latenza di polling, fa fede last_update. Max 3 stream concorrenti; la connessione conta 1 richiesta di quota.

GET /api/v1/odds/history

Storico delle variazioni di quota per un evento: una riga ogni volta che un bookmaker cambia prezzo su un gruppo. Filtri event_id (obbligatorio), book, market, from/to (ISO), limit. Ordine dal più recente: la prima riga di un evento iniziato è la sua chiusura. Rispetta l'ambito della chiave.

curl "https://odss-api.com/api/v1/odds/history?event_id=a3f9c1e07b2d4865&book=snai" \
  -H "x-api-key: odss_live_..."

GET /api/v1/middles

Middle Over/Under calcolati dal feed corrente: OVER su una linea bassa da un book, UNDER su una linea alta da un altro. Se il totale cade nella finestra vincono entrambe le giocate. Campi middle_window, hit_return_pct, miss_return_pct, safe (nessuna perdita nemmeno a vuoto). Filtri: sport, min_return, safe, limit.

Regola di freschezza: una quota ferma da più di stale_after_seconds (900s di default) resta nelle risposte di /odds col suo last_update, ma non viene accoppiata in un middle: una gamba vecchia probabilmente non esiste più sul sito del bookmaker. La soglia applicata e il numero di gambe scartate sono nella risposta.

curl "https://odss-api.com/api/v1/middles?sport=calcio&safe=true" \
  -H "x-api-key: odss_live_..."

GET /api/v1/coverage pubblico, senza chiave

Quanti marchi di bookmaker hanno una quota valida nel feed di questo momento, per regione (Italia, USA, UK, mondo). Non coincide con il numero di voci di /api/v1/bookmakers: là sono elencate le chiavi interrogabili e le corsie di mercato dedicate (es. <marchio>-corners) contano a sé, qui vengono accorpate sotto il marchio.

POST /api/mcp MCP

Server MCP (JSON-RPC 2.0) per agenti AI e connettori (Claude, ChatGPT…). Autenticazione con la stessa chiave (Authorization: Bearer odss_live_… o x-api-key). Tool: get_odds (con state=live), list_sports, list_bookmakers, list_leagues. Solo tools/call consuma quota; l'handshake (initialize/tools/list) è gratis. Stateless: nessuna sessione, ogni richiesta è autosufficiente.

curl -X POST https://odss-api.com/api/mcp \
  -H "Authorization: Bearer odss_live_..." -H "content-type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"get_odds","arguments":{"sport":"calcio","state":"live","limit":5}}}'

Webhook Enterprise

Registra una URL (https) dalla dashboard o via API — POST /api/account/webhooks con la sessione account (body {url, sport?, state?}; il secret è mostrato una volta, max 20 per account) — e ricevi le variazioni di quota via POST: stesso payload {changed, removed} dello stream. Ogni consegna è firmata: header X-Odss-Signature: t=<unix>,v1=<hex> = HMAC-SHA256 di "{timestamp}.{body}" col secret del webhook (verifica la firma e rifiuta timestamp vecchi). Solo https, niente redirect seguiti; endpoint che falliscono a ripetizione si auto-disabilitano. Rispondi 2xx per confermare. Una consegna può arrivare in più POST consecutivi, ognuno firmato per conto suo e numerato dall'header X-Odss-Page: pagina/totale: ogni corpo porta page, pages, changed_total e removed_total, così dalla prima pagina sai già quanto sta arrivando. Non limitare la frequenza dell'endpoint: una pagina rifiutata ferma le successive.

Limiti, header ed errori

Ogni risposta autenticata include X-RateLimit-Limit (quota mensile del piano), X-RateLimit-Remaining e X-RateLimit-Reset (unix time in secondi in cui la finestra si riapre; sul 429 da quota la stessa data è nel corpo come retry_at). La quota è una finestra mobile di 30 giorni.

StatusDescrizione
400Richiesta non valida: parametro sconosciuto, valore fuori da quelli ammessi (es. state) o parametro obbligatorio mancante (es. event_id su /odds/history). Il corpo della risposta dice quale.
401Chiave mancante, non valida o revocata.
403Fuori ambito: account sospeso, feed fuori dallo scope della chiave (es. live con chiave solo-prematch) o funzione riservata al piano (stream: Pro ed Enterprise; webhook: Enterprise).
429Burst: superate le richieste al minuto del piano. Header Retry-After: 60.
429Quota mensile esaurita: passa a un piano superiore o attendi la finestra.
502Feed momentaneamente non disponibile: riprova con backoff.

Parametri: nessun silenzio

Su tutti gli endpoint /api/v1 un parametro che non riconosciamo non viene mai ignorato: se scrivi bookmaker invece di bookmakers ricevi 400 con il nome sbagliato, l'elenco di quelli ammessi su quell'endpoint e, se è un refuso, il suggerimento del nome giusto. Il confronto è esatto: anche Sport con la maiuscola viene rifiutato. Gli endpoint di catalogo (/sports, /bookmakers, /leagues, /coverage, /status) non accettano alcun parametro. Preferiamo un errore subito a una risposta 200 con dati non filtrati che sembrano corretti: il 400 è deterministico, va corretto e non ritentato, e non consuma quota.

La stessa regola vale per gli argomenti dei tool del server MCP (POST /api/mcp): un nome che non esiste, o un tipo sbagliato come una lista al posto della stringa CSV, riceve un errore JSON-RPC -32602 invece di essere ignorato. Il campo error.data porta i nomi ammessi, così l'agente si corregge da solo.

curl "https://odss-api.com/api/v1/odds?bookmaker=snai" -H "x-api-key: odss_live_..."

HTTP/1.1 400 Bad Request
{
  "error": "Parametro sconosciuto: \"bookmaker\" (forse intendevi \"bookmakers\"?). Ammessi su questo endpoint: bookmakers, content, event_id, league, limit, market, offset, player, sport, state"
}

Machine-readable · contratto & agenti

Per generare client, SDK o usare l'API da un agente AI: il contratto OpenAPI 3.1 e una guida sintetica per LLM sono pubblici e sempre allineati.

RisorsaDescrizione
/openapi.jsonContratto OpenAPI 3.1 (endpoint, parametri, schemi, auth x-api-key).
/llms.txtGuida markdown per LLM (llmstxt.org): riassunto e link alle risorse.
/postman_collection.jsonCollezione Postman: importala e imposta la variabile x-api-key per provare subito gli endpoint.
/sdk/odss_api.pySDK Python ufficiale (single-file, zero dipendenze): client tipizzato con paginazione automatica e supporto live.
/sdk/odss-api.tsSDK TypeScript ufficiale (single-file, zero dipendenze): tipi, iteratore async e helper per lo stream SSE.
/.well-known/api-catalogCatalogo API (RFC 9727, linkset JSON).

Licenza d'uso

L'uso interno (modelli, bot, analisi, backtest) è incluso in tutti i piani. La ridistribuzione dei dati — ad esempio mostrarli agli utenti finali di un tuo prodotto — richiede la licenza di Redistribuzione Display (add-on Enterprise, +€120/mese), che copre la sola visualizzazione. Creare, alimentare o commercializzare servizi di surebet/arbitraggio, di value betting o equivalenti richiede invece la Surebet API, il piano che include la licenza per rivendere le surebet calcolate: 950 €/mese + IVA, dal sito. Ridistribuire le API o i dati grezzi resta fuori da ogni piano: per quello scrivici a [email protected].

Il piano giusto per il tuo volume.

Stessa copertura per tutti i piani: paghi solo il volume. Inizia gratis, disdici quando vuoi.

Free

Per esplorare l'API. Per sempre, senza carta.

0per sempre
Inizia gratis
  • 500 richieste / mese
  • 30 richieste / min
  • Copertura completa: tutti gli sport e tutti i book del feed

Hobby

Per progetti personali e piccoli bot.

19/mese
+ IVA
Scegli Hobby
  • 10.000 richieste / mese
  • 60 richieste / min
  • Copertura completa: tutti gli sport e tutti i book del feed
★ Più scelto

Starter

Per bot e integrazioni in produzione.

79/mese
+ IVA
Scegli Starter
  • 100.000 richieste / mese
  • 120 richieste / min
  • Copertura completa: tutti gli sport e tutti i book del feed

Pro

Per piattaforme e volumi alti.

159/mese
+ IVA
Scegli Pro
  • 500.000 richieste / mese
  • 600 richieste / min
  • Priorità di assistenza

Enterprise

Per piattaforme, aziende e rivenditori: configura volume, rate e licenza — il prezzo si aggiorna da solo e attivi in checkout, senza trattative.

199/mese
+ IVA
+€120

Ti autorizza a mostrare i dati agli utenti finali del tuo prodotto — siti, app, dashboard, widget, comparatori (senza, l'uso resta interno). Non autorizza a creare o commercializzare servizi di surebet/arbitraggio, value betting o piattaforme equivalenti, né a ridistribuire le API o i dati grezzi: per quelli serve una licenza commerciale dedicata. Leggi la licenza →

  • Streaming SSE incluso (/api/v1/stream)
  • Quota e rate configurati sul tuo account
  • Attivazione automatica al pagamento, disdici quando vuoi

Procedendo accetti la Licenza Enterprise e di Redistribuzione (leggibile dal link qui sopra) oltre ai Termini del servizio.

I prezzi indicati sono al netto dell'IVA. L'imposta applicabile viene aggiunta al momento del pagamento in base al tuo paese e al tuo status fiscale: 22% per l'Italia (anche per le imprese con partita IVA italiana); inversione contabile, imposta 0, per le imprese di altri Stati UE con partita IVA valida; operazione fuori campo IVA italiana per i clienti extra-UE. L'importo totale che paghi è quello indicato dal riepilogo del checkout, che confermi prima di inoltrare l'ordine (§4 dei Termini) · Pagamenti via Stripe · disdetta in un click dal portale · la quota è una finestra mobile di 30 giorni

Tre livelli, un solo motore.

Le quote normalizzate sono il primo livello. Se il prodotto che vuoi vendere sono gli arbitraggi, il livello che ti serve è un altro: le surebet già calcolate, con il diritto di rivenderle incluso nell'abbonamento.

Livello 1 · self-serve

Odds API

Quote e dati normalizzati. Dal piano Free all'Enterprise, prezzo pubblico e attivazione immediata.

Livello 2 · self-serve

Surebet API

Le surebet già individuate e calcolate dal motore, aggiornate ogni 180 secondi, non le sole quote. Un piano API da 950 €/mese + IVA, con la licenza di rivendita inclusa.

Livello 3 · a contratto

Surebet White Label

La piattaforma completa, con il tuo marchio, pronta per essere commercializzata. 2.000 €/mese + IVA.

Licenza di rivendita inclusa

Surebet API

Per chi ci costruisce sopra un prodotto proprio. Non restituisce soltanto le quote: restituisce le surebet già individuate e calcolate dal nostro motore, aggiornate ogni 180 secondi. Se non devi rivenderle a nessuno non ti serve: ti basta surebett.app.

950 €al mese, al netto dell'IVA. Un prezzo solo: la licenza per rivendere le surebet calcolate ai tuoi utenti è inclusa nell'abbonamento. È un piano API come Starter e Pro — una chiave, la sua quota, il suo rate — mensile, e si disdice in un click dal portale di fatturazione. Se hai un codice promozionale, lo inserisci al checkout.

Attivazione al pagamento, disdetta in un click dal portale. È un piano a sé e non si somma a un piano a listino: se sull'account ne hai già uno attivo a pagamento, va disdetto prima. Procedendo sottoscrivi la Surebet API Commercial License, nei limiti dell'uso che hai dichiarato qui sopra, e accetti i Termini del servizio (§5).

  • Evento e mercato
  • Bookmaker coinvolti e quote delle singole gambe
  • Percentuale/margine di arbitraggio
  • Stake ottimali
  • Timestamp e freschezza delle quote
  • Identificativi necessari all'integrazione

I campi elencati sono quelli previsti dove disponibili: la risposta porta ciò che il motore ha davvero calcolato per quell'evento. La licenza di rivendita è inclusa nell'abbonamento: puoi usare le surebet calcolate in un prodotto commerciale tuo, destinato ai tuoi utenti finali, nei limiti dell'uso dichiarato e dei Termini. Non comprende il White Label, che resta un contratto a parte.

Piattaforma come servizio

Surebet White Label

Per le aziende che non vogliono sviluppare autonomamente la piattaforma: la Surebet completa, fornita come servizio con il tuo marchio.

€2.000al mese, al netto dell'IVA. Attivazione e durata secondo il contratto White Label.
Richiedi una demo White Label
  • Motore Surebet
  • Dati e aggiornamenti
  • Frontend completo
  • Personalizzazione di logo, nome e colori
  • Hosting e infrastruttura
  • Manutenzione e aggiornamenti

Software, motore e codice sorgente restano di nostra proprietà e vengono concessi in uso secondo il contratto White Label.

La licenza «Redistribuzione Display» dei piani API autorizza a mostrare le quote dentro il tuo prodotto: non autorizza a creare o commercializzare servizi di surebet/arbitraggio, value betting o piattaforme sostanzialmente equivalenti, né a ridistribuire le API o i dati grezzi. Per questi usi servono la Surebet API Commercial License o il contratto White Label — vedi le licenze commerciali e i Termini, §5.

Domande frequenti.

Posso usare i dati in un prodotto commerciale (SaaS)?

L'uso interno — modelli, bot, analisi, strumenti tuoi — è incluso in tutti i piani. Mostrare i dati agli utenti finali di un tuo prodotto richiede la licenza di Redistribuzione Display (add-on Enterprise): autorizza la sola visualizzazione. Se il prodotto che vuoi vendere sono le surebet — arbitraggio, value betting o servizi equivalenti — serve la Surebet API, che si compra dal sito come un qualsiasi piano API: 950 €/mese + IVA, con la licenza per rivenderle inclusa nell'abbonamento e la dichiarazione d'uso obbligatoria prima del pagamento. Se non devi rivendere nulla non ti serve: ti basta surebett.app. La piattaforma completa col tuo marchio resta il White Label, a contratto — vedi Surebet API e White Label.

Ogni quanto si aggiornano le quote?

I bookmaker italiani a ciclo continuo — la freschezza REALE, misurata book per book (p50/p95), è pubblica sulla status page; bet365 arriva via un fornitore di dati terzo su licenza contrattuale, con cadenza di qualche minuto. Non devi fidarti sulla parola: ogni quota nella risposta porta il suo last_update.

C'è un trial dei piani a pagamento?

Il piano Free è per sempre e ha la stessa copertura dei piani a pagamento: è il modo migliore per verificare i dati. Se ti serve più volume per una prova, scrivici a [email protected].

Che differenza c'è con surebett.app?

Stesso motore, due prodotti: odss-api vende le quote grezze normalizzate per costruirci sopra; surebett.app è il prodotto finito, con gli arbitraggi già calcolati e gli stake bilanciati.

Esiste un'API per le quote dei bookmaker italiani con licenza ADM?

Sì: l'API espone le quote dei concessionari italiani presenti nel feed, filtrabili col parametro bookmakers. L'elenco attivo in questo momento è su GET /api/v1/bookmakers, che richiede una chiave API (la Free si genera in un minuto, senza carta); senza chiave sono pubblici /api/v1/leagues e /api/v1/coverage. Ogni quota porta il suo last_update.

Posso scaricare le quote in un database o in Excel?

Sì: l'API risponde JSON standard, quindi va dritta in Postgres, SQLite, pandas o Google Sheets. Con gli SDK Python e TypeScript bastano poche righe; il piano Free (500 richieste/mese) è sufficiente per provarci senza carta.

Quanto costa un'API di quote sportive?

Da noi: Free 500 richieste/mese senza carta, Hobby 19 €/mese + IVA (10.000), Starter 79 €/mese + IVA (100.000), Pro 159 €/mese + IVA (500.000), Enterprise configurabile da 199 € + IVA. Tutti gli importi sono al netto dell'IVA: a un privato italiano si aggiunge il 22%. Per le imprese di altri Stati UE con partita IVA valida si applica l'inversione contabile (imposta 0); per i clienti extra-UE l'operazione è fuori campo IVA italiana. Il totale è sempre indicato nel riepilogo del checkout, che confermi prima dell'ordine (§4 dei Termini). Stessa copertura su tutti i piani: paghi solo il volume.

Le quote sono in tempo reale?

I book italiani girano a ciclo continuo e la freschezza è misurata, non promessa: p50 e p95 delle ultime 24 ore sono pubblici sulla status page, book per book. Per il push c'è lo streaming SSE; il live in-play ha il suo feed.

Password dimenticata?