Skip to Content

Oportunidades de Low Hold

Encontre mercados com o menor vig (hold) entre sportsbooks — as linhas mais apertadas disponíveis.

GET /api/v1/opportunities/low_hold

AutenticaçãoLink permanente para esta seção

Requer chave de API. Tier Pro ou superior obrigatório. Sua conta deve ter o recurso low_hold habilitado.

Mudança incompatível: O campo game_state (placar/período/relógio) foi removido desta resposta. O estado ao vivo do jogo agora é servido exclusivamente pelo endpoint Game State e pelo canal de stream gamestate. Faça o join das linhas com o estado do jogo por event_id.

Parâmetros de QueryLink permanente para esta seção

ParâmetroTipoPadrãoDescrição
sportstringtodosFiltrar por esporte(s), separados por vírgula (ex: basketball, football)
leaguestringtodasFiltrar por liga(s), separadas por vírgula (ex: nba, nfl, nhl)
sportsbookstringpermitidos pelo tierFiltrar por sportsbook(s), separados por vírgula. Limites do tier são aplicados.
marketstringtodosFiltrar por tipo(s) de mercado, separados por vírgula
max_holdnumber5.0Percentual máximo de hold (vig). Menor = linhas mais apertadas.
is_liveboolean—true = somente ao vivo, false = somente pré-jogo, omitir = ambos
statestringpaCódigo de estado dos EUA apenas para o destino do deep link; não filtra odds nem retorna preços específicos por estado. Aceita os 50 códigos de estados dos EUA e dc. Códigos não vazios não aceitos (incluindo on) retornam 400 invalid_filter. Valores omitidos ou vazios usam pa.
sortstringholdCampo de ordenação: hold (menor primeiro, padrão), market, sport
limitinteger50Resultados por página (máx 200)
offsetinteger0Offset de paginação

Filtrando Múltiplos ValoresLink permanente para esta seção

Use valores separados por vírgula para filtros de seleção múltipla:

?sport=basketball,football&league=nba,nfl&max_hold=3

Exemplos de RequisiçõesLink permanente para esta seção

# Moneylines de low-hold abaixo de 2% de vig curl -X GET "https://api.sharpapi.io/api/v1/opportunities/low_hold?league=nba&max_hold=2&market=moneyline" \ -H "X-API-Key: YOUR_API_KEY" # Com state para deep links curl -X GET "https://api.sharpapi.io/api/v1/opportunities/low_hold?league=nfl&state=nj" \ -H "X-API-Key: YOUR_API_KEY"

RespostaLink permanente para esta seção

Sucesso (200)Link permanente para esta seção

{ "success": true, "data": [ { "id": "lh_nba_lal_bos_ml_0", "event_id": "evt_nba_lal_bos_20260208", "event_name": "Los Angeles Lakers @ Boston Celtics", "sport": "basketball", "league": "nba", "market_type": "moneyline", "home_team": "Boston Celtics", "away_team": "Los Angeles Lakers", "start_time": "2026-02-08T19:00:00Z", "line": null, "hold_percentage": 1.8, "side1": { "selection": "Los Angeles Lakers", "books": ["draftkings", "betmgm"], "line": null, "odds": { "american": 145, "decimal": 2.45, "implied_probability": 0.408, "fair_probability": 0.415 }, "deep_links": { "draftkings": "https://sportsbook.draftkings.com/...", "betmgm": "https://sports.betmgm.com/..." } }, "side2": { "selection": "Boston Celtics", "books": ["pinnacle", "fanduel"], "line": null, "odds": { "american": -155, "decimal": 1.645, "implied_probability": 0.608, "fair_probability": 0.585 }, "deep_links": { "pinnacle": null, "fanduel": "https://sportsbook.fanduel.com/..." } }, "side3": null, "is_live": false, "is_alternate_line": false, "is_player_prop": false, "player_name": null, "stat_category": null, "all_books": ["draftkings", "betmgm", "pinnacle", "fanduel"], "confidence": 92, "odds_age_seconds": 5, "possibly_stale": false, "detected_at": "2026-02-08T14:22:10.456Z" } ], "pagination": { "limit": 50, "offset": 0, "total": 87, "has_more": true, "next_offset": 50 }, "meta": { "source": "cache", "summary": { "count": 87, "avg_hold": 2.4, "min_hold": 0.8, "by_market": { "moneyline": 35, "point_spread": 30, "total_points": 22 }, "by_sport": { "basketball": 87 } }, "filters": { "sport": null, "league": ["nba"], "sportsbook": null, "market": null, "max_hold": 5.0, "live": null, "state": "pa" } } }

Headers da RespostaLink permanente para esta seção

X-RateLimit-Limit: 300 X-RateLimit-Remaining: 296 X-RateLimit-Reset: 1707401000 X-Data-Delay: 0 X-Request-Id: req_lh123abc456

Respostas de ErroLink permanente para esta seção

401 Unauthorized

Se nenhuma chave for enviada, retorna missing_api_key; uma chave inválida retorna invalid_api_key.

{ "error": { "code": "missing_api_key", "message": "API key required. Pass via X-API-Key header, api_key query parameter, or Bearer token.", "docs": "https://docs.sharpapi.io/en/authentication" } }

403 Tier Required

{ "error": { "code": "tier_restricted", "message": "This endpoint requires Pro tier or higher", "docs": "https://docs.sharpapi.io/en/pricing" } }

429 Rate Limited

{ "error": { "code": "rate_limited", "message": "Rate limit exceeded", "docs": "https://docs.sharpapi.io/en/api-reference/overview" } }

Campos da RespostaLink permanente para esta seção

CampoTipoDescrição
idstringIdentificador único de low-hold (hash)
event_idstringIdentificador do evento
event_namestringNome legível do evento
sportstringIdentificador do esporte (minúsculo)
leaguestringIdentificador da liga
market_typestringTipo de mercado (moneyline, point_spread, total_points, etc.)
home_teamstringNome do time da casa
away_teamstringNome do time visitante
start_timestring|nullHorário de início do evento em ISO 8601
linenumber|nullLinha de spread/total (ex: -3.5, 220.5)
hold_percentagenumberPercentual de hold/vig do mercado (ex: 1.8 = 1.8%)
side1objectPrimeiro lado do mercado
side2objectSegundo lado do mercado
side3object|nullTerceiro lado (apenas para mercados de 3 vias, como moneyline de futebol)
is_livebooleanSe o evento está ao vivo no momento
is_alternate_linebooleanSe utiliza uma linha não-padrão
is_player_propbooleanSe é um mercado de player prop
player_namestring|nullNome do jogador (se for player prop)
stat_categorystring|nullTipo de estatística (se for player prop, ex: points, rebounds)
all_booksstring[]Todos os sportsbooks participantes deste mercado
confidencenumberMétrica de confiança (0-100)
odds_age_secondsnumberIdade da odd mais antiga em segundos
possibly_stalebooleanSe os dados de odds podem ter se movido desde a detecção
detected_atstringQuando a oportunidade foi detectada (ISO 8601)

Objeto SideLink permanente para esta seção

CampoTipoDescrição
selectionstringNome da seleção (ex: “Lakers”, “Over”)
booksstring[]Sportsbooks oferecendo o melhor preço neste lado
linenumber|nullValor da linha para este lado
odds.americannumberOdds americanas
odds.decimalnumberOdds decimais
odds.implied_probabilitynumberProbabilidade implícita (0-1)
odds.fair_probabilitynumberProbabilidade justa ajustada pelo hold
deep_linksobjectMapa do nome do sportsbook para a URL do deep link (ou null se indisponível)

Os deep links são gerados com base no parâmetro de query state. Passe o código do estado dos EUA do seu usuário (ex: ?state=nj) para obter as URLs corretas dos sportsbooks para a jurisdição dele.


O Que É Hold?Link permanente para esta seção

Hold (também chamado de vig ou juice) é a margem embutida do sportsbook em um mercado. É a diferença entre a soma das probabilidades implícitas e 100%.

Hold % = (implied_prob_side1 + implied_prob_side2 - 1) × 100

ExemploLink permanente para esta seção

DraftKings: Lakers +145 (implícita 40,8%) Pinnacle: Celtics -155 (implícita 60,8%) Combinada: 101,6% Hold: 1,6%

Um hold de 1,6% significa que o sportsbook fica com cerca de US$ 1,60 de cada US$ 100 apostados neste mercado. Hold menor = melhor valor para apostadores.

Por Que Low Hold ImportaLink permanente para esta seção

Hold %QualidadeFonte Típica
< 1,5%ExcelenteSharp books, melhor preço entre books
1,5 - 3%BomMercados competitivos
3 - 5%MédioPrecificação varejista padrão
5%+RuimProps, mercados exóticos

Mercados de low-hold dão a você odds melhores independentemente de qual lado você apostar. Combinados com detecção de +EV, eles ajudam a maximizar os retornos esperados.

Low Hold vs ArbitragemLink permanente para esta seção

Low HoldArbitragem
HoldBaixo, mas > 0%Abaixo de 0% (hold negativo)
RiscoNormal (você escolhe um lado)Zero (aposta nos dois lados)
Caso de usoObter o melhor preçoGarantir lucro
VolumeCentenas disponíveisRaro (dígitos únicos)

Oportunidades de low-hold são muito mais comuns do que arbitragens. Elas representam as linhas mais apertadas disponíveis entre os books — ideais para apostadores que querem o melhor preço sem precisar apostar em ambos os lados.

Mercados de Três ViasLink permanente para esta seção

Para esportes com três resultados possíveis (futebol, resultado final do hóquei), a resposta inclui side3:

{ "side1": { "selection": "Home Win", "..." : "..." }, "side2": { "selection": "Draw", "..." : "..." }, "side3": { "selection": "Away Win", "..." : "..." }, "hold_percentage": 2.1 }

O cálculo do hold se estende a todos os três lados: implied_prob_1 + implied_prob_2 + implied_prob_3 - 1.

Boas PráticasLink permanente para esta seção

  1. Defina um max_hold apertado — Use max_hold=2 ou max_hold=3 para focar nos mercados de melhor valor
  2. Passe o parâmetro state — Obtenha deep links precisos para a jurisdição do seu usuário
  3. Combine com dados de +EV — Low hold + EV positivo é a combinação ideal
  4. Verifique possibly_stale — Pule oportunidades em que as odds podem já ter se movido
  5. Use streaming — Assine eventos low_hold:detected via SSE ou WebSocket para alertas em tempo real
  6. Monitore all_books — Mais books participando geralmente significa precificação mais confiável

Endpoints RelacionadosLink permanente para esta seção

Last updated on