---
title: "API de cotes des bookmakers italiens — 40+ opérateurs agréés ADM | odss-api"
description: "Cotes de 40+ bookmakers, dont les opérateurs italiens agréés ADM absents des API globales, dans un schéma JSON stable. Self-serve, clé gratuite."
url: https://odss-api.com/fr
---

# Les cotes des bookmakers italiens, en une seule API

Des cotes normalisées de dizaines de bookmakers — y compris les italiens que les API globales n'ont pas — dans un format JSON stable. Pour vos modèles, bots et outils.

● books IT en cycle continu · fraîcheur mesurée event_id stable · last_update par cote self-serve · sans carte

```
# une requête, toutes les cotes d'un événement
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" } ]}]}
```

## Trois étapes pour intégrer les cotes

### Créez la clé

Inscrivez-vous et générez une clé odss_live en une minute. Le plan Free est permanent, sans carte.

### Appelez /odds

Un endpoint, toutes les cotes cross-book par événement et marché. Filtres par sport, ligue, marché et bookmaker.

### Intégrez et synchronisez

event_id stable pour reconnaître les événements, last_update pour la fraîcheur, offset pour lire tout le programme.

## L'atout : les books italiens.

### Les bookmakers ADM que les API globales n'ont pas

Des dizaines d'opérateurs italiens agréés ADM, plus des books de référence internationaux et des exchanges. La liste active à cet instant est sur **/api/v1/bookmakers**, avec une clé API : aucune liste de marques à croire sur parole. **country**, **playable_it** et **is_exchange** sont des champs de la réponse, pas des paramètres de requête — l'endpoint n'en accepte aucun.

### Schéma stable

Un format JSON public et versionné : la forme interne du moteur n'atteint jamais votre code.

### Intégration fiable

event_id déterministe pendant toute la fenêtre prématch, last_update ISO par book, pagination par offset : des syncs sans surprises.

### Fraîcheur honnête

Les books italiens sont relus en cycle continu — fraîcheur réelle mesurée sur la status page ; bet365 arrive via un fournisseur de données tiers sous licence contractuelle, avec une cadence de quelques minutes. Chaque cote déclare son last_update : pas de chiffres périmés déguisés en live.

## La comparaison honnête.

Où nous nous situons face aux API globales et à la moyenne du marché. Sans noms, sans promesses.

Comparaison avec la moyenne des fournisseurs globaux/enterprise évalués (juil. 2026). Notre côté est vérifiable depuis les endpoints publics et la documentation.

## Bookmakers & ligues

Des chiffres live, comptés depuis le flux à l'instant — pas un inventaire de catalogue.

—

bookmakers actifs dans le flux

—

sports cotés en ce moment

—

ligues au programme

La liste nominative des books actifs à cet instant est sur **GET /api/v1/bookmakers**, avec les champs **country**, **playable_it**, **is_exchange** et **source** : elle exige une clé API (la Free se crée en une minute, sans carte). Sans clé, **GET /api/v1/leagues** — d'où viennent les compteurs ci-dessus — et **GET /api/v1/coverage** sont publics.

### Les ligues au programme maintenant

Données live du flux (endpoint public /api/v1/leagues) : pour chaque sport, les ligues cotées en ce moment. Les noms sont les valeurs du filtre league.

Chargement du programme…

Le programme suit la saison : en été, le football de clubs est naturellement réduit.

## Documentation

Base URL https://odss-api.com. Authentification via l'en-tête x-api-key: odss_live_… ou Authorization: Bearer. Réponses JSON, cotes décimales européennes.

### GET /api/v1/mock/odds sans clé

Chaque endpoint a un jumeau sous `/api/v1/mock/` qui répond **tout de suite, sans inscription et sans consommer de quota** : même forme de réponse, mêmes paramètres, même validation stricte que le flux réel. Les cotes sont synthétiques — `mock: true`, en-tête `X-Odss-Mock: 1`, ids préfixés `mock_` — elles servent à écrire et tester votre code, pas à parier.

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

Disponibles : /mock/odds · /mock/odds/history · /mock/sports · /mock/bookmakers · /mock/leagues · /mock/status · /mock/stream (SSE). Le paramètre `seed` rend la réponse reproductible : utilisez-le en CI plutôt que de brûler du quota à chaque exécution.

Sur le flux RÉEL, sont aussi publics sans clé `/api/v1/leagues`, `/api/v1/coverage` et `/api/v1/status`.

### Premier appel en 3 étapes

#### Créez la clé

Inscrivez-vous et générez une clé dans le tableau de bord. Le plan Free est permanent.

#### Listez les sports

Vérifiez la clé avec un appel à /sports.

#### Demandez les cotes

Appelez /odds avec sport et marché : vous obtenez les cotes cross-book.

### GET /api/v1/odds exemple

```
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

Les cotes cross-book actuelles, regroupées par événement, marché et ligne. Chaque enregistrement liste les bookmakers avec leurs issues et l'horodatage de leur dernière mise à jour.

#### Paramètres

| Paramètre | Description |
| --- | --- |
| `sport` | Filtre exact sur le sport (ex. calcio, tennis, basket). Valeurs : voir /api/v1/sports. |
| `market` | Marché canonique : 1x2, ou, btts, dc, ah (handicap asiatique), eh (handicap européen), moneyline… |
| `bookmakers` | Liste CSV de clés book (ex. snai,bet365). Valeurs : voir /api/v1/bookmakers. |
| `league` | Filtre par sous-chaîne, insensible à la casse (ex. serie a). Valeurs : voir /api/v1/leagues. |
| `event_id` | Un seul événement, par id exact. |
| `state` | prematch (par défaut), live (in-play, avec score et minute actuels) ou all (les deux). Avec live, si le moteur in-play est éteint la liste est vide et live_enabled=false. Si la clé a un périmètre de flux (prématch seul ou live seul), un state hors périmètre renvoie 403 et all se replie sur l'état autorisé. |
| `limit` | Enregistrements par page. Défaut 500, max 2000. |
| `offset` | Index de départ pour la pagination. Défaut 0. |

#### Champs de la réponse

| Champ | Description |
| --- | --- |
| `count` | Total des enregistrements correspondant aux filtres (toutes pages). |
| `offset · returned` | Écho de l'offset demandé et enregistrements renvoyés dans cette page. |
| `odds[].event_id` | Id déterministe de l'événement : identique pour tous les marchés du même match et stable pendant toute la fenêtre prématch. |
| `odds[].event` | Nom normalisé de l'événement (Domicile - Extérieur). |
| `odds[].sport · league` | Sport et ligue/compétition de l'événement. |
| `odds[].home_team · away_team` | Les deux équipes, quand disponibles. |
| `odds[].commence_time` | Début de l'événement, ISO 8601 UTC. |
| `odds[].market · line · scope · period` | Marché canonique, ligne éventuelle (ex. 2.5), portée (ex. équipe) et période (ex. 1re mi-temps). |
| `odds[].state · score · minute` | state = prematch ou live. Pour le live : score (ex. « 1-0 ») et minute (ex. « 63' ») actuels. Même event_id que le prématch → corrèle le même match dans les deux états. |
| `…bookmakers[].key` | Clé du bookmaker, avec country, playable_it et is_exchange. |
| `…bookmakers[].outcomes` | Carte issue → cote décimale (ex. HOME: 2.10). |
| `…bookmakers[].suspended` | Issues que ce book cote mais sur lesquelles il **n'accepte pas de paris en ce moment**. Elles ne sont pas dans outcomes (une issue suspendue n'a pas de prix jouable) et sont nommées ici, pour que «le book ne propose pas cette issue» et «il la propose et elle est fermée maintenant» restent deux faits distincts. **Champ optionnel, et son absence veut dire quelque chose**: s'il manque, la source de ce book ne déclare pas l'état; [] veut dire lue, et rien de suspendu. Ne lisez jamais l'absence comme une liste vide. |
| `…bookmakers[].last_update` | Horodatage ISO de la dernière mise à jour réussie de ce book. |

#### Pagination

Répétez l'appel en augmentant offset de returned, tant que offset + returned < count. Le programme est vivant : count peut varier légèrement entre les pages.

```
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

Les sports disponibles en ce moment dans le flux (les valeurs du paramètre sport).

### GET /api/v1/bookmakers

Les bookmakers actifs dans le flux, avec country (code ISO 3166-1 alpha-2 du pays de licence — IT, GB, US, SE… — ou world lorsqu'il n'est pas attribué), playable_it (true uniquement pour les books titulaires d'une licence ADM italienne, donc jouables depuis l'Italie : false pour tous les autres books du flux, des références sharp comme Pinnacle aux marques étrangères), is_exchange (commission sur les gains) et source (direct si nous lisons le book nous-mêmes, partner_feed si sa cote nous parvient via un fournisseur de données tiers).

### GET /api/v1/leagues public, sans clé

Le programme actuel agrégé : pour chaque sport, les ligues cotées, avec nombre d'événements et de bookmakers. Utile pour découvrir les valeurs du filtre league.

### GET /api/v1/stream Pro et Enterprise

Server-Sent Events : un événement hello à la connexion, puis des événements odds avec les enregistrements MODIFIÉS (même schéma que /odds, chacun avec son state) et les supprimés, sous ~10 secondes après leur détection par le moteur — pas de polling. Paramètres optionnels sport et state (prematch|live|all) ; snapshot initial via GET /odds?state=…. La cadence des données reste celle du moteur (fraîcheur par book mesurée sur la status page ; bet365 via un fournisseur de données tiers sous licence contractuelle) : le stream supprime la latence de polling, last_update fait foi. Max 3 streams concurrents ; la connexion compte pour 1 requête de quota.

### GET /api/v1/odds/history

Historique des variations de cote d'un événement : une ligne à chaque fois qu'un bookmaker bouge un prix sur un groupe. Filtres `event_id` (obligatoire), `book`, `market`, `from`/`to` (ISO), `limit`. Du plus récent : pour un événement commencé, la première ligne est sa clôture. Respecte la portée de la clé.

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

### GET /api/v1/middles

Middles Over/Under calculés sur le flux courant : OVER sur une ligne basse chez un book, UNDER sur une ligne haute chez un autre. Si le total tombe dans la fenêtre, les deux paris gagnent. Champs `middle_window`, `hit_return_pct`, `miss_return_pct`, `safe` (aucune perte même à côté). Filtres : `sport`, `min_return`, `safe`, `limit`.

**Règle de fraîcheur :** une cote figée depuis plus de `stale_after_seconds` (900s par défaut) reste dans les réponses de `/odds` avec son `last_update`, mais n'est **jamais appariée** dans un middle : une jambe périmée n'existe probablement plus chez le bookmaker. Le seuil appliqué et les jambes écartées figurent dans la réponse.

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

### GET /api/v1/coverage public, sans clé

Combien de **marques** de bookmakers ont une cote valide dans le flux actuel, par région (Italie, USA, UK, monde). Ne correspond pas au nombre d'entrées de `/api/v1/bookmakers` : cet endpoint liste les **clés** interrogeables, où les lignes de marché dédiées (ex. `<marque>-corners`) comptent à part, alors qu'ici elles sont regroupées sous la marque.

### POST /api/mcp MCP

Serveur MCP (JSON-RPC 2.0) pour agents IA et connecteurs (Claude, ChatGPT…). Auth avec la même clé (Authorization: Bearer odss_live_… ou x-api-key). Outils : get_odds (avec state=live), list_sports, list_bookmakers, list_leagues. Seul tools/call consomme du quota ; le handshake est gratuit. Stateless.

```
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

Enregistrez une URL (https) depuis le tableau de bord ou via l'API — POST /api/account/webhooks avec la session compte (body &#123;url, sport?, state?&#125; ; le secret n'est montré qu'une fois, max 20 par compte) — et recevez les changements de cotes par POST — même payload &#123;changed, removed&#125; que le flux. Chaque livraison est signée : X-Odss-Signature: t=<unix>,v1=<hex> = HMAC-SHA256 de «&#123;timestamp&#125;.&#123;body&#125;» avec le secret (vérifiez-la, rejetez les vieux timestamps). https uniquement, pas de redirections ; les endpoints en échec se désactivent. Répondez 2xx. Une livraison peut arriver en plusieurs POST consécutifs, chacun signé séparément et numéroté par l'en-tête X-Odss-Page: page/total : chaque corps porte page, pages, changed_total et removed_total, la première page vous dit donc déjà combien arrive. Ne limitez pas la fréquence de l'endpoint : une page refusée arrête les suivantes.

### Limites, en-têtes et erreurs

Chaque réponse authentifiée inclut X-RateLimit-Limit (quota mensuel du plan), X-RateLimit-Remaining et X-RateLimit-Reset (temps unix en secondes où la fenêtre se rouvre ; sur le 429 de quota la même date est dans le corps comme retry_at). Le quota est une fenêtre glissante de 30 jours.

| Status | Description |
| --- | --- |
| `400` | Requête invalide : paramètre inconnu, valeur hors de celles admises (ex. state) ou paramètre obligatoire manquant (ex. event_id sur /odds/history). Le corps de la réponse indique lequel. |
| `401` | Clé absente, invalide ou révoquée. |
| `403` | Hors périmètre : compte suspendu, flux hors du périmètre de la clé (ex. live avec une clé prématch seul) ou fonction selon le plan (stream : Pro et Enterprise ; webhooks : Enterprise). |
| `429` | Burst : requêtes par minute du plan dépassées. En-tête Retry-After: 60. |
| `429` | Quota mensuel épuisé : passez au plan supérieur ou attendez la fenêtre. |
| `502` | Flux temporairement indisponible : réessayez avec backoff. |

#### Paramètres : aucun silence

Sur tous les endpoints /api/v1, un paramètre que nous ne reconnaissons pas n'est jamais ignoré : si vous écrivez bookmaker au lieu de bookmakers, vous recevez 400 avec le nom erroné, la liste de ceux admis sur cet endpoint et, s'il s'agit d'une faute de frappe, la suggestion du nom correct. La comparaison est exacte : même Sport avec une majuscule est rejeté. Les endpoints de catalogue (/sports, /bookmakers, /leagues, /coverage, /status) n'acceptent aucun paramètre. Nous préférons une erreur immédiate à une réponse 200 avec des données non filtrées qui semblent correctes : le 400 est déterministe, il doit être corrigé et non réessayé, et il ne consomme pas de quota.

La même règle s'applique aux arguments des outils du serveur MCP (POST /api/mcp) : un nom qui n'existe pas, ou un type erroné comme une liste au lieu de la chaîne CSV, reçoit une erreur JSON-RPC -32602 plutôt que d'être ignoré. Le champ error.data contient les noms admis, de sorte que l'agent se corrige tout seul.

```
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 · contrat & agents

Pour générer des clients, SDK ou utiliser l'API depuis un agent IA : le contrat OpenAPI 3.1 et un guide concis pour LLM sont publics et toujours synchronisés.

| Champ | Description |
| --- | --- |
| [/openapi.json](https://odss-api.com/openapi.json) | Contrat OpenAPI 3.1 (endpoints, paramètres, schémas, auth x-api-key). |
| [/llms.txt](https://odss-api.com/llms.txt) | Guide markdown pour LLM (llmstxt.org) : résumé et liens vers les ressources. |
| [/postman_collection.json](https://odss-api.com/postman_collection.json) | Collection Postman : importez-la et définissez la variable x-api-key pour tester les endpoints tout de suite. |
| [/sdk/odss_api.py](https://odss-api.com/sdk/odss_api.py) | SDK Python officiel (fichier unique, sans dépendances) : client typé avec pagination automatique et support live. |
| [/sdk/odss-api.ts](https://odss-api.com/sdk/odss-api.ts) | SDK TypeScript officiel (fichier unique, sans dépendances) : types, itérateur async et helper pour le flux SSE. |
| [/.well-known/api-catalog](https://odss-api.com/.well-known/api-catalog) | Catalogue d'API (RFC 9727, linkset JSON). |

### Licence d'utilisation

L'usage interne (modèles, bots, analyses, backtests) est inclus dans tous les plans. Redistribuer les données — p. ex. les afficher aux utilisateurs finaux de votre produit — exige la licence de **Redistribution Display** (option Enterprise, +120 €/mois), qui ne couvre que l'affichage. Créer, alimenter ou commercialiser des services de **surebet/arbitrage**, de **value betting** ou équivalents exige en revanche la Surebet API, le plan qui comprend la licence pour revendre les surebets calculées : 950 €/mois + TVA, depuis le site. Redistribuer l'API ou les données brutes reste hors de tout plan : pour cela, écrivez à info@praxis3.it.

## Le bon plan pour votre volume.

Même couverture sur tous les plans : vous ne payez que le volume. Commencez gratuitement, résiliez quand vous voulez.

### Free

Pour explorer l'API. Pour toujours, sans carte.

- 500 requêtes / mois

- 30 requêtes / min

- Couverture complète : tous les sports et tous les books du flux

### Hobby

Pour projets personnels et petits bots.

- 10 000 requêtes / mois

- 60 requêtes / min

- Couverture complète : tous les sports et tous les books du flux

### Starter

Pour bots et intégrations en production.

- 100 000 requêtes / mois

- 120 requêtes / min

- Couverture complète : tous les sports et tous les books du flux

### Pro

Pour plateformes et gros volumes.

- 500 000 requêtes / mois

- 600 requêtes / min

- Priorité d'assistance

### Enterprise

Pour plateformes, entreprises et revendeurs : configurez volume, débit et licence — le prix se met à jour tout seul et vous activez au checkout, sans négociation.

Vous autorise à **afficher** les données aux utilisateurs finaux de votre produit — sites, applications, tableaux de bord, widgets, comparateurs (sans elle, l'usage reste interne). Elle n'autorise **pas** à créer ou commercialiser des services de surebet/arbitrage, de value betting ou des plateformes équivalentes, ni à redistribuer l'API ou les données brutes : il faut pour cela une licence commerciale dédiée. [Lire la licence →](https://odss-api.com/#)

Usage déclaré — exigé par la Licence, §8

La licence SaaS vous autorise à afficher les données à vos utilisateurs finaux : déclarez qui vous êtes et où vous les affichez. À remplir une seule fois, maintenant.

- Streaming SSE inclus (/api/v1/stream)

- Quota et débit configurés sur votre compte

- Activation automatique au paiement, résiliez quand vous voulez

En continuant vous acceptez la Licence Enterprise et de Redistribution (lisible via le lien ci-dessus) en plus des Conditions du service.

Les prix indiqués s'entendent **hors taxes**. La taxe applicable est ajoutée au moment du paiement selon votre pays et votre statut fiscal : **22 % pour l'Italie** (y compris pour les entreprises disposant d'un numéro de TVA italien) ; **autoliquidation, taxe 0 %**, pour les entreprises **d'autres États membres de l'UE** disposant d'un numéro de TVA valide ; **opération hors champ de la TVA italienne** pour les clients hors UE. Le montant total que vous payez est celui indiqué par le récapitulatif du paiement, que vous confirmez avant de valider votre commande (§4 des Conditions) · Paiements via Stripe · résiliation en un clic depuis le portail · le quota est une fenêtre glissante de 30 jours

## Trois niveaux, un seul moteur.

Les cotes normalisées sont le premier niveau. Si le produit que vous voulez vendre, ce sont les arbitrages, il vous faut un autre niveau : les surebets déjà calculées, avec le droit de les revendre compris dans l'abonnement.

Niveau 1 · self-serve

### Odds API

Cotes et données normalisées. Du plan Free à l'Enterprise, tarif public et activation immédiate.

Niveau 2 · self-serve

### Surebet API

Les surebets déjà repérées et calculées par le moteur, actualisées toutes les 180 secondes, pas seulement les cotes. Un plan API à 950 €/mois + TVA, licence de revente comprise.

Niveau 3 · sous contrat

### Surebet White Label

La plateforme complète, à votre marque, prête à être commercialisée. 2 000 €/mois + TVA.

### Surebet API

Pour qui construit dessus son propre produit. Elle ne renvoie pas que les cotes : elle renvoie les surebets déjà repérées et calculées par notre moteur, actualisées toutes les 180 secondes. Si vous n'avez personne à qui les revendre, elle ne vous sert pas : surebett.app suffit.

Usage déclaré — obligatoire pour la Surebet API Commercial License

La Surebet API Commercial License vous autorise à utiliser les opportunités calculées dans un produit qui vous appartient et destiné aux utilisateurs finaux : déclarez qui vous êtes et où vous les publiez. À remplir une seule fois, maintenant.

Activation dès le paiement, résiliation en un clic depuis le portail. C'est un plan à part qui ne s'ajoute pas à un plan du catalogue : si le compte en a déjà un payant actif, il faut le résilier d'abord. En continuant vous souscrivez la Surebet API Commercial License, dans les limites de l'usage que vous avez déclaré ci-dessus, et vous acceptez les Conditions du service (§5).

- Événement et marché

- Bookmakers concernés et cotes de chaque jambe

- Pourcentage/marge d'arbitrage

- Mises optimales

- Timestamp et fraîcheur des cotes

- Identifiants nécessaires à l'intégration

Les champs listés sont ceux prévus **lorsqu'ils sont disponibles** : la réponse contient ce que le moteur a réellement calculé pour cet événement. La licence de revente est comprise dans l'abonnement : vous pouvez utiliser les surebets calculées dans un produit commercial qui vous appartient, destiné à vos utilisateurs finaux, dans les limites de l'usage déclaré et des Conditions. Elle ne comprend pas le White Label, qui reste un contrat à part.

### Surebet White Label

Pour les entreprises qui ne veulent pas développer la plateforme elles-mêmes : la Surebet complète, fournie comme service à votre marque.

- Moteur Surebet

- Données et mises à jour

- Frontend complet

- Personnalisation du logo, du nom et des couleurs

- Hébergement et infrastructure

- Maintenance et mises à jour

Le logiciel, le moteur et le code source **restent notre propriété** et sont concédés en usage selon le contrat White Label.

La licence « Redistribution Display » des plans API vous autorise à **afficher** les cotes dans votre produit : elle n'autorise pas à créer ou commercialiser des services de surebet/arbitrage, de value betting ou des plateformes substantiellement équivalentes, ni à redistribuer l'API ou les données brutes. Ces usages exigent la Surebet API Commercial License ou le contrat White Label — voir les licences commerciales et les Conditions, §5.

## Questions fréquentes.

L'usage interne — vos modèles, bots, analyses, outils — est inclus dans tous les plans. Afficher les données aux utilisateurs finaux de votre produit exige la licence de Redistribution Display (option Enterprise) : elle n'autorise que l'affichage. Si le produit que vous voulez vendre, ce sont les surebets — arbitrage, value betting ou services équivalents —, il faut la Surebet API, qui s'achète sur le site comme n'importe quel plan API : 950 €/mois + TVA, licence de revente **comprise** dans l'abonnement, avec la déclaration d'usage obligatoire avant le paiement. Si vous n'avez personne à qui revendre, elle ne vous sert pas : surebett.app suffit. La plateforme complète à votre marque reste le White Label, sous contrat — voir Surebet API et White Label.

Les books italiens en cycle continu — la fraîcheur RÉELLE, mesurée book par book (p50/p95), est publique sur la status page ; bet365 arrive via un fournisseur de données tiers sous licence contractuelle, avec une cadence de quelques minutes. Pas besoin de nous croire sur parole : chaque cote de la réponse porte son last_update.

Le plan Free est permanent et a la même couverture que les plans payants : c'est le meilleur moyen de vérifier les données. S'il vous faut plus de volume pour une évaluation, écrivez à info@praxis3.it.

Même moteur, deux produits : odss-api vend les cotes brutes normalisées pour construire dessus ; surebett.app est le produit fini, avec les arbitrages déjà calculés et des mises équilibrées.

Oui : l'API expose les cotes des opérateurs italiens présents dans le flux, filtrables avec le paramètre bookmakers. La liste active à cet instant est sur GET /api/v1/bookmakers, qui exige une clé API (la Free se crée en une minute, sans carte) ; sans clé, /api/v1/leagues et /api/v1/coverage sont publics. Chaque cote porte son last_update.

Oui : l'API renvoie du JSON standard, donc direction Postgres, SQLite, pandas ou Google Sheets. Avec les SDK Python et TypeScript, quelques lignes suffisent ; le plan Free (500 requêtes/mois) permet d'essayer sans carte.

Chez nous : Free 500 requêtes/mois sans carte, Hobby 19 €/mois + TVA (10 000), Starter 79 €/mois + TVA (100 000), Pro 159 €/mois + TVA (500 000), Enterprise dès 199 € + TVA. Tous les montants s'entendent **hors taxes** : pour un particulier italien on ajoute 22%. Les entreprises d'autres États membres de l'UE disposant d'un numéro de TVA valide relèvent de l'autoliquidation (taxe 0 %) ; pour les clients hors UE l'opération est hors champ de la TVA italienne. Le total figure toujours dans le récapitulatif du paiement, que vous confirmez avant la commande (§4 des Conditions). Même couverture sur tous les plans : vous ne payez que le volume.

Les books italiens tournent en cycle continu et la fraîcheur est mesurée, pas promise : p50 et p95 des dernières 24 h sont publics sur la status page, book par book. Streaming SSE pour le push ; le live a son propre flux.

Nécessaires pour émettre la facture ou le reçu de votre abonnement.

Elles figurent sur la facture. Avec un numéro de TVA italien, le code destinataire SDI ou la PEC est aussi requis.

[Mot de passe oublié ?](https://odss-api.com/#)

### Contacter l'équipe

Écrivez-nous : on ouvre un ticket et on répond par email. Pas de bots.
