Skip to Content
Referência da APIOdds de Fechamento por Data

Odds de Fechamento Históricas

Recupere as odds de fechamento capturadas para todos os eventos em uma data específica — o último preço pré-jogo de cada casa de apostas antes de o jogo ficar ao vivo, com probabilidades justas sem vig calculadas pelo método Power.

GET /api/v1/historical/odds/closing

Tier Sharp ou superior obrigatório. Os tiers Pro e inferiores recebem um erro 403 tier_restricted. Este endpoint é controlado pelo recurso closing_lines.

Janela de dados Fase 1: As linhas de fechamento são capturadas em tempo real nas transições isLive false→true. O Valkey retém 30 dias de dados. Solicitar uma data anterior a 30 dias retornará um resultado vazio.

Autenticação

Requer API key. Tier Sharp ou superior obrigatório (recurso closing_lines).

Parâmetros de Consulta

ParâmetroTipoObrigatórioDescrição
datestringSimData no formato YYYY-MM-DD (UTC).
sportstringSimIdentificador do esporte, por exemplo, basketball, football, ice_hockey.
leaguestringSimIdentificador da liga, por exemplo, nba, nfl, nhl.

Todos os três parâmetros são obrigatórios. A resposta é filtrada para eventos que correspondam exatamente ao esporte e liga na data UTC informada.

Janela de Datas

O tier Sharp permite até 30 dias de retrospectiva. Solicitar uma data além da janela do seu tier retorna um erro 403 tier_restricted com o tamanho da janela permitida.

Exemplos de Requisições

# Linhas de fechamento da NBA para 10 de abril curl -X GET "https://api.sharpapi.io/api/v1/historical/odds/closing?date=2026-04-10&sport=basketball&league=nba" \ -H "X-API-Key: YOUR_API_KEY" # Linhas de fechamento da NFL curl -X GET "https://api.sharpapi.io/api/v1/historical/odds/closing?date=2026-04-06&sport=football&league=nfl" \ -H "X-API-Key: YOUR_API_KEY"

Resposta

Sucesso (200)

{ "success": true, "data": { "date": "2026-04-10", "sport": "basketball", "league": "nba", "events": [ { "event_id": "evt_nba_bos_mia_20260410", "sport": "basketball", "league": "nba", "home_team": "Boston Celtics", "away_team": "Miami Heat", "event_start_time": "2026-04-10T18:00:00Z", "first_captured_at": "2026-04-10T17:58:12.000000000Z", "books": [ { "book": "pinnacle", "captured_at": "2026-04-10T17:58:12.000000000Z", "lines": [ { "market_type": "moneyline", "selection": "Boston Celtics", "selection_type": "home", "line": null, "odds_american": -145, "odds_decimal": 1.690, "implied_probability": 0.5920, "no_vig_probability": 0.5813 }, { "market_type": "moneyline", "selection": "Miami Heat", "selection_type": "away", "line": null, "odds_american": 125, "odds_decimal": 2.250, "implied_probability": 0.4444, "no_vig_probability": 0.4187 }, { "market_type": "point_spread", "selection": "Boston Celtics", "selection_type": "home", "line": -3.5, "odds_american": -110, "odds_decimal": 1.909, "implied_probability": 0.5238, "no_vig_probability": 0.5000 } ] }, { "book": "draftkings", "captured_at": "2026-04-10T17:57:44.000000000Z", "lines": [ { "market_type": "moneyline", "selection": "Boston Celtics", "selection_type": "home", "line": null, "odds_american": -140, "odds_decimal": 1.714, "implied_probability": 0.5833, "no_vig_probability": 0.5730 }, { "market_type": "moneyline", "selection": "Miami Heat", "selection_type": "away", "line": null, "odds_american": 118, "odds_decimal": 2.180, "implied_probability": 0.4587, "no_vig_probability": 0.4270 } ] } ] } ], "total_events": 5, "total_lines": 48 }, "meta": { "source": "valkey:closing_line", "tier_window_days": 30, "filters": { "sport": "basketball", "league": "nba", "date": "2026-04-10" }, "updated_at": "2026-04-17T20:00:00.000000000Z" } }

Respostas de Erro

400 Erro de Validação

{ "error": { "code": "validation_error", "message": "date parameter is required in YYYY-MM-DD format" } }

403 Tier Restrito (tier incorreto)

{ "error": { "code": "tier_restricted", "message": "The 'closing_lines' feature requires Sharp or higher.", "required_tier": "sharp", "docs": "https://docs.sharpapi.io/en/pricing" } }

403 Tier Restrito (data muito antiga)

{ "error": { "code": "tier_restricted", "message": "Your sharp plan allows historical data up to 30 days back", "tier": "sharp", "docs": "https://sharpapi.io/pricing" } }

Campos da Resposta

Objeto data

CampoTipoDescrição
datestringA data solicitada (YYYY-MM-DD)
sportstringFiltro de esporte aplicado
leaguestringFiltro de liga aplicado
eventsarrayEventos com linhas de fechamento que correspondem à data, esporte e liga
total_eventsintegerNúmero de eventos na resposta
total_linesintegerNúmero total de linhas de fechamento individuais em todos os eventos e casas

Objeto Event

CampoTipoDescrição
event_idstringIdentificador único do evento
sportstringEsporte
leaguestringLiga
home_teamstringNome do time da casa
away_teamstringNome do time visitante
event_start_timestringHorário de início agendado em ISO 8601
first_captured_atstringTimestamp ISO 8601 da primeira captura de linha de fechamento para este evento
booksarrayPayloads de linhas de fechamento por casa

Objeto Book

CampoTipoDescrição
bookstringIdentificador da casa de apostas
captured_atstringTimestamp ISO 8601 de quando a linha de fechamento desta casa foi capturada
linesarrayArray de entradas de linha de fechamento para esta casa

Entrada de linha de fechamento

CampoTipoDescrição
market_typestringTipo de mercado: moneyline, point_spread, total_points, etc.
selectionstringRótulo da seleção (nome do time, Over/Under, jogador)
selection_typestringhome, away, over, under, etc.
linenumber|nullValor de spread ou total (-3.5, 220.5). null para moneylines.
player_namestringNome do jogador para player props (omitido caso contrário)
stat_categorystringTipo de estatística para player props (omitido caso contrário)
odds_americanintegerOdds americanas no fechamento
odds_decimalnumberOdds decimais no fechamento
implied_probabilitynumberProbabilidade implícita bruta (com vig)
no_vig_probabilitynumber|nullProbabilidade justa sem vig pelo método Power (0.0–1.0). Presente para mercados de 2 e 3 vias; null para mercados de seleção única.
timestampstringTimestamp ISO 8601 do registro de odds usado para captura

Objeto meta

CampoTipoDescrição
sourcestringSempre "valkey:closing_line" (backend Fase 1)
tier_window_daysintegerMáximo de dias de retrospectiva para seu tier (Sharp = 30)
updated_atstringTimestamp ISO 8601 da resposta

Casos de Uso

Análise de CLV: Compare valores de no_vig_probability entre as casas em relação à Pinnacle. Uma casa soft com no_vig_probability maior no favorito fechou mais frouxa — CLV positivo para apostadores que pegaram aquele lado.

Auditoria de line shopping: Recupere linhas de fechamento em todas as casas para entender onde havia valor disponível no fechamento.

Calibração de modelo: Use implied_probability e no_vig_probability como verdade histórica para calibrar seus próprios modelos de probabilidade.

Endpoints Relacionados

Last updated on