Comparação de Odds
Compare odds para um evento específico em múltiplos sportsbooks. Os resultados são organizados por mercado e seleção, com cálculos de hold e identificação dos melhores/piores books para cada seleção.
GET /api/v1/odds/comparisonAutenticação
Requer API key. Disponível para todos os tiers.
Os sportsbooks incluídos na comparação dependem do acesso a books do seu tier. O tier Free compara DraftKings e FanDuel; tiers superiores incluem mais books. Veja Acesso a Books por Tier.
Parâmetros de Query
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
event_id | string | obrigatório | ID do evento para comparar odds |
O parâmetro event_id é obrigatório. Este endpoint retorna uma comparação detalhada para um único evento.
Os parâmetros market e sportsbook não são suportados neste endpoint — a resposta sempre inclui todos os mercados e todos os books acessíveis ao seu nível. Filtre no lado do cliente pelo market_type de cada entrada, ou use /odds?event_id=...&market=... para filtragem de mercado no servidor.
Exemplos de Requisições
cURL
# Comparar todas as odds para um evento específico
curl -X GET "https://api.sharpapi.io/api/v1/odds/comparison?event_id=mlb_royals_whitesox_2026-06-26_b2" \
-H "X-API-Key: YOUR_API_KEY"
# Apenas moneyline — filtre no lado do cliente por market_type
curl -s "https://api.sharpapi.io/api/v1/odds/comparison?event_id=mlb_royals_whitesox_2026-06-26_b2" \
-H "X-API-Key: YOUR_API_KEY" | jq '[.data[] | select(.market_type == "moneyline")]'Resposta
Sucesso (200)
{
"data": [
{
"market_type": "moneyline",
"selection": "CHI White Sox",
"line": null,
"books": [
{ "sportsbook": "fanduel", "odds_american": -140, "odds_decimal": 1.714, "timestamp": "2026-06-27T02:11:20.000Z" },
{ "sportsbook": "draftkings", "odds_american": -145, "odds_decimal": 1.690, "timestamp": "2026-06-27T02:11:24.000Z" },
{ "sportsbook": "betmgm", "odds_american": -150, "odds_decimal": 1.667, "timestamp": "2026-06-27T02:11:18.000Z" }
],
"book_holds": [
{ "sportsbook": "fanduel", "hold": 4.2 },
{ "sportsbook": "draftkings", "hold": 4.7 },
{ "sportsbook": "betmgm", "hold": 5.1 }
]
},
{
"market_type": "moneyline",
"selection": "KC Royals",
"line": null,
"books": [
{ "sportsbook": "betmgm", "odds_american": 130, "odds_decimal": 2.300, "timestamp": "2026-06-27T02:11:18.000Z" },
{ "sportsbook": "draftkings", "odds_american": 125, "odds_decimal": 2.250, "timestamp": "2026-06-27T02:11:24.000Z" }
]
}
],
"pagination": {
"limit": 0,
"offset": 0,
"count": 2,
"has_more": false,
"next_offset": null
},
"updated_at": "2026-06-27T02:11:20.000Z"
}data é um array plano de entradas de comparação — uma por combinação (mercado, seleção). O array books dentro de cada entrada está ordenado do melhor preço primeiro, então books[0] é o melhor preço disponível e books[books.length - 1] é o pior. book_holds só está presente quando o book fixou preço nos dois lados do mercado da seleção.
Headers de Resposta
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 297
X-RateLimit-Reset: 1737853200
X-Data-Delay: 0
X-Request-Id: 1782526326424224-82519Schema da Resposta
O data da resposta é um array plano de entradas de comparação — um objeto por combinação (mercado, seleção) do evento. Não há campo success no nível superior nem objeto meta; metadados de paginação são retornados no objeto pagination do nível superior e o horário do snapshot em updated_at.
Entrada de Comparação
| Campo | Tipo | Descrição |
|---|---|---|
market_type | string | Tipo de mercado (ex.: moneyline, spread, total_runs) |
selection | string | Nome da seleção (nome do time, Over/Under, etc.) |
line | number | null | Valor da linha (para spreads/totals); null para moneylines |
books | array | Preço de cada sportsbook para esta seleção, ordenado do melhor preço primeiro |
book_holds | array | Hold (%) por book para esta seleção. Omitido quando o book não fixou preço no lado oposto. |
Objeto Book Odds (books[])
| Campo | Tipo | Descrição |
|---|---|---|
sportsbook | string | ID do sportsbook |
odds_american | number | Odds americanas |
odds_decimal | number | Odds decimais |
timestamp | string | Horário ISO 8601 em que a SharpAPI atualizou pela última vez a linha deste book através do seu pipeline — avança a cada ciclo de ingestão. É um sinal de frescor / liveness do feed; não é quando o preço mudou pela última vez. Veja Entendendo o campo timestamp. |
Objeto Hold (book_holds[])
| Campo | Tipo | Descrição |
|---|---|---|
sportsbook | string | ID do sportsbook |
hold | number | Hold (overround) %, calculado emparelhando o preço deste book nos dois lados do mercado da seleção. |
Entendendo o Hold
O campo book_holds de cada entrada mostra a margem embutida do bookmaker, por book, para o mercado daquela seleção:
- Um hold mais baixo significa um preço mais eficiente (sharp).
- Uma ampla variação de holds entre books para a mesma seleção significa que o line shopping é especialmente valioso para aquele mercado.
| Hold (%) | Interpretação |
|---|---|
| < 2 | Mercado muito eficiente (sharp books) |
| 2-5 | Mercado normal |
| 5-8 | Margem alta (típico para props) |
| > 8 | Margem muito alta |
Casos de Uso
Line Shopping
O array books está ordenado do melhor preço primeiro, então books[0] é o preço a tomar. Compare entre books para a mesma seleção:
curl -s "https://api.sharpapi.io/api/v1/odds/comparison?event_id=mlb_royals_whitesox_2026-06-26_b2" \
-H "X-API-Key: YOUR_API_KEY" | jq '[.data[] | select(.market_type == "run_line")]'Identificando Linhas Defasadas
Procure books que não foram atualizados recentemente verificando o timestamp de cada book. Um book com odds defasadas pode estar lento para se ajustar, criando valor temporário.
Eficiência do Mercado
Compare book_holds entre books para uma seleção. Uma ampla diferença entre o hold mais baixo e o mais alto significa que o line shopping é particularmente valioso para este mercado.
Endpoints Relacionados
- Snapshot de Odds - Obter odds brutas de sportsbooks individuais
- Melhores Odds - Obter apenas as melhores odds com consenso e hold
- Delta de Odds - Obter apenas odds que mudaram desde um determinado timestamp
- Odds em Lote - Buscar dados de comparação para múltiplos eventos de uma só vez