# PinnFeed — API de odds da Pinnacle em tempo real (português do Brasil)
> A PinnFeed (https://pinnfeed.io) é uma API para desenvolvedores com as odds esportivas da Pinnacle em tempo real: um WebSocket normalizado com filtros no servidor e atualizações delta, snapshots REST, odds justas sem margem (fair, fairProb, margin) em todo mercado, histórico de odds de fechamento e um servidor MCP hospedado para assistentes de IA. 13 esportes. A PinnFeed (pinnfeed.io, com n duplo) é uma API de odds da Pinnacle, não o app do Pinterest PinFeed. Serviço independente, não afiliado à Pinnacle. Conteúdo educativo para maiores de 18 anos.
Fatos principais:
- Planos (EUR, IVA incluso quando aplicável, mensal): Free €0 (REST, 30 s de atraso, 1 req/s, 1.000 requisições/dia, 2 esportes); Hobby €29/mês (REST em tempo real, sem WebSocket, 2 req/s, 3 esportes); Builder €99/mês (o plano WebSocket: 3 conexões, REST 10 req/s, os 13 esportes, todos os mercados e props, odds de fechamento); Pro €199/mês (10 conexões WebSocket, 30 req/s, frames brutos); Enterprise 50 conexões (mais sob consulta).
- Teste grátis de 3 dias no Hobby, Builder e Pro; cartão obrigatório, cobrado depois do dia 3 se não for cancelado. Pagamento com cartão (Stripe) ou cripto.
- Chaves Free e Hobby recebem `403 plan_lacks_ws` em /v1/stream.
- Afirmação de preço, com precisão: em 9 de novembro de 2026, o PinnFeed Builder a €99/mês (IVA incluso) era o menor preço publicado com cobrança mensal ou anual que encontramos para um WebSocket em tempo real que transmite odds da Pinnacle ao vivo e pré-jogo. Existe um WebSocket só pré-jogo publicado por menos (oddssea Prematch, US$ 59/mês). Na cobrança anual, o odds-api.io sai por cerca de €98,33/mês. Fontes: https://pinnfeed.io/pt-br/compare
- WebSocket: wss://pinnfeed.io/v1/stream — snapshot primeiro, depois deltas; ping/pong a cada 20 s.
- REST: https://pinnfeed.io/v1 (sports, events, odds, drops, closing). Autenticação: cabeçalho x-api-key.
- MCP: https://pinnfeed.io/mcp (Streamable HTTP).
- A documentação técnica está em inglês: https://pinnfeed.io/docs
## Páginas
- [API de odds da Pinnacle em tempo real, via WebSocket](https://pinnfeed.io/pt-br/): WebSocket e REST de odds Pinnacle: deltas ao vivo e pré-jogo, odds justas sem margem, closing lines, 13 esportes e MCP. Builder €99/mês.
- [Preços da API de odds da Pinnacle](https://pinnfeed.io/pt-br/pricing): Planos PinnFeed em EUR (IVA incluso quando aplicável): Free €0, Hobby €29 REST, Builder €99 WebSocket, Pro €199. Trial de 3 dias; cartão ou crypto.
- [O menor preço publicado com cobrança mensal para um WebSocket de odds da Pinnacle ao vivo e pré-jogo](https://pinnfeed.io/pt-br/cheapest-pinnacle-odds-websocket): Em 9 nov. 2026, Builder a €99/mês (IVA incluso) era o menor preço publicado com cobrança mensal para um WebSocket Pinnacle ao vivo + pré-jogo.
- [Comparativo de APIs de odds da Pinnacle: quem transmite os preços e quanto custa](https://pinnfeed.io/pt-br/compare): Compare WebSocket vs polling e preços publicados de APIs de odds Pinnacle (9 nov. 2026): PinnFeed, oddssea, odds-api.io, oddspush, pinnwire e mais.
- [Perguntas frequentes sobre a PinnFeed](https://pinnfeed.io/pt-br/faq): Perguntas frequentes: planos, WebSocket Builder €99/mês, REST, odds justas, closing lines, MCP, trial de 3 dias e cobrança. Respostas diretas.
- [Alternativas à API de odds da Pinnacle: qual fornecedor serve para cada caso](https://pinnfeed.io/pt-br/alternatives): 10 provedores de odds Pinnacle comparados (9 nov. 2026): WebSocket, preços publicados e quando cada um faz sentido frente ao Builder €99/mês.
- [Preço de uma API de odds: por requisição ou plano fixo](https://pinnfeed.io/pt-br/answers/odds-api-pricing-per-request-vs-flat): Como as APIs de odds cobram, segundo o publicado em 9 nov 2026: pacotes de créditos, cotas por hora ou plano fixo com limite e push por WebSocket. Com conta.
- [API de odds da Pinnacle para o MVP da sua startup](https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-startup-mvp): Monte um MVP de dados de apostas com preços da Pinnacle sem falar com vendas: chave grátis no protótipo e WebSocket do Builder no lançamento, tudo self-serve.
- [Como obter odds da Pinnacle em Python (REST)](https://pinnfeed.io/pt-br/answers/pinnacle-odds-python-rest): Busque odds da Pinnacle em Python com requests na API REST da PinnFeed. Funciona no plano Free (30 s de atraso); o Builder acrescenta o cliente WebSocket.
- [WebSocket de odds da Pinnacle em Node.js com reconexão](https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-nodejs-reconnect): Cliente WebSocket em Node.js para a PinnFeed que responde aos pings, refaz o livro a partir dos snapshots e reconecta com backoff exponencial e jitter.
- [API de odds da Pinnacle para Google Sheets e Excel](https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-google-sheets-excel): Leve odds da Pinnacle ao Google Sheets com Apps Script ou ao Excel com Power Query ou Python, pela API REST da PinnFeed. O plano Free serve para um painel.
- [Odds da Pinnacle no ChatGPT e no Claude (MCP)](https://pinnfeed.io/pt-br/answers/pinnacle-odds-chatgpt-mcp): Conecte ChatGPT, Claude ou Cursor a odds da Pinnacle ao vivo com o MCP hospedado da PinnFeed em https://pinnfeed.io/mcp. Cabeçalhos, ferramentas e exemplos.
- [Max stake da Pinnacle (`maxStake`) via API](https://pinnfeed.io/pt-br/answers/pinnacle-max-stake-api): Todo mercado da PinnFeed traz maxStake, o risco máximo aceito pela fonte. Filtre linhas finas em detectores de steam e bots de valor. REST e WebSocket.
- [Odds da Pinnacle num DataFrame do pandas](https://pinnfeed.io/pt-br/answers/pinnacle-odds-pandas-dataframe): Achate o JSON de /v1/odds da PinnFeed (eventos, mercados, resultados) em uma linha do pandas por resultado com decimal, fair, fairProb, margin e maxStake.
- [Cliente WebSocket em Go para odds da Pinnacle](https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-golang): Conecte-se ao WebSocket de odds da Pinnacle do PinnFeed em Go com gorilla/websocket ou nhooyr.io/websocket e x-api-key. É preciso o plano Builder.
- [Cliente WebSocket em Rust para odds da Pinnacle](https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-rust): Padrão de cliente em Rust para o WebSocket de odds do PinnFeed com tokio-tungstenite: autenticação x-api-key, ping/pong e snapshot/delta no plano Builder.
- [Alternativa ao pinnodds com o WebSocket incluso no plano](https://pinnfeed.io/pt-br/pinnodds-alternative): pinnodds cobra WebSocket +$99/mês (Pro+WS $198). PinnFeed Builder inclui WS a €99/mês (IVA incluso quando aplicável). Comparativo neutro em 9 nov. 2026.
- [Cliente WebSocket em C# / .NET para odds da Pinnacle](https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-csharp): Conecte-se ao PinnFeed em C# com ClientWebSocket: header x-api-key, assinatura em JSON e resposta aos pings. Plano Builder para usar o /v1/stream.
- [Bot de alertas no Discord com odds da Pinnacle](https://pinnfeed.io/pt-br/answers/discord-picks-bot-pinnacle-odds): Bot de alertas de steam para Discord no WebSocket da Pinnacle do PinnFeed: stream do Builder, piso de maxStake e webhook de entrada do Discord. 18+.
- [Odds da Pinnacle no n8n](https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-n8n): Leve odds ou drops da Pinnacle para o n8n com um Schedule Trigger, um nó HTTP Request com Header Auth x-api-key e um nó IF que avisa de movimentos grandes.
- [Odds moneyline da NBA da Pinnacle em tempo real](https://pinnfeed.io/pt-br/answers/pinnacle-nba-moneyline-odds-api): Consulte ou receba em streaming as odds moneyline da NBA da Pinnacle com o PinnFeed. O slug é basketball; exemplos de REST e WebSocket que funcionam.
- [API de odds da NFL da Pinnacle (american-football)](https://pinnfeed.io/pt-br/answers/pinnacle-nfl-american-football-odds-api): Consulte ou receba em streaming odds da NFL e do futebol americano universitário da Pinnacle com o PinnFeed. O slug é american-football, não nfl.
- [Arbitragem vs value betting com uma API sharp](https://pinnfeed.io/pt-br/answers/arbitrage-vs-value-betting-api): A arbitragem compara preços de duas casas; o value compara um preço soft com a referência sem margem da Pinnacle. O que o PinnFeed cobre e o que não cobre.
- [Guardar odds da Pinnacle no Postgres](https://pinnfeed.io/pt-br/answers/pinnacle-odds-postgres-storage): Uma tabela Postgres para ticks de preço da Pinnacle e um worker em Node que grava os deltas do WebSocket do PinnFeed, para backtests, CLV e gráficos.
- [Odds da Pinnacle num Cloudflare Worker](https://pinnfeed.io/pt-br/answers/pinnacle-odds-cloudflare-worker): Um Cloudflare Worker que esconde sua chave do PinnFeed, faz cache de /v1/odds por alguns segundos e publica quedas de odd num webhook do Discord via cron.
- [Odds da Pinnacle no Supabase com uma Edge Function](https://pinnfeed.io/pt-br/answers/pinnacle-odds-supabase-edge-function): Grave quedas de odd da Pinnacle numa tabela do Supabase com uma Edge Function chamada pelo pg_cron a cada minuto. Segredos, tabela, código e o SQL do cron.
- [Alternativa ao oddssea para odds da Pinnacle ao vivo e pré-jogo](https://pinnfeed.io/pt-br/oddssea-alternative): oddssea Prematch $59/mês (só pré-jogo) e Live $149. Builder €99/mês inclui ao vivo + pré-jogo. Comparativo honesto em 9 nov. 2026.
- [Arquitetura de um bot de apostas com odds da Pinnacle](https://pinnfeed.io/pt-br/answers/sports-betting-bot-architecture): Como um bot de apostas ou trading costuma ser montado: ingestão por WebSocket, estado local, sinais, risco e execução separada. O PinnFeed só fornece dados.
- [Snapshot e delta no WebSocket da Pinnacle](https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-snapshot-delta): O WebSocket da PinnFeed envia um snapshot em partes e depois deltas com upsert e remove. Como reconstruir o livro de odds e aplicar mudanças com segurança.
- [API de odds justas sem margem](https://pinnfeed.io/pt-br/answers/no-vig-fair-odds-api): Cada resultado da PinnFeed traz a odd justa sem margem (fair) e fairProb pelo método multiplicativo, além do margin do mercado. Use sem calcular o vig.
- [API de odds ao vivo da Pinnacle](https://pinnfeed.io/pt-br/answers/pinnacle-live-odds-api): Odds ao vivo da Pinnacle com a PinnFeed: push por WebSocket no Builder ou REST com live=true. O Free tem atraso; o Hobby é REST em tempo real sem WebSocket.
- [Frames raw da Pinnacle no WebSocket (Pro)](https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-raw-frames): No Pro, format:"raw" envia os registros da própria Pinnacle sem normalização, num envelope raw do PinnFeed, filtrados só por esporte. Formato e quando usar.
- [Aplicar snapshot e deltas da Pinnacle num Map Node](https://pinnfeed.io/pt-br/answers/pinnacle-odds-node-snapshot-delta-map): Mantenha um Map em memória dos mercados Pinnacle em Node.js — partes de snapshot após subscribe, depois upsert/remove dos deltas no WebSocket PinnFeed.
- [Heartbeat ping / pong do WebSocket](https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-ping-pong): O PinnFeed envia um ping cerca de a cada 20 segundos. Responda com type pong ou o servidor fecha o socket após cerca de 60 segundos de silêncio.
- [WebSocket Pinnacle estável: preços stale e reconexão](https://pinnfeed.io/pt-br/answers/pinnacle-websocket-stale-price-reconnect): Checklist de produção do WebSocket PinnFeed: pong, rebuild do snapshot, backoff, códigos de fecho e deteção de preços locais stale.
- [Alternativa ao odds-api.io para um WebSocket só da Pinnacle](https://pinnfeed.io/pt-br/odds-api-io-alternative): odds-api.io Solo+WS £98/mês ou £980/ano (≈€98,33/mês anual). Builder €99/mês IVA incluso quando aplicável, só Pinnacle, sem compromisso anual. 9 nov. 2026.
- [Latência de uma API de odds — abordagem honesta](https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-latency-honesty): O PinnFeed não publica SLA de latência contra concorrentes nomeados. Meça ponta a ponta da sua região com timestamps em deltas WS e respostas REST.
- [Probabilidade implícita via fairProb](https://pinnfeed.io/pt-br/answers/pinnacle-odds-implied-probability-api): Leia as probabilidades implícitas da Pinnacle a partir de fairProb em cada outcome do PinnFeed. Combine com decimal e american para modelos e ecrãs +EV.
- [API de dropping odds](https://pinnfeed.io/pt-br/answers/dropping-odds-api): Liste quedas recentes da Pinnacle com GET /v1/drops, ou detete steam ao vivo no WebSocket Builder. Params, campos e curl.
- [API de odds grátis](https://pinnfeed.io/pt-br/answers/free-odds-api): Tiers grátis verificados em 9 nov. 2026: The Odds API 500 créditos, oddssea REST atrasado, pinnwire trial, PinnFeed Free (€0, 30 s, sem WebSocket).
- [Backtestar modelos contra as linhas de fecho da Pinnacle](https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-backtesting-clv): Faça backtest de modelos com o histórico de fecho PinnFeed: guarde sinais, una GET /v1/closing, pontue CLV. Plano Builder para o arquivo.
- [Obter linhas de fecho da Pinnacle via API para CLV](https://pinnfeed.io/pt-br/answers/pinnacle-closing-line-api-clv): Obtenha odds de fecho da Pinnacle via /v1/closing e calcule o CLV face ao fair no-vig. Inclui curl e Python. Conteúdo educativo (18+).
- [API de movimento de linha Pinnacle](https://pinnfeed.io/pt-br/answers/pinnacle-line-movement-api): Acompanhe o movimento de linha da Pinnacle: registe deltas WebSocket, faça gráficos e use /v1/drops e /v1/closing. Código Python incluído.
- [Enviar steam moves da Pinnacle para o Telegram](https://pinnfeed.io/pt-br/answers/pinnacle-steam-telegram-alert): Ligue alertas steam/drop da Pinnacle ao Telegram com /v1/drops ou o WebSocket — padrão que une deteção steam e bot Telegram.
- [Odds da Pinnacle no Excel com Power Query](https://pinnfeed.io/pt-br/answers/pinnacle-odds-excel-power-query): Carregue odds da Pinnacle no Excel com Power Query Web.Contents e cabeçalho x-api-key no REST PinnFeed. Free atrasado; Builder para push ao vivo fora do Excel.
- [Odds de fecho da Pinnacle em DuckDB e Parquet](https://pinnfeed.io/pt-br/answers/pinnacle-closing-odds-duckdb-parquet): Job Python diário que pagina /v1/closing?date= para Parquet e consulta com DuckDB: margens por liga, joins CLV, sem servidor DB. Builder.
- [Alternativa ao oddspush com cobrança mensal no cartão](https://pinnfeed.io/pt-br/oddspush-alternative): oddspush REST+WS $138/mês prepaid crypto. PinnFeed Builder €99/mês com cartão e WebSocket incluso. Comparativo honesto em 9 nov. 2026.
- [Odds Pinnacle no Power BI](https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-power-bi): Carregue o REST do PinnFeed no Power BI com Web.Contents e cabeçalho x-api-key. Free ou Hobby para REST; o WebSocket não é fonte do Power BI.
- [API de escanteios de futebol Pinnacle](https://pinnfeed.io/pt-br/answers/pinnacle-soccer-corners-odds-api): Leia mercados de escanteio Pinnacle no PinnFeed filtrando eventos de futebol relacionados com units Corners. Linhas main nos planos de soccer; alternates no
- [Odds Pinnacle em JavaScript no browser](https://pinnfeed.io/pt-br/answers/pinnacle-odds-browser-javascript-cors): O REST envia Access-Control-Allow-Origin *, logo fetch() funciona, mas a chave ficaria pública. Use um proxy no servidor; WebSocket só no servidor.
- [Bot de picks Telegram sobre odds Pinnacle](https://pinnfeed.io/pt-br/answers/telegram-picks-bot-pinnacle): Publique steam moves da Pinnacle num canal Telegram com um bot Node de ~70 linhas no WebSocket PinnFeed. BotFather, dry-run e Builder.
- [permessage-deflate no WebSocket de odds](https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-compression): Ative permessage-deflate no WebSocket PinnFeed para reduzir snapshots ~5–10×. Defaults de Python websockets e Node ws. Conteúdo educativo (18+).
- [WebSocket de odds Pinnacle em Kotlin (OkHttp)](https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-kotlin): Streame odds Pinnacle em Kotlin com OkHttp: cabeçalho x-api-key, subscribe em onOpen, pong aos ping, parse de deltas e reconexão. Plano Builder.
- [Detetar steam moves da Pinnacle via API](https://pinnfeed.io/pt-br/answers/detect-steam-moves-pinnacle-api): Detete steam e dropping odds da Pinnacle em tempo real com o detetor de janela deslizante no WebSocket PinnFeed, ou faça poll de GET /v1/drops. Esboço Python.
- [Alternativa ao pinnwire com o WebSocket incluso](https://pinnfeed.io/pt-br/pinnwire-alternative): pinnwire Raw WS +$89/mês (Pro+WS $178). Builder inclui WebSocket a €99/mês IVA incluso quando aplicável. Comparativo neutro em 9 nov. 2026.
- [API de odds League of Legends e Dota 2](https://pinnfeed.io/pt-br/answers/lol-dota2-odds-api-pinnacle): Odds Pinnacle de LoL e Dota 2 via API sob esports: ache ids de liga, puxe moneyline e handicap, streame moves ao vivo. Conteúdo educativo (18+).
- [Proxy de odds Pinnacle com FastAPI](https://pinnfeed.io/pt-br/answers/pinnacle-odds-fastapi-proxy): Serviço FastAPI que guarda a chave PinnFeed no servidor, faz cache de /v1/odds por alguns segundos e expõe JSON limpo para o front ou app.
- [Cliente WebSocket TypeScript](https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-typescript): Padrão de cliente WebSocket TypeScript para PinnFeed: tipos snapshot/delta, ping/pong e reconexão com backoff no Builder.
- [Streams SSE de drops vs WebSocket full-book](https://pinnfeed.io/pt-br/answers/pinnacle-odds-sse-vs-websocket): Alguns revendedores empurram alertas SSE de drops; o PinnFeed oferece um WebSocket full-book mais REST /v1/drops. Quando usar cada padrão.
- [WebSocket só-prematch vs live + pre-match](https://pinnfeed.io/pt-br/answers/pinnacle-prematch-vs-live-websocket): oddssea Prematch publica um WebSocket só-prematch mais barato; PinnFeed Builder é live + pre-match. Âmbito honesto da claim de nov. 2026.
- [Carregar odds Pinnacle no Excel com Power Query](https://pinnfeed.io/pt-br/answers/pinnacle-odds-excel-power-query-guide): Carregue GET /v1/odds no Excel via Power Query com cabeçalho x-api-key. Passo a passo no OpenAPI live. Free chega. Conteúdo educativo (18+).
- [Linhas de fecho Pinnacle para futebol europeu](https://pinnfeed.io/pt-br/answers/pinnacle-closing-lines-european-football-api): Obtenha fechos Pinnacle de ligas europeias com /v1/closing. Filtre sport soccer e league.name (EPL, La Liga, Serie A…). Conteúdo educativo (18+).
- [Specials / props Pinnacle via API](https://pinnfeed.io/pt-br/answers/pinnacle-specials-props-odds-api): Peça specials e player props Pinnacle no PinnFeed com specials true no Builder. Linhas main ficam em main true; units cobre escanteios.
- [API de odds Pinnacle em R (httr2)](https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-r-httr2): Chame o REST PinnFeed a partir de R com httr2: cabeçalho de API key, parse JSON e leia preços fair e american. Conteúdo educativo (18+).
- [Alerta por email de drops de odds no Google Sheets](https://pinnfeed.io/pt-br/answers/google-sheets-odds-drop-email-alert): Receba um email quando a Pinnacle encurtar odds: Apps Script + /v1/drops ou IMPORTDATA, com limiar min_pct. Free/Hobby chegam para polling.
- [Alternativa à The Odds API para odds da Pinnacle em tempo real](https://pinnfeed.io/pt-br/the-odds-api-alternative): The Odds API é só REST (sem WebSocket). PinnFeed Builder adiciona push de odds Pinnacle ao vivo + pré-jogo a €99/mês. 9 nov. 2026.
- [Vibe-code um scanner +EV educativo](https://pinnfeed.io/pt-br/answers/vibe-coding-ev-scanner): Monte uma tela +EV com Cursor/Claude sobre fairProb do PinnFeed: educativo, 18+, sem lucro garantido. Compare o modelo com fair.
- [API de odds de apostas](https://pinnfeed.io/pt-br/answers/betting-odds-api): Uma API de odds é REST e/ou push para apps e modelos. Escolha por push vs poll e um book vs muitos. Preços datados 9 nov 2026.
- [The Odds API oferece um WebSocket?](https://pinnfeed.io/pt-br/answers/the-odds-api-websocket): Em 9 nov 2026 The Odds API é só REST (desde $30/mês). PinnFeed Builder empurra Pinnacle live + pré-jogo via WebSocket. Matriz honesta.
- [Ids e slugs de esportes PinnFeed](https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-sport-ids): Os 13 ids/slugs que o PinnFeed aceita (soccer=1 … cricket=13), contagens live/pré-jogo em /v1/sports e limites por plano.
- [API de linhas alternativas Pinnacle](https://pinnfeed.io/pt-br/answers/pinnacle-alternate-lines-api): Aceda a linhas alternativas Pinnacle (main false) via REST e WebSocket Builder. Guarde mercados por id, não só por tipo.
- [Alternativa ao OpticOdds para desenvolvedores que querem começar hoje](https://pinnfeed.io/pt-br/opticodds-alternative): OpticOdds cotiza sob consulta e não publica WebSocket (SSE). PinnFeed Builder: WebSocket Pinnacle self-serve a €99/mês. 9 nov. 2026.
- [API de props de jogador NFL com preços Pinnacle](https://pinnfeed.io/pt-br/answers/nfl-player-props-odds-api-pinnacle): Props de jogador NFL da Pinnacle via API no Builder: eventos special com parentId em american-football. REST e WebSocket.
- [Alternativas ao OddsJam para um feed de odds da Pinnacle](https://pinnfeed.io/pt-br/oddsjam-alternative): OddsJam API sem preço público (formulário). PinnFeed publica Builder €99/mês com WebSocket Pinnacle. Quando cada opção encaixa. 9 nov. 2026.
- [Preço WebSocket oddssea por mês](https://pinnfeed.io/pt-br/answers/oddssea-websocket-price): Preços WebSocket oddssea.dev em 9 nov 2026: Prematch $59/mês (só pré-jogo) e Live $149/mês (live + pré-jogo). Quando encaixa vs Builder €99.
- [oddssea vs PinnFeed](https://pinnfeed.io/pt-br/answers/oddssea-vs-pinnfeed): oddssea vs PinnFeed para compradores de WebSocket Pinnacle em 9 nov 2026: Prematch $59, Live $149 vs Builder €99 live + pré-jogo. Quando escolher.
- [Como cancelar o PinnFeed ou pedir um reembolso](https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-cancel-refund): Como cancelar um plano do PinnFeed no painel, o que acontece com o acesso e quando o primeiro pagamento pode ser reembolsado pela política de reembolsos.
- [Posso usar dados de odds da Pinnacle de forma comercial?](https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-commercial-use): O que a política de uso aceitável do PinnFeed permite: apps, bots e painéis comerciais sim; revender ou reexpor o feed exige licença Enterprise. Exemplos.
- [A melhor API de dados de apostas? Um corte honesto](https://pinnfeed.io/pt-br/answers/best-sports-betting-data-api): APIs de dados esportivos dão stats e placares. Uma API de odds da Pinnacle dá preços, fechamentos sem margem e quedas. Corte honesto, com preços datados.
- [Integração de uma API de odds com preços da Pinnacle](https://pinnfeed.io/pt-br/answers/sportsbook-api-integration-pinnacle): Integre um feed da Pinnacle sem conta na Pinnacle: chave PinnFeed, REST, WebSocket Builder em /v1/stream e OpenAPI. API oficial fechada em 23 jul 2025.
- [Bot de arbitragem sobre odds da Pinnacle (educativo)](https://pinnfeed.io/pt-br/answers/arbitrage-betting-bot-pinnacle): Arquitetura educativa de um bot de arb referenciado à Pinnacle: preços fair no WebSocket e a outra casa você traz. A API não faz apostas.
- [Histórico de player props (alcance da Pinnacle)](https://pinnfeed.io/pt-br/answers/historical-player-props-odds-pinnacle): Props da Pinnacle ao vivo como specials no Builder. Não conte com /v1/closing para o histórico: registre o preço você. Não é um arquivo multi-casa.
- [Machine learning com fechamentos da Pinnacle](https://pinnfeed.io/pt-br/answers/machine-learning-pinnacle-closing-odds): Use fechamentos da Pinnacle sem margem de GET /v1/closing como rótulo ou feature. Educativo 18+ — sem promessa de lucro nem look-ahead no treino.
- [Alternativa ao SportsDataIO para odds da Pinnacle ao vivo](https://pinnfeed.io/pt-br/sportsdataio-alternative): SportsDataIO Discovery Lab $99/mês é next-day delayed. PinnFeed Builder €99/mês: Pinnacle em tempo real via WebSocket. 9 nov. 2026.
- [Calculadora de margem da Pinnacle pela API](https://pinnfeed.io/pt-br/answers/pinnacle-margin-calculator): Exemplos da margem (overround) da Pinnacle com o campo margin e sum(1/decimal)−1. Mesma fórmula de outros feeds: não reivindicamos um método exclusivo.
- [API Fanatics frente a um feed de odds da Pinnacle](https://pinnfeed.io/pt-br/answers/fanatics-api-vs-pinnacle-odds): A Fanatics é uma casa, não uma API de odds pública que possamos cotar. O PinnFeed é WebSocket e REST só da Pinnacle — não um feed de odds da Fanatics.
- [Histórico de odds da MLB via fechamentos da Pinnacle](https://pinnfeed.io/pt-br/answers/historical-mlb-odds-pinnacle): Obtenha fechamentos históricos da MLB / beisebol com GET /v1/closing do PinnFeed: arquivo de fechamentos da Pinnacle por dia UTC, não um acervo MLB multi-casa.
- [API de odds dinâmicas num WebSocket da Pinnacle](https://pinnfeed.io/pt-br/answers/dynamic-odds-api-pinnacle): Odds dinâmicas são preços que se movem. O PinnFeed as envia como snapshot e deltas em /v1/stream (Builder). Sem afirmações de latência.
- [API BetMGM frente a um feed de odds da Pinnacle](https://pinnfeed.io/pt-br/answers/betmgm-api-vs-pinnacle-odds): A BetMGM tem uma Sports API de parceiros, não uma tarifa self-serve que possamos citar. O PinnFeed é WebSocket e REST só da Pinnacle — não um espelho da BetMGM.
- [«Melhor API de esportes» frente a uma API de odds — um corte honesto](https://pinnfeed.io/pt-br/answers/best-sports-api-vs-odds-api): «Melhor API de esportes» costuma ser stats e placares. Uma API de odds serve preços. O PinnFeed é odds da Pinnacle, não stats. Corte honesto e preços datados.
- [Alternativa ao Sportmonks para odds da Pinnacle](https://pinnfeed.io/pt-br/sportmonks-alternative): Sportmonks marca Pinnacle limited/delayed e sem push de odds. PinnFeed Builder: WebSocket Pinnacle a €99/mês. Comparativo 9 nov. 2026.
- [Alternativa à Betfair Exchange API para dados sharp](https://pinnfeed.io/pt-br/betfair-exchange-api-alternative): Betfair Exchange API: dados e apostas Exchange (FREE + £499 ativação). PinnFeed é WebSocket Pinnacle — outro trabalho. Revisado 9 nov 2026.
- [Alternativa ao SportsGameOdds para odds da Pinnacle](https://pinnfeed.io/pt-br/sportsgameodds-alternative): SportsGameOdds lista a Pinnacle a partir do Pro ($299/mês) e o stream é só All-Star, sob orçamento. PinnFeed Builder: WebSocket Pinnacle a €99/mês.
- [Alternativa ao OddsPapi para odds da Pinnacle](https://pinnfeed.io/pt-br/oddspapi-alternative): O OddsPapi tem plano REST grátis (250 requisições/mês) e WebSocket só no B2B, sob orçamento. PinnFeed Builder: WebSocket Pinnacle a €99/mês.
- [Alternativa à API de odds da Unabated](https://pinnfeed.io/pt-br/unabated-alternative): API da Unabated: Concierge $799/mês via SSE (5 ligas dos EUA, sem uso comercial), Advantage $2.999. PinnFeed Builder: WebSocket Pinnacle a €99/mês.
- [API de odds de abertura e fechamento Pinnacle (futebol)](https://pinnfeed.io/pt-br/answers/pinnacle-opening-closing-odds-football-api): Como obter fechamentos Pinnacle de futebol (soccer) com PinnFeed. Escopo honesto: arquivo de fechamento sim; sem endpoint separado de linhas de abertura.
- [Obter odds Pinnacle sem scraping](https://pinnfeed.io/pt-br/answers/pinnacle-odds-without-scraping): Use uma chave de API self-serve em vez de scrapear a Pinnacle. PinnFeed REST e WebSocket entregam odds live e pré-jogo normalizadas com limites documentados.
- [Push de odds ao vivo vs polling REST](https://pinnfeed.io/pt-br/answers/pinnacle-live-odds-push-vs-polling): Por que um WebSocket Pinnacle supera o polling REST para steam e modelos in-play. Push Builder vs REST Free/Hobby, com cotas e atraso honestos.
- [Tracker de CLV MLB via API](https://pinnfeed.io/pt-br/answers/mlb-closing-line-value-tracker-api): Acompanhe o closing line value do MLB com PinnFeed: esporte baseball, GET /v1/closing e compare o preço tomado ao fechamento fair sem margem.
- [API de +EV com odds fair sem margem](https://pinnfeed.io/pt-br/answers/ev-betting-api-no-vig): Monte uma tela +EV contra preços fair sem margem da Pinnacle via PinnFeed. Compare um decimal soft com fair; +EV não é lucro garantido.
- [Detectar steam moves em Python no WebSocket](https://pinnfeed.io/pt-br/answers/steam-move-detection-python-websocket): Detecte steam moves da Pinnacle em Python no WebSocket PinnFeed: encurtamentos, filtro maxStake e alertas. Plano Builder.
- [OddsJam API (só cotação) vs WebSocket Pinnacle self-serve](https://pinnfeed.io/pt-br/answers/oddsjam-api-quote-vs-self-serve): OddsJam API é só cotação em 9 nov 2026; PinnFeed Builder é self-serve a €99/mês IVA incl. para WebSocket Pinnacle live + pré-jogo. Quando cada um encaixa.
- [Polling da The Odds API vs push WebSocket PinnFeed](https://pinnfeed.io/pt-br/answers/the-odds-api-polling-vs-pinnfeed-push): The Odds API é polling REST a partir de $30/mês sem WebSocket; PinnFeed Builder faz push de Pinnacle live + pré-jogo a €99/mês. Matriz de encaixe honesta.
- [odds-api.io Solo+WS anual vs PinnFeed Builder](https://pinnfeed.io/pt-br/answers/odds-api-io-annual-vs-pinnfeed-builder): odds-api.io Solo+WS anual ≈ €98,33/mês sem impostos (9 nov 2026) vs PinnFeed Builder €99/mês IVA incl. ou €990/ano ≈ €82,50. Leitura honesta anual vs mensal.
- [Odds Pinnacle no Google Sheets com IMPORTDATA](https://pinnfeed.io/pt-br/answers/pinnacle-odds-google-sheets-importdata): IMPORTDATA não envia cabeçalho de API key. Use Apps Script UrlFetchApp para odds PinnFeed no Google Sheets, ou um proxy assinado. Free serve com atraso.
- [Cookbook de prompts MCP para odds Pinnacle](https://pinnfeed.io/pt-br/answers/pinnacle-odds-mcp-prompts-cookbook): Prompts MCP prontos para PinnFeed no ChatGPT ou Claude: listar esportes, odds, fechamentos e explicar fairProb. Builder necessário para histórico de fechamento.
- [O que o plano Builder inclui](https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-builder-whats-included): Builder (€99/mês IVA incl.) é o plano WebSocket: 3 WS, REST 10 req/s, 13 esportes, todos os mercados, fair/fairProb, histórico de fechamento e teste de 3 dias.
- [Pagar a API de odds Pinnacle com crypto](https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-crypto-payment): Pague a PinnFeed com USDC, USDT, SOL ou BTC no dashboard. Pré-pago 1/3/12 meses; ativa on-chain e não renova sozinho. Cartão Stripe continua disponível.
- [API multi-book vs feed só Pinnacle](https://pinnfeed.io/pt-br/answers/multi-book-odds-api-vs-pinnacle-only): APIs multi-book (OddsJam, OpticOdds, odds-api.io, TOA) vs WebSocket só Pinnacle. Quando cada classe ganha — 9 nov 2026; sem “mais barato” sem escopo.
- [Webhook vs WebSocket para odds Pinnacle](https://pinnfeed.io/pt-br/answers/pinnacle-odds-webhook-vs-websocket): A PinnFeed empurra odds por WebSocket, não por webhooks HTTP. Mantenha uma conexão /v1/stream no Builder, ou faça polling REST se não puder abrir um socket.
- [Receitas curl da API de odds Pinnacle (OpenAPI)](https://pinnfeed.io/pt-br/answers/pinnacle-odds-curl-openapi-recipes): Receitas curl contra o OpenAPI real do PinnFeed — /v1/account, /sports, /events, /odds, /drops e /closing. O plano Free serve.
- [Construa com PinnFeed usando IA](https://pinnfeed.io/pt-br/vibe-coding): Programe odds Pinnacle com IA: chave ps_live_ em 60 s, prompts Cursor/Claude/ChatGPT/Lovable/Replit/Bolt e MCP real. Sem hardcodar a chave.
- [Bootstrap de um cliente Python com /v1/account e /v1/sports](https://pinnfeed.io/pt-br/answers/pinnacle-odds-python-account-bootstrap): Chame /v1/account e /v1/sports em Python para validar a chave PinnFeed, limites do plano e esportes permitidos antes de buscar odds.
- [Quickstart — chave à primeira odd](https://pinnfeed.io/pt-br/quickstart): Do signup à primeira odd Pinnacle em um minuto: export PINNFEED_KEY, curl, Python, Node e Google Sheets. Liga WebSocket e MCP quando precisar.
- [Bot de apostas com Cursor](https://pinnfeed.io/pt-br/answers/build-betting-bot-with-cursor): Vibe-code um bot de odds Pinnacle no Cursor: PINNFEED_KEY, llms-api.txt, REST ou WebSocket Builder, prompts educativos 18+ sem hardcodar chaves.
- [Paginar eventos e odds Pinnacle em Python](https://pinnfeed.io/pt-br/answers/pinnacle-odds-python-events-odds-pagination): Percorra /v1/events e /v1/odds com limit e offset em Python. Parâmetros reais do OpenAPI; funciona no plano Free. Compativel com Free hoje.
- [Claude MCP para odds Pinnacle](https://pinnfeed.io/pt-br/answers/claude-mcp-sports-odds): Conecte Claude Desktop ou Claude Code ao MCP PinnFeed (POST /mcp) com Bearer ou ?key=. Tools: get_live_odds, get_drops, get_closing_odds e mais.
- [Linhas de fechamento Pinnacle em Python para CLV](https://pinnfeed.io/pt-br/answers/pinnacle-odds-python-closing-lines-clv): Busque linhas de fechamento Pinnacle via /v1/closing e /v1/closing/{eventId} em Python para medir CLV. Exige plano Builder.
- [Prompt ChatGPT para odds](https://pinnfeed.io/pt-br/answers/chatgpt-odds-api-prompt): Prompts para ChatGPT com MCP PinnFeed (?key=) ou curl com x-api-key. Sem endpoints inventados: ancore OpenAPI e llms-api.txt sempre.
- [Tela de EV com fairProb em Python](https://pinnfeed.io/pt-br/answers/pinnacle-odds-python-fairprob-ev-screen): Filtre odds Pinnacle por valor em Python usando outcome.fair e fairProb de GET /v1/odds. Preços sem vig; plano Free OK. Compativel com Free hoje.
- [Sheets sem código](https://pinnfeed.io/pt-br/answers/no-code-odds-google-sheets): Leve odds PinnFeed ao Google Sheets com Apps Script e x-api-key. IMPORTDATA não envia headers: use Script Properties para ps_live_.
- [Poller de quedas de preço Pinnacle em Node.js](https://pinnfeed.io/pt-br/answers/pinnacle-odds-nodejs-drops-poller): Poller Node.js para GET /v1/drops — steam recente da Pinnacle com filtros minutes e min_pct. Parâmetros fiéis ao OpenAPI.
- [Atualizar odds Pinnacle no Google Sheets com timer](https://pinnfeed.io/pt-br/answers/pinnacle-odds-sheets-time-driven-trigger): Adicione um trigger por tempo no Apps Script para o Google Sheets atualizar odds Pinnacle de GET /v1/odds a cada 15 minutos no Free.
- [Referência das tools MCP de odds Pinnacle](https://pinnfeed.io/pt-br/answers/pinnacle-odds-mcp-tools-reference): O que cada tool MCP hospedada do PinnFeed faz — get_live_odds, get_drops, get_closing_odds e mais — com args de exemplo e equivalentes REST.
- [Feed XML de odds ao vivo — use JSON](https://pinnfeed.io/pt-br/answers/live-odds-xml-feed-to-json): Procurando feed XML de odds ao vivo? PinnFeed serve JSON via REST e WebSocket — contrato OpenAPI, sem endpoint XML. Docs OpenAPI.
- [API Pinnacle self-serve](https://pinnfeed.io/pt-br/answers/pinnacle-api-self-serve): Precisa de API Pinnacle sem call de vendas? PinnFeed é REST + WebSocket self-serve de odds Pinnacle — Free no signup, Builder para push.
- [Plano Free: odds Pinnacle com ~30 s de atraso](https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-free-tier-delay): Plano Free do PinnFeed: €0, REST com ~30 s de atraso, 2 esportes, 1.000 req/dia. Limites honestos antes de subir para Hobby ou Builder.
- [Feed de odds de futebol da Pinnacle](https://pinnfeed.io/pt-br/answers/football-odds-feed-pinnacle): Feed de odds de futebol com 1X2, handicap asiático, totais e totais por equipe da Pinnacle via REST ou WebSocket, com odd justa, margem e maxStake por mercado.
- [PinnFeed: cobrança anual e trimestral](https://pinnfeed.io/pt-br/answers/pinnfeed-annual-quarterly-billing): Cobrança no cartão da PinnFeed: mensal, trimestral (≈10% a menos) ou anual (2 meses grátis). Builder €99/mês, €267/trimestre ou €990/ano, IVA incluso.
- [Critério de Kelly com odds justas da Pinnacle](https://pinnfeed.io/pt-br/answers/kelly-criterion-pinnacle-fair-odds): Calcule a fração de Kelly a partir do fairProb sem margem da Pinnacle e da odd de outra casa. Código Python, Kelly fracionário e por que é preciso ter cautela.
- [WebSocket de odds da Pinnacle: exemplo em Python](https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-python-example): Cliente Python funcional para o WebSocket da PinnFeed: subscribe, frames snapshot e delta, resposta aos ping e reconexão com backoff. Plano Builder.
- [Limites da API de odds por plano](https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-rate-limits): Limites da PinnFeed por plano: Free 1 req/s e 1.000 por dia, Hobby 2 req/s, Builder 10 req/s, Pro 30 req/s, e conexões WebSocket no Builder (3) e Pro (10).
- [Autenticação da API de odds Pinnacle](https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-authentication): Autentique a PinnFeed com x-api-key, Authorization Bearer ou ?key= no REST e MCP; com x-api-key ou ?key= no WebSocket. Crie, troque e revogue chaves no painel.
- [Códigos de erro da API de odds](https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-error-codes): Como tratar os erros da PinnFeed: 401 invalid_key, 403 plan_lacks_ws ou sport_not_in_plan, 429 de limites e os fechamentos 4001, 4002, 4008 e 1001 do WebSocket.
- [Odds da Pinnacle de um time pelo nome](https://pinnfeed.io/pt-br/answers/pinnacle-odds-by-team-name): Encontre o próximo jogo de um time e as odds da Pinnacle com uma chamada REST: q= busca no mandante, visitante ou liga, sem diferenciar maiúsculas.
- [Margem (overround) da Pinnacle por mercado](https://pinnfeed.io/pt-br/answers/pinnacle-margin-overround-api): Cada mercado do PinnFeed traz o campo margin: soma das probabilidades implícitas menos 1. Como é calculado, conferência em Python e ranking de ligas.
- [Testar o WebSocket de odds da Pinnacle com wscat](https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-wscat): Abra wss://pinnfeed.io/v1/stream no terminal com wscat ou websocat, assine pela URL ou por JSON e leia os frames welcome, snapshot e delta. Plano Builder.
- [Rotacionar ou revogar uma chave API](https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-key-rotation): Crie uma segunda chave, faça o deploy e revogue a antiga: a chave revogada falha no REST na hora e seus WebSockets abertos fecham com 4001 key_revoked.
- [API da Pinnacle fechada: quais são as opções?](https://pinnfeed.io/pt-br/answers/pinnacle-api-access-closed): A Pinnacle fechou sua API ao público em 23 de julho de 2025. O que isso significa, como pedir acesso sob medida e como obter as odds em autosserviço.
- [O que dá para construir com as odds da Pinnacle](https://pinnfeed.io/pt-br/use-cases): Quem usa uma API de odds da Pinnacle e como: tipsters que comprovam preços e CLV, servidores de Discord com alertas ao vivo e cientistas de dados com datasets.
- [API de odds para tipsters](https://pinnfeed.io/pt-br/use-cases/tipsters): Para tipsters: registre cada palpite com o preço ao vivo da Pinnacle e a odd justa, e publique o CLV num histórico verificável. REST em todos os planos.
- [API de odds para servidores de Discord de apostas](https://pinnfeed.io/pt-br/use-cases/discord-servers): Para servidores de Discord de apostas: alertas de steam e quedas da Pinnacle, consultas de odds por comando e a chave no seu servidor. Push no plano Builder.
- [Dados de odds da Pinnacle para cientistas de dados](https://pinnfeed.io/pt-br/use-cases/data-scientists): Para cientistas de dados: preços da Pinnacle em JSON limpo para pandas ou R, fairProb como referência, fechamentos diários no Builder e exportação Enterprise.
- [Steam chasing com alertas de queda da Pinnacle](https://pinnfeed.io/pt-br/answers/steam-chasing-pinnacle-alerts): Como steam chasers usam as quedas da Pinnacle como sinal: /v1/drops ou deltas do WebSocket, filtro por maxStake e por que velocidade e limites importam.
- [Line shopping contra o preço da Pinnacle](https://pinnfeed.io/pt-br/answers/line-shopping-vs-pinnacle): Use o preço ao vivo da Pinnacle e a odd justa como referência ao comparar casas: compare cada oferta, marque preços acima do fair e registre a diferença.
- [Calculadora de arbitragem com odds da Pinnacle](https://pinnfeed.io/pt-br/answers/arbitrage-calculator-pinnacle-odds): Confira uma arbitragem entre a Pinnacle e outra casa: a fórmula, a divisão do stake, um loop de alertas em Python e os riscos que você precisa conhecer antes.
- [Planilha de apostas com CLV](https://pinnfeed.io/pt-br/answers/bet-tracker-spreadsheet-clv): Uma planilha que registra o seu preço, o preço sem margem da Pinnacle na aposta e o último preço capturado antes do início, e calcula o CLV de cada aposta.
- [Calculadora sem margem no Excel ou Google Sheets](https://pinnfeed.io/pt-br/answers/no-vig-calculator-excel-sheets): Fórmulas sem margem para Excel e Google Sheets em mercados de 2 e 3 resultados, e como trazer preços ao vivo da Pinnacle com as odds justas já calculadas.
- [Respostas a perguntas objetivas sobre a API de odds da Pinnacle](https://pinnfeed.io/pt-br/answers): Páginas curtas que respondem primeiro sobre a API e o WebSocket de odds da Pinnacle do PinnFeed: limites, erros, autenticação, CLV, steam e planilhas.
- [Teste grátis da API de odds da Pinnacle: como funciona](https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-free-trial): Os planos pagos da PinnFeed começam com 3 dias de teste: cartão obrigatório, cobrança após o dia 3 se você não cancelar, um por cliente. Plano Free sem cartão.
- [Odds da Pinnacle: dados históricos ou feed ao vivo](https://pinnfeed.io/pt-br/answers/pinnacle-odds-historical-vs-live): Precisa de feed ao vivo da Pinnacle, odds históricas ou os dois? O que o feed da PinnFeed e os fechamentos do Builder cobrem, seus limites e quando ter seu log.
## Guias
- [Odds da Pinnacle em tempo real via WebSocket com Python e Node](https://pinnfeed.io/pt-br/guides/pinnacle-odds-websocket-python-node): Conecte ao WebSocket de odds Pinnacle em Python ou Node em ~60 linhas: snapshot, deltas, pings e reconexão. Código pronto com PinnFeed Builder.
- [Detecte quedas de odds e movimentos de steam na Pinnacle em tempo real](https://pinnfeed.io/pt-br/guides/dropping-odds-steam-detection): Detecte quedas de odds e steam na Pinnacle em tempo real: detector Python no WebSocket PinnFeed, filtro maxStake e atalho /v1/drops.
- [Value bet contra casas soft com as odds justas da Pinnacle](https://pinnfeed.io/pt-br/guides/value-betting-no-vig-fair-odds): Ache apostas +EV comparando odds soft às justas sem margem da Pinnacle via WebSocket PinnFeed. Detector Python com cálculo de EV.
- [Meça seu closing line value contra o fechamento da Pinnacle](https://pinnfeed.io/pt-br/guides/closing-line-value-clv-tracking): Meça closing line value (CLV) contra as odds de fechamento da Pinnacle com /v1/closing do PinnFeed. Script Python que pontua seus fills.
- [Crie um bot de palpites no Telegram com odds da Pinnacle ao vivo](https://pinnfeed.io/pt-br/guides/telegram-picks-bot): Bot Node.js que posta steam da Pinnacle num canal Telegram em tempo real pelo WebSocket PinnFeed. BotFather, dry-run e código completo.
- [Odds da Pinnacle ao vivo dentro do ChatGPT e do Claude com MCP](https://pinnfeed.io/pt-br/guides/pinnacle-odds-chatgpt-claude-mcp): Use odds Pinnacle ao vivo no ChatGPT, Claude e Cursor com o MCP hospedado do PinnFeed em /mcp. Setup, ferramentas e prompts de exemplo.
- [Odds da Pinnacle no Google Sheets](https://pinnfeed.io/pt-br/guides/pinnacle-odds-google-sheets): Leve odds Pinnacle ao Google Sheets com Apps Script contra a API REST do PinnFeed. O plano Free serve para um board com 30 s de atraso.
- [Crie um bot de palpites para Discord com odds da Pinnacle ao vivo](https://pinnfeed.io/pt-br/guides/discord-picks-bot): Bot Node.js que publica o steam da Pinnacle num canal do Discord via webhook a partir do WebSocket da PinnFeed. Embeds, tratamento de 429 e código.
## Mais
- [English llms.txt](https://pinnfeed.io/llms.txt)
- [Texto completo em português](https://pinnfeed.io/llms-pt-br-full.txt)
---
Source: https://pinnfeed.io/pt-br/
# API de odds da Pinnacle em tempo real, via WebSocket
A PinnFeed é uma **API de odds da Pinnacle** feita para quem programa: um único **WebSocket** que envia um snapshot e depois só o que mudou. Você filtra no servidor por esporte, liga e mercado, cada linha chega com a **odd justa sem margem** e o **preço de fechamento** fica arquivado. Não precisa de conta na Pinnacle.
A PinnFeed (pinnfeed.io, com n duplo) é uma API de odds da Pinnacle, não o app do Pinterest PinFeed. O plano Free não pede cartão (REST com 30 s de atraso, 2 esportes).
**O plano WebSocket é o Builder, €99/mês** (IVA incluso quando aplicável): push em tempo real, os 13 esportes, todos os mercados e odds de fechamento. Todo plano pago começa com **3 dias grátis** (cartão obrigatório; a cobrança acontece no quarto dia, a menos que você cancele).
## Feito para o bot, não para o navegador
Tudo o que você teria de escrever sozinho (reconexão, regras de merge, conversão de odds, remoção da margem, detecção do início da partida) a gente faz uma vez do nosso lado e entrega como JSON limpo.
- **Push, sem polling.** Assine uma vez e receba deltas. Mercado parado não custa nada.
- **Filtros no servidor.** Por esporte, liga, evento, tipo de mercado e ao vivo ou pré-jogo. Você só recebe o que pediu.
- **Odds justas e fechamento.** Cada mercado traz sua margem e uma odd justa decimal por resultado. No início da partida, o último preço pré-jogo é arquivado como odd de fechamento.
- **Schema estável.** Eventos e mercados com ids estáveis, odds decimais e americanas, linhas, períodos, limite máximo e horário de corte.
- **MCP hospedado.** Um servidor MCP em `/mcp` deixa Claude, Cursor, Copilot e ChatGPT lerem odds ao vivo, quedas e odds de fechamento com a sua chave.
- **Chaves self-service.** Crie, renomeie e revogue chaves, veja o uso por chave e troque de plano pelo painel.
Os 13 esportes: futebol, tênis, basquete, hóquei no gelo, futebol americano, beisebol, rúgbi, MMA, boxe, vôlei e handebol, esports, golfe e críquete.
## Um cliente que funciona
Conecte, assine o futebol ao vivo e veja cada movimento. É um WebSocket comum com JSON: Python, Node ou qualquer outra linguagem.
```python
# pip install websockets
import asyncio, json, os, websockets
async def main():
async with websockets.connect("wss://pinnfeed.io/v1/stream",
additional_headers={"x-api-key": os.environ["PINNFEED_KEY"]}) as ws:
await ws.send(json.dumps({"type": "subscribe", "sports": ["soccer"], "live": True, "markets": ["moneyline"], "main": True}))
async for raw in ws:
msg = json.loads(raw)
if msg["type"] == "ping":
await ws.send('{"type":"pong"}') # responda ao heartbeat ou o servidor fecha a conexão
elif msg["type"] == "delta":
print(len(msg["changes"]), "changes")
asyncio.run(main())
```
O cliente completo, com book em memória e reconexão, está no [guia de Python e Node](/pt-br/guides/pinnacle-odds-websocket-python-node).
## Snapshot e depois só o que mudou
- **Snapshot e deltas.** Um snapshot em partes ao assinar e depois só os mercados que mudaram, agrupados por atualização.
- **Remoções são explícitas.** Mercados suspensos ou liquidados chegam como `op: "remove"`, então seu book nunca mostra preço velho.
- **O REST espelha o socket.** Os mesmos objetos saem de `GET /v1/odds` para cron jobs e cargas históricas.
## Push contra polling: a conta
Um cliente que faz polling só vê uma mudança na próxima requisição: em média chega meio intervalo atrasado e, no pior caso, um intervalo inteiro, mais a ida e volta. Um WebSocket não tem intervalo. É aritmética, não benchmark, então você pode conferir.
| Medida | WebSocket push | REST a cada 5 s | REST a cada 30 s | REST a cada 60 s |
|---|---|---|---|---|
| Quando você vê a mudança | Chega assim que acontece | No próximo poll | No próximo poll | No próximo poll |
| Atraso médio extra | Nenhum | 2,5 s | 15 s | 30 s |
| Atraso máximo extra | Nenhum | 5 s | 30 s | 60 s |
| Requisições por hora, um endpoint | 1 conexão | 720 | 120 | 60 |
Trânsito de rede e processamento valem para os dois e não aparecem aqui. O REST do nosso plano Free tem 30 s de atraso de propósito; o REST do Hobby e todos os planos WebSocket são em tempo real.
## Tabela de preços
| Plano | Preço (EUR, IVA incluso quando aplicável) | O que inclui |
|---|---|---|
| Free | €0 | REST com 30 s de atraso, 2 esportes, 1 req/s, 1.000 requisições/dia, sem cartão |
| Hobby | €29/mês | REST em tempo real, 3 esportes, 2 req/s, **sem WebSocket** |
| **Builder** | **€99/mês** | **O plano WebSocket**: 3 conexões, os 13 esportes, todos os mercados e props, REST 10 req/s, odds de fechamento |
| Pro | €199/mês | 10 conexões WebSocket, 30 req/s, frames brutos |
| Enterprise | Sob consulta | Exportação do arquivo de fechamento, SLA e licença comercial |
Preço do WebSocket com a ressalva certa: em 9 de novembro de 2026, o Builder era o menor preço publicado com cobrança mensal ou anual que encontramos para um WebSocket de odds da Pinnacle **ao vivo + pré-jogo**. Números, fontes e ressalvas na [página do preço](/pt-br/cheapest-pinnacle-odds-websocket). Os preços são cobrados em euros. [Ver todos os limites](/pt-br/pricing).
Perguntas objetivas com código: [respostas](/pt-br/answers) · [casos de uso](/pt-br/use-cases) · [guias](/pt-br/guides).
## Perguntas frequentes
### Ainda existe uma API pública da Pinnacle?
A Pinnacle fechou sua API pública para a maioria dos usuários em julho de 2025. A PinnFeed é um serviço independente que entrega os preços da Pinnacle a desenvolvedores por um WebSocket normalizado e uma API REST. Você não precisa de conta na Pinnacle.
### Por que um WebSocket e não polling em uma API REST?
Um cliente que faz polling só vê a mudança na próxima requisição, então em média chega meio intervalo atrasado. Com o WebSocket, a PinnFeed envia cada mudança assim que ela chega ao nosso servidor, filtrada pelo que você assinou e com odds justas. O Builder (€99/mês) é o plano WebSocket.
### O que é uma odd justa (sem margem)?
Os preços da Pinnacle incluem uma margem. Nós a removemos pelo método multiplicativo e devolvemos a probabilidade justa e a odd decimal justa de cada resultado, para você comparar qualquer casa com a linha mais afiada sem fazer contas.
### Tem plano grátis?
Sim. O plano Free dá acesso REST a dois esportes com 30 segundos de atraso e 1.000 requisições por dia, sem cartão. O Hobby (€29/mês) deixa o REST em tempo real; o Builder (€99/mês) adiciona o WebSocket em tempo real.
### Posso cancelar quando quiser?
Sim. Todo plano pago começa com 3 dias grátis (cartão obrigatório, cobrado no quarto dia a menos que você cancele) e é mensal pela Stripe; cancele ou troque de plano pelo painel com um clique. Planos em cripto são pré-pagos por 1, 3 ou 12 meses e nunca renovam sozinhos.
### O conteúdo é para maiores de idade?
PinnFeed é uma API self-serve de odds da Pinnacle em tempo real: um WebSocket normalizado (Builder €99/mês) mais REST, odds justas sem margem, histórico de closing, 13 esportes e um servidor MCP hospedado. Free €0 (REST, 30 s de atraso); Hobby €29/mês só REST; Pro €199/mês. 3 dias de trial nos planos pagos. Em 9 de novembro de 2026, o Builder era o menor preço publicado com cobrança mensal ou anual que encontramos para um WebSocket de odds Pinnacle ao vivo + pré-jogo (fontes).
Plano WebSocket
Builder · €99/mês · 3 conexões · ao vivo + pré-jogo · os 13 esportes
Também
Free €0 · Hobby €29/mês (sem WS) · Pro €199/mês · Enterprise sob medida
Trial
3 dias em Hobby, Builder e Pro (cartão obrigatório)
Sim. A PinnFeed é uma ferramenta de dados e o conteúdo é educativo, para maiores de 18 anos. Nada aqui é palpite garantido nem promessa de lucro. Jogue com responsabilidade e apenas onde for legal.
---
Source: https://pinnfeed.io/pt-br/pricing
# Preços da API de odds da Pinnacle
Comece grátis com dados REST com atraso ou teste qualquer plano pago **3 dias grátis**. **O Builder é o plano WebSocket** (€99/mês): push de odds da Pinnacle em tempo real, todos os esportes, todos os mercados e histórico de odds de fechamento. Cancele quando quiser.
A PinnFeed (pinnfeed.io, com n duplo) é uma API de odds da Pinnacle, não o app do Pinterest PinFeed.
## Planos
| Plano | Mensal (EUR, IVA incluso quando aplicável) | O que a chave inclui | Começar |
|---|---|---|---|
| Free | €0 | Snapshots REST (30 s de atraso) · 2 esportes à escolha · mercados principais · 1.000 requisições/dia · sem cartão | [Chave grátis](/signup) |
| Hobby | €29/mês | REST em tempo real (sem atraso) · 3 esportes · mercados principais + odds justas · 2 req/s · sem WebSocket | [3 dias grátis](/start/hobby) |
| **Builder · o plano WebSocket** | **€99/mês** | Push WebSocket em tempo real (3 conexões) · os 13 esportes · todos os mercados, linhas alternativas, props e futuros · REST 10 req/s · histórico de odds de fechamento | [3 dias grátis](/start/builder) |
| Pro | €199/mês | 10 conexões WebSocket · tudo do Builder · opção de frames brutos · REST 30 req/s · suporte prioritário | [3 dias grátis](/start/pro) |
| Enterprise | Sob consulta | 50 conexões WebSocket (mais sob consulta) · exportação em massa de odds de fechamento (CSV/Parquet) · SLA e licença comercial | [Fale com a gente](mailto:support@pinnfeed.io?subject=PinnFeed%20Enterprise) |
Preços em euros, cobrança mensal, com IVA europeu incluso quando aplicável; empresas podem informar o número fiscal no checkout. Pague com cartão pela Stripe ou pré-pague 1, 3 ou 12 meses em USDC, USDT, SOL ou BTC pelo painel.
## Todos os limites, lado a lado
| Limite | Free | Hobby | Builder | Pro | Enterprise |
|---|---|---|---|---|---|
| WebSocket em tempo real | — | — (só REST) | 3 conexões | 10 conexões | 50 (mais sob consulta) |
| API REST | 1 req/s · 1.000/dia | 2 req/s | 10 req/s | 30 req/s | 100 req/s |
| Teste grátis | — | 3 dias | 3 dias | 3 dias | — |
| Atraso dos dados | 30 segundos | Tempo real | Tempo real | Tempo real | Tempo real |
| Esportes | 2 à escolha | 3 à escolha | Os 13 | Os 13 | Os 13 |
| Mercados | Principais | Principais | Todas as linhas, períodos, props e futuros | Tudo + frames brutos | Tudo + brutos |
| Odds justas sem margem | ✓ | ✓ | ✓ | ✓ | ✓ |
| Histórico de odds de fechamento | — | — | ✓ | ✓ | Exportação em massa |
| Servidor MCP para IA | ✓ com atraso | ✓ | ✓ | ✓ | ✓ |
| Preço (EUR, IVA incluso quando aplicável) | €0 | €29/mês | €99/mês | €199/mês | Sob consulta |
| Suporte | Docs | E-mail | E-mail | Prioritário | SLA |
E o Builder comparado a outras opções? Em 9 de novembro de 2026, o Builder a €99/mês era o menor preço publicado com cobrança mensal ou anual que encontramos para um WebSocket de odds da Pinnacle **ao vivo + pré-jogo**; existe um WebSocket só pré-jogo publicado por menos. Detalhes e fontes no [comparativo de preços](/pt-br/cheapest-pinnacle-odds-websocket).
## Perguntas sobre cobrança
### Tem teste grátis?
Sim. Hobby, Builder e Pro começam com 3 dias grátis. O cartão é pedido no checkout e cobrado automaticamente depois do dia 3, a menos que você cancele antes. Um teste por pessoa.
### Posso pagar com cripto ou por um ano?
Sim. Pelo painel você pode pré-pagar 1, 3 ou 12 meses em USDC ou USDT (Ethereum, Base, Arbitrum, Polygon, BNB Chain, Solana), SOL ou BTC. Stablecoins são tokens em dólar, então o preço em euros é convertido pela taxa de referência do BCE na criação da fatura. Planos em cripto ativam com a confirmação on-chain e nunca renovam sozinhos.
### O Hobby inclui o WebSocket?
Não. O Hobby é só REST em tempo real. O WebSocket começa no Builder (€99/mês), o plano WebSocket, com 3 conexões, os 13 esportes e todos os mercados.
### O que acontece se um pagamento falhar?
A Stripe tenta cobrar de novo. Seu plano continua ativo por um período de carência de 3 dias e depois cai para Free até o pagamento ser concluído.
### Posso usar os dados comercialmente?
Sim, dentro dos seus próprios produtos e conforme a Política de Uso Aceitável. Redistribuir o feed bruto como um serviço de dados concorrente exige uma licença Enterprise.
### Vocês cobram impostos?
Plano WebSocket
Builder · €99/mês · 3 conexões · ao vivo + pré-jogo · os 13 esportes
Também
Free €0 · Hobby €29/mês (sem WS) · Pro €199/mês · Enterprise 50 (mais sob consulta)
Trial
3 dias em Hobby, Builder e Pro (cartão obrigatório)
Os preços estão em euros e incluem IVA quando aplicável: o valor publicado já inclui o IVA, e a Stripe calcula a parcela de IVA no checkout a partir do seu endereço de cobrança. Essa parcela pode ser 0 na inversão do sujeito passivo ou quando o IVA não se aplica.
---
Source: https://pinnfeed.io/pt-br/cheapest-pinnacle-odds-websocket
# O menor preço publicado com cobrança mensal para um WebSocket de odds da Pinnacle ao vivo e pré-jogo
Em 9 de novembro de 2026, o PinnFeed Builder a **€99/mês** (IVA incluso) era o menor preço publicado com cobrança mensal ou anual que encontramos para um WebSocket em tempo real que transmite odds da Pinnacle **ao vivo e pré-jogo**. Existe um WebSocket só pré-jogo publicado por menos (oddssea Prematch, US$ 59/mês). No mensal, odds-api.io Solo + WS está a €118/mês (EUR, sem impostos). O anual ≈ €98,33/mês (€1.180/ano), ainda acima do anual do Builder (≈ €82,50/mês IVA incluso). O [comparativo completo](/pt-br/compare) traz o link da página de preços de cada fornecedor.
Se a PinnFeed não servir para você, [alternativas à API de odds da Pinnacle](/pt-br/alternatives) explica quando cada outro fornecedor é a melhor escolha.
## O que €99 por mês compram
- **Push em tempo real.** Os preços são enviados quando mudam: um snapshot ao assinar e depois só os deltas. Sem polling e sem cota de requisições no socket.
- **3 conexões WebSocket**, os 13 esportes, ao vivo e pré-jogo.
- **Todos os mercados**: moneyline (1X2), handicap, total e total por equipe de cada período, linhas alternativas, props e futuros.
- **Odds justas sem margem** e a margem da casa em cada mercado, para precificar value bets sem fazer a conta na mão.
- **Histórico de odds de fechamento** para medir o CLV, via `/v1/closing`.
- **REST a 10 requisições por segundo** com o mesmo schema, para snapshots e cargas históricas.
- **Servidor MCP hospedado** em todos os planos, inclusive o Free (30 segundos de atraso), para ChatGPT, Claude ou Cursor lerem as mesmas odds. Os planos pagos são em tempo real; `get_closing_odds` precisa do Builder ou superior.
## Como o preço se compara
| Opção | Quanto você paga por mês | Push? | Ao vivo + pré-jogo? |
|---|---|---|---|
| oddssea Prematch | US$ 59 (≈ €53) | WebSocket | Só pré-jogo |
| **PinnFeed Builder** | **€99** (IVA incl. quando aplicável) | WebSocket | **Sim** |
| odds-api.io Solo + WebSocket | £98 por mês (≈ €117), ou £980 por ano (≈ €98,33 por mês) | WebSocket | Sim (várias casas) |
| oddspush REST + WebSocket | US$ 138 (≈ €124), 1 mês pré-pago | WebSocket | Sim |
| oddssea Live | US$ 149 (≈ €133) | WebSocket | Sim |
| pinnwire Pro + Raw WebSocket | US$ 89 + US$ 89 = US$ 178 (≈ €159) | WebSocket | Sim |
| Revendedores só-Pinnacle: plano REST + add-on WebSocket | US$ 99 + US$ 99 = US$ 198 (≈ €177) | WebSocket | Sim |
| Unabated Concierge | US$ 799 (≈ €716), só cinco ligas dos EUA | SSE | Esportes limitados |
| OpticOdds | Só sob orçamento | SSE, RabbitMQ | — |
| OddsJam API | Só sob orçamento | Push stream, protocolo não informado | — |
| The Odds API | A partir de US$ 30 (≈ €27) | Não, só polling | Sim (polling) |
Preços conforme publicados na página de cada fornecedor em 9 de novembro de 2026. As conversões para euro usam a taxa de referência do BCE de 6 de novembro de 2026 (1 USD = €0,89566, 1 GBP = €1,1988) e são aproximadas. Fontes: [oddssea.dev](https://oddssea.dev/), [oddspush.com](https://oddspush.com/#pricing), [pinnwire.com](https://pinnwire.com/), [odds-api.io/pricing](https://odds-api.io/pricing).
Ressalvas honestas: existe um WebSocket **só pré-jogo** publicado por menos (oddssea Prematch, US$ 59/mês ≈ €53); o plano anual do odds-api.io sai um pouco mais barato por mês se você paga o ano adiantado (≈ €98,33); e a The Odds API é mais barata se polling basta para você, mas não tem WebSocket.
## Jeitos mais baratos de começar
- **Free**: €0, snapshots REST com 30 segundos de atraso, 2 esportes, 1.000 requisições por dia. Suficiente para construir e testar seu parser.
- **Hobby**: €29/mês, REST em tempo real sem atraso, 3 esportes. Sem WebSocket.
- **Builder**: €99/mês, o plano WebSocket. [Ver o Builder na página de preços](/pt-br/pricing#plan-builder).
## Conecte em poucas linhas
```python
# pip install websockets
import asyncio, json, os, websockets
async def main():
async with websockets.connect("wss://pinnfeed.io/v1/stream",
additional_headers={"x-api-key": os.environ["PINNFEED_KEY"]}) as ws:
await ws.send(json.dumps({"type": "subscribe", "sports": ["soccer"], "markets": ["moneyline"], "main": True}))
async for raw in ws:
msg = json.loads(raw)
if msg["type"] == "ping":
await ws.send('{"type":"pong"}')
elif msg["type"] == "delta":
print(len(msg["changes"]), "changes")
asyncio.run(main())
```
Um cliente completo que mantém o book ao vivo, com reconexões, está no [guia de Python e Node](/pt-br/guides/pinnacle-odds-websocket-python-node).
## Perguntas frequentes
### Quanto custa um WebSocket de odds da Pinnacle ao vivo e pré-jogo?
Em 9 de novembro de 2026, o PinnFeed Builder a €99/mês (IVA incluso) era o menor preço publicado com cobrança mensal ou anual que encontramos para um WebSocket em tempo real que transmite odds da Pinnacle ao vivo e pré-jogo. Existe um WebSocket só pré-jogo publicado por menos (oddssea Prematch, US$ 59/mês). No mensal, odds-api.io Solo + WS está a €118/mês (EUR, sem impostos). O anual ≈ €98,33/mês (€1.180/ano), ainda acima do anual do Builder (≈ €82,50/mês IVA incluso).
### Tem teste grátis?
Sim. Todo plano pago começa com 3 dias grátis. Você cadastra um cartão no checkout e a cobrança acontece no quarto dia, a menos que cancele. O plano Free não pede cartão.
### Posso pagar com cripto?
Sim. Além do cartão pela Stripe, você pode pré-pagar 1, 3 ou 12 meses em USDC, USDT, SOL ou BTC pelo painel. Planos em cripto nunca renovam sozinhos.
### Preciso de conta na Pinnacle?
Não. Você só precisa de uma chave de API da PinnFeed. A PinnFeed é independente e não é afiliada à Pinnacle.
---
Source: https://pinnfeed.io/pt-br/compare
# Comparativo de APIs de odds da Pinnacle: quem transmite os preços e quanto custa
Se você precisa que as odds da Pinnacle cheguem ao seu código no instante em que mudam, o mercado se divide em três grupos: APIs self-service com WebSocket, revendedores só-Pinnacle que vendem o socket como add-on, e fornecedores enterprise que só passam preço numa call comercial. Aqui estão os preços publicados que encontramos, com links, para você conferir cada número.
**Resposta curta:** em 9 de novembro de 2026, o PinnFeed Builder a **€99/mês** (IVA incluso) era o menor preço publicado com cobrança mensal ou anual que encontramos para um WebSocket em tempo real que transmite odds da Pinnacle **ao vivo e pré-jogo**. Existe um WebSocket só pré-jogo publicado por menos (oddssea Prematch, US$ 59/mês). No mensal, odds-api.io Solo + WS está a €118/mês (EUR, sem impostos). O anual ≈ €98,33/mês (€1.180/ano), ainda acima do anual do Builder (≈ €82,50/mês IVA incluso). Se polling basta para você, a The Odds API é mais barata que todos, mas não tem nenhum feed push.
## A tabela comparativa
Preços conforme publicados na página de cada fornecedor em 9 de novembro de 2026. As conversões para euro usam a taxa de referência do BCE de 6 de novembro de 2026 (1 GBP = €1,1988, 1 USD = €0,89566) e são aproximadas.
| Fornecedor | Odds da Pinnacle | Push em tempo real | Plano publicado mais barato com push | ≈ € por mês | Plano grátis | Fonte |
|---|---|---|---|---|---|---|
| oddssea Prematch | Sim (só Pinnacle) | WebSocket | Prematch, US$ 59/mês | ≈ €53 | Sim, REST pré-jogo com atraso | [oddssea.dev](https://oddssea.dev/) (conferido em 9 nov. 2026) |
| **PinnFeed** | Sim (só Pinnacle) | WebSocket, deltas normalizados | Builder (ao vivo + pré-jogo) | **€99** (IVA incl. quando aplicável) | Sim, REST com 30 s de atraso | [preços](/pt-br/pricing) |
| odds-api.io | Sim (uma das suas casas) | WebSocket | Solo (2 casas) + WebSocket, £98/mês | ≈ €117 mensal · ≈ €98,33 no anual | Não | [odds-api.io/pricing](https://odds-api.io/pricing) |
| oddspush | Sim (só Pinnacle) | WebSocket | REST + WebSocket, US$ 138 (1 mês pré-pago) | ≈ €124 | Teste de 7 dias (REST + WS) | [oddspush.com](https://oddspush.com/#pricing) (conferido em 9 nov. 2026) |
| oddssea Live | Sim (só Pinnacle) | WebSocket | Live, US$ 149/mês | ≈ €133 | Sim, REST pré-jogo com atraso | [oddssea.dev](https://oddssea.dev/) (conferido em 9 nov. 2026) |
| pinnwire | Sim (só Pinnacle) | Add-on de WebSocket bruto (+ quedas via SSE) | Pro US$ 89 + Raw WS US$ 89 = US$ 178 | ≈ €159 | Sim, 100 requisições/dia | [pinnwire.com](https://pinnwire.com/), [docs](https://pinnwire.com/docs.html) (conferido em 9 nov. 2026) |
| Revendedores só-Pinnacle | Sim (só Pinnacle) | Add-on de WebSocket bruto | Plano REST de US$ 99 + add-on WebSocket de US$ 99 | ≈ €177 | Sim, 100 requisições/dia | Páginas de preços publicadas dos três revendedores conferidos |
| SportsGameOdds | Pinnacle no Pro e acima | WebSocket via Pusher (beta); envia ids de eventos alterados e você busca de novo por REST | AllStar ou plano sob medida, preço sob consulta | Não publicado | Sim (Amateur, atualizações a cada 10 minutos) | [docs de streaming](https://sportsgameodds.com/docs/guides/realtime-streaming-api), [preços](https://sportsgameodds.com/pricing/) |
| OddsPapi | Sim | WebSocket (v5) | Só plano B2B | Não publicado | Sim, 250 requisições/mês | [docs do WebSocket](https://oddspapi.io/en/docs/websocket-api) |
| Unabated | Não aparece na página da API; Unabated Line no Concierge | SSE, sem WebSocket | Concierge, US$ 799/mês (NFL, NBA, MLB, NHL, WNBA; uso pessoal) | ≈ €716 | 15 segundos de atraso, para publishers que cumprem metas de tráfego por links | [unabated.com/odds-api](https://unabated.com/odds-api) |
| OpticOdds | Sim (agregador) | SSE e RabbitMQ, sem WebSocket | Só sob orçamento | Não publicado | Não | [preços](https://opticodds.com/pricing), [FAQ da API](https://developer.opticodds.com/docs/api-faq) |
| OddsJam API | Não aparece na página da API | Push stream, protocolo não informado | Só sob orçamento | Não publicado | Não publica plano grátis da API | [oddsjam.com/odds-api](https://oddsjam.com/odds-api) |
| The Odds API | Sim (região UE) | **Nenhum**, só polling REST | Sem plano push; polling a partir de US$ 30/mês | ≈ €27 (polling) | Sim, 500 créditos/mês | [the-odds-api.com](https://the-odds-api.com/) |
## Como ler a tabela
- **Push contra polling.** Um WebSocket entrega cada mudança de preço uma vez, quando ela acontece. Fazer polling num endpoint REST a cada N segundos perde os movimentos no meio do caminho e gasta cota com preços que não mudaram. Para detectar steam, modelos ao vivo ou qualquer coisa sensível a tempo, push é o que importa. Veja [por que push ganha de polling](/odds-websocket-api) (em inglês).
- **Ao vivo + pré-jogo contra só pré-jogo.** Vários feeds dedicados publicam um WebSocket só pré-jogo mais barato. A afirmação desta página vale apenas para planos que transmitem odds da Pinnacle **ao vivo e pré-jogo**. O oddssea Prematch, a US$ 59/mês, é mais barato se você não precisa do ao vivo.
- **Só Pinnacle contra várias casas.** A PinnFeed traz só a Pinnacle, o mercado mais afiado e o preço de referência usual. Se você também precisa das odds de casas soft no mesmo feed, um agregador como odds-api.io ou SportsGameOdds encaixa melhor, e você paga por cada casa extra.
- **O que o preço inclui.** O Builder inclui o WebSocket com REST a 10 requisições por segundo, os 13 esportes, linhas alternativas, props e futuros, odds justas em todo mercado e histórico de odds de fechamento. Os revendedores só-Pinnacle vendem o socket como add-on de US$ 99 sobre um plano REST, por isso o total fica em torno de €177. A pinnwire também cobra o WebSocket bruto como add-on de +US$ 89 no Pro e acima.
- **Fornecedores só sob orçamento.** OpticOdds, a API da OddsJam e os planos B2B de outros fornecedores não publicam preços. Artigos de terceiros citam valores, mas deixamos de fora porque os fornecedores não os publicaram.
## Uma página por fornecedor
Cada fornecedor tem sua própria página com um veredito, uma tabela de preços datada e quando escolhê-lo em vez da PinnFeed: comece por [alternativas à API de odds da Pinnacle](/pt-br/alternatives) ou vá direto para [oddssea](/pt-br/oddssea-alternative), [odds-api.io](/pt-br/odds-api-io-alternative), [oddspush](/pt-br/oddspush-alternative), [pinnwire](/pt-br/pinnwire-alternative), [The Odds API](/pt-br/the-odds-api-alternative), [OpticOdds](/pt-br/opticodds-alternative), [OddsJam](/pt-br/oddsjam-alternative), [SportsDataIO](/pt-br/sportsdataio-alternative), [Sportmonks](/pt-br/sportmonks-alternative), [Betfair Exchange API](/pt-br/betfair-exchange-api-alternative), [OddsPapi](/pt-br/oddspapi-alternative), [SportsGameOdds](/pt-br/sportsgameodds-alternative) ou [Unabated](/pt-br/unabated-alternative).
## O que não afirmamos
- Não afirmamos ter latência menor que qualquer fornecedor citado; não fizemos teste lado a lado.
- Não afirmamos ser mais baratos que a The Odds API, que custa menos mas não envia dados por push.
- Não afirmamos ser mais baratos que um WebSocket **só pré-jogo** (oddssea Prematch, US$ 59/mês em 9 de novembro de 2026).
- "Menor" aqui significa o menor preço publicado com cobrança mensal ou anual que conseguimos encontrar em 9 de novembro de 2026 para um WebSocket em tempo real que transmite odds da Pinnacle **ao vivo e pré-jogo**. Preços mudam. Se você encontrar um plano publicado mais barato dentro desse escopo, escreva para a gente e atualizamos a página.
## Perguntas frequentes
### Qual é o menor preço publicado com cobrança mensal ou anual para um WebSocket de odds da Pinnacle ao vivo e pré-jogo?
Em 9 de novembro de 2026, o PinnFeed Builder (€99/mês mensal, ou €990/ano ≈ €82,50/mês anual; IVA incluso) era o menor preço publicado que encontramos para um WebSocket em tempo real que transmite odds da Pinnacle ao vivo e pré-jogo com cobrança mensal ou anual. Existe um WebSocket só pré-jogo publicado por menos (oddssea Prematch, US$ 59/mês). No mensal, odds-api.io Solo + WebSocket está a €118/mês (EUR; preços sem impostos segundo os Termos). O anual é €1.180/ano ≈ €98,33/mês (sem impostos), ainda acima do anual do Builder (≈ €82,50/mês IVA incluso).
### Existe um WebSocket grátis de odds da Pinnacle?
Não encontramos nenhum. Os planos grátis com preços da Pinnacle são só REST: o plano grátis da PinnFeed tem 30 segundos de atraso, a The Odds API dá 500 créditos por mês e a OddsPapi, 250 requisições por mês.
### A The Odds API tem WebSocket?
Não. A The Odds API é só REST; você faz polling para ver mudanças. Os planos começam em US$ 30 por mês.
### A OpticOdds tem WebSocket?
Não. O próprio FAQ da API da OpticOdds diz que não oferece webhooks nem WebSockets e transmite por Server-Sent Events. O preço é só sob orçamento.
### A PinnFeed é a API oficial da Pinnacle?
Não. A Pinnacle fechou sua API pública em julho de 2025. A PinnFeed é um serviço independente, não afiliado à Pinnacle, que redistribui preços observados da Pinnacle para desenvolvimento de software e pesquisa.
---
Source: https://pinnfeed.io/pt-br/faq
# Perguntas frequentes sobre a PinnFeed
Respostas diretas sobre a PinnFeed, a API de odds da Pinnacle em tempo real. A PinnFeed (pinnfeed.io, com n duplo) é uma API de odds da Pinnacle, não o app do Pinterest PinFeed. Há um plano Free (sem cartão, REST com 30 s de atraso, 2 esportes) e um teste grátis de 3 dias nos planos pagos (cartão obrigatório). Faltou algo? Escreva para support@pinnfeed.io.
## Perguntas sobre o produto e os dados
### O que é a PinnFeed?
A PinnFeed (pinnfeed.io, com n duplo) é uma API para desenvolvedores com as odds esportivas da Pinnacle em tempo real, não o app do Pinterest PinFeed. Ela entrega preços ao vivo e pré-jogo por um único WebSocket com filtros no servidor e atualizações delta, além de snapshots REST, odds justas sem margem, histórico de odds de fechamento e um servidor MCP hospedado para assistentes de IA.
### A PinnFeed é a API oficial da Pinnacle?
Não. A Pinnacle fechou sua API pública em julho de 2025. A PinnFeed é um serviço independente, não afiliado à Pinnacle, e você não precisa de conta na Pinnacle.
### Quais esportes e mercados estão cobertos?
Treze esportes: futebol, tênis, basquete, hóquei, futebol americano, beisebol, rúgbi, MMA, boxe, vôlei e handebol, esports, golfe e críquete. Os mercados são moneyline (1X2), handicap, total e total por equipe de cada período, mais linhas alternativas, props e futuros no Builder e acima.
### O que vem em cada mercado?
Odds decimais e americanas, a linha, o limite máximo de aposta da Pinnacle, a margem da casa e a odd justa sem margem e a probabilidade justa de cada resultado.
### Quão atualizados são os dados?
Os planos pagos são em tempo real: o WebSocket envia cada mudança assim que é recebida. O plano grátis tem 30 segundos de atraso.
### Posso usar a PinnFeed com o ChatGPT ou o Claude?
Sim. A PinnFeed hospeda um servidor MCP em https://pinnfeed.io/mcp que funciona com Claude, Claude Code, o modo desenvolvedor do ChatGPT, Cursor, VS Code Copilot e Codex. Veja o guia de MCP.
### O conteúdo é para maiores de idade?
Sim. Os dados de odds e os guias são material educativo para maiores de 18 anos. Nada aqui é palpite garantido, aposta certa ou promessa de lucro.
## Perguntas sobre preços e cobrança
### Quanto custa a PinnFeed?
Free €0 (REST, 30 segundos de atraso); Hobby €29/mês (REST em tempo real, sem WebSocket); Builder €99/mês (o plano WebSocket); Pro €199/mês; Enterprise sob consulta. Os preços incluem IVA quando aplicável.
### Qual plano inclui o WebSocket?
O Builder (€99/mês) e acima. As chaves Free e Hobby são só REST.
### Tem teste grátis?
Sim, 3 dias grátis em todo plano pago. O cartão é cobrado no quarto dia, a menos que você cancele. Um teste por cliente.
### A PinnFeed é o WebSocket da Pinnacle ao vivo + pré-jogo mais barato com cobrança mensal?
Em 9 de novembro de 2026, o PinnFeed Builder a €99/mês (IVA incluso) era o menor preço publicado com cobrança mensal ou anual que encontramos para um WebSocket em tempo real que transmite odds da Pinnacle **ao vivo e pré-jogo**. Existe um WebSocket só pré-jogo publicado por menos (oddssea Prematch, US$ 59/mês). No mensal, odds-api.io Solo + WS está a €118/mês (EUR, sem impostos). O anual ≈ €98,33/mês (€1.180/ano), ainda acima do anual do Builder (≈ €82,50/mês IVA incluso). O [comparativo](/pt-br/compare) lista todas as fontes.
### Posso pagar com cripto?
Sim. Você pode pré-pagar 1, 3 ou 12 meses em USDC, USDT, SOL ou BTC pelo painel, ou pagar com cartão pela Stripe.
### Os preços incluem IVA quando aplicável, e minha empresa pode informar um número fiscal?
Sim. Os preços estão em euros e incluem IVA quando aplicável: o valor publicado já inclui o IVA, e a Stripe calcula a parcela de IVA no checkout a partir do seu endereço de cobrança. Essa parcela pode ser 0 na inversão do sujeito passivo ou quando o IVA não se aplica. Empresas podem informar o número fiscal no checkout.
### Como cancelo?
Pelo painel: Plan & billing → Manage billing → Cancel. Você mantém o acesso até o fim do período pago.
---
Source: https://pinnfeed.io/pt-br/alternatives
# Alternativas à API de odds da Pinnacle: qual fornecedor serve para cada caso
**Se você precisa de odds da Pinnacle ao vivo e pré-jogo por WebSocket com cobrança mensal, o PinnFeed Builder custa €99/mês (IVA incluso). Em 9 de novembro de 2026, era o menor preço publicado com cobrança mensal ou anual que encontramos para um WebSocket em tempo real que transmite odds da Pinnacle ao vivo e pré-jogo. Existe um WebSocket só pré-jogo publicado por menos (oddssea Prematch, US$ 59/mês) e, na cobrança anual, o odds-api.io sai por cerca de €98,33/mês. Se você precisa de muitas casas, casas dos EUA, estatísticas de futebol a fundo ou um contrato enterprise, algum dos fornecedores abaixo serve melhor, e cada página diz isso.**
Todos os preços destas páginas foram lidos no site de cada fornecedor em 9 de novembro de 2026. Os valores em euro usam a taxa de referência do BCE de 6 de novembro de 2026 (US$ 1 = €0,89566, £1 = €1,1988) e são aproximados. Quando um fornecedor não publica preço, escrevemos «só sob orçamento»; quando não conseguimos verificar algo, escrevemos «sem dados» em vez de supor.
## Do que você precisa e qual fornecedor serve
| O que você precisa | Fornecedor que serve | Preço publicado que lemos (9 nov. 2026) | Nossa página |
|---|---|---|---|
| Pinnacle ao vivo + pré-jogo por WebSocket, mensal | PinnFeed Builder | €99/mês, IVA incl. quando aplicável | [preços](/pt-br/pricing) |
| WebSocket da Pinnacle só pré-jogo, pelo menor preço | oddssea Prematch | US$ 59/mês (≈ €52,84) | [alternativa ao oddssea](/pt-br/oddssea-alternative) |
| Pinnacle e casas soft no mesmo socket | odds-api.io | Solo + WebSocket £98/mês (≈ €117,48) | [alternativa ao odds-api.io](/pt-br/odds-api-io-alternative) |
| Polling barato em muitas casas | The Odds API | US$ 30/mês (≈ €26,87), só REST | [alternativa à The Odds API](/pt-br/the-odds-api-alternative) |
| Alertas de queda da Pinnacle por SSE | pinnwire Drops | US$ 89/mês (≈ €79,71) | [alternativa ao pinnwire](/pt-br/pinnwire-alternative) |
| Alertas de queda no servidor por SSE e frames brutos da Pinnacle | Um revendedor só-Pinnacle (REST + add-on WebSocket) | REST a partir de US$ 99/mês; WebSocket +US$ 99/mês | [alternativa a um revendedor só-Pinnacle](/pt-br/pinnodds-alternative) |
| Pré-pago em cripto, sem cartão | oddspush | REST + WebSocket US$ 138 por 1 mês (≈ €123,60) | [alternativa ao oddspush](/pt-br/oddspush-alternative) |
| Mais de 200 casas, contrato enterprise | OpticOdds | Só sob orçamento | [alternativa ao OpticOdds](/pt-br/opticodds-alternative) |
| Mais de 100 casas com props de jogadores e lesões | OddsJam API | Só sob orçamento | [alternativas ao OddsJam](/pt-br/oddsjam-alternative) |
| Dados de ligas dos EUA mais odds, uso pessoal | SportsDataIO Discovery Lab | Odds US$ 99/mês, dados do dia anterior | [alternativa ao SportsDataIO](/pt-br/sportsdataio-alternative) |
| Estatísticas de futebol, escalações e odds de casas soft | Sportmonks | Futebol a partir de €29/mês, odds como add-on | [alternativa ao Sportmonks](/pt-br/sportmonks-alternative) |
| Várias casas com Pinnacle no Pro, stream no All-Star | SportsGameOdds | Pro $299/mês (≈ €267,80); stream só sob orçamento | [alternativa ao SportsGameOdds](/pt-br/sportsgameodds-alternative) |
| REST multicasa com plano grátis pequeno, WebSocket no B2B | OddsPapi | Grátis 250 requisições/mês; WebSocket só sob orçamento | [alternativa ao OddsPapi](/pt-br/oddspapi-alternative) |
| Unabated Line e dados de ligas dos EUA via SSE | Unabated | Concierge $799/mês (≈ €715,63) | [alternativa ao Unabated](/pt-br/unabated-alternative) |
## Três tipos de fornecedor
- **Feeds dedicados da Pinnacle** (PinnFeed, oddssea, pinnwire, oddspush e revendedores só-Pinnacle que vendem REST mais um add-on WebSocket). Uma só casa, o preço sharp de referência, normalmente com odds justas e dados de queda. Diferem no escopo ao vivo ou pré-jogo, nas conexões, na cobrança e na forma de pagamento.
- **Agregadores de várias casas** (odds-api.io, The Odds API, OpticOdds, OddsJam API). Muitas casas no mesmo schema; a Pinnacle é mais uma quando oferecem. Melhores para arbitragem, comparação de linhas e casas dos EUA.
- **Plataformas de dados esportivos com odds** (SportsDataIO, Sportmonks). Primeiro resultados, estatísticas, escalações e calendários; as odds são um produto ou um add-on. Melhores quando as odds vivem dentro de um app esportivo mais amplo.
## Lado a lado
| Fornecedor | Pinnacle | Transporte push | Menor plano com push | ≈ €/mês | Fonte |
|---|---|---|---|---|---|
| **PinnFeed** | Sim, única casa | WebSocket (ao vivo + pré-jogo) | Builder | **€99** | [preços](/pt-br/pricing) |
| oddssea | Sim, única casa | WebSocket | Prematch US$ 59 (só pré-jogo); Live US$ 149 | ≈ €52,84; ≈ €133,45 | [oddssea.dev](https://oddssea.dev/) |
| odds-api.io | Sim, uma das suas casas | WebSocket | Solo + WebSocket £98 | ≈ €117,48 (≈ €98,33 no anual) | [odds-api.io/pricing](https://odds-api.io/pricing) |
| oddspush | Sim, única casa | WebSocket | REST + WebSocket US$ 138 (1 mês pré-pago) | ≈ €123,60 | [oddspush.com](https://oddspush.com/#pricing) |
| pinnwire | Sim, única casa | Add-on de WebSocket bruto; quedas por SSE | Pro US$ 89 + WebSocket US$ 89 | ≈ €159,43 | [pinnwire.com](https://pinnwire.com/) |
| Revendedor só-Pinnacle | Sim, única casa | Add-on de WebSocket bruto; quedas por SSE | Pro US$ 99 + WebSocket US$ 99 | ≈ €177,34 | [página do revendedor](/pt-br/pinnodds-alternative) |
| The Odds API | Sim (região UE) | Nenhum, polling REST | Sem plano push | n/a | [the-odds-api.com](https://the-odds-api.com/) |
| OpticOdds | A API oferece (agregador) | SSE e RabbitMQ, sem WebSocket | Só sob orçamento | Só sob orçamento | [FAQ da API](https://developer.opticodds.com/docs/api-faq) |
| OddsJam API | Não aparece na página da API (sem dados) | «Push stream», protocolo não informado | Só sob orçamento | Só sob orçamento | [oddsjam.com/odds-api](https://oddsjam.com/odds-api) |
| SportsDataIO | Não aparece nas páginas que lemos (sem dados) | Não informado (sem dados) | Planos comerciais só sob orçamento | Só sob orçamento | [developers](https://sportsdata.io/developers) |
| Sportmonks | Feed Standard: «limitado / com atraso»; Premium: não aparece | Não encontrado (sem dados) | Não encontramos plano push | n/a | [docs de casas](https://docs.sportmonks.com/v3/tutorials-and-guides/tutorials/odds-and-predictions/bookmakers) |
A tabela completa, com SportsGameOdds, OddsPapi e Unabated, está no [comparativo](/pt-br/compare). A lógica do preço está explicada em [preço do WebSocket ao vivo + pré-jogo](/pt-br/cheapest-pinnacle-odds-websocket).
## Quando outro fornecedor é a melhor escolha
- Você precisa de **mais que a Pinnacle**: casas soft para arbitragem, casas dos EUA ou props de jogadores de mais de 100 operadores. A PinnFeed só tem a Pinnacle.
- Você só precisa de odds **pré-jogo**: o oddssea Prematch é publicado abaixo do Builder.
- Você pode **pagar um ano adiantado**: o Solo + WebSocket anual do odds-api.io sai por cerca de €98,33/mês para 2 casas.
- Você só precisa fazer **polling** algumas vezes por minuto: a The Odds API custa menos e tem plano grátis.
- Você precisa de **SLA e contrato** para uma casa de apostas ou um veículo de mídia: OpticOdds, OddsJam API ou os planos comerciais do SportsDataIO.
## Quando a PinnFeed é a melhor escolha
- Você quer odds da Pinnacle **ao vivo e pré-jogo** em um único WebSocket com cobrança **mensal** e 3 conexões.
- Você quer **odds justas sem margem** (fair, fairProb, margin) e **histórico de odds de fechamento** em cada mercado sem escrever código extra.
- Você quer usar as mesmas odds dentro do ChatGPT ou do Claude com o **servidor MCP**.
- Você quer começar com uma chave REST grátis e depois testar o Builder por 3 dias.
## Como testar antes de pagar
1. Pegue uma chave grátis da PinnFeed e leia o [quickstart](/docs) (em inglês).
2. Rode o [cliente WebSocket em Python e Node](/pt-br/guides/pinnacle-odds-websocket-python-node) durante uma rodada inteira.
3. Em paralelo, abra o plano grátis ou o teste da alternativa que você está avaliando.
4. Registre os mesmos mercados nos dois e compare o que você realmente precisa: cobertura, campos, limites de conexão e condições de cobrança.
## Perguntas frequentes
### Qual é a melhor alternativa à API oficial da Pinnacle?
A Pinnacle encerrou sua API pública em julho de 2025, então todas as opções aqui são serviços independentes. Para odds da Pinnacle ao vivo e pré-jogo por WebSocket com cobrança mensal, o PinnFeed Builder a €99/mês era o menor preço publicado com cobrança mensal ou anual que encontramos em 9 de novembro de 2026. Para só pré-jogo, o oddssea Prematch a US$ 59/mês fica abaixo.
### Qual API de odds cobre mais casas de apostas?
Entre os fornecedores desta página, a OpticOdds anuncia mais de 200 casas e a OddsJam mais de 100. A PinnFeed só tem a Pinnacle.
### Quais alternativas publicam preços?
PinnFeed, oddssea, pinnwire, oddspush, odds-api.io, The Odds API e Sportmonks publicam preços. O SportsDataIO só publica os planos Discovery Lab de uso pessoal. OpticOdds e a API da OddsJam funcionam só sob orçamento.
### Existe um WebSocket grátis de odds da Pinnacle?
Não encontramos nenhum. Os planos grátis que incluem a Pinnacle são só REST, por exemplo o PinnFeed Free (30 segundos de atraso) e os 500 créditos por mês da The Odds API. O oddspush oferece um teste de 7 dias que inclui o WebSocket.
## Teste o Builder
O Builder é o plano WebSocket: €99/mês, 3 conexões, os 13 esportes, ao vivo e pré-jogo, odds justas e odds de fechamento. Comece o teste de 3 dias em [preços](/pt-br/pricing). O cartão é pedido e cobrado após o dia 3, a menos que você cancele.
*Só para maiores de 18 anos. A PinnFeed é uma API de dados para desenvolvedores e pesquisadores. Odds e estatísticas como odds justas ou CLV são ferramentas educativas, não conselhos de apostas, e nada disso promete lucro. Jogue com responsabilidade.*
---
Source: https://pinnfeed.io/pt-br/answers/odds-api-pricing-per-request-vs-flat
# Preço de uma API de odds: por requisição ou plano fixo
**Resposta:** as APIs de odds usam três modelos de preço. Os **pacotes de créditos** cobram pelo volume de requisições (The Odds API: 500 créditos grátis por mês e depois de 20K créditos por $30/mês até 15M por $249/mês, segundo o publicado em 9 de novembro de 2026). As **cotas por hora** incluem um ritmo de requisições e vendem mais como adicional (o Solo da odds-api.io inclui 5.000 requisições por hora). Os **planos fixos** cobram um preço com limite de ritmo: os planos pagos da PinnFeed não têm teto diário de requisições e, no Builder (€99/mês), as mudanças de preço chegam por WebSocket, então vigiar um mercado não custa uma requisição por consulta. Pacotes combinam com consultas ocasionais a muitas casas; o plano fixo, com vigiar preços da Pinnacle o dia todo.
## Os três modelos (publicado em 9 nov 2026)
| Modelo | Exemplo | O que você paga | Push |
|---|---|---|---|
| Pacote de créditos | The Odds API: 500 créditos grátis/mês; 20K $30/mês; 100K $59; 5M $119; 15M $249 | Volume de requisições; a página conta uma requisição como um esporte, um mercado e uma região | Não (polling REST) |
| Cota por hora | odds-api.io Solo £49/mês, 5.000 requisições/hora; mais requisições por hora como adicional mensal (10.000/h +£139/mês) | Número de casas e ritmo; o WebSocket custa 2× o plano | WebSocket (2× o plano) |
| Fixo com limite | PinnFeed Free 1.000 requisições/dia (30 s de atraso) · Hobby €29/mês, 2 req/s · Builder €99/mês, 10 req/s · Pro €199/mês, 30 req/s | Recursos e velocidade; sem teto diário nos planos pagos | WebSocket no Builder e no Pro |
Os valores dos concorrentes são os publicados nas páginas de preço em 9 de novembro de 2026 e podem mudar; a odds-api.io mostra preços sem impostos e a PinnFeed inclui IVA. Fornecedores que só passam orçamento (por exemplo OpticOdds ou a API da OddsJam) são "só orçamento" e não entram na tabela.
## Exemplo: polling de um mercado
Suponha que você consulte um esporte e três mercados a cada 10 segundos, o dia inteiro:
- 6 consultas por minuto × 1.440 minutos = **8.640 consultas por dia**, cerca de **259.200 por mês** (30 dias).
- Com a regra de uma requisição por esporte, mercado e região, três mercados dão cerca de **777.600 requisições por mês**. Isso passa do pacote de 100K e cabe no de 5M ($119/mês, segundo o publicado).
- Num plano fixo com WebSocket, a mesma vigilância é uma conexão: você recebe cada mudança quando ela chega ao servidor da PinnFeed, em vez de até 10 segundos depois, e os pushes não contam como requisições.
Consultar a cada 60 segundos divide o volume por 6, mas você vê cada movimento mais tarde. A conta de push contra polling: [push ou polling](/pt-br/answers/pinnacle-live-odds-push-vs-polling).
## Quando cada modelo serve
- **Muitas casas, consultas ocasionais:** um pacote de créditos costuma servir melhor; a PinnFeed só traz a Pinnacle. [Várias casas ou só Pinnacle](/pt-br/answers/multi-book-odds-api-vs-pinnacle-only).
- **Preços da Pinnacle vigiados o dia todo, ao vivo ou pré-jogo:** plano fixo com push. Em 9 de novembro de 2026, o Builder era o menor preço publicado com cobrança mensal ou anual que encontramos para um WebSocket de odds da Pinnacle **ao vivo + pré-jogo**. O plano Prematch da oddssea ($59) custa menos, mas é só pré-jogo; o Solo + WebSocket da odds-api.io custa €118/mês (sem impostos) e o anual, cerca de €98,33/mês, fica acima do Builder anual (€82,50/mês). Detalhes: [comparativo](/pt-br/compare).
- **Protótipos:** comece num plano grátis e meça seu padrão real de requisições: [APIs de odds grátis](/pt-br/answers/free-odds-api).
## Planos
[Builder](/pt-br/pricing#plan-builder) (€99/mês, €990/ano): WebSocket, 3 conexões, todos os mercados e registros de fechamento. Teste de 3 dias; é preciso cartão e a cobrança acontece depois do dia 3, se você não cancelar.
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### As mensagens do WebSocket contam no limite da PinnFeed?
Não. O limite de ritmo vale para requisições REST. No WebSocket, o limite é o número de conexões simultâneas (3 no Builder, 10 no Pro).
### O que acontece se eu passar dos limites da PinnFeed?
O REST responde `429 rate_limited` com o cabeçalho `Retry-After`; o Free também responde `429 daily_quota` depois de 1.000 requisições (zera às 00:00 UTC). Veja os [limites de requisições](/pt-br/answers/pinnacle-odds-api-rate-limits).
### Um pacote de créditos compensa em algum caso?
Sim, com pouco volume ou quando você precisa de muitas casas. O plano grátis da The Odds API e o pacote de $30 custam menos em valor absoluto do que qualquer plano pago da PinnFeed: [polling da The Odds API contra push](/pt-br/answers/the-odds-api-polling-vs-pinnfeed-push).
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-startup-mvp
# API de odds da Pinnacle para o MVP da sua startup
**Resposta:** dá para montar e lançar um MVP na PinnFeed sem falar com vendas. Prototipe com a chave **Free** (REST, 30 segundos de atraso, 2 esportes, 1.000 requisições por dia, sem cartão). Quando precisar de tempo real, o **Hobby** (€29/mês) dá REST em tempo real e o **Builder** (€99/mês) acrescenta o WebSocket com os 13 esportes, todos os mercados e registros de fechamento. Guarde a chave no seu servidor, abra um WebSocket ali e distribua os preços para seus usuários. Mostrar valores derivados no seu produto é self-serve; revender o feed em si exige Enterprise.
## Um caminho que serve para quase todo MVP
| Fase | Plano | Por quê |
|---|---|---|
| Protótipo e demo | Free | Esquema real e preços reais, 30 s atrasados; basta para a interface |
| Beta fechado | Hobby ou Builder | Tempo real; Builder se precisar de push ao vivo, props ou fechamentos |
| Lançamento | Builder (mensal ou anual) | 3 conexões WebSocket, 10 req/s REST |
| Escala ou redistribuição | Pro ou Enterprise | 10 conexões e frames raw, ou licença comercial e SLA |
O Builder anual custa €990 (€82,50/mês); o trimestral, €267. Todo plano pago começa com 3 dias de teste; é preciso cartão e a cobrança acontece depois do dia 3, se você não cancelar: [como funciona o teste](/pt-br/answers/pinnacle-odds-api-free-trial).
## A arquitetura num desenho
```
PinnFeed WebSocket ──► your server (one connection, key stays here)
├─ in-memory book (snapshot + deltas)
├─ Postgres for history you want to keep
└─ your API / SSE ──► your users
```
- **Nunca mande a chave para o navegador.** Passe o REST pelo seu backend: [JavaScript no navegador e CORS](/pt-br/answers/pinnacle-odds-browser-javascript-cors), [proxy com FastAPI](/pt-br/answers/pinnacle-odds-fastapi-proxy).
- **Mantenha um livro local.** Aplique o snapshot e depois os deltas: [snapshot e delta](/pt-br/answers/pinnacle-odds-websocket-snapshot-delta).
- **Guarde o que precisar.** [Armazenamento no Postgres](/pt-br/answers/pinnacle-odds-postgres-storage); fechamentos no Builder: [API de linhas de fechamento](/pt-br/answers/pinnacle-closing-line-api-clv).
- **Uma conexão por processo basta.** O Builder permite 3, então sobra espaço para staging e um worker.
## O que você pode mostrar aos usuários
Pela [política de uso aceitável](/legal/acceptable-use), o uso comercial dentro do seu app é permitido, inclusive exibição derivada como alguns preços, odds justas, vantagens ou gráficos. Uma API ou um download em massa das odds para seus clientes é redistribuição e exige Enterprise: [uso comercial](/pt-br/answers/pinnacle-odds-api-commercial-use). Não apresente seu produto nem os dados como oficiais da Pinnacle.
## Ideias que cabem nos planos self-serve
[Ferramentas para tipsters](/pt-br/use-cases/tipsters), [bots de alerta no Discord](/pt-br/use-cases/discord-servers), [ciência de dados e modelos](/pt-br/use-cases/data-scientists), [scanners de EV feitos com IA](/pt-br/answers/vibe-coding-ev-scanner).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. Verifique as regras de apostas e de dados em cada mercado onde lançar. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### Preciso de conta na Pinnacle?
Não. A PinnFeed é um serviço de dados independente; você só precisa de uma chave da PinnFeed. Não é afiliada à Pinnacle.
### Posso começar no mensal e passar para o anual depois?
Sim, os planos são self-serve pelo painel. Veja [cobrança anual e trimestral](/pt-br/answers/pinnfeed-annual-quarterly-billing).
### E se precisarmos de mais que o Builder?
O Pro (€199/mês) sobe para 10 conexões e 30 req/s. O Enterprise inclui 50 conexões WebSocket (mais sob consulta), exportações em massa de fechamentos, SLA e licença comercial.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-python-rest
# Como obter odds da Pinnacle em Python (REST)
**Resposta:** `pip install requests`, defina `PINNFEED_KEY` e chame `GET https://pinnfeed.io/v1/odds` com o cabeçalho `x-api-key`. O plano Free funciona na hora (30 s de atraso, 2 esportes). Para um livro em memória ao vivo, use o [exemplo de WebSocket em Python](/pt-br/answers/pinnacle-odds-websocket-python-example) no Builder.
## Snapshot em cerca de 15 linhas
```python
import os, requests
KEY = os.environ["PINNFEED_KEY"]
r = requests.get(
"https://pinnfeed.io/v1/odds",
params={"sport": "soccer", "market": "moneyline", "main": "true", "limit": 20},
headers={"x-api-key": KEY},
timeout=15,
)
r.raise_for_status()
for ev in r.json().get("events", []):
m = next((x for x in ev["markets"] if x["type"] == "moneyline"), None)
if not m:
continue
prices = {o["name"]: (o["decimal"], o["fair"]) for o in m["outcomes"]}
print(ev["home"], "v", ev["away"], prices)
```
Outros endpoints úteis: `/v1/sports`, `/v1/events`, `/v1/drops` e `/v1/closing/{id}` (Builder ou superior). Referência: [docs REST](/docs/rest).
## Quando o WebSocket é melhor
| Tarefa | Use |
|---|---|
| Planilhas, cron, coleta para análise | REST (esta página) |
| Bot de steam, livro ao vivo, alertas no Telegram | WebSocket ([exemplo](/pt-br/answers/pinnacle-odds-websocket-python-example)) |
Próximo passo com dados: [odds num DataFrame do pandas](/pt-br/answers/pinnacle-odds-pandas-dataframe).
## Planos
[Chave grátis](/signup) · [Builder](/pt-br/pricing#plan-builder) (€99/mês) para o push. Teste de 3 dias; é preciso cartão e a cobrança acontece depois do dia 3, se você não cancelar.
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### Preciso de WebSocket no plano Free?
Não. O Free é só REST por definição.
### Onde fica a paginação?
`limit` e `offset` nos endpoints de lista: veja [REST](/docs/rest) e a [paginação em Python](/pt-br/answers/pinnacle-odds-python-events-odds-pagination).
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-nodejs-reconnect
# WebSocket de odds da Pinnacle em Node.js com reconexão
**Resposta:** no `close`, espere `min(delay*2, 30000)` ms mais um jitter, abra um socket novo, reenvie o `subscribe` e reconstrua o estado com o novo `snapshot` (limpe os mapas quando `part === 1`). Responda sempre ao `ping` do servidor com `{"type":"pong"}` ou o servidor fecha a conexão depois de uns 60 s. Exige o plano Builder (€99/mês). Arquivo completo: `stream.mjs` no [guia de Python e Node](/pt-br/guides/pinnacle-odds-websocket-python-node).
## Padrão de reconexão
```javascript
// Example — npm install ws; export PINNFEED_KEY=...
import WebSocket from 'ws';
const WS_URL = process.env.PINNFEED_WS || 'wss://pinnfeed.io/v1/stream';
const KEY = process.env.PINNFEED_KEY;
const events = new Map();
const markets = new Map();
function connect(delay = 1000) {
const ws = new WebSocket(WS_URL, { headers: { 'x-api-key': KEY } });
ws.on('open', () => {
delay = 1000;
ws.send(JSON.stringify({
type: 'subscribe',
sports: ['soccer', 'tennis'],
markets: ['moneyline'],
main: true,
specials: false,
}));
});
ws.on('message', (raw) => {
const msg = JSON.parse(raw);
if (msg.type === 'ping') return ws.send('{"type":"pong"}');
if (msg.type === 'snapshot') {
if (msg.part === 1) { events.clear(); markets.clear(); }
msg.events.forEach((e) => events.set(e.id, e));
msg.markets.forEach((m) => markets.set(m.id, m));
if (msg.final) console.log(`book ready: ${events.size} events, ${markets.size} markets`);
}
// apply deltas the same way as in the full stream.mjs
});
ws.on('close', (code) => {
const wait = Math.min(delay * 2, 30000);
console.log(`closed (${code}); reconnecting in ${wait / 1000}s`);
setTimeout(() => connect(wait), wait + Math.random() * 1000);
});
}
connect();
```
O código de fechamento **1001** (`server_shutdown`) indica um deploy: reconecte com backoff ([docs do WebSocket](/docs/websocket)). Evite o efeito manada: o jitter importa.
## Planos
[Comece com o Builder](/pt-br/pricing#plan-builder). Teste de 3 dias; é preciso cartão e a cobrança acontece depois do dia 3, se você não cancelar. Relacionado: [exemplo em Python](/pt-br/answers/pinnacle-odds-websocket-python-example).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### Reaproveito o mesmo Map entre reconexões?
Limpe-o na primeira parte do snapshot (`part === 1`). Senão você mantém mercados que o novo snapshot não menciona mais.
### O Hobby pode reconectar ao stream?
O Hobby não tem WebSocket. Você recebe `403 plan_lacks_ws` antes de qualquer lógica de reconexão rodar.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-google-sheets-excel
# API de odds da Pinnacle para Google Sheets e Excel
**Resposta:** chame `GET /v1/odds` da API REST da PinnFeed com o cabeçalho `x-api-key` a partir do Google Apps Script (`UrlFetchApp`) ou do Excel (Power Query, Office Scripts ou um pequeno script em Python). O Free (€0, 30 s de atraso, 2 esportes, 1.000 requisições por dia) basta para um painel atualizado a cada 15 minutos. Passo a passo com Apps Script: [guia do Google Sheets](/pt-br/guides/pinnacle-odds-google-sheets).
## Google Sheets (a chamada básica)
Guarde a chave nas **propriedades do script** como `PINNFEED_KEY`, nunca numa célula:
```javascript
// Example fragment — full script in the Sheets guide
function refreshOdds() {
const key = PropertiesService.getScriptProperties().getProperty('PINNFEED_KEY');
const url = 'https://pinnfeed.io/v1/odds?sport=soccer&market=moneyline&main=true&limit=50';
const res = UrlFetchApp.fetch(url, { headers: { 'x-api-key': key }, muteHttpExceptions: true });
if (res.getResponseCode() !== 200) {
console.warn(res.getContentText());
return; // leave previous rows alone
}
const events = JSON.parse(res.getContentText()).events || [];
// write Starts / League / Home / Away / 1 / X / 2 / fair columns into sheet "Odds"
}
```
Acionador: por tempo a cada 15 minutos ≈ 96 chamadas por dia, dentro da cota diária do Free.
## Excel
Opções fiéis à API:
1. **Power Query:** `Web.Contents("https://pinnfeed.io/v1/odds?sport=soccer&main=true", [Headers=[#"x-api-key"=Key]])` e depois expanda `events`, `markets` e `outcomes`.
2. **Python no Excel** ou um script local com `requests` que grava um `.xlsx` em horários definidos.
3. **Não** coloque a chave na URL de uma pasta de trabalho compartilhada.
Não existe suplemento oficial do Excel; a integração é o JSON da API REST ([docs REST](/docs/rest)).
## Planos
Painel com atraso: [cadastro grátis](/signup). O push em tempo real precisa do [Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; é preciso cartão e a cobrança acontece depois do dia 3, se você não cancelar.
Mais: [calculadora sem margem no Excel ou Sheets](/pt-br/answers/no-vig-calculator-excel-sheets), [alerta por e-mail de quedas no Sheets](/pt-br/answers/google-sheets-odds-drop-email-alert), [controle de apostas com CLV](/pt-br/answers/bet-tracker-spreadsheet-clv).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### Dá para levar o WebSocket ao Sheets?
Não de forma útil. O Apps Script não mantém um socket aberto. Use REST com um temporizador no Sheets e o [cliente WebSocket](/pt-br/guides/pinnacle-odds-websocket-python-node) para ferramentas ao vivo.
### Por que x-api-key e não um parâmetro na URL?
É a autenticação preferida nos [docs](/docs/authentication). O cabeçalho mantém a chave fora dos logs e das fórmulas das células.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-chatgpt-mcp
# Odds da Pinnacle no ChatGPT e no Claude (MCP)
**Resposta:** adicione o servidor MCP hospedado da PinnFeed em **`https://pinnfeed.io/mcp`** com sua chave de API. O assistente passa a chamar ferramentas de odds ao vivo e pré-jogo, quedas, preços justos e linhas de fechamento. Cada chamada de ferramenta conta como uma requisição REST do seu plano. Guia completo: [guia de MCP](/pt-br/guides/pinnacle-odds-chatgpt-claude-mcp).
## Conectar
**Cursor** (`~/.cursor/mcp.json`):
```json
{
"mcpServers": {
"pinnfeed": {
"url": "https://pinnfeed.io/mcp",
"headers": { "Authorization": "Bearer YOUR_KEY" }
}
}
}
```
**Claude Code:**
```bash
claude mcp add --transport http pinnfeed https://pinnfeed.io/mcp \
--header "Authorization: Bearer YOUR_KEY"
```
**ChatGPT / Claude desktop:** crie um conector personalizado com a URL `https://pinnfeed.io/mcp?key=YOUR_KEY` (o caminho exato em cada app está nos [docs de MCP](/docs/mcp)).
Use uma **chave separada do painel** para cada assistente, assim você revoga uma sem trocar todas.
## Ferramentas
`get_account`, `list_sports`, `search_events`, `get_live_odds`, `get_prematch_odds`, `get_event`, `get_drops`, `get_closing_odds`.
Exemplos de prompt: "Quais preços de futebol mais caíram na Pinnacle em 15 minutos?" · "Moneyline ao vivo de tênis com preço justo e margem." · "Odds de fechamento do evento 1640229582."
## Teste sem assistente
```bash
curl -s https://pinnfeed.io/mcp \
-H "Authorization: Bearer $PINNFEED_KEY" \
-H "content-type: application/json" -H "accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_drops","arguments":{"sport":"soccer","minutes":15}}}'
```
## Planos
A chave grátis funciona com dados atrasados: [cadastro](/signup). A ferramenta de fechamentos e a profundidade ao vivo: [Builder](/pt-br/pricing#plan-builder). Teste de 3 dias; é preciso cartão e a cobrança acontece depois do dia 3, se você não cancelar.
Mais: [livro de receitas de prompts MCP](/pt-br/answers/pinnacle-odds-mcp-prompts-cookbook), [referência das ferramentas MCP](/pt-br/answers/pinnacle-odds-mcp-tools-reference).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### O MCP precisa do plano WebSocket?
O MCP fala HTTP com a mesma API REST. O Free funciona (com atraso). `get_closing_odds` precisa do Builder ou superior. A atualização segue o atraso do seu plano.
### As odds são coladas no chat?
Não. O assistente chama o servidor; você não cola nenhum painel no prompt.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-max-stake-api
# Max stake da Pinnacle (`maxStake`) via API
**Resposta:** cada objeto de mercado traz **`maxStake`**, o risco máximo que a fonte aceita naquela linha (número ou `null`). Um limite mais alto costuma indicar um preço mais confiável; detectores de steam costumam ignorar movimentos abaixo de um piso (por exemplo 100). Campos: [esquema](/docs/schema).
## Onde aparece
```json
{
"id": "1640278226:s;0;m",
"type": "moneyline",
"main": true,
"margin": 0.041,
"maxStake": 1500,
"outcomes": [
{ "name": "home", "decimal": 2.05, "fair": 2.14, "fairProb": 0.467 }
]
}
```
É o mesmo objeto nos snapshots e deltas do WebSocket e no REST `/v1/odds` e `/v1/events/{id}`.
## Filtrar mercados finos
```python
FLOOR = 100
for m in markets:
if (m.get("maxStake") or 0) < FLOOR:
continue
# evaluate steam / value on this market
```
Usado no [guia de steam](/pt-br/guides/dropping-odds-steam-detection) e no [bot do Telegram](/pt-br/answers/telegram-picks-bot-pinnacle).
## Quedas de limite
Quando a Pinnacle corta um preço **e** sobe ou mantém um `maxStake` alto, essa combinação costuma dizer mais do que um corte com limite pequeno. A PinnFeed expõe os campos; a regra é sua. Não existe endpoint separado de "queda de limite": acompanhe `maxStake` ao longo do tempo no stream ou combine linhas de `/v1/drops` com uma leitura posterior de `/v1/events/{id}`.
## Planos
[Preços](/pt-br/pricing). Builder para ver o `maxStake` ao vivo (€99/mês). Teste de 3 dias; é preciso cartão e a cobrança acontece depois do dia 3, se você não cancelar.
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### maxStake é o limite público da Pinnacle?
É o risco máximo trazido pelo registro de mercado que normalizamos. Trate-o como o campo de limite do feed, não como garantia de que a aposta será aceita numa conta comum.
### O Free vê maxStake?
Sim, nos mercados que o Free retorna (principais, com atraso).
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-pandas-dataframe
# Odds da Pinnacle num DataFrame do pandas
**Resposta:** chame `GET /v1/odds` e percorra eventos → mercados → resultados para criar uma linha por resultado. Você obtém um DataFrame organizado com `decimal`, `fair`, `fairProb`, `margin` e `maxStake` por preço, pronto para groupby, Parquet ou um notebook. Funciona em todos os planos; no Free os dados têm 30 segundos de atraso.
## Código
```python
# pip install requests pandas
import os, requests, pandas as pd
r = requests.get(
"https://pinnfeed.io/v1/odds",
headers={"x-api-key": os.environ["PINNFEED_KEY"]}, # ps_live_...
params={"sport": "soccer", "main": "true", "limit": 200},
timeout=20,
)
r.raise_for_status()
rows = []
for ev in r.json()["events"]:
for m in ev.get("markets", []):
for o in m.get("outcomes", []):
rows.append({
"event_id": ev["id"], "start": ev.get("startTime"), "live": ev.get("live"),
"league": (ev.get("league") or {}).get("name"),
"home": ev.get("home"), "away": ev.get("away"),
"market": m.get("type"), "period": m.get("period"), "line": m.get("line"),
"margin": m.get("margin"), "max_stake": m.get("maxStake"),
"outcome": o.get("name"), "decimal": o.get("decimal"),
"fair": o.get("fair"), "fair_prob": o.get("fairProb"),
})
df = pd.DataFrame(rows)
df["start"] = pd.to_datetime(df["start"], utc=True)
print(df.groupby("market")["margin"].describe())
df.to_csv("pinnacle_soccer.csv", index=False)
```
## Próximos passos
- Mercados com tamanho: `df[df.max_stake >= 100]` ([maxStake](/pt-br/answers/pinnacle-max-stake-api)).
- Mais de 200 eventos: pagine com `offset` ([paginação](/pt-br/answers/pinnacle-odds-python-events-odds-pagination)).
- Fechamentos para CLV no Builder: [linhas de fechamento em Python](/pt-br/answers/pinnacle-odds-python-closing-lines-clv).
- Mudanças ao vivo sem polling: [exemplo de WebSocket em Python](/pt-br/answers/pinnacle-odds-websocket-python-example).
## Planos
Free (€0): 30 s de atraso, 2 esportes, mercados principais, 1.000 requisições por dia. Hobby (€29/mês): REST em tempo real. [Builder](/pt-br/pricing#plan-builder) (€99/mês): WebSocket, todos os mercados e histórico de fechamentos. Teste de 3 dias; é preciso cartão e a cobrança acontece depois do dia 3, se você não cancelar.
*Conteúdo educativo para maiores de 18 anos. Para pesquisa e modelagem, não é conselho de apostas. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### Por que uma linha por resultado?
Assim cada preço fica numa só coluna e filtros, tabelas dinâmicas e joins ficam simples. Para uma linha por mercado: `df.pivot_table(index=["event_id","market","line"], columns="outcome", values="decimal")`.
### Funciona no Jupyter ou no Colab?
Sim. Defina a chave com `os.environ["PINNFEED_KEY"] = "ps_live_..."` numa célula que você não compartilhe.
### Tem versão com polars?
Passe a mesma lista `rows` para `polars.DataFrame(rows)`.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-golang
# Cliente WebSocket em Go para odds da Pinnacle
**Resposta:** abra `wss://pinnfeed.io/v1/stream` com o header `x-api-key: ps_live_...`, envie um `subscribe` em JSON, responda a cada `ping` com `{"type":"pong"}` (o servidor envia a cada 20 s) e reconecte com backoff. É preciso o Builder (€99/mês).
## Esboço
```go
// go get github.com/gorilla/websocket
hdr := http.Header{}
hdr.Set("x-api-key", os.Getenv("PINNFEED_KEY"))
c, _, err := websocket.DefaultDialer.Dial("wss://pinnfeed.io/v1/stream", hdr)
// write: {"type":"subscribe","sports":["soccer"],"markets":["moneyline"],"main":true}
// on {"type":"ping"} write {"type":"pong"}
```
Detalhes do protocolo: [snapshot e delta](/pt-br/answers/pinnacle-odds-websocket-snapshot-delta), [ping/pong](/pt-br/answers/pinnacle-odds-websocket-ping-pong), [reconexão em Node](/pt-br/answers/pinnacle-odds-websocket-nodejs-reconnect).
## Planos
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para o WebSocket ao vivo + pré-jogo e o histórico de fechamento. Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 a menos que você cancele. REST grátis com atraso: [cadastro](/signup).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### Existe um SDK oficial para Go?
Não. Um WebSocket comum com JSON é suficiente.
### Posso passar a chave como parâmetro na URL?
Sim, `/v1/stream?key=ps_live_...` funciona, mas prefira o header quando o seu cliente permitir.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-rust
# Cliente WebSocket em Rust para odds da Pinnacle
**Resposta:** use `tokio-tungstenite` (ou `tungstenite`) em `wss://pinnfeed.io/v1/stream` com o header `x-api-key`. Assine em JSON, responda aos pings e processe primeiro o snapshot e depois os deltas. Requer Builder.
## Esboço
```rust
// tokio-tungstenite + http::Request with header x-api-key
// after connect, send:
// {"type":"subscribe","sports":["soccer"],"markets":["moneyline"],"main":true}
// when type=="ping" reply {"type":"pong"}
```
Ideias de reconexão: [resposta de Node](/pt-br/answers/pinnacle-odds-websocket-nodejs-reconnect). Esquema das mensagens: [documentação](/docs/websocket).
## Planos
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para o WebSocket ao vivo + pré-jogo e o histórico de fechamento. Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 a menos que você cancele. REST grátis com atraso: [cadastro](/signup).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### permessage-deflate importa em Rust?
É opcional. Veja a [resposta sobre compressão](/pt-br/answers/pinnacle-odds-websocket-compression).
### Existe um crate oficial?
Não é preciso SDK: é um WebSocket com mensagens JSON.
---
Source: https://pinnfeed.io/pt-br/pinnodds-alternative
# Alternativa ao pinnodds com o WebSocket incluso no plano
**O pinnodds e a PinnFeed trazem só odds da Pinnacle, ao vivo e pré-jogo. No pinnodds o WebSocket é um add-on de +US$ 99/mês sobre um plano REST, então o menor total com WebSocket é Pro US$ 99 + WebSocket US$ 99 = US$ 198/mês (≈ €177,34). O PinnFeed Builder inclui o WebSocket por €99/mês (IVA incluso quando aplicável). Se você quer alertas de queda calculados no servidor por SSE, os frames brutos da Pinnacle ou uma chave grátis que não expira, o pinnodds é uma boa escolha.**
Os dados do pinnodds vêm da [página inicial](https://pinnodds.com/), da [documentação](https://pinnodds.com/docs) e do [llms.txt](https://pinnodds.com/llms.txt), lidos em 9 de novembro de 2026. Os valores em euro usam a taxa do BCE de 6 de novembro de 2026 (US$ 1 = €0,89566). Os preços são em dólar; o IVA não é informado.
## O que o pinnodds oferece
- Um feed só da Pinnacle: REST ao vivo e pré-jogo, streams SSE de queda, um add-on de WebSocket bruto e um servidor MCP. A página inicial informa 14 esportes.
- **Trial**: grátis, sem cartão, sem expiração, 100 requisições por dia; sem SSE. Há uma demo completa de 3 dias sob pedido.
- **Stream US$ 99/mês**: alertas de queda por SSE (ao vivo e pré-jogo), REST limitado à cota do trial.
- **Pro US$ 99/mês**: REST a 10 requisições por segundo, volume ilimitado, sem SSE.
- **Pro + SSE US$ 149/mês**: REST 10/s mais streams SSE de queda.
- **Scale US$ 229/mês**: REST 30/s mais streams SSE de queda.
- **Add-on de WebSocket bruto +US$ 99/mês** no Pro, Pro + SSE ou Scale (não no Stream nem no Trial): repassa os frames da Pinnacle idênticos byte a byte, mais o snapshot REST pré-jogo. Uma segunda conexão com a mesma chave derruba a primeira. US$ 99 por 30 dias, US$ 297 por 90 e US$ 594 por 180.
- Os alertas de queda trazem um preço justo sem margem (`nvp`) do resultado.
- Os planos base têm descontos de até 16% no trimestral e até 24% no semestral.
- Cartão via Stripe (mensal, renovação automática, cancelamento pelo painel) ou cripto em pagamento único.
## Tabela de preços, 9 de novembro de 2026
| Opção | O que inclui | Mensal | ≈ €/mês |
|---|---|---|---|
| pinnodds Stream | Alertas de queda por SSE, REST leve | US$ 99 | ≈ €88,67 |
| **PinnFeed Builder** | WebSocket, ao vivo + pré-jogo, 3 conexões, REST 10/s | €99 (IVA incl. quando aplicável) | €99 |
| pinnodds Pro + WebSocket | REST 10/s + WebSocket bruto, 1 conexão | US$ 198 | ≈ €177,34 |
| pinnodds Pro + SSE + WebSocket | Adiciona streams SSE de queda | US$ 248 | ≈ €222,12 |
| pinnodds Scale + WebSocket | REST 30/s + SSE + WebSocket bruto | US$ 328 | ≈ €293,78 |
## Lado a lado
| | pinnodds | PinnFeed |
|---|---|---|
| Casa | Só Pinnacle | Só Pinnacle |
| Esportes | 14 (segundo o site) | 13 |
| WebSocket | Frames brutos, add-on de +US$ 99/mês | Deltas normalizados, incluso no Builder |
| Conexões WebSocket | 1 por chave | 3 no Builder, 10 no Pro |
| Alertas de queda | No servidor, por SSE, a partir de um movimento de 1% | REST `/v1/drops` e o [guia de steam](/pt-br/guides/dropping-odds-steam-detection) |
| Odds justas | `nvp` nos alertas de queda | fair, fairProb e margin em cada mercado |
| Histórico de odds de fechamento | Não encontramos na documentação (sem dados) | Incluso a partir do Builder |
| Servidor MCP | Sim | Sim |
| Plano grátis | 100 requisições/dia, sem expiração, sem cartão | 1.000 requisições/dia, 30 s de atraso, sem cartão |
| Cobrança | Cartão mensal ou cripto em pagamento único; descontos multimês | Cartão mensal ou cripto pré-pago |
## Quando escolher o pinnodds
- Você quer **alertas de queda calculados no servidor** e enviados por SSE, sem escrever seu próprio detector.
- Você quer os **frames brutos da Pinnacle, byte a byte**, por exemplo para montar seu próprio normalizador.
- Você quer uma **chave grátis sem expiração** para uma avaliação longa via REST.
- Você pode se comprometer por 3 ou 6 meses e aproveitar os descontos por período.
- O site informa 14 esportes contra os 13 da PinnFeed; se você precisa de um que não temos, compare as duas listas.
## Quando a PinnFeed serve melhor
- Você quer o **WebSocket dentro do plano**: €99 contra US$ 198 por REST + WebSocket.
- Você tem mais de um consumidor: o Builder inclui **3 conexões**.
- Você quer deltas normalizados com odds justas em cada mercado e odds de fechamento para o CLV ([guia de CLV](/pt-br/guides/closing-line-value-clv-tracking)).
## Perguntas frequentes
### Quanto custa o WebSocket do pinnodds?
É um add-on de +US$ 99/mês sobre o Pro, Pro + SSE ou Scale. O menor total com WebSocket é Pro + WebSocket a US$ 198/mês (≈ €177,34), conforme publicado em 9 de novembro de 2026.
### O pinnodds tem plano grátis?
Sim. A chave de teste é grátis, não pede cartão, não expira e permite 100 requisições por dia.
### A PinnFeed custa menos que o pinnodds para um WebSocket ao vivo + pré-jogo?
Com os preços mensais publicados em 9 de novembro de 2026, sim: €99 contra US$ 198. Nessa data, o PinnFeed Builder era o menor preço publicado com cobrança mensal ou anual que encontramos para um WebSocket em tempo real que transmite odds da Pinnacle ao vivo e pré-jogo. Existe um WebSocket só pré-jogo publicado por menos (oddssea Prematch, US$ 59/mês).
### A latência é diferente?
O pinnodds publica seu próprio número de latência. Não medimos os dois feeds lado a lado, então não afirmamos nada sobre latência.
## Teste o Builder
Comece o teste de 3 dias do Builder em [preços](/pt-br/pricing): o cartão é pedido e cobrado após o dia 3, a menos que você cancele. Leia o protocolo do WebSocket na [documentação](/docs) (em inglês) e compare mais fornecedores em [todas as alternativas](/pt-br/alternatives), no [comparativo](/pt-br/compare) e na [página do preço do WebSocket ao vivo + pré-jogo](/pt-br/cheapest-pinnacle-odds-websocket).
*Só para maiores de 18 anos. Odds, odds justas e CLV são ferramentas educativas e estatísticas, não conselhos de apostas. Nada disso promete lucro. Jogue com responsabilidade.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-csharp
# Cliente WebSocket em C# / .NET para odds da Pinnacle
**Resposta:** use `System.Net.WebSockets.ClientWebSocket`, defina `x-api-key` com `Options.SetRequestHeader`, conecte em `wss://pinnfeed.io/v1/stream`, assine e responda a cada ping. Plano Builder (€99/mês).
## Esboço
```csharp
using var ws = new ClientWebSocket();
ws.Options.SetRequestHeader("x-api-key", Environment.GetEnvironmentVariable("PINNFEED_KEY"));
await ws.ConnectAsync(new Uri("wss://pinnfeed.io/v1/stream"), CancellationToken.None);
// SendAsync UTF-8 JSON subscribe; on ping send {"type":"pong"}
```
Relacionado: [TypeScript](/pt-br/answers/pinnacle-odds-websocket-typescript), [documentação](/docs/websocket).
## Planos
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para o WebSocket ao vivo + pré-jogo e o histórico de fechamento. Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 a menos que você cancele. REST grátis com atraso: [cadastro](/signup).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### Funciona no .NET Framework?
Prefira o .NET moderno com `ClientWebSocket`. Plataformas antigas podem precisar de uma biblioteca WebSocket de terceiros que permita definir headers.
### Posso usar SignalR?
Não é necessário: o feed é um WebSocket comum, não um hub SignalR.
---
Source: https://pinnfeed.io/pt-br/answers/discord-picks-bot-pinnacle-odds
# Bot de alertas no Discord com odds da Pinnacle
**Resposta:** siga o mesmo padrão do [bot de Telegram](/pt-br/guides/telegram-picks-bot): WebSocket do Builder → detectar uma queda de odd com um piso de `maxStake` → `POST` em JSON para um **webhook de entrada** do Discord. O trecho abaixo é a forma mínima; o bot completo e testado (embeds, fila e tratamento de 429) está na [guia do bot de palpites para Discord](/pt-br/guides/discord-picks-bot). Ferramenta educativa para maiores de 18 anos, sem palpites nem lucro garantido.
## Caminho mínimo do alerta
```bash
export PINNFEED_KEY="ps_live_..." # Builder
export DISCORD_WEBHOOK="https://discord.com/api/webhooks/..."
npm install ws
```
```javascript
// Pseudocode — wire to the same steam detector as the Telegram guide
import WebSocket from 'ws';
const ws = new WebSocket(process.env.PINNFEED_WS || 'wss://pinnfeed.io/v1/stream', {
headers: { 'x-api-key': process.env.PINNFEED_KEY },
});
ws.on('open', () => ws.send(JSON.stringify({
type: 'subscribe', sports: ['soccer'], markets: ['moneyline', 'spread'], main: true,
})));
ws.on('message', async (raw) => {
const msg = JSON.parse(raw);
if (msg.type === 'ping') return ws.send('{"type":"pong"}');
// if steam rule hits:
// await fetch(process.env.DISCORD_WEBHOOK, { method:'POST', headers:{'content-type':'application/json'},
// body: JSON.stringify({ content: 'Steam: ...' }) });
});
```
Cálculo completo do steam: [guia de steam](/pt-br/guides/dropping-odds-steam-detection). Sem Builder, consulte `/v1/drops` por polling ([resposta sobre drops](/pt-br/answers/dropping-odds-api)).
## Planos
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 a menos que você cancele.
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### Existe um guia completo de Discord?
Sim: a [guia do bot de palpites para Discord](/pt-br/guides/discord-picks-bot) tem o arquivo Node completo. Usa o mesmo stream de odds do bot de Telegram; só muda o aviso (webhook em vez da Bot API).
### Qual a diferença para o bot de Telegram?
Usa o mesmo stream de odds; só muda a URL de aviso (webhook do Discord em vez da Bot API do Telegram).
### Posso anunciar os alertas como apostas certas?
Não. Siga as regras do Discord e a regulação local de publicidade de apostas, e mantenha um tom educativo.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-n8n
# Odds da Pinnacle no n8n
**Resposta:** no n8n, adicione um **Schedule Trigger** e depois um nó **HTTP Request** que chama `https://pinnfeed.io/v1/drops` (ou `/v1/odds`) com uma credencial **Header Auth** chamada `x-api-key` contendo a sua chave `ps_live_`. Separe o array `drops`, filtre com um nó **IF** e envie o resultado para Telegram, Slack, Discord ou uma planilha. Sem código, além de uma expressão opcional.
## Fluxo
1. **Schedule Trigger**: a cada minuto (dentro dos [limites do seu plano](/pt-br/answers/pinnacle-odds-api-rate-limits)).
2. **HTTP Request**: método `GET`, URL `https://pinnfeed.io/v1/drops`, Authentication → Generic Credential Type → **Header Auth**, nome `x-api-key`, valor `ps_live_...`. Parâmetros: `sport=soccer`, `minutes=5`, `min_pct=5`.
3. **Split Out**: campo `drops`.
4. **IF**: a expressão `$json.dropPct` (na sintaxe de expressões do n8n entre chaves duplas) maior ou igual a `8`.
5. **Remove Duplicates** (ou um nó Code com chave `eventId` + `market` + `outcome` + `movedAt`) para que cada movimento avise uma vez só.
6. Nó de **Telegram / Slack / Discord**: monte a mensagem com `$json.home`, `$json.away`, `$json.market`, `$json.outcome`, `$json.from` e `$json.to`.
Confira os nomes exatos dos campos na sua primeira execução ou em [`/openapi.json`](/openapi.json) antes de montar a mensagem.
## Teste a chamada antes
```bash
export PINNFEED_KEY="ps_live_..."
curl -sS -H "x-api-key: $PINNFEED_KEY" "https://pinnfeed.io/v1/drops?sport=soccer&minutes=5&min_pct=5"
```
## Polling ou push
O n8n faz polling: no Free você vê os movimentos com 30 segundos de atraso, no máximo 1 requisição por segundo e 1.000 por dia. Um agendamento de 1 minuto gasta 1.440 chamadas por dia, então no Free consulte a cada 2 minutos ou mais. O Hobby (€29/mês) é REST em tempo real. Para alertas em menos de um segundo, rode um pequeno worker WebSocket no [Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 a menos que você cancele.
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### O n8n consegue manter um WebSocket aberto?
Não com o nó HTTP Request padrão. Faça polling no n8n ou rode um worker WebSocket à parte que envie os avisos para um nó Webhook do n8n.
### Onde guardo a chave?
Numa credencial do n8n (Header Auth), não na URL, para que ela não apareça nos logs de execução.
### Funciona no n8n Cloud e auto-hospedado?
Sim: Schedule, HTTP Request e IF são nós básicos nos dois.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-nba-moneyline-odds-api
# Odds moneyline da NBA da Pinnacle em tempo real
**Resposta:** o slug do PinnFeed para a NBA (e o resto do basquete) é **`basketball`**. Consulte `GET /v1/odds?sport=basketball&market=moneyline&main=true` no Free ou Hobby, ou assine o WebSocket com `"sports":["basketball"],"markets":["moneyline"],"main":true` no Builder (€99/mês). Não existe slug `nba`: filtre por `league.name` no seu cliente.
## Snapshot REST (funciona no Free com 30 s de atraso)
```bash
export PINNFEED_KEY="ps_live_..."
curl -sS -H "x-api-key: $PINNFEED_KEY" \
"https://pinnfeed.io/v1/odds?sport=basketball&market=moneyline&main=true&live=true&limit=20"
```
Cada evento traz `league`, `home`, `away` e mercados cujos resultados incluem `decimal`, `american`, `fair` e `fairProb`.
## Assinatura WebSocket (Builder)
```javascript
// Example Node fragment — needs Builder key
const ws = new WebSocket('wss://pinnfeed.io/v1/stream', {
headers: { 'x-api-key': process.env.PINNFEED_KEY },
});
ws.on('open', () => ws.send(JSON.stringify({
type: 'subscribe',
sports: ['basketball'],
markets: ['moneyline'],
main: true,
live: true,
specials: false,
})));
ws.on('message', (buf) => {
const msg = JSON.parse(buf);
if (msg.type === 'ping') ws.send(JSON.stringify({ type: 'pong' }));
// filter NBA: if (event.league?.name?.includes('NBA')) ...
});
```
Lista de esportes: [esquema](/docs/schema). Cliente completo: [guia de Python e Node](/pt-br/guides/pinnacle-odds-websocket-python-node). Veja também: [odds históricas da NBA](/answers/historical-betting-odds-pinnacle-closing).
## Planos
Push ao vivo: [Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 a menos que você cancele. REST grátis com atraso: [cadastro](/signup).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Spreads, totais e totais por time
Os mesmos jogos de basketball também trazem `market=spread`, `market=total` e, quando a Pinnacle oferece, `market=team_total`. Use `main=true` para a linha principal.
## Perguntas frequentes
### O slug é `nba` ou `basketball`?
`basketball`. Os 13 esportes do PinnFeed usam os slugs da documentação; os jogos da NBA chegam dentro das ligas de basquete.
### O Free recebe moneylines da NBA ao vivo?
O Free pode **consultar** `/v1/odds` com 30 s de atraso e limite de 2 esportes. O push ao vivo por WebSocket começa no Builder.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-nfl-american-football-odds-api
# API de odds da NFL da Pinnacle (american-football)
**Resposta:** o slug de esporte do PinnFeed é **`american-football`** (id 5). Não existe o slug `nfl`. Consulte `GET /v1/odds?sport=american-football&market=moneyline,spread,total&main=true` ou assine `"sports":["american-football"]` no WebSocket do Builder (€99/mês). Separe a NFL do futebol universitário (e de outras ligas) com `league.name` no seu cliente.
## REST
```bash
export PINNFEED_KEY="ps_live_..."
curl -sS -H "x-api-key: $PINNFEED_KEY" \
"https://pinnfeed.io/v1/odds?sport=american-football&market=moneyline,spread,total&main=true&limit=40"
```
Filtro de exemplo depois de ler a resposta (ilustrativo):
```python
events = r.json()["events"]
nfl = [e for e in events if "NFL" in (e.get("league") or {}).get("name", "")]
```
## WebSocket (Builder)
```json
{
"type": "subscribe",
"sports": ["american-football"],
"markets": ["moneyline", "spread", "total"],
"main": true,
"specials": false
}
```
Conecte em `wss://pinnfeed.io/v1/stream` com `x-api-key`. Cliente completo: [exemplo de WebSocket em Python](/pt-br/answers/pinnacle-odds-websocket-python-example). Ids de esporte: [esquema](/docs/schema). Veja também: [odds históricas da NFL](/answers/historical-betting-odds-pinnacle-closing).
## Planos
Push ao vivo: [Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 a menos que você cancele. REST grátis com atraso: [cadastro](/signup).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### Por que não `sport=nfl`?
O PinnFeed usa os 13 slugs de esporte da origem. Os jogos da NFL chegam dentro das ligas de `american-football`; filtre no cliente.
### O Free inclui a NFL?
O Free deixa você escolher 2 esportes no painel. Escolha american-football ali (30 s de atraso, mercados principais, 1.000 requisições por dia).
---
Source: https://pinnfeed.io/pt-br/answers/arbitrage-vs-value-betting-api
# Arbitragem vs value betting com uma API sharp
**Resposta:** a **arbitragem** compara os preços de duas casas no mesmo mercado. O **value** compara um preço soft com uma referência sharp sem margem. O PinnFeed entrega a referência sharp da Pinnacle (`fair` e `fairProb`), não um feed multicasas para arbitragem: para arbitrar, você precisa de outra fonte com as casas soft.
## Quando o PinnFeed encaixa
- Filtros de +EV / value contra o preço justo da Pinnacle
- Acompanhamento de CLV
- Steam na linha sharp
Push multicasas: veja a [comparação](/pt-br/compare) datada (odds-api.io e outros).
## Planos
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para o WebSocket e o histórico de fechamento. Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 a menos que você cancele. REST grátis: [cadastro](/signup).
Veja também: [calculadora de arbitragem com odds da Pinnacle](/pt-br/answers/arbitrage-calculator-pinnacle-odds), [comparar linhas contra a Pinnacle](/pt-br/answers/line-shopping-vs-pinnacle).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### Posso fazer arbitragem só com a Pinnacle?
Não. A arbitragem precisa de pelo menos duas casas.
### O value é garantido?
Não. São estatísticas educativas para maiores de 18 anos, não uma promessa de lucro.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-postgres-storage
# Guardar odds da Pinnacle no Postgres
**Resposta:** mantenha uma tabela só de inserção com os ticks de preço, com chave por id do mercado, resultado e horário, e grave nela cada `upsert` de mercado que chega pelo WebSocket do PinnFeed. Os snapshots dão o estado inicial e os frames `delta`, cada mudança. Depois, adicione linhas de `/v1/closing` para o CLV. Funciona com qualquer Postgres (auto-hospedado, Supabase, Neon).
## Esquema
```sql
create table if not exists odds_ticks (
ts timestamptz not null default now(),
event_id bigint not null,
market_id text not null,
market text not null, -- moneyline | spread | total | team_total
period int,
line numeric,
outcome text not null,
decimal numeric not null,
fair numeric,
max_stake numeric,
primary key (market_id, outcome, ts)
);
create index if not exists odds_ticks_event on odds_ticks (event_id, ts);
```
## Worker em Node (Builder)
```js
// npm i ws pg · PINNFEED_KEY=ps_live_... DATABASE_URL=postgres://... node worker.js
import WebSocket from 'ws';
import pg from 'pg';
const db = new pg.Pool({ connectionString: process.env.DATABASE_URL });
const sql = `insert into odds_ticks (event_id, market_id, market, period, line, outcome, decimal, fair, max_stake)
values ($1,$2,$3,$4,$5,$6,$7,$8,$9) on conflict do nothing`;
async function save(m) {
for (const o of m.outcomes || []) {
await db.query(sql, [m.eventId, m.id, m.type, m.period, m.line ?? null, o.name, o.decimal, o.fair ?? null, m.maxStake ?? null]);
}
}
function connect() {
const ws = new WebSocket('wss://pinnfeed.io/v1/stream', { headers: { 'x-api-key': process.env.PINNFEED_KEY } });
ws.on('open', () => ws.send(JSON.stringify({ type: 'subscribe', sports: ['soccer'], markets: ['moneyline', 'total'], main: true })));
ws.on('message', async (raw) => {
const msg = JSON.parse(raw);
if (msg.type === 'ping') return ws.send(JSON.stringify({ type: 'pong' }));
if (msg.type === 'snapshot') for (const m of msg.markets || []) await save(m);
if (msg.type === 'delta') for (const ch of msg.changes) if (ch.kind === 'market' && ch.op === 'upsert') await save(ch.market);
});
ws.on('close', (code) => { console.log('closed', code); setTimeout(connect, 2000); });
}
connect();
```
Se as inserções ficarem atrás do stream, o servidor pode fechar com `4008 slow_consumer`: agrupe as inserções (ou use uma fila) e assine menos mercados. Reconexão completa: [reconexão em Node](/pt-br/answers/pinnacle-odds-websocket-nodejs-reconnect).
## Consultas de exemplo
```sql
-- last price per outcome
select distinct on (market_id, outcome) market_id, outcome, decimal, ts
from odds_ticks order by market_id, outcome, ts desc;
```
Use a tabela para [backtests contra o fechamento](/pt-br/answers/pinnacle-odds-api-backtesting-clv) e [gráficos de movimento de linha](/pt-br/answers/pinnacle-line-movement-api).
## Planos
O streaming precisa do [Builder](/pt-br/pricing#plan-builder) (€99/mês) ou do Pro; o histórico de fechamento vem incluído no Builder. No Free ou Hobby, você pode consultar `/v1/odds` por polling e gravar na mesma tabela. Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 a menos que você cancele.
*Conteúdo educativo para maiores de 18 anos. Dados para pesquisa, não conselhos de apostas. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### Devo guardar o snapshot?
Sim, como a primeira linha de cada resultado. Senão, a tabela só terá os preços que mudaram depois da conexão.
### Como evito duplicados depois de reconectar?
O snapshot após reconectar repete os preços atuais; `on conflict do nothing` com uma chave de horário guarda esses preços como ticks novos. Se quiser só mudanças, compare com o último preço salvo antes de inserir.
### E o TimescaleDB?
Funciona igual: transforme `odds_ticks` em hypertable sobre `ts`.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-cloudflare-worker
# Odds da Pinnacle num Cloudflare Worker
**Resposta:** guarde a chave com `wrangler secret put PINNFEED_KEY`. O handler `fetch` do Worker faz proxy de `/v1/odds` para o seu front end com um cache curto no edge, então a chave nunca chega ao navegador; o handler `scheduled` roda num cron trigger, chama `/v1/drops` e publica as quedas novas num webhook do Discord. É tudo REST, então funciona a partir do Free (30 s de atraso).
## `wrangler.toml`
```toml
name = "pinnfeed-worker"
main = "src/index.js"
compatibility_date = "2026-11-01"
[triggers]
crons = ["*/2 * * * *"]
```
```bash
npx wrangler secret put PINNFEED_KEY # ps_live_...
npx wrangler secret put DISCORD_WEBHOOK # https://discord.com/api/webhooks/...
npx wrangler deploy
```
## `src/index.js`
```js
const API = 'https://pinnfeed.io/v1';
export default {
async fetch(req, env, ctx) {
const url = new URL(req.url);
if (url.pathname !== '/odds') return new Response('not found', { status: 404 });
const sport = url.searchParams.get('sport') || 'soccer';
const cache = caches.default;
const cacheKey = new Request(`${url.origin}/odds?sport=${sport}`);
let res = await cache.match(cacheKey);
if (!res) {
const r = await fetch(`${API}/odds?sport=${sport}&market=moneyline&main=true&limit=50`, {
headers: { 'x-api-key': env.PINNFEED_KEY },
});
res = new Response(r.body, { status: r.status, headers: { 'content-type': 'application/json', 'cache-control': 'max-age=5' } });
if (r.ok) ctx.waitUntil(cache.put(cacheKey, res.clone()));
}
return res;
},
async scheduled(_event, env) {
const r = await fetch(`${API}/drops?sport=soccer&minutes=2&min_pct=5&limit=10`, {
headers: { 'x-api-key': env.PINNFEED_KEY },
});
if (!r.ok) return;
const { drops } = await r.json();
if (!drops.length) return;
const lines = drops.map((d) => `${d.home} v ${d.away}: ${d.market} ${d.outcome} ${d.from} → ${d.to} (${d.dropPct}%)`);
await fetch(env.DISCORD_WEBHOOK, {
method: 'POST', headers: { 'content-type': 'application/json' },
body: JSON.stringify({ content: lines.join('\n').slice(0, 1900) }),
});
},
};
```
Como a janela do cron e a janela `minutes` são ambas de 2, cada queda é publicada mais ou menos uma vez; guarde os ids no KV se precisar de deduplicação estrita.
## Limites a respeitar
O Free permite 1 requisição/s e 1.000 por dia, o Hobby 2/s e o Builder 10/s. O cache do edge evita que picos de tráfego virem chamadas à API. Para push de verdade, mantenha o WebSocket num servidor sempre ligado com o [Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 a menos que você cancele.
Relacionado: [apps de navegador e CORS](/pt-br/answers/pinnacle-odds-browser-javascript-cors), [bot de Discord](/pt-br/answers/discord-picks-bot-pinnacle-odds), [API de odds em queda](/pt-br/answers/dropping-odds-api).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### Um Worker consegue manter o WebSocket do PinnFeed aberto?
Um Worker comum dura o tempo da requisição. Um Durable Object pode manter sockets, mas para o stream um pequeno servidor sempre ligado é mais simples.
### O cache do edge entrega odds velhas?
No máximo pelo max-age que você definir (5 s aqui). Diminua, ou não faça cache nas visões ao vivo.
### O cron conta na minha cota diária?
Sim, cada execução é uma requisição: a cada 2 minutos são 720 por dia, dentro das 1.000 do Free.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-supabase-edge-function
# Odds da Pinnacle no Supabase com uma Edge Function
**Resposta:** guarde a chave da API como segredo do Supabase, escreva uma Edge Function que chama `GET /v1/drops` (ou `/v1/odds`) e faz upsert das linhas com o cliente admin de `@supabase/server`, e deixe `pg_cron` + `pg_net` chamarem a função a cada minuto com uma chave secreta guardada no Supabase Vault. Edge Functions duram pouco, então isto é um job de polling REST, não um listener de WebSocket. Funciona no Free (30 s de atraso, 2 esportes) e em tempo real a partir do Hobby.
## 1. Tabela
```sql
create table if not exists pinnacle_drops (
event_id bigint, market_id text, outcome text,
price_from numeric, price_to numeric, drop_pct numeric,
moved_at timestamptz, home text, away text,
primary key (market_id, outcome, moved_at)
);
```
## 2. Segredo
```bash
supabase secrets set PINNFEED_KEY=ps_live_your_key
```
## 3. Função `supabase/functions/pinnfeed-drops/index.ts`
```ts
import { withSupabase } from 'npm:@supabase/server@1';
// auth: 'secret' accepts only callers that send your project's secret key on the apikey header
export default {
fetch: withSupabase({ auth: 'secret' }, async (_req, ctx) => {
const r = await fetch('https://pinnfeed.io/v1/drops?sport=soccer&minutes=5&min_pct=3&limit=100', {
headers: { 'x-api-key': Deno.env.get('PINNFEED_KEY')! },
});
if (!r.ok) return new Response(await r.text(), { status: r.status });
const { drops } = await r.json();
const rows = drops.map((d: any) => ({
event_id: d.eventId, market_id: d.marketId, outcome: d.outcome,
price_from: d.from, price_to: d.to, drop_pct: d.dropPct,
moved_at: d.movedAt, home: d.home, away: d.away,
}));
const { error } = await ctx.supabaseAdmin.from('pinnacle_drops').upsert(rows, { ignoreDuplicates: true });
return Response.json({ saved: rows.length, error: error?.message ?? null });
}),
};
```
A função é chamada por um cron com uma chave secreta, não por um usuário logado, então desative a checagem de JWT da plataforma em `supabase/config.toml` e deixe o `withSupabase` checar a chave:
```toml
[functions.pinnfeed-drops]
verify_jwt = false
```
Publique com `supabase functions deploy pinnfeed-drops`. Confira uma vez a resposta de `/v1/drops` para confirmar o formato de `movedAt` antes de confiar na chave primária.
## 4. Agendamento
Ative as extensões `pg_cron` e `pg_net`. Guarde uma única vez no Supabase Vault a URL do projeto e uma chave secreta do Supabase (`sb_secret_...`), para que elas nunca fiquem no SQL do cron:
```sql
select vault.create_secret('https://YOUR_PROJECT.supabase.co', 'project_url');
select vault.create_secret('YOUR_SUPABASE_SECRET_KEY', 'secret_key');
```
Depois agende a chamada lendo os dois valores de `vault.decrypted_secrets` e enviando a chave no header `apikey`:
```sql
select cron.schedule('pinnfeed-drops', '* * * * *', $$
select net.http_post(
url := (select decrypted_secret from vault.decrypted_secrets where name = 'project_url')
|| '/functions/v1/pinnfeed-drops',
headers := jsonb_build_object(
'Content-Type', 'application/json',
'apikey', (select decrypted_secret from vault.decrypted_secrets where name = 'secret_key')
),
body := '{}'::jsonb
);
$$);
```
Notas:
- **Use a chave secreta, não a publicável.** A chave publicável é pública: qualquer pessoa com ela poderia disparar a função.
- **`apikey` versus `Authorization`.** A documentação atual do Supabase envia as novas chaves `sb_secret_` em `apikey`; elas não são JWT, então não dependa de `Authorization: Bearer` para elas. Se o seu projeto ainda usa o JWT legado `service_role` (o Supabase vai descontinuar as chaves legadas até o fim de 2026), mantenha `verify_jwt` ativado e envie essa chave em `apikey` e em `Authorization: Bearer`, lendo-a do Vault do mesmo jeito.
- **Limite do Vault.** O `pg_net` grava a chave descriptografada em `net.http_request_queue` até enviar a requisição, então qualquer papel que consiga entrar no seu banco poderia lê-la enquanto espera. Restrinja os logins no banco.
- A chave do PinnFeed continua nos segredos da Edge Function (passo 2), nunca no SQL.
A cada minuto são 1.440 chamadas por dia: tudo bem a partir do Hobby (sem limite diário), mas acima das 1.000 por dia do Free, então no Free use `*/2 * * * *`.
## Próximos passos
Precisa de todos os preços, não só das quedas? Guarde snapshots de `/v1/odds`: [padrão Postgres](/pt-br/answers/pinnacle-odds-postgres-storage). Quer push em vez de polling? Rode um pequeno worker sempre ligado com o WebSocket do [Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 a menos que você cancele. [Chave grátis](/signup).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### Uma Edge Function consegue manter o WebSocket aberto?
Não de forma confiável: elas duram o tempo da requisição. Para o stream, use um processo de longa duração (uma VM, Fly, Railway, um servidor em casa).
### A chave secreta do Supabase está segura aqui?
Sim, no servidor: no Vault para a chamada do cron e checada dentro da função. Nunca exponha essa chave, nem a do PinnFeed, ao navegador.
### Posso usar o Supabase Realtime para enviar dados ao meu app?
Sim: quando as linhas chegam na tabela, o Supabase Realtime pode transmitir as inserções para o seu front end.
---
Source: https://pinnfeed.io/pt-br/oddssea-alternative
# Alternativa ao oddssea para odds da Pinnacle ao vivo e pré-jogo
**Se você só precisa de pré-jogo, o oddssea Prematch a US$ 59/mês (≈ €52,84) é publicado abaixo da PinnFeed e inclui um WebSocket. Se você precisa de odds da Pinnacle ao vivo e pré-jogo no mesmo socket, o PinnFeed Builder custa €99/mês (IVA incluso quando aplicável) com 3 conexões, contra o oddssea Live a US$ 149/mês (≈ €133,45) com 1 conexão de stream.**
Os dados do oddssea vêm da [página inicial e da tabela de preços](https://oddssea.dev/), lidas em 9 de novembro de 2026. Os valores em euro usam a taxa do BCE de 6 de novembro de 2026 (US$ 1 = €0,89566). O oddssea não informa o IVA nessa página.
## O que o oddssea oferece
- Um feed só da Pinnacle: REST mais um stream WebSocket em todos os planos pagos.
- **Free**: odds pré-jogo com atraso, 100 requisições REST por dia, sem stream.
- **Prematch US$ 59/mês**: pré-jogo em tempo real por WebSocket, 1 conexão de stream, 60 requisições REST por minuto, preços justos, quedas, mudanças de limite e histórico de linhas (pré-jogo).
- **Live US$ 149/mês**: ao vivo e pré-jogo, 1 conexão de stream, 120 requisições REST por minuto.
- **Scale US$ 299/mês**: ao vivo e pré-jogo, 10 conexões de stream, 600 requisições REST por minuto.
- O pagamento é cripto pré-pago (3 meses −10%, 6 meses −15%, 12 meses −20%); cartões aparecem como «em breve»; nada renova sozinho.
## Tabela de preços, 9 de novembro de 2026
| Plano | Escopo | Conexões de stream | Mensal | ≈ €/mês |
|---|---|---|---|---|
| oddssea Prematch | Só pré-jogo | 1 | US$ 59 | ≈ €52,84 |
| **PinnFeed Builder** | **Ao vivo + pré-jogo** | **3** | €99 (IVA incl. quando aplicável) | €99 |
| oddssea Live | Ao vivo + pré-jogo | 1 | US$ 149 | ≈ €133,45 |
| PinnFeed Pro | Ao vivo + pré-jogo | 10 | €199 | €199 |
| oddssea Scale | Ao vivo + pré-jogo | 10 | US$ 299 | ≈ €267,80 |
## Lado a lado
| | oddssea | PinnFeed |
|---|---|---|
| Casa | Só Pinnacle | Só Pinnacle |
| Menor plano WebSocket | US$ 59, só pré-jogo | €99, ao vivo + pré-jogo |
| Menor WebSocket ao vivo + pré-jogo | US$ 149, 1 conexão | €99, 3 conexões |
| Preços justos (sem margem) | Nos planos pagos | Em cada mercado (fair, fairProb, margin) |
| Odds de fechamento | Não verificado na tabela de preços (sem dados) | Inclusas a partir do Builder |
| Pagamento | Cripto pré-pago; cartões «em breve» | Cartão (Stripe) mensal ou cripto pré-pago |
| Plano grátis | Pré-jogo com atraso, 100 requisições/dia | REST, 30 s de atraso, 1.000 requisições/dia |
| Servidor MCP | Não verificado (sem dados) | Sim |
## Quando o oddssea é melhor
- Você só precisa de odds **pré-jogo**: US$ 59 fica abaixo do Builder.
- Você quer um plano ao vivo com **10 conexões** e compara com o PinnFeed Pro: o oddssea Scale custa US$ 299 contra €199; veja quais limites importam para você.
- Você prefere cripto pré-pago sem renovação automática e com descontos por vários meses.
## Quando a PinnFeed é melhor
- Você precisa de **ao vivo e pré-jogo** em um socket com preço mensal: €99 contra US$ 149.
- Você roda mais de um processo: o Builder inclui **3 conexões**, o oddssea Live 1.
- Você quer pagar com cartão todo mês, com 3 dias de teste.
- Você quer odds de fechamento para o CLV ([guia de CLV](/pt-br/guides/closing-line-value-clv-tracking)) e o servidor MCP.
## Perguntas frequentes
### O oddssea custa menos que a PinnFeed?
Para só pré-jogo, sim: o oddssea Prematch custa US$ 59/mês (≈ €52,84). Para ao vivo e pré-jogo, em 9 de novembro de 2026 o PinnFeed Builder a €99/mês (IVA incluso) era o menor preço publicado com cobrança mensal ou anual que encontramos para um WebSocket em tempo real que transmite odds da Pinnacle ao vivo e pré-jogo; o oddssea Live custa US$ 149/mês.
### Quantas conexões WebSocket o oddssea inclui?
1 conexão de stream no Prematch e no Live e 10 no Scale, segundo a tabela de preços de 9 de novembro de 2026. O PinnFeed Builder inclui 3 e o Pro 10.
### Posso pagar o oddssea com cartão?
Em 9 de novembro de 2026 a página indicava cripto pré-pago, com cartões marcados como «em breve».
### A latência é diferente?
Não medimos os dois feeds lado a lado, então não afirmamos nada sobre latência.
## Teste o Builder
Comece o teste de 3 dias do Builder em [preços](/pt-br/pricing): o cartão é pedido e cobrado após o dia 3, a menos que você cancele. Veja o protocolo do WebSocket na [documentação](/docs) (em inglês) e confira [todas as alternativas](/pt-br/alternatives), o [comparativo](/pt-br/compare) e a [página do preço do WebSocket ao vivo + pré-jogo](/pt-br/cheapest-pinnacle-odds-websocket).
*Só para maiores de 18 anos. Odds, odds justas e CLV são ferramentas educativas e estatísticas, não conselhos de apostas. Nada disso promete lucro. Jogue com responsabilidade.*
---
Source: https://pinnfeed.io/pt-br/answers/sports-betting-bot-architecture
# Arquitetura de um bot de apostas com odds da Pinnacle
**Resposta:** a maioria dos bots de apostas ou trading tem cinco partes: (1) um feed de dados, (2) um estado local de eventos e mercados, (3) regras de sinal, (4) controles de risco e (5) a execução na conta em que você aposta. O PinnFeed cobre a parte 1 e ajuda nas partes 2 e 3: um WebSocket (Builder) que envia um `snapshot` completo e depois frames `delta` com cada mudança de preço da Pinnacle, incluindo `fair`, `margin` e `maxStake`. Ele não faz apostas: a execução é sua, numa casa que permita isso e onde apostar seja legal para você.
## O pipeline
| Parte | O que faz | Com o PinnFeed |
|---|---|---|
| Ingestão | Manter uma conexão aberta, responder `ping` com `pong`, reconectar com backoff | `wss://pinnfeed.io/v1/stream` ([Python](/pt-br/answers/pinnacle-odds-websocket-python-example), [Node](/pt-br/answers/pinnacle-odds-websocket-nodejs-reconnect)) |
| Estado | Mapa de `market.id` → último mercado; remover com `op: "remove"` | [snapshot/delta](/pt-br/answers/pinnacle-odds-websocket-snapshot-delta) |
| Sinais | Queda de preço, oferta acima de `fair`, mudança de linha | [steam](/pt-br/answers/steam-chasing-pinnacle-alerts), [filtro de EV](/pt-br/answers/pinnacle-odds-python-fairprob-ev-screen) |
| Risco | Limites de stake, `maxStake >= 100`, exposição máxima por evento, botão de parada | Seu código |
| Execução | Fazer a aposta, registrar preço e resultado | Sua casa de apostas ou exchange |
## Loop mínimo de sinais (Python)
```python
book = {} # market id -> market
def on_frame(msg, alert):
if msg["type"] == "snapshot":
for m in msg["markets"]:
book[m["id"]] = m
elif msg["type"] == "delta":
for ch in msg["changes"]:
if ch["kind"] != "market":
continue
if ch["op"] == "remove":
book.pop(ch["id"], None)
continue
new, old = ch["market"], book.get(ch["market"]["id"])
book[new["id"]] = new
if not old or (new["maxStake"] or 0) < 100:
continue
for o_new, o_old in zip(new["outcomes"], old["outcomes"]):
if o_old["decimal"] and o_new["decimal"] / o_old["decimal"] - 1 <= -0.04:
alert(new["eventId"], o_new["name"], o_old["decimal"], o_new["decimal"])
```
Ligue `on_frame` a qualquer cliente das páginas por linguagem ([Go](/pt-br/answers/pinnacle-odds-websocket-golang), [Rust](/pt-br/answers/pinnacle-odds-websocket-rust), [Kotlin](/pt-br/answers/pinnacle-odds-websocket-kotlin)). Registre cada sinal e cada decisão para medir depois contra o fechamento: [planilha de apostas com CLV](/pt-br/answers/bet-tracker-spreadsheet-clv).
## Dicas de design
- Rode a ingestão num host sempre ligado, não numa função serverless.
- Tenha um modo `paper` que registra o que o bot faria antes de apostar qualquer coisa.
- Use um WebSocket por processo e distribua internamente; o Builder permite 3 conexões e o Pro, 10.
- Trate `4008 slow_consumer` tirando o trabalho do loop de recepção.
## Planos
[Builder](/pt-br/pricing#plan-builder) (€99/mês): WebSocket, os 13 esportes e todos os mercados. Pro (€199/mês): 10 conexões e frames brutos. Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 a menos que você cancele. Faça o protótipo antes com REST grátis: [cadastro](/signup).
*Conteúdo educativo para maiores de 18 anos. Apostas automáticas podem perder dinheiro rápido; sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### O PinnFeed pode fazer apostas pelo meu bot?
Não. São dados somente leitura. A execução acontece na sua própria conta de casa de apostas ou exchange.
### As casas permitem bots?
Muitas restringem apostas automatizadas nos termos. Confira antes de automatizar a execução.
### Posso construir com uma ferramenta de IA?
Sim: [crie um bot de apostas com o Cursor](/pt-br/answers/build-betting-bot-with-cursor).
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-snapshot-delta
# Snapshot e delta no WebSocket da Pinnacle
**Resposta:** depois do `subscribe`, espere as partes do `snapshot` até `final: true` e então aplique cada `upsert`/`remove` dos frames `delta`. Limpe seus mapas locais quando `part === 1`. Documentação: [WebSocket](/docs/websocket).
## Modelo mental
1. **Snapshot**: o livro atual que corresponde ao seu filtro, dividido em partes (até 400 eventos cada).
2. **Delta**: só mudanças; upsert de mercado ou evento (objeto completo) ou remove (id).
3. **Ping**: responda `{"type":"pong"}`.
```javascript
if (msg.type === 'snapshot' && msg.part === 1) { events.clear(); markets.clear(); }
```
Padrão de reconexão em Node: [resposta](/pt-br/answers/pinnacle-odds-websocket-nodejs-reconnect).
## Planos
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para o WebSocket e o histórico de fechamento. Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 a menos que você cancele. REST grátis: [cadastro](/signup).
Veja também: [frames raw da Pinnacle (Pro)](/pt-br/answers/pinnacle-odds-websocket-raw-frames) e [Map de snapshot/delta em Node](/pt-br/answers/pinnacle-odds-node-snapshot-delta-map).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### Posso aplicar deltas antes do snapshot final?
Pode guardá-los em buffer, mas trate o livro como incompleto até `final: true`.
### Os removes se propagam?
Quando um evento é removido, apague localmente todos os mercados dele.
---
Source: https://pinnfeed.io/pt-br/answers/no-vig-fair-odds-api
# API de odds justas sem margem
**Resposta:** a PinnFeed adiciona **`fair`** (odd decimal sem margem) e **`fairProb`** a cada resultado, e **`margin`** a cada mercado, pelo método multiplicativo. As odds brutas `decimal` / `american` continuam disponíveis, então você pode aplicar o método de potência ou de Shin. Está no REST e no WebSocket para os planos que incluem esses mercados (Hobby ou superior para campos justos em tempo real via REST nos mercados principais; Builder para todos os mercados e push).
## Fórmula (já aplicada no servidor)
```text
implied_i = 1 / decimal_i
margin = Σ implied_i − 1
fairProb_i = implied_i / Σ implied_j
fair_i = 1 / fairProb_i
```
Os resultados de um mercado somam `fairProb = 1`. Documentação: [schema](/docs/schema).
## Ler odds justas via REST
```bash
curl -sS -H "x-api-key: $PINNFEED_KEY" \
"https://pinnfeed.io/v1/odds?sport=soccer&market=moneyline&main=true&limit=5" \
| jq '.events[0].markets[0] | {margin, outcomes: [.outcomes[] | {name, decimal, fair, fairProb}]}'
```
Formato de exemplo (números ilustrativos):
```json
{
"margin": 0.041,
"outcomes": [
{ "name": "home", "decimal": 2.05, "fair": 2.14, "fairProb": 0.467 },
{ "name": "draw", "decimal": 3.40, "fair": 3.55, "fairProb": 0.282 },
{ "name": "away", "decimal": 3.70, "fair": 3.86, "fairProb": 0.251 }
]
}
```
## Uso para value
Contra uma odd decimal `soft` de outra casa: `EV = soft / fair − 1` (ou `soft × fairProb − 1`). Guia completo: [value betting com odds justas](/pt-br/guides/value-betting-no-vig-fair-odds).
## Planos
[Preços](/pt-br/pricing): Free (com atraso), Hobby (REST em tempo real), Builder (WebSocket, €99/mês). Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 a menos que você cancele.
Veja também: [calculadora sem margem no Excel ou Sheets](/pt-br/answers/no-vig-calculator-excel-sheets) e [margem (overround) por mercado](/pt-br/answers/pinnacle-margin-overround-api).
*Conteúdo educativo para maiores de 18 anos. Odds justas são uma ferramenta estatística, não palpite nem promessa de lucro. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### Qual método é usado?
O multiplicativo (proporcional). As odds brutas estão sempre presentes se você preferir outro método.
### Há odds justas no Free?
Sim, nos mercados que o Free retorna (principais, com 30 s de atraso). Profundidade e especiais exigem Builder.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-live-odds-api
# API de odds ao vivo da Pinnacle
**Resposta:** assine em `/v1/stream` com `"live":true` (Builder) ou consulte `/v1/odds?live=true`. Combine com `main=true` para ficar nas linhas principais.
## Snapshot ao vivo via REST
```bash
curl -sS -H "x-api-key: $PINNFEED_KEY" \
"https://pinnfeed.io/v1/odds?sport=soccer&live=true&main=true&limit=20"
```
Ajuda para movimentos e quedas: [/v1/drops](/pt-br/answers/dropping-odds-api) e o [guia de queda de odds e steam](/pt-br/guides/dropping-odds-steam-detection).
## Planos
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para o WebSocket ao vivo e pré-jogo e o histórico de fechamento. Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 a menos que você cancele. REST grátis com atraso: [cadastro](/signup).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### O pré-jogo vem no mesmo socket?
Sim: omita `live` ou assine sem filtrar só ao vivo. Veja [pré-jogo vs ao vivo](/pt-br/answers/pinnacle-prematch-vs-live-websocket).
### E comparações de latência com outros fornecedores?
Não publicamos comparações de latência com concorrentes sem nome; meça você mesmo. Veja [latência, com honestidade](/pt-br/answers/pinnacle-odds-api-latency-honesty).
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-raw-frames
# Frames raw da Pinnacle no WebSocket (Pro)
**Resposta:** no Pro (e Enterprise), adicione `"format":"raw"` ao seu `subscribe`. Em vez de frames normalizados `snapshot`/`delta`, o PinnFeed envia frames `raw`: os registros de partidas e mercados da Pinnacle, como a Pinnacle os publica, dentro de um pequeno envelope do PinnFeed. Os frames raw são filtrados só por **esporte**: liga, evento, mercado e `main` não se aplicam, não há snapshot ao assinar e não são adicionados `fair`, `fairProb` nem `margin`. No Builder, o mesmo pedido devolve um frame `error` com código `plan_lacks_raw`.
## Subscribe
```json
{"type":"subscribe","sports":["soccer","tennis"],"format":"raw"}
```
O servidor responde `subscribed` com `"format":"raw"`. Continue a responder a `{"type":"ping"}` com `{"type":"pong"}` a cada 20 s; o timeout de pong de 60 s e o fecho `4008 slow_consumer` (buffer > 16 MB) continuam a aplicar-se. O raw costuma ser mais pesado do que o normalizado.
## Formato do frame
```json
{"type":"raw","seq":1842,"ts":1794217196688,"sportId":29,"sport":"soccer","channel":"live","kind":"matchup","action":"upsert","eventId":1640275337,"data":{"id":1640275337,"league":{},"participants":[],"markets":[]}}
```
| Campo | Significado |
|---|---|
| `type` | Sempre `raw`. |
| `seq` | Contador crescente de frames raw neste servidor. |
| `ts` | Quando o PinnFeed enviou o frame (ms desde epoch). |
| `sportId`, `sport` | Id de esporte da Pinnacle e nome de esporte do PinnFeed. |
| `channel` | `live` ou `prematch`. |
| `kind` | `matchup` (um evento), `matchups` (lista de eventos), `markets` (todos os mercados de um evento) ou `snapshot` (lista completa de eventos com mercados, quando o feed (re)inicia). |
| `action` | `upsert`, `remove` (`data` é só `{"id":…}`) ou `replace` (a lista substitui o que você tem daquele evento ou esporte). |
| `eventId` | O evento a que o frame se refere (`matchup` e `markets`). |
| `part`, `final` | Só em listas grandes de `markets` enviadas em partes: aplique a lista quando chegar a parte com `final: true`. |
| `data` | Registro(s) da Pinnacle sem normalização: preços americanos e nomes de campo da Pinnacle. |
## Normalizado ou raw?
| | Normalizado (todos os planos WS) | Raw (Pro, Enterprise) |
|---|---|---|
| Esquema | PinnFeed v1 documentado ([schema](/docs)) | Envelope do PinnFeed + registros da própria Pinnacle (campos da Pinnacle) |
| Filtros | sports, leagues, events, markets, live, main, specials | só sports |
| Snapshot na assinatura | Sim (opt-out `snapshot:false`) | Não |
| Fair odds e margem | Incluídos | Não adicionados |
| Uso típico | Apps, bots, dashboards | Normalizador próprio, arquivo, debug |
A maioria dos projetos deve ficar nos frames normalizados. Escolha raw só se quiser montar seu próprio normalizador sobre o formato de registros da Pinnacle ou arquivar os registros.
## Planos
Pro custa 199 €/mês com 10 conexões WebSocket e 30 req/s REST; Builder (99 €/mês) tem frames normalizados com 3 conexões. Teste de 3 dias; cartão obrigatório e cobrado após o dia 3 salvo cancelamento. [Preços](/pt-br/pricing) · [Docs WebSocket](/docs).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
Veja também: [snapshot e delta](/pt-br/answers/pinnacle-odds-websocket-snapshot-delta) · [Map de snapshot/delta em Node](/pt-br/answers/pinnacle-odds-node-snapshot-delta-map).
## Perguntas frequentes
### Uma conexão pode misturar raw e normalizado?
Não. O formato é por conexão; abra uma segunda para o outro formato.
### O raw é mais rápido?
Salta a normalização, mas o PinnFeed não publica uma cifra de latência para nenhum dos formatos. Meça do seu lado.
### Os frames raw estão documentados?
O envelope acima faz parte do protocolo PinnFeed v1. Os registros dentro de `data` seguem o formato próprio da Pinnacle, que o PinnFeed não versiona; se precisar de um esquema estável, use frames normalizados.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-node-snapshot-delta-map
# Aplicar snapshot e deltas da Pinnacle num Map Node
**Resposta:** após `subscribe`, aplique as partes do `snapshot` num `Map` indexado pelo `id` do mercado (`eventId:key`), depois cada `changes[]` dos deltas (`upsert` / `remove`). Cliente completo: [guia Python/Node](/guides/pinnacle-odds-websocket-python-node). Precisa de [Builder](/pt-br/pricing#plan-builder) (€99/mês).
## Lógica de merge
```js
import WebSocket from "ws";
const markets = new Map(); // id -> market object
const KEY = process.env.PINNFEED_KEY;
function applyChange(ch) {
if (ch.op === "upsert" || ch.type === "upsert") {
const m = ch.market || ch.value;
markets.set(m.id, m);
} else if (ch.op === "remove" || ch.type === "remove") {
markets.delete(ch.id || ch.marketId);
}
}
const ws = new WebSocket("wss://pinnfeed.io/v1/stream", {
headers: { "x-api-key": KEY },
perMessageDeflate: true,
});
ws.on("open", () => {
ws.send(JSON.stringify({
type: "subscribe",
sports: ["soccer"],
markets: ["moneyline"],
main: true,
}));
});
ws.on("message", (buf) => {
const msg = JSON.parse(buf.toString());
if (msg.type === "ping") return ws.send(JSON.stringify({ type: "pong" }));
if (msg.type === "snapshot" || msg.part != null) {
for (const m of msg.markets || []) markets.set(m.id, m);
}
if (msg.type === "delta" && Array.isArray(msg.changes)) {
for (const ch of msg.changes) applyChange(ch);
}
});
```
Os nomes dos campos seguem a [doc WebSocket](/docs/websocket). Planos pagos: teste de 3 dias; cartão obrigatório e cobrado após o dia 3 salvo cancelamento.
Veja também: [snapshot e delta](/pt-br/answers/pinnacle-odds-websocket-snapshot-delta) · [reconexão Node](/pt-br/answers/pinnacle-odds-websocket-nodejs-reconnect) · [frames raw (Pro)](/pt-br/answers/pinnacle-odds-websocket-raw-frames).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### Os eventos fazem merge da mesma forma?
Sim — guarde um segundo `Map` para eventos se precisar dos metadados home/away; snapshot e delta podem trazer ambos.
### Por que Builder?
Chaves Free/Hobby recebem `403 plan_lacks_ws` no WebSocket. Polling REST funciona no Free; push precisa de Builder ou Pro.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-ping-pong
# Heartbeat ping / pong do WebSocket
**Resposta:** responda a cada `{"type":"ping"}` do servidor com `{"type":"pong"}`. Sem pong por ~60 s, a conexão fecha. A mesma regra vale nos exemplos Python e Node.
## One-liner handlers
```python
if msg["type"] == "ping":
await ws.send('{"type":"pong"}')
```
```javascript
if (msg.type === 'ping') ws.send('{"type":"pong"}');
```
Reconexão / preço stale (EN): [stale-price reconnect](/pt-br/answers/pinnacle-websocket-stale-price-reconnect).
## Teste
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para WebSocket e histórico de fechamento. Teste de 3 dias; cartão obrigatório e cobrado após o dia 3 salvo cancelamento. Chave grátis: [signup](/signup). Relacionado: [hub de respostas](/pt-br/answers), [docs](/docs), [exemplo Python](/pt-br/answers/pinnacle-odds-websocket-python-example).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### É o ping do protocolo WebSocket?
Não: é um ping/pong JSON de aplicação no stream PinnFeed, documentado na [doc WebSocket](/docs/websocket).
### REST precisa de pong?
Não. Heartbeats são só do WebSocket.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-websocket-stale-price-reconnect
# WebSocket Pinnacle estável: preços stale e reconexão
**Resposta:** trate o socket como transporte pouco fiável. (1) Responda a cada `ping` com `{"type":"pong"}`. (2) Em `close`, backoff exponencial + jitter, reassine, limpe os maps no snapshot `part === 1`. (3) Acompanhe `seq`/`ts` e o último apply — se o silêncio ultrapassar o seu SLA, force a reconexão. (4) Honre os códigos (`1001` deploy, `4008` slow consumer). Precisa de Builder (€99/mês). Exemplo Node: [reconexão](/pt-br/answers/pinnacle-odds-websocket-nodejs-reconnect).
## Stale-price detection (client-side)
```python
import time
LAST = {"ts": 0.0}
STALE_SEC = 15 # your SLA — not a vendor latency claim
def on_message(msg):
if msg["type"] in ("snapshot", "delta", "ping"):
LAST["ts"] = time.time()
def watchdog():
if time.time() - LAST["ts"] > STALE_SEC:
raise TimeoutError("no frames; reconnect")
```
Quiet markets are normal — gate the watchdog on whether events you care about are live.
## Failure modes
| Signal | Action |
|---|---|
| No `pong` path | Socket dies ~60 s after missed ping |
| `4008 slow_consumer` | Narrow filters or speed up handlers |
| `1001 server_shutdown` | Backoff reconnect (deploy) |
| Snapshot without clear | Ghost markets from the previous session |
We do **not** publish latency versus named competitors. Measure tick → your handler yourself.
## CTA
[Builder](/pt-br/pricing#plan-builder). 3-day trial; card required, charged after day 3 unless cancelled. Docs: [WebSocket](/docs/websocket).
## Perguntas frequentes
### Scraping de convidado chega?
BAN e boards de convidado atrasados são falhas comuns. Uma chave self-serve com códigos de fecho documentados é o caminho suportado.
### Garantem updates sub-segundo?
Documentamos heartbeats e tipos de frame, não um RTT de marketing face a outros revendedores. Instrumente de ponta a ponta.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/odds-api-io-alternative
# Alternativa ao odds-api.io para um WebSocket só da Pinnacle
**Se a casa que você precisa é a Pinnacle e você paga todo mês, o PinnFeed Builder transmite odds da Pinnacle ao vivo e pré-jogo por WebSocket por €99/mês (IVA incluso quando aplicável), contra £98/mês (≈ €117,48) do plano WebSocket de entrada do odds-api.io, o Solo + WebSocket. Se você precisa da Pinnacle e de casas soft no mesmo socket, ou não se importa em pagar um ano adiantado (≈ €98,33/mês), o odds-api.io serve melhor.**
Os dados do odds-api.io vêm da [página de preços](https://odds-api.io/pricing), lida em 9 de novembro de 2026. Os valores em euro usam a taxa do BCE de 6 de novembro de 2026 (£1 = €1,1988). Os planos mudam; confira a página antes de comprar.
## O que o odds-api.io oferece
- Planos pelo número de casas de apostas; o de entrada, Solo, custa £49/mês com 2 casas, e a Pinnacle pode ser uma delas.
- 5.000 requisições REST por hora, pré-jogo e ao vivo, 34 esportes.
- **O WebSocket custa de novo o preço do plano**: Solo + WebSocket £98/mês ou £980/ano.
- A cobrança anual equivale a 10 vezes o preço mensal.
## Tabela de preços, 9 de novembro de 2026
| Plano | Casas | Mensal | ≈ €/mês | Anual, por mês | ≈ €/mês |
|---|---|---|---|---|---|
| **PinnFeed Builder** (WebSocket) | Pinnacle | €99 (IVA incl. quando aplicável) | €99 | Só mensal | n/a |
| odds-api.io Solo + WebSocket | 2 | £98 | ≈ €117,48 | £980/ano = £81,67 | ≈ €98,33 |
| odds-api.io Solo (só REST) | 2 | £49 | ≈ €58,74 | — | — |
| PinnFeed Hobby (só REST) | Pinnacle | €29 | €29 | Só mensal | n/a |
## Lado a lado
| | odds-api.io | PinnFeed |
|---|---|---|
| Casas | Conforme o plano (2 no Solo), Pinnacle entre elas | Só Pinnacle |
| WebSocket | Add-on pelo dobro do preço do plano | Incluso no Builder (3 conexões) |
| Limite REST | 5.000 requisições/hora | 10 requisições/segundo no Builder |
| Esportes | 34 | 13 |
| Odds justas sem margem por mercado | Não aparecem na página de preços | Inclusas (fair, fairProb, margin) |
| Histórico de odds de fechamento | Não aparece na página de preços | Incluso a partir do Builder |
| Plano grátis | Nenhum na página de preços | Chave REST grátis, 30 s de atraso |
| Teste | Nenhum na página de preços | 3 dias nos planos pagos |
| Servidor MCP para assistentes de IA | Não anunciado | Sim |
## Quando o odds-api.io é melhor
- Você precisa da **Pinnacle e de casas soft no mesmo socket**, para arbitragem ou comparação de linhas. A PinnFeed não tem casas soft.
- Você precisa de **mais de 13 esportes**: o odds-api.io lista 34.
- Você pode **pagar um ano adiantado**: o Solo + WebSocket anual sai por cerca de €98,33/mês, um pouco abaixo do Builder, para 2 casas.
## Quando a PinnFeed é melhor
- **A Pinnacle é o seu preço de referência** e você quer o preço justo e a margem já calculados, como no [guia de value betting](/pt-br/guides/value-betting-no-vig-fair-odds).
- Você paga **todo mês**: €99 contra £98 (≈ €117,48).
- Você precisa de **odds de fechamento** para o CLV ([guia de CLV](/pt-br/guides/closing-line-value-clv-tracking)) ou do servidor MCP.
- Você quer começar com uma chave grátis sem cartão.
## O que você perde se trocar
Os preços das casas soft. Se a sua ferramenta compara a Pinnacle com uma casa soft, mantenha uma fonte de várias casas para o lado soft e use a PinnFeed para o lado sharp.
## Perguntas frequentes
### A PinnFeed custa menos que o odds-api.io?
Na cobrança mensal, sim: €99 contra £98 (cerca de €117,48) do plano WebSocket de entrada do odds-api.io em 9 de novembro de 2026. Na cobrança anual, o Solo + WebSocket do odds-api.io sai por cerca de €98,33 por mês, um pouco menos, mas cobre duas casas e você paga £980 adiantado.
### O odds-api.io inclui a Pinnacle?
Sim, a Pinnacle é uma das casas que você pode escolher. Cada plano limita quantas casas você tem; o Solo começa com 2.
### O WebSocket do odds-api.io traz odds ao vivo?
A página de preços diz que o WebSocket transmite odds pré-jogo e ao vivo.
### Posso usar os dois?
Sim. Uma combinação comum é o odds-api.io para as casas soft e a PinnFeed para as odds justas e de fechamento da Pinnacle. Veja o [comparativo](/pt-br/compare) para outras opções com várias casas.
## Teste o Builder
Comece o teste de 3 dias do Builder em [preços](/pt-br/pricing): o cartão é pedido e cobrado após o dia 3, a menos que você cancele. Mais opções em [todas as alternativas](/pt-br/alternatives) e na [página do preço do WebSocket ao vivo + pré-jogo](/pt-br/cheapest-pinnacle-odds-websocket). A integração começa na [documentação](/docs) (em inglês).
*Só para maiores de 18 anos. Odds, odds justas e CLV são ferramentas educativas e estatísticas, não conselhos de apostas. Nada disso promete lucro. Jogue com responsabilidade.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-latency-honesty
# Latência de uma API de odds — abordagem honesta
**Resposta:** **não afirmamos** latência menor que qualquer concorrente nomeado — não foi medida como SLA publicado. Instrumente o seu cliente: marque o tempo de receção de cada delta WS e compare com relógios de evento em que confie.
## Practical measurement
1. Open Builder WebSocket; log `Date.now()` on every `delta`.
2. Optionally correlate with `/v1/odds` polls from the same region.
3. Watch for `4008 slow_consumer` if your handler blocks.
4. Treat vendor marketing latency numbers as unverified unless you reproduce them.
Reconnect/stale: [stale reconnect](/pt-br/answers/pinnacle-websocket-stale-price-reconnect).
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mo) for the live + prematch WebSocket and closing history. 3-day trial; card required, charged after day 3 unless cancelled. Free delayed REST: [signup](/signup). Related: [answers hub](/pt-br/answers), [docs](/docs), [pricing](/pt-br/pricing).
## Perguntas frequentes
### Publicam um SLA de latência?
Sem SLA público relativo a concorrentes. Limites de plano e transportes estão documentados; os timings variam por região e filtros.
### Compressão ajuda?
Pode reduzir o tamanho do payload, mas não é garantia de latência.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-implied-probability-api
# Probabilidade implícita via fairProb
**Resposta:** use **`fairProb`** (0–1) do outcome, do preço no-vig. `fairProb` ≈ `1/fair`. Também: decimal/american brutos. Esquema: [docs](/docs/schema).
## Example
```json
{ "name": "home", "decimal": 2.05, "fair": 2.14, "fairProb": 0.467 }
```
Related: [no-vig](/pt-br/answers/no-vig-fair-odds-api).
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mo) for WebSocket and closing history. 3-day trial; card required, charged after day 3 unless cancelled. Free REST: [signup](/signup). Related: [answers hub](/pt-br/answers), [docs](/docs).
See also: [margin (overround)](/pt-br/answers/pinnacle-margin-overround-api).
## Perguntas frequentes
### fairProb é sem vig?
Sim — derivado após remover a margem do mercado Pinnacle.
### Posso usar 1/decimal?
Isso ainda inclui vig; prefira fairProb para priors do modelo.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/dropping-odds-api
# API de dropping odds
**Resposta:** chame **`GET /v1/drops`** para uma lista pronta de encurtamentos recentes (`from`, `to`, `dropPct`, `movedAt`, equipas, mercado). Para alertas steam sub-segundo, faça stream do livro no Builder e use um detetor de janela ([steam Python](/pt-br/answers/steam-move-detection-python-websocket), [guia steam](/guides/dropping-odds-steam-detection)).
## REST: /v1/drops
| Param | Example | Meaning |
|---|---|---|
| `sport` | `soccer` | Sport slug |
| `live` | `true` | In-play only when true |
| `minutes` | `10` | Look-back window |
| `min_pct` | `5` | Minimum drop percent |
```bash
export PINNFEED_KEY="ps_live_..."
curl -sS -H "x-api-key: $PINNFEED_KEY" \
"https://pinnfeed.io/v1/drops?sport=soccer&live=true&minutes=10&min_pct=5"
```
Free segue o atraso de 30 s e o limite de 2 desportos; Hobby é REST em tempo real; push ao vivo precisa de Builder.
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório e cobrado após o dia 3 salvo cancelamento. REST grátis: [signup](/signup).
## Perguntas frequentes
### /v1/drops é um WebSocket?
Não. É REST. Para push use `/v1/stream` no Builder.
### Conteúdo educativo para adultos?
Sim (18+). Sinais dropping-odds são educativos, não tips garantidos.
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/free-odds-api
# API de odds grátis
**Resposta:** «free odds API» costuma ser um tier **REST com créditos limitados ou atrasado** — não um WebSocket live do livro inteiro. Em **9 de novembro de 2026** verificámos: **The Odds API** Starter free (**500 créditos/mês**); **oddssea** REST prematch atrasado grátis; **pinnwire** trial REST limitado; **PinnFeed Free €0** (REST, **atraso 30 s**, 2 desportos, mercados principais, 1 req/s, 1.000/dia, **sem WebSocket** → `403 plan_lacks_ws` em `/v1/stream`). Resumo: [Best sports odds APIs 2026](/best-sports-odds-apis).
## PinnFeed Free (limites honestos)
| Limit | Free |
|---|---|
| Price | €0 |
| Transport | REST |
| Delay | 30 seconds |
| Sports | 2 (dashboard pick) |
| Markets | Main only |
| Rate | 1 req/s, 1,000/day |
| WebSocket | No |
| Closing history | No |
```bash
export PINNFEED_KEY="ps_live_..."
curl -sS -H "x-api-key: $PINNFEED_KEY" \
"https://pinnfeed.io/v1/odds?sport=soccer&main=true&limit=5"
```
## Outros tiers free (datados 9 Nov 2026)
| Vendor | What free includes | Source |
|---|---|---|
| The Odds API | Starter FREE — 500 credits/mo | [the-odds-api.com](https://the-odds-api.com/) · [alternative](/pt-br/the-odds-api-alternative) |
| oddssea | Free delayed prematch REST | [oddssea.dev](https://oddssea.dev/) · [alternative](/pt-br/oddssea-alternative) |
| pinnwire | Trial REST (20/min, 100/day) | [pinnwire.com](https://pinnwire.com/) · [alternative](/pt-br/pinnwire-alternative) |
| OpticOdds / OddsJam API | Quote only / no free API tier published | [OpticOdds](/pt-br/opticodds-alternative) · [OddsJam](/pt-br/oddsjam-alternative) |
Upgrade: Hobby 29 €/mês (REST tempo real, ainda sem WS) → [Builder](/pt-br/pricing#plan-builder) 99 €/mês (WebSocket). Teste 3 dias.
Related: [Free 30 s](/pt-br/answers/pinnacle-odds-api-free-tier-delay), [pricing per request vs flat](/pt-br/answers/odds-api-pricing-per-request-vs-flat).
## Perguntas frequentes
### Free é grátis para sempre?
PinnFeed Free é €0 com os limites acima. Planos pagos são separados.
### WebSocket live num plano free?
Não encontrámos um WebSocket live free do livro inteiro no hub [best sports odds APIs](/best-sports-odds-apis). PinnFeed Free não pode abrir `/v1/stream`.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-backtesting-clv
# Backtestar modelos contra as linhas de fecho da Pinnacle
**Resposta:** registe cada sinal (event id, chave de mercado, lado, timestamp, preço tomado), depois una `/v1/closing` do Builder após o início. Pontue com CLV fair-close. O arquivo cresce desde o lançamento do serviço — não é um dump multi-ano multi-book.
## Pipeline
1. Paper trade → CSV of bets.
2. Batch `/v1/closing?date=` for those days.
3. Join and summarize.
Guide: [CLV tracking](/guides/closing-line-value-clv-tracking).
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST grátis: [signup](/signup).
## Perguntas frequentes
### Até onde vai o histórico?
Desde o dia em que o arquivo de fecho começou; cresce cada dia.
### Conteúdo educativo para adultos?
Sí (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-closing-line-api-clv
# Obter linhas de fecho da Pinnacle via API para CLV
**Resposta:** chame `GET /v1/closing/{eventId}` (ou `/v1/closing?date=YYYY-MM-DD`) com a chave, leia o `fair` no-vig no fecho, depois `CLV = price_taken / closing_fair − 1`. O histórico de fecho está no **Builder** (€99/mês) e acima. Guia: [CLV](/guides/closing-line-value-clv-tracking).
## Pull one event's close
```bash
export PINNFEED_KEY="ps_live_..."
curl -sS -H "x-api-key: $PINNFEED_KEY" \
"https://pinnfeed.io/v1/closing/1640229582"
```
## Compute CLV in Python
```python
clv = price_taken / closing_fair - 1
```
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST grátis: [signup](/signup).
## Perguntas frequentes
### É preciso Builder?
Sim para o histórico de fecho.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-line-movement-api
# API de movimento de linha Pinnacle
**Resposta:** o PinnFeed dá três peças: o stream live (`delta` no WebSocket Builder), quedas recentes (`GET /v1/drops`) e o preço de fecho (`GET /v1/closing`, Builder). Não há endpoint de histórico tick-a-tick: para um gráfico completo registe os deltas desde a assinatura.
## Record deltas (Python, Builder)
```python
# pip install websockets
import asyncio, json, os, sqlite3, time, websockets
db = sqlite3.connect("moves.db")
db.execute("create table if not exists moves(ts real, market_id text, event_id int, type text, line real, outcome text, decimal real)")
async def main():
url = "wss://pinnfeed.io/v1/stream"
async with websockets.connect(url, additional_headers={"x-api-key": os.environ["PINNFEED_KEY"]}, max_size=None) as ws:
await ws.send(json.dumps({"type": "subscribe", "sports": ["soccer"], "markets": ["moneyline", "total"], "main": True}))
async for raw in ws:
msg = json.loads(raw)
if msg["type"] == "ping":
await ws.send(json.dumps({"type": "pong"}))
elif msg["type"] == "delta":
for ch in msg["changes"]:
if ch["kind"] == "market" and ch["op"] == "upsert":
m = ch["market"]
for o in m["outcomes"]:
db.execute("insert into moves values(?,?,?,?,?,?,?)",
(time.time(), m["id"], m["eventId"], m["type"], m.get("line"), o["name"], o["decimal"]))
db.commit()
asyncio.run(main())
```
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST grátis: [signup](/signup). Related: [dropping odds](/pt-br/answers/dropping-odds-api), [closing/CLV](/pt-br/answers/pinnacle-closing-line-api-clv).
## Perguntas frequentes
### Há histórico tick-a-tick?
Não. Registe os deltas você mesmo.
### Conteúdo educativo para adultos?
Sí (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-steam-telegram-alert
# Enviar steam moves da Pinnacle para o Telegram
**Resposta:** combine [/v1/drops](/pt-br/answers/dropping-odds-api) (ou steam WS) com um token de bot Telegram. Bots completos: [guia steam](/guides/dropping-odds-steam-detection) + [bot Telegram](/guides/telegram-picks-bot).
## Minimal drops → Telegram
```python
import os, requests
KEY, TG, CHAT = os.environ["PINNFEED_KEY"], os.environ["TELEGRAM_BOT_TOKEN"], os.environ["TELEGRAM_CHAT_ID"]
drops = requests.get(
"https://pinnfeed.io/v1/drops",
headers={"x-api-key": KEY},
params={"sport": "soccer", "minutes": 10, "min_pct": 4},
timeout=15,
).json()
for d in drops.get("drops", drops if isinstance(drops, list) else []):
text = f"steam {d}"
requests.post(f"https://api.telegram.org/bot{TG}/sendMessage", json={"chat_id": CHAT, "text": text[:3500]})
```
Builder for sub-second WS steam.
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: [signup](/signup).
## Perguntas frequentes
### São tips?
Não — alertas de movimento em bruto. Educativo (18+).
### Plugin oficial do Telegram?
Use a Bot API você; não alojamos bots.
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-excel-power-query
# Odds da Pinnacle no Excel com Power Query
**Resposta:** use Power Query `Web.Contents` com `Headers=[#"x-api-key"=YourKey]`, depois expanda `events` → `markets` → `outcomes`. O REST Free (atraso 30 s) serve para um quadro atualizado; o push ao vivo ainda precisa do WebSocket Builder (não dentro do Excel).
## Power Query sketch
```powerquery
let
Key = Excel.CurrentWorkbook(){[Name="ApiKey"]}[Content]{0}[Column1],
Raw = Json.Document(Web.Contents("https://pinnfeed.io/v1/odds?sport=soccer&main=true&limit=50",
[Headers=[#"x-api-key"=Key]])),
Events = Raw[events]
in
Events
```
Keep the key in a named cell on a **hidden** sheet or a local parameter — never commit it to a shared OneDrive file. Related: [Sheets+Excel](/pt-br/answers/pinnacle-odds-api-google-sheets-excel).
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: [signup](/signup). Related: [answers](/pt-br/answers), [docs](/docs).
Related: [Power BI REST](/pt-br/answers/pinnacle-odds-api-power-bi).
## Perguntas frequentes
### Há um add-in Excel oficial?
Não — REST JSON via Power Query / Python é a superfície de integração.
### O Excel pode abrir o WebSocket?
Não de forma prática — atualize REST no Excel; rode um cliente WS Python/Node ao lado para o live.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-closing-odds-duckdb-parquet
# Odds de fecho da Pinnacle em DuckDB e Parquet
**Resposta:** no Builder ou Pro, rode um job diário pequeno que pagina `GET /v1/closing?date=YYYY-MM-DD` (até 2.000 linhas por chamada), achata `market` e `outcomes`, e escreve um Parquet por dia. O DuckDB consulta a pasta com SQL, sem servidor de base de dados. Os registos existem desde que o PinnFeed guarda fechos.
## 1. Daily export (Python)
```python
import os, sys, requests, pandas as pd
H = {"x-api-key": os.environ["PINNFEED_KEY"]} # ps_live_...
def closing_day(day, sport):
rows, offset = [], 0
while True:
r = requests.get("https://pinnfeed.io/v1/closing", headers=H, timeout=30,
params={"date": day, "sport": sport, "limit": 2000, "offset": offset})
r.raise_for_status() # 403 plan_lacks_history on Free/Hobby
batch = r.json()["closing"]
rows += batch
if len(batch) < 2000:
return rows
offset += 2000
day = sys.argv[1] # e.g. 2026-11-08
out = []
for row in closing_day(day, "soccer"):
m = row["market"]
for o in m["outcomes"] or []:
out.append({
"event_id": row["eventId"], "league": row["league"]["name"], "home": row["home"], "away": row["away"],
"start_time": row["startTime"], "captured_at": row["capturedAt"],
"market": m["type"], "period": m["period"], "line": m["line"], "main": m["main"],
"margin": m["margin"], "max_stake": m["maxStake"],
"outcome": o.get("name"), "decimal": o.get("decimal"), "fair": o.get("fair"),
})
os.makedirs("closing", exist_ok=True)
pd.DataFrame(out).to_parquet(f"closing/soccer-{day}.parquet", index=False) # needs pyarrow
print(len(out), "outcome rows")
```
## 2. Query with DuckDB
```sql
-- duckdb shell, from the folder that contains closing/
SELECT league, avg(margin) AS avg_margin
FROM read_parquet('closing/*.parquet')
GROUP BY 1
ORDER BY 2 DESC
LIMIT 20;
```
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão requerida. REST gratis: [signup](/signup). Related: [closing/CLV](/pt-br/answers/pinnacle-closing-line-api-clv), [backtesting](/pt-br/answers/pinnacle-odds-api-backtesting-clv).
## Perguntas frequentes
### Free/Hobby chegam?
Não — `/v1/closing` devolve `403 plan_lacks_history` fora de Builder/Pro.
### Conteúdo educativo para adultos?
Sí (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/oddspush-alternative
# Alternativa ao oddspush com cobrança mensal no cartão
**No pagamento de um mês, o oddspush REST + WebSocket custa US$ 138 (≈ €123,60) por 1 conexão WebSocket, pré-pago em cripto. O PinnFeed Builder custa €99/mês (IVA incluso quando aplicável) com 3 conexões, com cartão ou cripto. Se você pré-pagar o oddspush por 6 meses, o preço efetivo cai para cerca de €98,82/mês, e o teste de 7 dias inclui o WebSocket sem cartão.**
Os dados do oddspush vêm da [seção de preços](https://oddspush.com/#pricing), do [llms.txt](https://oddspush.com/llms.txt) e da [documentação](https://oddspush.com/docs), lidos em 9 de novembro de 2026. Os valores em euro usam a taxa do BCE de 6 de novembro de 2026 (US$ 1 = €0,89566). A página não informa o IVA.
## O que o oddspush oferece
- Um feed só da Pinnacle, ao vivo e pré-jogo, 13 esportes.
- **Teste grátis**: 7 dias, sem cartão, com WebSocket; ativado pelo Telegram.
- **REST**: US$ 69 por 1 mês, US$ 186 por 3 meses, US$ 331 por 6 meses. Sem WebSocket.
- **REST + WebSocket**: US$ 138 por 1 mês, US$ 373 por 3 meses (US$ 124,33/mês), US$ 662 por 6 meses (US$ 110,33/mês).
- Limites do REST + WebSocket: 1 conexão WebSocket simultânea, 12 snapshots por hora, 400 MB por hora, 12 reconexões por minuto, 1 endereço IP.
- Odds de fechamento e odds justas (sem margem) disponíveis em todos os planos, mediante ativação.
- O pagamento é cripto pré-pago (USDC, USDT, BTC e outras); sem cartão; sem renovação automática.
## Tabela de preços, 9 de novembro de 2026
| Opção | Cobrança | Conexões | Efetivo por mês | ≈ €/mês |
|---|---|---|---|---|
| **PinnFeed Builder** | Mensal, cartão ou cripto | 3 | €99 (IVA incl. quando aplicável) | €99 |
| oddspush REST + WebSocket | 1 mês pré-pago | 1 | US$ 138 | ≈ €123,60 |
| oddspush REST + WebSocket | 3 meses pré-pagos (US$ 373) | 1 | US$ 124,33 | ≈ €111,36 |
| oddspush REST + WebSocket | 6 meses pré-pagos (US$ 662) | 1 | US$ 110,33 | ≈ €98,82 |
| oddspush REST | 1 mês pré-pago | nenhuma | US$ 69 | ≈ €61,80 |
## Lado a lado
| | oddspush | PinnFeed |
|---|---|---|
| Casa | Só Pinnacle, 13 esportes | Só Pinnacle, 13 esportes |
| Conexões WebSocket | 1, a partir de 1 IP | 3 no Builder, 10 no Pro |
| Odds justas e de fechamento | Opcionais em todos os planos | Inclusas a partir do Builder |
| Pagamento | Só cripto pré-pago | Cartão (Stripe) mensal ou cripto |
| Teste | 7 dias, sem cartão, com WebSocket | 3 dias, cartão obrigatório |
| Plano grátis | Só o teste | Chave REST grátis, 30 s de atraso |
## Quando o oddspush é melhor
- Você quer **testar o WebSocket sem cartão**: o teste de 7 dias inclui.
- Você paga em **cripto** e pode pré-pagar 6 meses: cerca de €98,82/mês efetivos.
- Uma conexão a partir de um IP basta para o seu bot.
## Quando a PinnFeed é melhor
- Você quer uma **cobrança mensal no cartão** que cancela com um clique.
- Você precisa de **mais de uma conexão** ou de mais de um IP: o Builder inclui 3 conexões.
- Você quer um servidor MCP para usar as odds no ChatGPT ou no Claude ([guia de MCP](/pt-br/guides/pinnacle-odds-chatgpt-claude-mcp)).
## Perguntas frequentes
### Quanto custa o plano WebSocket do oddspush?
O REST + WebSocket custa US$ 138 por 1 mês, US$ 373 por 3 meses ou US$ 662 por 6 meses, pré-pago em cripto, conforme publicado em 9 de novembro de 2026.
### A PinnFeed custa menos que o oddspush?
No pagamento de um mês, sim: €99 contra US$ 138 (≈ €123,60). Pré-pagando 6 meses, o oddspush sai por cerca de €98,82/mês, mais ou menos o mesmo que o Builder, mas você paga US$ 662 adiantado por 1 conexão.
### O oddspush aceita cartão?
Não em 9 de novembro de 2026: a página de preços só indica cripto pré-pago.
### A latência é diferente?
O oddspush publica seu próprio número de latência. Não medimos os dois feeds lado a lado, então não afirmamos nada sobre latência.
## Teste o Builder
Comece o teste de 3 dias do Builder em [preços](/pt-br/pricing): o cartão é pedido e cobrado após o dia 3, a menos que você cancele. Leia o protocolo do WebSocket na [documentação](/docs) (em inglês) e compare mais fornecedores em [todas as alternativas](/pt-br/alternatives), no [comparativo](/pt-br/compare) e na [página do preço do WebSocket ao vivo + pré-jogo](/pt-br/cheapest-pinnacle-odds-websocket).
*Só para maiores de 18 anos. Odds, odds justas e CLV são ferramentas educativas e estatísticas, não conselhos de apostas. Nada disso promete lucro. Jogue com responsabilidade.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-power-bi
# Odds Pinnacle no Power BI
**Resposta:** use **Obter dados → Web** / Power Query `Web.Contents` com cabeçalho `x-api-key`. Aponte para `https://pinnfeed.io/v1/odds?...`. O Power BI só faz pull — não é cliente WebSocket.
## Padrão Power Query
```powerquery
let
key = Environment.GetEnvironmentVariable("PINNFEED_KEY"),
url = "https://pinnfeed.io/v1/odds?sport=soccer&main=true&limit=50",
raw = Web.Contents(url, [Headers=[#"x-api-key"=key]]),
json = Json.Document(raw)
in
json
```
Gêmeo Excel: [Power Query](/pt-br/answers/pinnacle-odds-excel-power-query). Guarde a chave num parâmetro ou credencial — nunca num PBIX partilhado no git.
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: [signup](/signup).
## Perguntas frequentes
### O Power BI abre o WebSocket?
Não. Use snapshots REST com agendamento de atualização.
### Que plano?
Free (atraso 30 s, 2 desportos) ou Hobby para REST em tempo real. Builder acrescenta WS/fechos para outras ferramentas.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-soccer-corners-odds-api
# API de escanteios de futebol Pinnacle
**Resposta:** as linhas de escanteio chegam como **eventos de futebol relacionados** (`parentId` aponta ao jogo principal) com `units` igual a `"Corners"` (ver [schema](/docs/schema)). Não são um desporto à parte nem specials. As linhas **main** de escanteio entram em qualquer plano com soccer, também Free e Hobby; Free/Hobby são só main, por isso as **alternate** precisam de Builder (ou Pro). No WebSocket Builder, subscreva soccer com `main: false` para receber também as alternate e conserve mercados cujo evento pai tenha `units === "Corners"`.
## Filtrar escanteios de um snapshot
```python
import os, requests
KEY = os.environ["PINNFEED_KEY"]
r = requests.get(
"https://pinnfeed.io/v1/odds",
params={"sport": "soccer", "live": "true", "limit": 100},
headers={"x-api-key": KEY},
timeout=15,
)
r.raise_for_status()
for ev in r.json().get("events", []):
if ev.get("units") != "Corners":
continue
print(ev["home"], "v", ev["away"], ev.get("league", {}).get("name"))
for m in ev.get("markets", []):
print(" ", m["type"], m.get("line"), [(o["name"], o["decimal"], o["fair"]) for o in m["outcomes"]])
```
## Subscrição WebSocket
```json
{
"type": "subscribe",
"sports": ["soccer"],
"markets": ["total", "spread", "moneyline"],
"main": false,
"specials": true
}
```
Depois conserve eventos com `units == "Corners"`. As chaves de estado vão por `id` de mercado (`eventId:key`).
## CTA
Profundidade completa, incluindo alternate de escanteio: [Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: [signup](/signup).
## Perguntas frequentes
### Há filtro `market=corners`?
Não. Os escanteios identificam-se por `units` do evento, não por um enum de market-type. Os tipos continuam `moneyline` / `spread` / `total` / `team_total`.
### Free e Hobby incluem escanteios?
Sim, as linhas main, se soccer for um dos seus desportos. As alternate começam no Builder.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-browser-javascript-cors
# Odds Pinnacle em JavaScript no browser
**Resposta:** as respostas REST `/v1/*` incluem `Access-Control-Allow-Origin: *`, por isso `fetch()` numa página não dá erro CORS. O problema é a chave: tudo no front é visível. Em sites públicos, chame o PinnFeed a partir de um servidor (ou função serverless) que guarda `PINNFEED_KEY` e devolve só o necessário. Browsers não definem headers num WebSocket, logo um socket no browser precisaria de `?key=` na URL e exporia a chave da mesma forma.
## Ok para um teste privado
```html
```
## Site público: padrão proxy
```js
// server.js (Node 18+), run with PINNFEED_KEY in the environment
import http from 'node:http';
http.createServer(async (req, res) => {
if (!req.url.startsWith('/odds')) { res.writeHead(404).end(); return; }
const r = await fetch('https://pinnfeed.io/v1/odds?sport=tennis&market=moneyline&main=true&limit=20', {
headers: { 'x-api-key': process.env.PINNFEED_KEY },
});
res.writeHead(r.status, { 'content-type': 'application/json', 'cache-control': 'max-age=5' });
res.end(await r.text());
}).listen(3000);
```
Uma cache curta evita que muitos visitantes gastem o rate limit (Free 1 req/s, Hobby 2, Builder 10, Pro 30). Proxies prontos: [FastAPI](/pt-br/answers/pinnacle-odds-fastapi-proxy), [Cloudflare Worker](/pt-br/answers/pinnacle-odds-cloudflare-worker), [Supabase Edge](/pt-br/answers/pinnacle-odds-supabase-edge-function).
## Updates live na página
Mantenha o WebSocket no servidor (Builder) e reencaminhe só as mudanças ao browser pelo seu WS ou SSE. [Reconnect Node](/pt-br/answers/pinnacle-odds-websocket-nodejs-reconnect).
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: [signup](/signup). Chave exposta? [Rode-a](/pt-br/answers/pinnacle-odds-api-key-rotation).
## Perguntas frequentes
### Posso restringir uma chave ao meu domínio?
Não há restrição por domínio; por isso o proxy é o padrão seguro.
### O WebSocket envia headers CORS?
CORS não se aplica a WebSockets; o problema é a chave na URL a partir do browser.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/telegram-picks-bot-pinnacle
# Bot de picks Telegram sobre odds Pinnacle
**Resposta:** rode um cliente WebSocket Node no **Builder**, detete steam (p.ex. encurtamento ≥5% em ~2 minutos com piso de `maxStake`) e faça `POST` à Bot API do Telegram. Cerca de 70 linhas, sem SDK Telegram. Código completo: [guia bot Telegram](/guides/telegram-picks-bot). Ferramenta educativa para adultos (18+) — sem promessa de lucro.
## Setup
```bash
export PINNFEED_KEY="ps_live_..." # Builder (WebSocket)
export TELEGRAM_TOKEN="123456:ABC..." # from @BotFather
export TELEGRAM_CHAT="@mychannel" # bot is admin
npm install ws
# Leave TELEGRAM_TOKEN unset for dry-run (print only)
node telegram-picks-bot.mjs
```
Crie o bot com **@BotFather** e adicione-o como admin do canal com permissão de publicar. O guia inclui `telegram-picks-bot.mjs` junto ao padrão do [guide Python/Node](/guides/pinnacle-odds-websocket-python-node).
## Aspeto de uma mensagem
```text
📉 SOCCER · Italy - Serie A
Udinese v Fiorentina
Pick: Udinese (spread +0.25)
Pinnacle 1.88 → 1.70 (−9.5%)
Fair now 1.83 · max stake 150
```
## Sem Builder
Faça poll de `GET /v1/drops` a cada minuto no Free/Hobby e publique essas linhas — mais lento, sem socket. Ver [API dropping odds](/pt-br/answers/dropping-odds-api).
## CTA
Bot WebSocket → [Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: [signup](/signup).
## Perguntas frequentes
### Porquê Builder?
O bot de exemplo usa `/v1/stream`. Free/Hobby recebem `403 plan_lacks_ws`.
### Posso apresentar como "locks"?
Não — conteúdo educativo (18+), sem tip nem promessa de lucro.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-compression
# permessage-deflate no WebSocket de odds
**Resposta:** clientes que negociam **permessage-deflate** recebem frames comprimidos (limiar ~1 KB). Snapshots costumam encolher 5–10×. Python `websockets` ativa por omissão; Node `ws` precisa de `perMessageDeflate: true`.
## Node
```javascript
new WebSocket(url, { headers: { 'x-api-key': KEY }, perMessageDeflate: true });
```
Detalhes: [docs WebSocket](/docs/websocket#compression).
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: [signup](/signup).
## Perguntas frequentes
### Devo ativar?
Recomendado para livros grandes de soccer. Ignore só se a CPU estiver muito limitada.
### Muda campos JSON?
Não — mesmo schema após inflate.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-kotlin
# WebSocket de odds Pinnacle em Kotlin (OkHttp)
**Resposta:** com OkHttp, construa um `Request` para `wss://pinnfeed.io/v1/stream` com cabeçalho `x-api-key`, chame `newWebSocket`, envie um JSON `subscribe` em `onOpen`, e responda `{"type":"pong"}` a cada `ping` do servidor (a cada 20 s). Frames: `welcome`, `subscribed`, partes `snapshot`, depois `delta`. Builder (99 €/mês) ou Pro.
## Gradle
```kotlin
dependencies {
implementation("com.squareup.okhttp3:okhttp:4.12.0")
implementation("org.json:json:20240303")
}
```
## Client
```kotlin
import okhttp3.*
import org.json.JSONObject
import java.util.concurrent.TimeUnit
fun main() {
val key = System.getenv("PINNFEED_KEY") ?: error("set PINNFEED_KEY") // ps_live_...
val client = OkHttpClient.Builder().readTimeout(0, TimeUnit.MILLISECONDS).build()
fun connect(delayMs: Long = 0) {
Thread.sleep(delayMs)
val req = Request.Builder().url("wss://pinnfeed.io/v1/stream").header("x-api-key", key).build()
client.newWebSocket(req, object : WebSocketListener() {
override fun onOpen(ws: WebSocket, response: Response) {
ws.send("""{"type":"subscribe","sports":["soccer"],"markets":["moneyline"],"main":true}""")
}
override fun onMessage(ws: WebSocket, text: String) {
val msg = JSONObject(text)
when (msg.getString("type")) {
"ping" -> ws.send("""{"type":"pong"}""")
"delta" -> {
val changes = msg.getJSONArray("changes")
for (i in 0 until changes.length()) {
val ch = changes.getJSONObject(i)
if (ch.getString("kind") == "market" && ch.getString("op") == "upsert") {
val m = ch.getJSONObject("market")
if (m.optDouble("maxStake", 0.0) >= 100) println("${m.getLong("eventId")} ${m.getJSONArray("outcomes")}")
}
}
}
"error" -> println("error ${msg.optString("code")}: ${msg.optString("message")}")
}
}
override fun onClosed(ws: WebSocket, code: Int, reason: String) {
println("closed $code $reason")
if (code != 4001) connect(2000) // 4001 = key revoked
}
override fun onFailure(ws: WebSocket, t: Throwable, response: Response?) {
println("failure ${response?.code} ${t.message}")
connect(5000)
}
})
}
connect()
}
```
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: [signup](/signup).
## Perguntas frequentes
### Porquê Builder?
`/v1/stream` exige Builder ou Pro. Free/Hobby recebem `403 plan_lacks_ws`.
### Preciso de SDK oficial?
Não — OkHttp + JSON bastam.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/detect-steam-moves-pinnacle-api
# Detetar steam moves da Pinnacle via API
**Resposta:** streame o livro no Builder, guarde um high móvel por outcome, e alerte quando o decimal encurtar ≥5% em ~2 minutos com `maxStake` suficiente (p.ex. ≥100). Ou faça poll de `GET /v1/drops?sport=soccer&live=true&minutes=10&min_pct=5`. Detetor completo: [guia steam](/guides/dropping-odds-steam-detection).
## Definição prática
- Queda de preço ≥ **5%** desde o high da janela (`MIN_DROP`).
- Janela ≈ **2 minutos** (`WINDOW_S`).
- Prefira mercados com **max stake** significativo para não spammar linhas finas.
- Alerta **uma vez por outcome e janela**.
Sinal estatístico de monitores sharp — sem tip nem garantia de +EV.
## Esboço WebSocket (Builder)
Reutilize o cliente partilhado do [guia Python](/guides/pinnacle-odds-websocket-python-node) (`on_market`):
```python
# Example outline — full steam.py is in the steam guide
from collections import defaultdict, deque
import time
WINDOW_S, MIN_DROP, MIN_STAKE = 120, 0.05, 100
hist = defaultdict(deque) # key -> deque[(ts, decimal)]
def on_market(old, new, event):
if not event or (new.get("maxStake") or 0) < MIN_STAKE:
return
now = time.time()
for o in new["outcomes"]:
if o["name"] not in {"home", "away", "draw", "over", "under"}:
continue
k = (new["id"], o["name"])
q = hist[k]
q.append((now, o["decimal"]))
while q and now - q[0][0] > WINDOW_S:
q.popleft()
peak = max(p for _, p in q)
drop = (peak - o["decimal"]) / peak
if drop >= MIN_DROP:
print(f"STEAM {event['home']} v {event['away']} {new['type']} {o['name']}: "
f"{peak:.3f} -> {o['decimal']:.3f} ({drop:.1%}) max {new.get('maxStake')}")
q.clear() # one alert per window
```
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: [signup](/signup). Relacionado: [dropping odds](/pt-br/answers/dropping-odds-api), [steam Telegram](/pt-br/answers/pinnacle-steam-telegram-alert).
## Perguntas frequentes
### Free chega?
Para `/v1/drops` sim (atraso 30 s). O detetor WS em tempo real pede Builder.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/pinnwire-alternative
# Alternativa ao pinnwire com o WebSocket incluso
**Se você quer o livro completo da Pinnacle ao vivo e pré-jogo por WebSocket, a menor combinação do pinnwire é Pro US$ 89 + add-on Raw WebSocket US$ 89 = US$ 178/mês (≈ €159,43). O PinnFeed Builder inclui o WebSocket por €99/mês (IVA incluso quando aplicável). Se você só quer receber alertas de queda, o pinnwire Drops a US$ 89/mês por SSE é uma opção mais enxuta e simples.**
Os dados do pinnwire vêm da [página inicial e de preços](https://pinnwire.com/) e da [documentação](https://pinnwire.com/docs.html), lidas em 9 de novembro de 2026. Os valores em euro usam a taxa do BCE de 6 de novembro de 2026 (US$ 1 = €0,89566). A página não informa o IVA.
## O que o pinnwire oferece
- Um feed só da Pinnacle com REST, alertas de queda por SSE e um add-on de WebSocket bruto.
- **Trial**: grátis, sem cartão, 20 requisições por minuto e 100 por dia.
- **Drops US$ 89/mês**: alertas de queda enviados por SSE (não o livro completo), REST leve.
- **Pro US$ 89/mês**: REST a 10 requisições por segundo, volume ilimitado.
- **Pro + Drops US$ 139/mês** e **Scale US$ 219/mês** (30 requisições por segundo).
- **Raw WebSocket +US$ 89/mês** no Pro, Pro + Drops ou Scale: retransmissão ao vivo e pré-jogo, 1 conexão por chave (uma segunda conexão derruba a primeira), até 200 eventos por assinatura.
- Cobrança mensal, com cartão ou cripto.
## Tabela de preços, 9 de novembro de 2026
| Opção | O que inclui | Mensal | ≈ €/mês |
|---|---|---|---|
| pinnwire Drops | Só alertas de queda por SSE | US$ 89 | ≈ €79,71 |
| **PinnFeed Builder** | WebSocket, ao vivo + pré-jogo, 3 conexões, REST 10/s | €99 (IVA incl. quando aplicável) | €99 |
| pinnwire Pro + Raw WebSocket | REST 10/s + WebSocket, 1 conexão | US$ 178 | ≈ €159,43 |
| pinnwire Pro + Drops + Raw WebSocket | Adiciona quedas por SSE | US$ 228 | ≈ €204,21 |
| pinnwire Scale + Raw WebSocket | REST 30/s + WebSocket | US$ 308 | ≈ €275,86 |
## Lado a lado
| | pinnwire | PinnFeed |
|---|---|---|
| Casa | Só Pinnacle | Só Pinnacle |
| WebSocket | Add-on, +US$ 89/mês | Incluso no Builder |
| Conexões WebSocket | 1 por chave | 3 no Builder, 10 no Pro |
| Alertas de queda | Stream SSE (planos Drops) | REST `/v1/drops` e o [guia de steam](/pt-br/guides/dropping-odds-steam-detection) |
| Plano grátis | 100 requisições/dia, sem cartão | 1.000 requisições/dia, 30 s de atraso |
| Odds justas e de fechamento | Não verificado (sem dados) | Inclusas a partir do Builder |
## Quando o pinnwire é melhor
- Você só quer **receber alertas de queda** e não precisa do livro completo: Drops a US$ 89 por SSE.
- Você quer uma chave de teste grátis, sem cartão e sem expiração, para testar o REST.
- Você prefere uma retransmissão bruta dos frames de origem em uma única conexão.
## Quando a PinnFeed é melhor
- Você precisa do **livro completo ao vivo e pré-jogo** por WebSocket: €99 contra US$ 178.
- Você tem mais de um consumidor: o Builder inclui **3 conexões**.
- Você quer deltas normalizados, odds justas sem margem e odds de fechamento no mesmo schema ([documentação](/docs), em inglês).
## Perguntas frequentes
### Quanto custa o WebSocket do pinnwire?
É um add-on de +US$ 89/mês sobre o Pro, Pro + Drops ou Scale. O menor total com WebSocket é Pro + Raw WebSocket a US$ 178/mês (≈ €159,43), conforme publicado em 9 de novembro de 2026.
### O plano Drops do pinnwire é um WebSocket?
Não. O Drops envia alertas de queda por Server-Sent Events. Não é um WebSocket com o livro completo.
### A PinnFeed custa menos que o pinnwire para um WebSocket ao vivo + pré-jogo?
Com os preços mensais publicados em 9 de novembro de 2026, sim: €99 contra US$ 178. Nessa data, o PinnFeed Builder era o menor preço publicado com cobrança mensal ou anual que encontramos para um WebSocket em tempo real que transmite odds da Pinnacle ao vivo e pré-jogo. Existe um WebSocket só pré-jogo publicado por menos (oddssea Prematch, US$ 59/mês).
## Teste o Builder
Comece o teste de 3 dias do Builder em [preços](/pt-br/pricing): o cartão é pedido e cobrado após o dia 3, a menos que você cancele. Veja [todas as alternativas](/pt-br/alternatives), o [comparativo](/pt-br/compare) e a [página do preço do WebSocket ao vivo + pré-jogo](/pt-br/cheapest-pinnacle-odds-websocket).
*Só para maiores de 18 anos. Odds, odds justas e CLV são ferramentas educativas e estatísticas, não conselhos de apostas. Nada disso promete lucro. Jogue com responsabilidade.*
---
Source: https://pinnfeed.io/pt-br/answers/lol-dota2-odds-api-pinnacle
# API de odds League of Legends e Dota 2
**Resposta:** partidas de League of Legends e Dota 2 chegam sob o sport `esports` do PinnFeed (id 11) quando a Pinnacle as lista. A Pinnacle nomeia ligas esports por título e torneio, por isso `/v1/events?sport=esports&q=league of legends` ou `q=dota` encontra os ids. Depois filtre `/v1/odds` ou uma subscrição WebSocket por esses ids.
## Encontrar competições
```bash
for t in "league of legends" "dota"; do
curl -s -G "https://pinnfeed.io/v1/events" --data-urlencode "sport=esports" --data-urlencode "q=$t" \
-d limit=200 -H "x-api-key: ps_live_your_key" | jq -r '.events[].league | "\(.id)\t\(.name)"' | sort -u
done
```
## Odds dessas ligas
```bash
curl -s "https://pinnfeed.io/v1/odds?sport=esports&league=ID1,ID2&market=moneyline,spread,total" \
-H "x-api-key: ps_live_your_key"
```
Mercados a nível de mapa, quando existem, trazem o próprio `period`. Live têm `live: true`; no Builder, `delta` empurra cada mudança entre mapas.
## CTA
Free: atraso 30 s, 2 desportos (escolha `esports`), mercados main. Hobby (€29/mês): REST em tempo real. [Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: [signup](/signup). Outros títulos: [esports](/pt-br/answers/pinnacle-esports-odds-api), [CS2/CS:GO](/pt-br/answers/pinnacle-csgo-odds-api).
## Perguntas frequentes
### Dados in-game (kills, ouro)?
Não. O PinnFeed leva odds Pinnacle; `score` só se a Pinnacle publicar.
### Valorant ou outros?
Mesmo sport `esports`; pesquise por título ou torneio.
### Por que faltam mercados no Free?
Free e Hobby só main; mapas e specials pedem Builder.
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-fastapi-proxy
# Proxy de odds Pinnacle com FastAPI
**Resposta:** rode uma app FastAPI pequena que leia `PINNFEED_KEY` do ambiente, chame `/v1/odds` com `httpx`, faça cache por alguns segundos e devolva só os campos úteis. O browser fala com a sua API; a chave não sai do servidor.
## `app.py`
```python
import os, time
import httpx
from fastapi import FastAPI, HTTPException
KEY = os.environ["PINNFEED_KEY"] # ps_live_...
API = "https://pinnfeed.io/v1"
TTL = 5 # seconds
cache: dict[str, tuple[float, list]] = {}
app = FastAPI()
client = httpx.AsyncClient(headers={"x-api-key": KEY}, timeout=10)
@app.get("/odds/{sport}")
async def odds(sport: str, q: str | None = None):
ck = f"{sport}|{q}"
hit = cache.get(ck)
if hit and time.time() - hit[0] < TTL:
return hit[1]
params = {"sport": sport, "market": "moneyline", "main": "true", "limit": 100}
if q:
params["q"] = q
r = await client.get(f"{API}/odds", params=params)
if r.status_code != 200:
raise HTTPException(r.status_code, r.json().get("error", {}).get("message", "upstream error"))
rows = [
{"id": e["id"], "home": e["home"], "away": e["away"], "start": e["startTime"], "live": e["live"],
"prices": {o["name"]: o["decimal"] for m in e["markets"] for o in m["outcomes"]},
"maxStake": max((m["maxStake"] or 0) for m in e["markets"]) if e["markets"] else None}
for e in r.json()["events"]
]
cache[ck] = (time.time(), rows)
return rows
```
Rode com `pip install fastapi uvicorn httpx` e `uvicorn app:app --port 8000`, depois `/odds/soccer?q=arsenal`.
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: [signup](/signup). Outros hosts: [Cloudflare Worker](/pt-br/answers/pinnacle-odds-cloudflare-worker), [Supabase](/pt-br/answers/pinnacle-odds-supabase-edge-function). Relacionado: [JS browser / CORS](/pt-br/answers/pinnacle-odds-browser-javascript-cors).
## Perguntas frequentes
### Por que não chamar o PinnFeed do JavaScript?
CORS permite, mas a chave ficaria pública: [JS browser e CORS](/pt-br/answers/pinnacle-odds-browser-javascript-cors).
### A cache deixa odds velhas?
Até TTL segundos. 1–5 s para prematch; WebSocket para live.
### Posso usar Flask?
Sim; o mesmo padrão com `requests` e um dict cache.
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-typescript
# Cliente WebSocket TypeScript
**Resposta:** reutilize a resposta de reconexão Node `ws` com unions tipadas (`ping` | `snapshot` | `delta` | `error`). Builder necessário para `/v1/stream`.
## Esboço
```ts
type Msg =
| { type: 'ping' }
| { type: 'snapshot'; part: number; final: boolean; events: unknown[]; markets: unknown[] }
| { type: 'delta'; changes: unknown[] };
// npm i ws @types/ws
```
Lógica completa de reconexão: [resposta Node](/pt-br/answers/pinnacle-odds-websocket-nodejs-reconnect).
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: [signup](/signup).
## Perguntas frequentes
### Há SDK oficial?
Não — WebSocket + JSON bastam.
### Deno/Bun funcionam?
Sim se falarem WebSocket e puserem a chave em header ou query.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-sse-vs-websocket
# Streams SSE de drops vs WebSocket full-book
**Resposta:** um **alerta SSE de drop** avisa que um limiar foi cruzado; um **WebSocket full-book** streamea cada upsert de mercado. O PinnFeed Builder é o WS full-book; atalhos steam também usam `GET /v1/drops`. Não reivindicamos latência face a vendors SSE nomeados.
## Escolher
| Necessidade | Usar |
|---|---|
| Board inteiro + inputs de modelo | WebSocket snapshot/delta |
| Só «algo encurtou» | `/v1/drops` ou a sua regra steam no WS |
Add-ons SSE concorrentes aparecem em [compare](/pt-br/compare) (datado 9 nov. 2026).
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: [signup](/signup). Relacionado: [Webhook vs WebSocket](/pt-br/answers/pinnacle-odds-webhook-vs-websocket).
## Perguntas frequentes
### O PinnFeed oferece SSE?
O push principal é WebSocket; drops são REST. Veja a doc dos transports atuais.
### SSE é mais barato noutro sítio (vs WS ao vivo + pre-match)?
Alguns vendem drops SSE abaixo de um WS full-book — veja [compare](/pt-br/compare) datado. Âmbito: drops ≠ full book. Qualifique **live + pre-match** vs só alertas.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-prematch-vs-live-websocket
# WebSocket só-prematch vs live + pre-match
**Resposta:** em **9 de novembro de 2026**, oddssea **Prematch** publica-se a **$59/mês** por um WebSocket **só prematch**. O PinnFeed **Builder** (99 €/mês IVA incl. quando aplicável, ou €990/ano ≈ €82,50/mês) era o WebSocket Pinnacle **live + pre-match** ao preço publicado mais baixo que encontrámos em faturação mensal ou anual. Fontes: [compare](/pt-br/compare).
## Não misture âmbitos
Dizer «WebSocket mais barato (sem live + pre-match)» sem **live + pre-match** engana. Se só precisa de prematch, um plano só-prematch pode ser mais baixo.
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: [signup](/signup). Divulgações: [preço live + pre-match](/pt-br/cheapest-pinnacle-odds-websocket), [compare](/pt-br/compare).
## Perguntas frequentes
### Builder inclui prematch?
Sim — live e prematch.
### Onde estão as divulgações?
[/cheapest-pinnacle-odds-websocket](/pt-br/cheapest-pinnacle-odds-websocket) e [compare](/pt-br/compare).
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-excel-power-query-guide
# Carregar odds Pinnacle no Excel com Power Query
**Resposta:** Dados → Obter dados → Da Web não chega (sem cabeçalho custom). Use **Consulta em branco** + Editor avançado, defina `x-api-key`, chame `GET https://pinnfeed.io/v1/odds` e expanda `events` / `markets` / `outcomes`. Nota curta: [resposta Power Query](/pt-br/answers/pinnacle-odds-excel-power-query).
## Consulta M (moneylines soccer main)
```powerquery
let
Key = Excel.CurrentWorkbook(){[Name="PinnfeedKey"]}[Content]{0}[Column1],
Url = "https://pinnfeed.io/v1/odds?sport=soccer&market=moneyline&main=true&limit=40",
Raw = Json.Document(Web.Contents(Url, [
Headers = [#"x-api-key" = Key, Accept = "application/json"]
])),
Events = Table.FromList(Raw[events], Splitter.SplitByNothing(), {"ev"}),
Expand = Table.ExpandRecordColumn(Events, "ev", {"home", "away", "markets", "starts"}),
Markets = Table.ExpandListColumn(Expand, "markets"),
M2 = Table.ExpandRecordColumn(Markets, "markets", {"type", "outcomes"}),
Out = Table.ExpandListColumn(M2, "outcomes"),
O2 = Table.ExpandRecordColumn(Out, "outcomes", {"name", "decimal", "fair", "fairProb"})
in
O2
```
Guarde a chave numa célula com nome numa folha **oculta**. Power BI: [Power BI REST](/pt-br/answers/pinnacle-odds-api-power-bi).
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: [signup](/signup).
## Perguntas frequentes
### O Excel abre o WebSocket?
Não de forma prática — atualize em REST; WS à parte em Python/Node.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-closing-lines-european-football-api
# Linhas de fecho Pinnacle para futebol europeu
**Resposta:** o Builder expõe `GET /v1/closing?date=YYYY-MM-DD&sport=soccer`. Filtre o JSON por `league.name` para competições europeias (Premier League, La Liga, Serie A, Bundesliga, Ligue 1, UCL, etc.). Prefira `fair` no-vig para CLV. Não há endpoint «só Europa».
## Pull do dia
```bash
export PINNFEED_KEY="ps_live_..."
curl -sS -H "x-api-key: $PINNFEED_KEY" \
"https://pinnfeed.io/v1/closing?date=2026-11-08&sport=soccer&main=true&limit=500"
```
Filtre por `league.name`. Campos: [docs REST](/docs/rest). CLV: [fecho/CLV](/pt-br/answers/pinnacle-closing-line-api-clv).
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: [signup](/signup).
## Perguntas frequentes
### Preciso do Builder?
Sim — `/v1/closing` fora de Builder/Pro devolve `403 plan_lacks_history`.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-specials-props-odds-api
# Specials / props Pinnacle via API
**Resposta:** defina `"specials": true` no subscribe WebSocket (ou filtros REST equivalentes) no **Builder+**. Mantenha `main: true` para linhas primárias. Escanteios de soccer costumam usar `units` (ver [escanteios](/pt-br/answers/pinnacle-soccer-corners-odds-api)).
## WebSocket
```json
{
"type": "subscribe",
"sports": ["basketball", "soccer"],
"main": true,
"specials": true
}
```
A cobertura segue o que a Pinnacle publicar. Schema: [docs](/docs/schema).
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: [signup](/signup). Ver também: [NBA player props](/pt-br/answers/nfl-player-props-odds-api-pinnacle).
## Perguntas frequentes
### Free inclui specials?
Não — Free/Hobby são main-only. Specials/props começam no Builder.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-r-httr2
# API de odds Pinnacle em R (httr2)
**Resposta:** use **httr2** com cabeçalho `x-api-key`, chame `GET https://pinnfeed.io/v1/odds` e faça parse do JSON. O push WebSocket ainda precisa de um cliente WS (ou fique no REST em Free/Hobby). O Builder desbloqueia `/v1/stream` e histórico de fechos.
## Chamada REST mínima
```r
library(httr2)
library(jsonlite)
key <- Sys.getenv("PINNFEED_KEY")
resp <- request("https://pinnfeed.io/v1/odds") |>
req_url_query(sport = "soccer", market = "moneyline", main = "true", limit = 20) |>
req_headers(`x-api-key` = key) |>
req_perform()
data <- resp_body_json(resp)
# data$events[[i]]$markets[[j]]$outcomes[[k]]$decimal / $fair / $american
```
Campos: [docs/schema](/docs/schema). Gémeo Python: [REST](/pt-br/answers/pinnacle-odds-python-rest).
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: [signup](/signup).
## Perguntas frequentes
### Há SDK R oficial?
Não — httr2 + jsonlite bastam.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/google-sheets-odds-drop-email-alert
# Alerta por email de drops de odds no Google Sheets
**Resposta:** agende um gatilho de tempo no Apps Script que chame `GET /v1/drops` (ou leia um board IMPORTDATA) e envie `MailApp.sendEmail` quando `dropPct` ultrapassar o limiar. Free (atraso 30 s) ou Hobby bastam para polling; push live continua a ser WebSocket Builder.
## Esboço
Guarde a chave em Script Properties (não na folha partilhada). Endpoint: `/v1/drops?sport=soccer&minutes=10&min_pct=5`. Relacionado: [dropping odds](/pt-br/answers/dropping-odds-api), [Sheets time-driven](/pt-br/answers/pinnacle-odds-sheets-time-driven-trigger).
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: [signup](/signup).
## Perguntas frequentes
### O Sheets abre o WebSocket?
Não — use REST agendado.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/the-odds-api-alternative
# Alternativa à The Odds API para odds da Pinnacle em tempo real
**Se polling basta para você, a The Odds API custa menos que a PinnFeed: US$ 30/mês (≈ €26,87) por 20.000 créditos, com muitas casas e um plano grátis. Ela não tem WebSocket nem feed push em nenhum preço. Se você precisa que os preços da Pinnacle cheguem assim que se movem, o PinnFeed Builder transmite odds da Pinnacle ao vivo e pré-jogo por WebSocket por €99/mês (IVA incluso quando aplicável).**
Os dados da The Odds API vêm da [página inicial](https://the-odds-api.com/), lida em 9 de novembro de 2026. Os valores em euro usam a taxa do BCE de 6 de novembro de 2026 (US$ 1 = €0,89566).
## O que a The Odds API oferece
- Plano Starter grátis: 500 créditos por mês.
- Planos pagos por créditos, começando em 20.000 créditos a US$ 30/mês.
- Casas agrupadas por regiões; a Pinnacle aparece na região UE.
- É uma API REST: cada requisição gasta créditos do seu plano.
## Tabela de preços, 9 de novembro de 2026
| Opção | Mensal | ≈ €/mês | Push? | Casas |
|---|---|---|---|---|
| The Odds API Starter | US$ 0 (500 créditos) | €0 | Não | Muitas, por regiões |
| The Odds API 20K | US$ 30 | ≈ €26,87 | Não | Muitas, por regiões |
| PinnFeed Free | €0 | €0 | Não (REST, 30 s de atraso) | Pinnacle |
| PinnFeed Hobby | €29 | €29 | Não (REST em tempo real) | Pinnacle |
| **PinnFeed Builder** | €99 (IVA incl. quando aplicável) | €99 | **WebSocket, ao vivo + pré-jogo** | Pinnacle |
## Lado a lado
| | The Odds API | PinnFeed |
|---|---|---|
| Casas | Muitas, incluindo a Pinnacle (região UE) | Só Pinnacle |
| Entrega | Polling REST | Push por WebSocket + REST |
| Modelo de preço | Créditos por requisição | Plano mensal fixo |
| Odds justas sem margem | Você calcula | Inclusas em cada mercado |
| Odds de fechamento | Não cita; snapshots históricos (desde 2020) nos planos pagos | Inclusas a partir do Builder |
| Plano grátis | 500 créditos/mês | 1.000 requisições/dia, 30 s de atraso |
## Quando a The Odds API é melhor
- Você precisa de **muitas casas** em uma resposta, de regiões diferentes.
- Fazer polling mais ou menos a cada minuto basta, para um modelo diário ou uma página de comparação de odds.
- O orçamento vem primeiro: US$ 30 por mês fica abaixo de todos os feeds push que encontramos, e o plano grátis dá margem para testar.
## Quando a PinnFeed é melhor
- Você reage a **movimentos de preço**: alertas de steam e de queda de odds ([guia de steam](/pt-br/guides/dropping-odds-steam-detection)), modelos ao vivo ou bots que precisam ver o movimento quando ele acontece.
- Você quer o **preço justo sem margem** da Pinnacle e a margem calculados em cada mercado.
- Você mede o **valor da linha de fechamento** com `/v1/closing` ([guia de CLV](/pt-br/guides/closing-line-value-clv-tracking)).
- Você quer um preço fixo sem créditos por requisição.
## Usar as duas
Muitos desenvolvedores mantêm a The Odds API para os preços das casas soft e usam a PinnFeed como referência sharp: o preço soft de uma e a odd justa da Pinnacle da outra. O [guia de value betting](/pt-br/guides/value-betting-no-vig-fair-odds) mostra o código.
## Perguntas frequentes
### A The Odds API tem WebSocket ou streaming?
Não. É uma API REST; você pede as odds e cada requisição gasta créditos do seu plano.
### A PinnFeed custa menos que a The Odds API?
Não. O plano de US$ 30 da The Odds API custa menos que o PinnFeed Hobby (€29) e que o Builder, mas não tem push em nenhum preço. Para um WebSocket em tempo real que transmite odds da Pinnacle ao vivo e pré-jogo, em 9 de novembro de 2026 o PinnFeed Builder a €99/mês (IVA incluso) era o menor preço publicado com cobrança mensal ou anual que encontramos. Existe um WebSocket só pré-jogo publicado por menos (oddssea Prematch, US$ 59/mês).
### A The Odds API inclui a Pinnacle?
Sim, na região de casas da UE.
### Consigo migrar rápido?
Sim. A PinnFeed devolve eventos e mercados em JSON com preços decimais e americanos; a maioria das integrações só precisa de uma nova função de busca. O [guia de Python e Node](/pt-br/guides/pinnacle-odds-websocket-python-node) tem um cliente completo.
## Teste o Builder
Comece o teste de 3 dias do Builder em [preços](/pt-br/pricing): o cartão é pedido e cobrado após o dia 3, a menos que você cancele. Compare mais fornecedores em [todas as alternativas](/pt-br/alternatives), no [comparativo](/pt-br/compare) e na [página do preço do WebSocket ao vivo + pré-jogo](/pt-br/cheapest-pinnacle-odds-websocket); os detalhes de integração estão na [documentação](/docs) (em inglês).
*Só para maiores de 18 anos. Odds, odds justas e CLV são ferramentas educativas e estatísticas, não conselhos de apostas. Nada disso promete lucro. Jogue com responsabilidade.*
---
Source: https://pinnfeed.io/pt-br/answers/vibe-coding-ev-scanner
# Vibe-code um scanner +EV educativo
**Resposta:** peça ao agente que leia `/v1/odds`, use `fairProb` e marque onde **a sua** probabilidade de modelo supera fairProb por um limiar. Rotule como educativo — sem tips nem lucro garantido.
## Prompt
```text
Using PINNFEED_KEY and https://pinnfeed.io/v1/odds?sport=basketball&main=true&limit=20,
build a CLI that joins outcomes' fairProb with a local model_prob JSON file.
Print rows where model_prob - fairProb >= 0.02. Header: educational 18+, not betting advice.
```
Relacionado: [API +EV](/pt-br/answers/ev-betting-api-no-vig) · [fairProb](/pt-br/answers/pinnacle-odds-implied-probability-api) · [vibe coding](/pt-br/vibe-coding).
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: [signup](/signup).
## Perguntas frequentes
### fairProb é no-vig?
Sim — campos `fair` / `fairProb` nos outcomes.
### Arb multi-book?
PinnFeed é só Pinnacle.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/betting-odds-api
# API de odds de apostas
**Resposta:** uma **API de odds** dá ao seu código preços de casas (e muitas vezes scores) via REST e às vezes push. Em **9 de novembro de 2026**, escolha em dois eixos: **poll vs push**, e **um book sharp vs muitos**. Lista datada: [melhores APIs](/best-sports-odds-apis).
## Checklist
1. **Precisa de push?** The Odds API é **só REST** ([detalhe](/pt-br/answers/the-odds-api-websocket)) desde **$30/mês**, com starter free 500 créditos — mais barato em dólares absolutos, não é produto push.
2. **Um book ou muitos?** Feeds só Pinnacle (PinnFeed, oddssea) vs agregadores (odds-api.io, OpticOdds, OddsJam API).
3. **Live + pré-jogo ou só pré-jogo?** oddssea **Prematch $59/mês** é WS em tempo real só pré-jogo. Live + pré-jogo em fatura mensal publicada: [claim](/pt-br/cheapest-pinnacle-odds-websocket) (Builder €99/mês IVA incl. quando aplicável em 9 nov 2026 nesse escopo).
4. **Preço publicado ou cotação?** OpticOdds e OddsJam API são **cotação** nas páginas lidas.
## Onde o PinnFeed encaixa
PinnFeed é **só Pinnacle**: REST + WebSocket normalizado (Builder+), Free REST com atraso de 30 s.
```bash
export PINNFEED_KEY="ps_live_..."
curl -sS -H "x-api-key: $PINNFEED_KEY" \
"https://pinnfeed.io/v1/odds?sport=soccer&main=true&limit=5"
```
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: [signup](/signup). Relacionado: [sports API](/pinnacle-odds-api).
## Perguntas frequentes
### Qual é a melhor API?
Não há vencedor universal — encaixe push vs poll e cobertura de books.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/the-odds-api-websocket
# The Odds API oferece um WebSocket?
**Resposta:** em **9 de novembro de 2026**, The Odds API publica **apenas polling REST** — sem WebSocket a nenhum preço listado. PinnFeed Builder (€99/mês IVA incl. quando aplicável) empurra odds Pinnacle **live + pré-jogo**. Não afirmamos ser mais baratos em dólares absolutos. Ver [polling vs push](/pt-br/answers/the-odds-api-polling-vs-pinnfeed-push), [compare](/pt-br/compare).
## O que The Odds API publica (9 nov 2026)
- **Starter FREE:** 500 créditos/mês.
- **20K créditos:** **$30/mês**.
- Regiões US/UK/EU/AU; Pinnacle listado na EU.
- **Sem WebSocket/push.**
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: [signup](/signup).
## Perguntas frequentes
### Anunciaram um WS depois?
Não na página lida em 9 nov 2026.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-sport-ids
# Ids e slugs de esportes PinnFeed
**Resposta:** passe `sport` como slug ou id, separados por vírgulas (`sport=soccer,tennis` ou `sport=1,2`). Os mesmos valores valem no array `"sports"` do WebSocket. `GET /v1/sports` lista os 13 com contagens live/pré-jogo e `inPlan`.
| id | slug | id | slug |
|---|---|---|---|
| 1 | `soccer` | 8 | `mma` |
| 2 | `tennis` | 9 | `boxing` |
| 3 | `basketball` | 10 | `volleyball-handball` |
| 4 | `hockey` | 11 | `esports` |
| 5 | `american-football` | 12 | `golf` |
| 6 | `baseball` | 13 | `cricket` |
| 7 | `rugby` | | |
## O que está ao vivo agora
```bash
curl -s https://pinnfeed.io/v1/sports -H "x-api-key: ps_live_your_key" \
| jq '.sports[] | select(.live > 0) | {slug, live, prematch, inPlan}'
```
## Limites por plano
| Plano | Esportes |
|---|---|
| Free | 2 à escolha (atraso 30 s) |
| Hobby | 3 à escolha |
| Builder, Pro | Os 13 |
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: [signup](/signup). Relacionado: [soccer](/pt-br/answers/football-odds-feed-pinnacle), [tennis](/pt-br/answers/pinnacle-tennis-odds-api), [NBA](/pt-br/answers/pinnacle-nba-moneyline-odds-api), [MMA](/pt-br/answers/pinnacle-mma-ufc-odds-api), [esports](/pt-br/answers/pinnacle-esports-odds-api), [betting odds API](/pt-br/answers/betting-odds-api).
## Perguntas frequentes
### Os 13 no Free?
Free: 2. Hobby: 3. Builder/Pro: os 13.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-alternate-lines-api
# API de linhas alternativas Pinnacle
**Resposta:** no Builder+, peça `main=false` (REST) ou `"main": false` (WebSocket) para receber alternativas além das main. Chave de estado = `id` de mercado (`eventId:key`). Free/Hobby são main-only.
## WebSocket
```bash
curl -s "https://pinnfeed.io/v1/odds?sport=basketball&market=spread,total&limit=20" \
-H "x-api-key: ps_live_your_key"
```
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste 3 dias; cartão obrigatório. REST gratis: [signup](/signup). Relacionado: [corners](/pt-br/answers/pinnacle-soccer-corners-odds-api), [specials](/pt-br/answers/pinnacle-specials-props-odds-api).
## Perguntas frequentes
### Free inclui alternativas?
Não — main-only até Builder.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/opticodds-alternative
# Alternativa ao OpticOdds para desenvolvedores que querem começar hoje
**O OpticOdds é a melhor opção se você tem uma casa de apostas, uma mesa de trading ou um veículo de mídia que precisa de mais de 200 casas e de um contrato negociado; o preço é só sob orçamento. Se a Pinnacle é o seu mercado de referência e você quer começar sem uma call comercial, o PinnFeed Builder transmite odds da Pinnacle ao vivo e pré-jogo por WebSocket por €99/mês (IVA incluso quando aplicável), com uma chave REST grátis para testar antes.**
Os dados do OpticOdds vêm da [página inicial](https://opticodds.com/), da [página de preços](https://opticodds.com/pricing) e da [FAQ da API](https://developer.opticodds.com/docs/api-faq), lidas em 9 de novembro de 2026.
## O que o OpticOdds oferece
- Odds em tempo real de **mais de 200 casas**, ao vivo e pré-jogo, em um feed padronizado (segundo o site).
- Streaming por **Server-Sent Events** e **RabbitMQ**. A FAQ da API diz que não oferece webhooks nem WebSockets.
- O preço é um formulário: tamanho da empresa e necessidades, e depois uma conversa comercial. Não publica preços.
## Tabela de preços, 9 de novembro de 2026
| Opção | Preço publicado | Transporte push | Chave self-service |
|---|---|---|---|
| OpticOdds | Só sob orçamento | SSE, RabbitMQ | Não |
| PinnFeed Free | €0 | Nenhum (REST, 30 s de atraso) | Sim |
| **PinnFeed Builder** | €99/mês (IVA incl. quando aplicável) | WebSocket, ao vivo + pré-jogo | Sim |
| PinnFeed Pro | €199/mês | WebSocket, 10 conexões | Sim |
## Lado a lado
| | OpticOdds | PinnFeed |
|---|---|---|
| Cobertura | Mais de 200 casas | Só Pinnacle, 13 esportes |
| Streaming | SSE, RabbitMQ | WebSocket (snapshot e depois deltas) |
| Preço publicado | Não, só sob orçamento | Sim, a partir de €0 |
| Chave self-service | Não | Sim |
| Plano grátis | Não | REST com 30 s de atraso |
| Odds justas sem margem | Não verificado (sem dados) | Inclusas em cada mercado |
## Quando o OpticOdds é melhor
- Você precisa de **centenas de casas** em um único feed, ao vivo e pré-jogo.
- Você precisa de contrato, SLA e licença comercial sob medida para o seu produto.
- O seu sistema já consome filas SSE ou RabbitMQ.
## Quando a PinnFeed é melhor
- Você é desenvolvedor, uma equipe pequena ou um apostador que constrói as próprias ferramentas e quer **começar hoje**.
- A Pinnacle é o seu mercado de referência: detecção de steam, valor contra casas soft, acompanhamento do CLV.
- Você quer um **preço mensal publicado** e um cliente WebSocket que dá para copiar do [guia de Python e Node](/pt-br/guides/pinnacle-odds-websocket-python-node).
## Perguntas frequentes
### Quanto custa o OpticOdds?
O OpticOdds não publica preços. A página de preços é um formulário de contato, então o custo depende de um orçamento para os seus esportes, produtos e volume.
### O OpticOdds tem WebSocket?
Não. A FAQ da API diz que não oferece webhooks nem WebSockets e que transmite as odds por Server-Sent Events. Também oferece RabbitMQ.
### A PinnFeed cobre tantas casas quanto o OpticOdds?
Não. A PinnFeed só tem a Pinnacle. Se você precisa de muitas casas, o OpticOdds ou outro agregador da [página de alternativas](/pt-br/alternatives) serve melhor.
## Teste o Builder
Comece o teste de 3 dias do Builder em [preços](/pt-br/pricing): o cartão é pedido e cobrado após o dia 3, a menos que você cancele. Veja o [comparativo](/pt-br/compare), a [página do preço do WebSocket ao vivo + pré-jogo](/pt-br/cheapest-pinnacle-odds-websocket) e a [documentação](/docs) (em inglês).
*Só para maiores de 18 anos. Odds, odds justas e CLV são ferramentas educativas e estatísticas, não conselhos de apostas. Nada disso promete lucro. Jogue com responsabilidade.*
---
Source: https://pinnfeed.io/pt-br/answers/nfl-player-props-odds-api-pinnacle
# API de props de jogador NFL com preços Pinnacle
**Resposta:** a Pinnacle publica player props NFL como eventos **special** em `american-football`. No Builder/Pro, `/v1/odds?sport=american-football` devolve-os com `parentId` ao jogo. Free/Hobby são main-only.
## Exemplo
```python
import os, requests
from collections import defaultdict
H = {"x-api-key": os.environ["PINNFEED_KEY"]} # ps_live_...
# 1) find the NFL league id once (college football is a different league)
ev = requests.get("https://pinnfeed.io/v1/events", headers=H, timeout=10,
params={"sport": "american-football", "q": "nfl", "limit": 200}).json()["events"]
print({(e["league"]["id"], e["league"]["name"]) for e in ev if e["league"]})
LEAGUE = int(input("NFL league id: "))
# 2) games and props together (no main=true: that would drop the specials)
data = requests.get("https://pinnfeed.io/v1/odds", headers=H, timeout=15,
params={"sport": "american-football", "league": LEAGUE, "limit": 500}).json()["events"]
games = {e["id"]: e for e in data if not e.get("special")}
props = defaultdict(list)
for e in data:
if e.get("special") and e.get("parentId") in games:
props[e["parentId"]].append(e)
for gid, items in props.items():
g = games[gid]
print(f'{g["away"]} @ {g["home"]} ({len(items)} props)')
for p in items[:10]:
for m in p["markets"]:
line = " | ".join(f'{o["name"]} {o["decimal"]} (fair {o.get("fair")})' for o in m["outcomes"])
print(" ", p["special"]["description"], m["type"], m.get("line"), line)
```
```json
{ "type": "subscribe", "sports": ["american-football"], "leagues": [LEAGUE_ID], "specials": true }
```
Relacionado: [specials](/pt-br/answers/pinnacle-specials-props-odds-api), [NFL API](/pt-br/answers/pinnacle-nfl-american-football-odds-api).
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste 3 dias; cartão obrigatório. REST gratis: [signup](/signup).
## Player props da NBA (o mesmo padrão)
Os player props da NBA usam o mesmo padrão de eventos `special` com `parentId`, em `sport=basketball`. Busque o id da NBA com `q=nba`. Não passe `main=true` se quiser os specials.
## Perguntas frequentes
### Free inclui props NFL?
Não — Builder.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/oddsjam-alternative
# Alternativas ao OddsJam para um feed de odds da Pinnacle
**A API da OddsJam serve melhor se você precisa de mais de 100 casas, props de jogadores e dados de lesões em um acordo comercial; ela não publica preços. Se o que você precisa é o preço sharp da Pinnacle em tempo real com um preço mensal publicado, o PinnFeed Builder transmite odds da Pinnacle ao vivo e pré-jogo por WebSocket por €99/mês (IVA incluso quando aplicável).**
Esta página trata da API de dados da OddsJam, não da tela de odds para apostadores. Os dados vêm de [oddsjam.com/odds-api](https://oddsjam.com/odds-api), lida em 9 de novembro de 2026.
## O que a API da OddsJam oferece
- Odds pré-jogo e ao vivo de **mais de 100 casas**: linhas principais, mercados alternativos, props de jogadores e futuros.
- Relatórios de lesões, calendários, elencos, resultados de jogos e jogadores, deep links e um corretor automático de apostas.
- Uma base histórica de odds com linhas de abertura e de fechamento.
- Respostas em JSON ou XML e um **push stream**; a página não diz qual protocolo usa.
- Sem preço na página: você pede contato («Have us reach out»). Listamos como **só sob orçamento**.
- A Pinnacle não aparece nessa página. Não conseguimos verificar se ela é coberta: **sem dados**.
## Tabela de preços, 9 de novembro de 2026
| Opção | Preço publicado | Push | Pinnacle |
|---|---|---|---|
| OddsJam API | Só sob orçamento | Push stream (protocolo não informado) | Sem dados |
| PinnFeed Free | €0 | Não (REST, 30 s de atraso) | Sim |
| **PinnFeed Builder** | €99/mês (IVA incl. quando aplicável) | WebSocket, ao vivo + pré-jogo | Sim |
## Lado a lado
| | OddsJam API | PinnFeed |
|---|---|---|
| Cobertura | Mais de 100 casas, props | Só Pinnacle, 13 esportes |
| Dados extras | Lesões, elencos, resultados, correção de apostas | Odds justas, margem, odds de fechamento |
| Push | Push stream | WebSocket (snapshot e depois deltas) |
| Preço | Só sob orçamento | Publicado, a partir de €0 |
| Chave self-service | Não (formulário de contato) | Sim |
## Quando a OddsJam é melhor
- Você precisa de **props de jogadores** de muitas casas em um único feed.
- Você precisa de dados de lesões, elencos e correção de apostas junto com as odds.
- Você está construindo um produto comercial e quer um acordo negociado.
## Quando a PinnFeed é melhor
- **A Pinnacle é o seu preço de referência**: valor contra casas soft ([guia de value betting](/pt-br/guides/value-betting-no-vig-fair-odds)), alertas de steam, CLV.
- Você quer **começar hoje** com uma chave grátis e um preço público.
- Você quer as odds justas já calculadas e as odds de fechamento em `/v1/closing`.
## Perguntas frequentes
### Quanto custa a API da OddsJam?
A OddsJam não publica os preços da API. A página da API pede que você solicite contato, então o preço depende de um orçamento.
### A API da OddsJam inclui a Pinnacle?
A página da API não cita a Pinnacle, então não conseguimos verificar em 9 de novembro de 2026. Pergunte diretamente à OddsJam.
### Existe uma alternativa self-service à API da OddsJam?
Para odds da Pinnacle, sim: a PinnFeed dá uma chave REST grátis em um minuto e um WebSocket no Builder. Para muitas casas, veja as opções com várias casas em [todas as alternativas](/pt-br/alternatives).
## Teste o Builder
Comece o teste de 3 dias do Builder em [preços](/pt-br/pricing): o cartão é pedido e cobrado após o dia 3, a menos que você cancele. A integração começa na [documentação](/docs) (em inglês); veja também o [comparativo](/pt-br/compare) e a [página do preço do WebSocket ao vivo + pré-jogo](/pt-br/cheapest-pinnacle-odds-websocket).
*Só para maiores de 18 anos. Odds, odds justas e CLV são ferramentas educativas e estatísticas, não conselhos de apostas. Nada disso promete lucro. Jogue com responsabilidade.*
---
Source: https://pinnfeed.io/pt-br/answers/oddssea-websocket-price
# Preço WebSocket oddssea por mês
**Resposta (em 9 de novembro de 2026):** oddssea.dev publica **Prematch $59/mês** (≈ €52,84) para um WebSocket **só pré-jogo**, e **Live $149/mês** (≈ €133,45) para **live + pré-jogo**. Scale $299/mês. Free $0 sem WebSocket. Fonte: [oddssea.dev](https://oddssea.dev/) pricing, lida nesse dia. Comparação: [alternativa oddssea](/oddssea-alternative).
## Planos publicados (9 nov 2026)
| Plano | Preço | WebSocket? | Âmbito |
|---|---|---|---|
| Free | $0 | Não | Pré-jogo diferido |
| Prematch | $59/mês | Sim | Só pré-jogo |
| Live | $149/mês | Sim | Live + pré-jogo |
| Scale | $299/mês | Sim | Live + pré-jogo, 10 streams |
≈ EUR com ECB 6 nov 2026 (1 USD = 0,89566 EUR). IVA não indicado na página lida. competitor-pricing.md.
## Quando escolher oddssea
- Só precisa de **pré-jogo** Pinnacle e quer a fatura WS publicada mais baixa ($59).
- Aceita prepago crypto da página deles.
## Quando escolher PinnFeed
- Precisa de **live + pré-jogo** em fatura mensal: Builder é €99/mês (IVA incl. quando aplicável) com 3 conexões, frente a oddssea Live $149 / 1 stream.
- Quer cartão em plano mensal (a página lista crypto prepago; cards “coming”).
Nunca diga “o mais barato” sem âmbito: Prematch $59 ganha se o live for opcional; em **live + pré-jogo** mensal, Builder fica abaixo de oddssea Live entre os preços que verificámos.
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste 3 dias; cartão obrigatório. REST gratis: [signup](/signup). Relacionado: [oddssea vs PinnFeed](/pt-br/answers/oddssea-vs-pinnfeed).
## Perguntas frequentes
### A oddssea é mais barata que o PinnFeed?
Só pré-jogo: sim ($59). Live + pré-jogo no preço de 1 mês publicado: não — Builder €99 fica abaixo de oddssea Live $149 (9 nov 2026).
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/oddssea-vs-pinnfeed
# oddssea vs PinnFeed
**Resposta (em 9 de novembro de 2026):** ambos são vendors WebSocket **só Pinnacle**. **oddssea Prematch ($59/mês ≈ €52,84)** ganha no preço se só precisa de pré-jogo. **PinnFeed Builder (€99/mês IVA incl. quando aplicável)** ganha numa fatura **mensal live + pré-jogo** face a **oddssea Live ($149/mês ≈ €133,45)**. Página: [alternativa oddssea](/oddssea-alternative). Matriz: [preço WS oddssea](/pt-br/answers/oddssea-websocket-price).
## Comparativo (preços publicados, 9 nov 2026)
| | oddssea Prematch | oddssea Live | PinnFeed Builder |
|---|---|---|---|
| Preço | $59/mês | $149/mês | €99/mês |
| WebSocket | Sim | Sim | Sim |
| Âmbito | Só pré-jogo | Live + pré-jogo | Live + pré-jogo |
| Streams (publicados) | 1 | 1 | 3 |
FX: 1 USD = 0,89566 EUR (ECB 6 nov 2026). Nunca “o mais barato” sem âmbito: Prematch $59 é mais baixo que Builder quando o live é opcional. Não reivindicamos vantagem de fair/closing sobre oddssea (fb1b995 / competitor-pricing.md).
## Quando ganha a oddssea
- Ferramentas só pré-jogo / CLV sem in-play.
- Aceita o checkout crypto prepago.
## Quando ganha o PinnFeed
- Bots live/steam no mesmo socket que o pré-jogo.
- Faturação com cartão e 3 conexões WS no Builder (oddssea lista 1 stream em Prematch e Live).
## CTA
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste 3 dias; cartão obrigatório. REST gratis: [signup](/signup).
## Perguntas frequentes
### Quem é mais barato em live + pré-jogo?
Nos preços de 1 mês publicados: **Builder €99** vs oddssea Live **$149**.
### Latência?
Não medida. Sem claim de latência.
### Conteúdo educativo para adultos?
Sim (18+).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-cancel-refund
# Como cancelar o PinnFeed ou pedir um reembolso
**Resposta:** cancele quando quiser no painel (Plano e cobrança → Gerenciar cobrança → Cancelar). O plano permanece ativo até o fim do período que você já pagou e não é renovado. Pela [política de reembolsos](/legal/refunds), se você não estiver satisfeito nos primeiros 7 dias do seu primeiro mês pago, escreva para support@pinnfeed.io e reembolsamos esse primeiro pagamento. Planos em cripto são pré-pagos e nunca renovam, então não há o que cancelar.
## Cancelar um plano no cartão
1. Abra o painel e vá em **Plano e cobrança**.
2. Clique em **Gerenciar cobrança**: abre o portal de cobrança da sua assinatura.
3. Escolha **Cancelar**. O acesso continua até o fim do mês, trimestre ou ano atual; depois a conta volta para o Free.
Para não haver cobrança durante o teste de 3 dias, cancele antes do término. É preciso cartão no checkout, e ele é cobrado automaticamente quando o teste acaba ([como funciona o teste](/pt-br/answers/pinnacle-odds-api-free-trial)).
## Reembolsos
| Caso | O que a política diz |
|---|---|
| Primeiros 7 dias do seu primeiro mês pago | Escreva para support@pinnfeed.io; o primeiro pagamento é reembolsado |
| Mais adiante no período | Em geral não é reembolsável; cancele para interromper a renovação |
| Plano em cripto (1, 3 ou 12 meses) | Pré-pago, nunca renova sozinho; reembolsos, quando concedidos, são pagos no mesmo ativo, líquidos das taxas de rede |
| Indisponibilidade nossa acima de 24 horas seguidas | Os dias afetados são creditados mediante pedido |
| Consumidores da UE | O acesso imediato é solicitado na compra; o texto sobre o direito de desistência está pendente de revisão jurídica |
## Antes de cancelar
- Quer só reduzir o custo? A cobrança anual do Builder é €990 por ano (€82,50/mês): [cobrança anual e trimestral](/pt-br/answers/pinnfeed-annual-quarterly-billing).
- Precisa só de dados atrasados? O Free continua disponível, sem cartão.
*Conteúdo educativo para maiores de 18 anos. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
Relacionado: [teste grátis](/pt-br/answers/pinnacle-odds-api-free-trial).
## Perguntas frequentes
### Perco o acesso no momento em que cancelo?
Não. Você mantém o plano pago até o fim do período que já pagou.
### Posso pedir reembolso depois da primeira semana?
Pela política de reembolsos, os pagamentos em geral não são reembolsáveis depois dos primeiros 7 dias do primeiro mês pago. Cancelar interrompe a próxima renovação.
### Para onde envio um pedido de reembolso?
Para support@pinnfeed.io, a partir do e-mail da sua conta.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-commercial-use
# Posso usar dados de odds da Pinnacle de forma comercial?
**Resposta:** pela [política de uso aceitável](/legal/acceptable-use) do PinnFeed, você pode usar os dados dentro das suas próprias aplicações, modelos, pesquisas, painéis e bots, **inclusive produtos comerciais**. Pode mostrar valores derivados no seu produto, como alguns preços, odds justas, vantagens ou gráficos, desde que não ofereça exportação em massa dos dados subjacentes. O que exige licença **Enterprise** é a redistribuição: revender, sublicenciar ou reexpor o feed bruto ou normalizado, ou uma parte substancial dele, a terceiros por API, arquivo ou socket.
## Verificação rápida
| Você quer | Plano self-serve | Enterprise |
|---|---|---|
| Rodar o próprio bot ou modelo de apostas | Sim | — |
| Site de tipster pago mostrando o preço e a odd justa de cada palpite | Sim (exibição derivada) | — |
| Alertas de Discord ou Telegram com alguns preços por alerta | Sim (exibição derivada) | — |
| Painel SaaS para clientes com gráficos e vantagens | Sim, sem exportação em massa | — |
| Uma API ou download em CSV das odds para seus clientes | Não | Obrigatório |
| Compartilhar uma chave entre várias empresas para driblar limites | Não | — |
Exemplos por público: [tipsters](/pt-br/use-cases/tipsters), [servidores Discord](/pt-br/use-cases/discord-servers), [cientistas de dados](/pt-br/use-cases/data-scientists).
## Outras regras da política
- Não compartilhe chaves para driblar limites de conexão, esportes ou taxa.
- Não abuse: contornar limites, sondar ou atacar o serviço.
- Não use os dados onde apostas ou serviços relacionados sejam ilegais, nem nada voltado a menores.
- Não apresente o PinnFeed nem os dados como um produto oficial da Pinnacle. O PinnFeed é independente.
Leia a [política de uso aceitável](/legal/acceptable-use) vigente antes de lançar. Se o caso for duvidoso, escreva para support@pinnfeed.io e descreva o produto.
## Planos
Self-serve: Free, Hobby (€29/mês), [Builder](/pt-br/pricing#plan-builder) (€99/mês) e Pro (€199/mês). Enterprise: preço sob consulta, SLA, licença comercial e exportações em massa. Teste de 3 dias nos planos pagos; é preciso cartão, cobrado após o dia 3 salvo se você cancelar.
*Conteúdo educativo para maiores de 18 anos. Não é aconselhamento jurídico. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
Relacionado: [MVP de startup com odds da Pinnacle](/pt-br/answers/pinnacle-odds-api-startup-mvp).
## Perguntas frequentes
### A Pinnacle permite isso?
O PinnFeed é independente da Pinnacle e esta página descreve apenas a política do PinnFeed. Não é aconselhamento jurídico sobre direitos de terceiros.
### Posso mostrar uma tabela completa de odds no meu site?
A política permite “alguns preços” como exibição derivada. Uma página que reproduza uma parte substancial do feed, ou que permita baixá-lo, entra em redistribuição. Se você estiver entre os dois casos, pergunte antes de lançar.
### Preciso de Enterprise para um painel interno da empresa?
Não: o uso interno é a sua própria aplicação. As chaves continuam contando nos limites do seu plano.
---
Source: https://pinnfeed.io/pt-br/answers/best-sports-betting-data-api
# A melhor API de dados de apostas? Um corte honesto
**Resposta:** «a melhor API de dados de apostas» mistura dois trabalhos. Uma API de **dados esportivos** (estatísticas, placares, calendários, lesões) não é uma API de **odds** (preços, linhas, fechamentos). O **PinnFeed** é o segundo, e só da **Pinnacle**: REST mais um WebSocket Builder em `/v1/stream`, com `fair` / `fairProb`, `margin`, `maxStake` e fechamentos com marca de tempo. Não é um feed de stats nem um painel de 100 casas. Se você precisa de muitas casas soft ou do placar oficial, escolha um produto que documente esse trabalho.
## Dois trabalhos, duas listas
| Trabalho | O que procurar | PinnFeed? |
|---|---|---|
| Stats, placares, calendários | Uma API de dados esportivos | Não |
| Preços de muitas casas, por polling | Uma API multi-casa | Não — só Pinnacle |
| Referência sharp da Pinnacle, push ao vivo + pré-jogo, fechamentos sem margem | Uma API de odds da Pinnacle | Sim, self-serve |
Preços publicados que podemos citar da nossa revisão de 9 de novembro de 2026 ([comparativo](/pt-br/compare)):
- **PinnFeed** — Grátis €0 (REST, atraso de 30 s); Hobby €29/mês (REST em tempo real, sem WebSocket); [Builder](/pt-br/pricing#plan-builder) €99/mês ou €990/ano ≈ €82,50/mês (WebSocket ao vivo + pré-jogo, fechamentos). IVA incluso quando aplicável. Teste de 3 dias nos planos pagos.
- **The Odds API** — a partir de US$ 30/mês por 20.000 créditos; **sem WebSocket nem push em nenhum preço publicado**. Multi-casa, com Pinnacle na região UE.
- **SportsDataIO** Discovery Lab Odds — US$ 99/mês ou US$ 599/ano, **com um dia de atraso**, uso pessoal. A «Leagues API» comercial em tempo real é só sob orçamento. A Pinnacle não aparece nas páginas que lemos.
- **OpticOdds** — **somente orçamento**; o FAQ descreve SSE / RabbitMQ, não um WebSocket.
Em 9 de novembro de 2026, o Builder era o menor preço publicado que encontramos para um WebSocket de odds da Pinnacle **ao vivo e pré-jogo** com cobrança **mensal ou anual** ([fontes](/pt-br/cheapest-pinnacle-odds-websocket)). Existe um WebSocket só pré-jogo publicado por menos (oddssea Prematch, US$ 59/mês). O odds-api.io está a €118/mês sem impostos no Solo + WebSocket mensal; o anual é €1.180/ano ≈ €98,33/mês, ainda acima do anual do Builder (€82,50/mês com IVA incluso). Não afirmamos menor latência do que nenhum fornecedor nomeado.
A maioria dos modelos que só precisa de uma **referência sharp** e de fechamentos sem margem com horário não precisa de 100 casas. Esse é o trabalho do PinnFeed. Recenseamento mais amplo (em inglês): [best sports odds APIs 2026](/best-sports-odds-apis) (EN).
## Teste
[Teste o Builder por 3 dias](/start/builder?src=pt-br-answers-best-betting-data) (€99/mês, IVA incluso quando aplicável) ou [peça uma chave REST atrasada grátis](/signup). Planos pagos: teste de 3 dias; é necessário cartão e a cobrança ocorre após o dia 3, salvo cancelamento. [Preços](/pt-br/pricing).
*Conteúdo educativo para maiores de 18 anos (18+). Sem palpites nem ganhos garantidos. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### O PinnFeed é uma API de dados (stats)?
Não. Ele transmite odds da Pinnacle. Combine com uma API de stats se o seu modelo também precisa de placares ou lesões.
### A The Odds API é mais barata?
Em dólares absolutos, o plano de 20.000 créditos é US$ 30/mês (revisão de 9 de novembro de 2026) e não tem push. O PinnFeed não é mais barato do que esse poller; o Builder é o WebSocket **ao vivo + pré-jogo** da Pinnacle com o menor preço publicado que encontramos na cobrança mensal ou anual.
### A SportsDataIO já cobre isso?
O plano publicado Discovery Lab Odds a US$ 99/mês é do dia seguinte, uso pessoal (9 de novembro de 2026). Não é um WebSocket da Pinnacle em tempo real com tarifa pública.
---
Source: https://pinnfeed.io/pt-br/answers/sportsbook-api-integration-pinnacle
# Integração de uma API de odds com preços da Pinnacle
**Resposta:** a Pinnacle encerrou a API pública para o público geral em **23 de julho de 2025** ([README oficial](https://github.com/pinnacleapi/pinnacleapi-documentation), aberto em 10 de novembro de 2026): o acesso agora é sob medida e exige uma conta Pinnacle com saldo. O **PinnFeed** é uma integração à parte e self-serve: crie uma chave (`ps_live_...`), chame o REST em `https://pinnfeed.io/v1` e — no Builder — abra `wss://pinnfeed.io/v1/stream`. **Você não** precisa de conta na Pinnacle. O feed é só Pinnacle, não um painel multi-casa.
## Conexão em cinco passos
1. [Obtenha uma chave REST atrasada grátis](/signup) (sem cartão) ou comece um [teste Builder de 3 dias](/start/builder?src=pt-br-answers-sportsbook-integration).
2. Envie `x-api-key: ps_live_...` (ou `Authorization: Bearer ps_live_...`). Docs: [autenticação](/pt-br/answers/pinnacle-odds-api-authentication).
3. Snapshot: `GET /v1/sports`, `GET /v1/events`, `GET /v1/odds`. Contrato: [OpenAPI](/openapi.json), [REST](/docs/rest).
4. Se você precisa de **push** ao vivo + pré-jogo, assine `/v1/stream` (Builder €99/mês). Chaves Free e Hobby recebem `403 plan_lacks_ws`. Protocolo: [snapshot vs delta](/pt-br/answers/pinnacle-odds-websocket-snapshot-delta).
5. Para backtests e CLV, use **fechamentos sem margem com marca de tempo** de `GET /v1/closing` (Builder+) em vez de treinar com um preço que o seu modelo não teria visto.
```bash
curl -sS -H "x-api-key: ps_live_..." \
"https://pinnfeed.io/v1/odds?sport=soccer&main=true&limit=20"
```
## Qual plano para qual trabalho
| Trabalho | Plano |
|---|---|
| Avaliar o esquema | Grátis €0 — REST, atraso de 30 s, 2 esportes |
| REST em tempo real, sem push | Hobby €29/mês — 3 esportes |
| WebSocket ao vivo + pré-jogo, 13 esportes, props, fechamentos | [Builder](/pt-br/pricing#plan-builder) €99/mês (ou €990/ano ≈ €82,50/mês) |
| Mais conexões, frames brutos | Pro €199/mês |
Um cliente que faz só polling só vê a mudança na próxima requisição, então em média chega atrasado metade de um intervalo, mais a ida e volta. É aritmética, não um teste de latência contra nenhum fornecedor. O Builder envia os deltas quando eles chegam ao nosso servidor.
## Alcance honesto
- **Só dados de odds** — você não faz apostas pelo PinnFeed.
- **Uma casa** — Pinnacle. Para um poller multi-casa documentado como a The Odds API (a partir de US$ 30/mês por 20.000 créditos; sem WebSocket em nenhum preço publicado, revisão de 9 de novembro de 2026), veja [The Odds API vs PinnFeed](/pt-br/the-odds-api-alternative).
- Não redistribua o feed bruto salvo com licença Enterprise ([Uso aceitável](/legal/acceptable-use)).
Relacionado: [API FanDuel vs Pinnacle](/answers/sportsbook-api-integration-pinnacle) (EN), [odds dinâmicas](/answers/dynamic-odds-api-pinnacle) (EN), [fechamentos históricos da NFL](/answers/historical-betting-odds-pinnacle-closing).
## Teste
[Teste o Builder por 3 dias](/start/builder?src=pt-br-answers-sportsbook-integration) (€99/mês, IVA incluso quando aplicável) ou [peça uma chave grátis](/signup). Planos pagos: teste de 3 dias; é necessário cartão e a cobrança ocorre após o dia 3, salvo cancelamento. [Preços](/pt-br/pricing).
*Conteúdo educativo para maiores de 18 anos (18+). Sem palpites nem ganhos garantidos. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Outras APIs de casas frente a um feed da Pinnacle
A PinnFeed não lista as odds dessas casas. As notas vêm das páginas de comparação que são fundidas aqui.
| Casa | O que a página documentava |
|---|---|
| Fanduel | Não encontramos uma API de odds oficial self-serve da FanDuel nem uma tarifa que possamos citar (10 de novembro de 2026). A FanDuel é uma casa de apostas. Esta página não inventa uma. |
Comparativas que se mantienen aparte: [Fanatics](/pt-br/answers/fanatics-api-vs-pinnacle-odds), [BetMGM](/pt-br/answers/betmgm-api-vs-pinnacle-odds).
## Perguntas frequentes
### A API oficial da Pinnacle continua pública?
Não. A documentação oficial indica que o acesso para o público geral está encerrado desde 23 de julho de 2025, com acesso sob medida e conta com saldo ([README](https://github.com/pinnacleapi/pinnacleapi-documentation), aberto em 10 de novembro de 2026). O PinnFeed é um feed independente e self-serve.
### Preciso do WebSocket para fazer backtesting?
Não para os fechamentos históricos. O `/v1/closing` do Builder devolve o fechamento sem margem com o instante do evento. Use o WebSocket quando precisar de deltas ao vivo. O Hobby (€29/mês) é só REST em tempo real, sem stream nem arquivo de fechamentos.
### Posso fazer apostas com esta integração?
Não — só dados de odds.
---
Source: https://pinnfeed.io/pt-br/answers/arbitrage-betting-bot-pinnacle
# Bot de arbitragem sobre odds da Pinnacle (educativo)
**Resposta:** um «bot de arb» referenciado à Pinnacle é um **programa de comparação**, não uma máquina de apostas seguras. O PinnFeed traz preços da **Pinnacle** (e `fair` / `fairProb`) por REST ou pelo WebSocket Builder. Você traz os preços da outra casa a partir de uma fonte que os documente. Sinalize quando o decimal da outra casa supera o `fair` da Pinnacle o bastante para cobrir os dois lados após comissões. O PinnFeed é **só dados de odds** — não faz apostas. Esta página é educativa para adultos (18+). Não há ganhos garantidos nem receita de aposta automática.
## Arquitetura (só dados)
1. Assine os deltas da Pinnacle em `wss://pinnfeed.io/v1/stream` (Builder) ou faça polling de `/v1/odds`.
2. Ingira a outra casa a partir da *API documentada dela* ou da sua própria captura — não a partir do PinnFeed.
3. Emparelhe eventos você mesmo (liga, times, horário, mercado, linha). Os ids do PinnFeed são ids da Pinnacle.
4. Compare `other_decimal` com o `fair` da Pinnacle. Ignore mercados finos: um piso de `maxStake` em torno de **100** é um filtro habitual, não um número mágico.
5. Alerte (log, Telegram, Discord). A execução, se houver, ocorre no site da casa e está sujeita à lei local, limites e risco de conta. Não automatize a colocação de apostas com este padrão, e não redistribua o feed bruto do PinnFeed ([Uso aceitável](/legal/acceptable-use)).
```python
# Tela educativa — não faz apostas.
FLOOR = 100 # filtro maxStake, em torno de 100
def flag(pinnacle_fair, other_decimal, max_stake):
if not pinnacle_fair or (max_stake or 0) < FLOOR:
return False
return other_decimal > pinnacle_fair # acrescente a sua própria margem por comissões
```
Relacionado: [arbitragem vs value](/pt-br/answers/arbitrage-vs-value-betting-api), [calculadora de arbitragem](/pt-br/answers/arbitrage-calculator-pinnacle-odds), [tela fairProb EV](/pt-br/answers/pinnacle-odds-python-fairprob-ev-screen), [guia do bot de Discord](/pt-br/guides/discord-picks-bot).
## Por que a Pinnacle é a referência, não o lado «soft»
Casas soft se movem. A Pinnacle é a linha sharp que muitos modelos usam como referência. Um «arb» frente a um preço soft atrasado ou limitado costuma desaparecer antes de você conseguir os dois lados. Use `fair`, `margin` e `maxStake`; não trate uma linha marcada como um lucro fechado.
## Teste
[Teste o Builder por 3 dias](/start/builder?src=pt-br-answers-arb-bot) (€99/mês, IVA incluso quando aplicável) para push ao vivo + pré-jogo, ou [peça uma chave REST atrasada grátis](/signup). Planos pagos: teste de 3 dias; é necessário cartão e a cobrança ocorre após o dia 3, salvo cancelamento. [Preços](/pt-br/pricing).
*Conteúdo educativo para maiores de 18 anos (18+). Sem palpites nem ganhos garantidos. No Brasil, aposte apenas em operadores autorizados pela SPA/MF. Não há apostas seguras.*
## Perguntas frequentes
### O PinnFeed faz as apostas?
Não. É uma API de odds. Qualquer aposta é entre você e uma casa licenciada, onde isso for legal.
### É um sistema de apostas seguras?
Não. Diferenças entre casas podem estar atrasadas, limitadas ou retiradas. A página é uma arquitetura de dados, não uma promessa de lucro.
### Preciso do WebSocket?
Para comparar ao vivo, o push é o habitual porque um poller só vê a mudança na próxima requisição (em média, metade de um intervalo de atraso: aritmética, não um teste entre fornecedores). O Builder (€99/mês) é o plano WebSocket.
---
Source: https://pinnfeed.io/pt-br/answers/historical-player-props-odds-pinnacle
# Histórico de player props (alcance da Pinnacle)
**Resposta:** o PinnFeed **não** é um arquivo histórico multi-casa de props. As **player props da Pinnacle** ao vivo e pré-jogo chegam como eventos `special` no Builder (`/v1/odds`, sem `main=true`), ligadas à partida por `parentId`. **Não conte com `GET /v1/closing` para o histórico de um prop** — a captura de fechamentos foi pensada em torno das partidas. Se você precisa do fechamento de um prop ou de uma série temporal, registre você o preço do special pouco antes do início. Não afirmamos uma vantagem de histórico de fechamentos frente a outros feeds da Pinnacle.
## O que você pode pedir hoje
Props ao vivo / pré-jogo (Builder e Pro; Free e Hobby ficam nos mercados principais):
```bash
curl -sS -H "x-api-key: ps_live_..." \
"https://pinnfeed.io/v1/odds?sport=basketball&limit=100"
```
Fique com as linhas que tenham `special` e agrupe por `parentId`. O mesmo padrão vale para `american-football`, `baseball` e outros esportes em que a Pinnacle publique props. Quais props existem depende por completo da lista da Pinnacle para aquela partida — uma lista vazia é normal. Detalhe: [props da NBA](/pt-br/answers/nfl-player-props-odds-api-pinnacle), [props da NFL](/pt-br/answers/nfl-player-props-odds-api-pinnacle), [specials e props](/pt-br/answers/pinnacle-specials-props-odds-api).
## O que você não deve esperar
- Um arquivo multi-ano e multi-casa de props (isso é outra categoria de produto)
- Uma linha de prop garantida em `/v1/closing?date=YYYY-MM-DD`
- Histórico de abertura, salvo se você tiver guardado os ticks pré-jogo
- Uma vantagem não documentada frente a outros fornecedores que também enviam fechamentos da Pinnacle
Para o histórico em nível de partida: [histórico da NFL](/answers/historical-betting-odds-pinnacle-closing), [histórico da NBA](/answers/historical-betting-odds-pinnacle-closing) e [histórico da MLB](/answers/historical-mlb-odds-pinnacle) (EN).
## Registre o seu próprio histórico de props
Assine `wss://pinnfeed.io/v1/stream` (Builder) ou faça polling de `/v1/odds`, e grave `event.id`, `parentId`, `special.description`, o `decimal` / `fair` do outcome, `maxStake` e uma marca de tempo. Um piso de `maxStake` em torno de 100 serve para ignorar limites diminutos. Esse log é a série histórica de props que você de fato pode backtestar.
## Teste
[Teste o Builder por 3 dias](/start/builder?src=pt-br-answers-historical-props) (€99/mês, IVA incluso quando aplicável) para todos os mercados, o WebSocket e os fechamentos em nível de partida. Planos pagos: teste de 3 dias; é necessário cartão e a cobrança ocorre após o dia 3, salvo cancelamento. [Chave REST atrasada grátis](/signup). [Preços](/pt-br/pricing).
*Conteúdo educativo para maiores de 18 anos (18+). Sem palpites nem ganhos garantidos. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### As player props estão no arquivo de fechamentos?
Não conte com isso. A captura de fechamentos foi pensada em torno das partidas. Para CLV de um prop, registre o special você pouco antes do início.
### É como o histórico de props da The Odds API?
Não. Essa categoria costuma ser arquivos históricos multi-casa. O PinnFeed arquiva fechamentos de partidas da Pinnacle e serve specials ao vivo — não é um arquivo multi-casa de props.
### Qual plano eu preciso?
As props exigem [Builder](/pt-br/pricing#plan-builder) (€99/mês) ou Pro. Free e Hobby ficam nos mercados principais.
---
Source: https://pinnfeed.io/pt-br/answers/machine-learning-pinnacle-closing-odds
# Machine learning com fechamentos da Pinnacle
**Resposta:** trate o **fechamento sem margem da Pinnacle, com marca de tempo**, como rótulo ou como feature, não como uma espiada no resultado. No Builder, `GET /v1/closing?date=YYYY-MM-DD` devolve o decimal de fechamento, `fair` e `fairProb` de cada mercado quando o evento passa a ao vivo. Una essas linhas aos seus próprios snapshots **apenas em instantes que o seu modelo já teria tido**. Treinar com o resultado da partida, ou com um fechamento que o seu bot não teria visto, é look-ahead. Isto é educativo (18+). Não prometemos um edge nem uma vantagem de histórico de fechamentos frente a outros feeds da Pinnacle.
## Um padrão seguro
```python
import os, requests
KEY = os.environ["PINNFEED_KEY"] # ps_live_...
r = requests.get(
"https://pinnfeed.io/v1/closing",
params={"date": "2026-11-03", "sport": "american-football", "main": "true", "limit": 100},
headers={"x-api-key": KEY}, timeout=10)
# Cada linha é o fechamento da Pinnacle naquele dia UTC — use fairProb como rótulo
# e fique só com features cuja marca de tempo seja estritamente anterior ao fechamento.
for ev in r.json().get("events", []):
for m in ev.get("markets", []):
print(ev.get("id"), m.get("key"), m.get("margin"), [
(o.get("name"), o.get("fairProb")) for o in m.get("outcomes", [])])
```
Guarde os seus próprios ticks pré-jogo de `/v1/odds` ou `wss://pinnfeed.io/v1/stream` se você precisa de uma série temporal. O arquivo de fechamentos é um **snapshot por dia UTC**, não um histórico tick a tick, e cresce a partir do dia em que começou — consulte a [documentação](/docs/rest) para a data mais antiga. Relacionado: [backtesting contra fechamentos](/pt-br/answers/pinnacle-odds-api-backtesting-clv), [histórico da NFL](/answers/historical-betting-odds-pinnacle-closing), [histórico da MLB](/answers/historical-mlb-odds-pinnacle) (EN), [fairProb implícita](/pt-br/answers/pinnacle-odds-implied-probability-api).
## O que isto não é
- Um modelo de lucro garantido, um tipster ou aposta automática
- Um arquivo de features multi-casa (o PinnFeed é só Pinnacle)
- A afirmação de que o nosso histórico de fechamentos é mais profundo ou melhor do que o de outros revendedores da Pinnacle
Os endpoints de fechamento exigem [Builder](/pt-br/pricing#plan-builder) (€99/mês, ou €990/ano ≈ €82,50/mês) ou Pro. O Hobby (€29/mês) é só REST em tempo real e não inclui o arquivo de fechamentos.
## Teste
[Teste o Builder por 3 dias](/start/builder?src=pt-br-answers-ml-closing) (€99/mês, IVA incluso quando aplicável) ou [peça uma chave REST atrasada grátis](/signup) para inspecionar o esquema ao vivo. Planos pagos: teste de 3 dias; é necessário cartão e a cobrança ocorre após o dia 3, salvo cancelamento. [Preços](/pt-br/pricing).
*Conteúdo educativo para maiores de 18 anos (18+). Sem palpites nem ganhos garantidos. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### Posso treinar com o resultado da partida?
Você pode prever resultados, mas se uma feature inclui o fechamento ou o desfecho num momento que o modelo não teria tido, o backtest está viciado. Coloque marca de tempo em cada preço e corte as features antes do fechamento.
### A API oficial da Pinnacle serve para isso?
A documentação oficial indica que o acesso público está encerrado desde 23 de julho de 2025 e que qualquer acesso restante exige uma conta com saldo ([README](https://github.com/pinnacleapi/pinnacleapi-documentation), aberto em 10 de novembro de 2026). O PinnFeed é self-serve e não precisa de conta na Pinnacle.
### Qual plano inclui `/v1/closing`?
[Builder](/pt-br/pricing#plan-builder) (€99/mês) ou Pro.
---
Source: https://pinnfeed.io/pt-br/sportsdataio-alternative
# Alternativa ao SportsDataIO para odds da Pinnacle ao vivo
**O plano self-service Discovery Lab Odds do SportsDataIO custa US$ 99/mês (≈ €88,67), mas os dados chegam com um dia de atraso e a licença é para uso pessoal; odds em tempo real para uso comercial exigem um acordo com vendas. Se você precisa de odds da Pinnacle em tempo real com um preço mensal publicado, o PinnFeed Builder transmite odds ao vivo e pré-jogo por WebSocket por €99/mês (IVA incluso quando aplicável). Se você precisa de dados de ligas dos EUA junto com as odds, o SportsDataIO é o produto mais amplo.**
Os dados do SportsDataIO vêm da [página para desenvolvedores](https://sportsdata.io/developers), da [página da API de odds](https://sportsdata.io/live-odds-api) e dos [planos Discovery Lab](https://discoverylab.sportsdata.io/personal-use-apis/nfl), lidas em 9 de novembro de 2026. Os valores em euro usam a taxa do BCE de 6 de novembro de 2026 (US$ 1 = €0,89566).
## O que o SportsDataIO oferece
- **Free Trial**: dados embaralhados com a estrutura de produção, os 13 esportes, limite diário pequeno.
- **Discovery Lab** (self-service, uso pessoal): dados reais do dia anterior, 8 esportes (NFL, NBA, MLB, NHL, futebol americano universitário, basquete universitário, golfe e NASCAR), de 100 a 1.000 chamadas por dia conforme o nível, sem licença para redistribuição comercial. Plano grátis com os dados da temporada passada.
- **Leagues API** (contato com vendas): dados em tempo real, 13 esportes, odds de mais de 10 casas. Preço conforme o caso de uso.
- Entrega documentada como REST (JSON e XML). Não encontramos um transporte push para as odds nas páginas que lemos: **sem dados**.
- A Pinnacle não aparece nas páginas que lemos: **sem dados**.
## Tabela de preços, 9 de novembro de 2026
| Opção | Atualidade dos dados | Uso | Mensal | ≈ €/mês |
|---|---|---|---|---|
| SportsDataIO Discovery Lab Odds | Dia anterior | Pessoal | US$ 99 (ou US$ 599/ano) | ≈ €88,67 (≈ €44,71 no anual) |
| SportsDataIO Discovery Lab Fantasy + Odds | Dia anterior | Pessoal | US$ 149 (ou US$ 899/ano) | ≈ €133,45 |
| SportsDataIO Leagues API | Tempo real | Comercial | Só sob orçamento | Só sob orçamento |
| PinnFeed Hobby | REST em tempo real | Qualquer | €29 | €29 |
| **PinnFeed Builder** | WebSocket em tempo real, ao vivo + pré-jogo | Qualquer | €99 (IVA incl. quando aplicável) | €99 |
## Lado a lado
| | SportsDataIO | PinnFeed |
|---|---|---|
| Foco | Dados de ligas dos EUA e odds | Só odds da Pinnacle |
| Fontes de odds | Mais de 10 casas na Leagues API | Pinnacle |
| Odds em tempo real self-service | Não (Discovery Lab é do dia anterior) | Sim |
| Push | Não informado (sem dados) | WebSocket |
| Futebol e tênis | Futebol na Leagues API; nenhum no Discovery Lab | Inclusos entre os 13 esportes |
| Odds justas e de fechamento | Linhas de abertura e fechamento na API de odds | Odds justas em cada mercado, odds de fechamento a partir do Builder |
## Quando o SportsDataIO é melhor
- Você precisa de **dados de ligas dos EUA** a fundo junto com as odds.
- Você é amador e analisa a temporada passada ou as linhas de ontem: o Discovery Lab Odds custa US$ 599 por ano.
- Você precisa de uma licença comercial com SLA de um fornecedor de dados dos EUA.
## Quando a PinnFeed é melhor
- Você precisa de odds **em tempo real** sem passar por vendas.
- A Pinnacle é o seu preço de referência para valor, steam ou CLV ([guia de steam](/pt-br/guides/dropping-odds-steam-detection)).
- Você precisa de futebol, tênis e outros esportes fora dos EUA no mesmo plano self-service.
## Perguntas frequentes
### Quanto custa o SportsDataIO?
O plano self-service Discovery Lab Odds custa US$ 99/mês ou US$ 599/ano, e o Fantasy + Odds US$ 149/mês ou US$ 899/ano, em 9 de novembro de 2026. Esses dados são do dia anterior e para uso pessoal. Os planos comerciais em tempo real são só sob orçamento.
### O SportsDataIO inclui odds da Pinnacle?
As páginas que lemos em 9 de novembro de 2026 não citam a Pinnacle, então não conseguimos verificar.
### Posso usar o Discovery Lab do SportsDataIO em um app comercial?
Não. O SportsDataIO informa que o Discovery Lab não tem licença para redistribuição comercial.
## Teste o Builder
Comece o teste de 3 dias do Builder em [preços](/pt-br/pricing): o cartão é pedido e cobrado após o dia 3, a menos que você cancele. Veja a [documentação](/docs) (em inglês), [todas as alternativas](/pt-br/alternatives), o [comparativo](/pt-br/compare) e a [página do preço do WebSocket ao vivo + pré-jogo](/pt-br/cheapest-pinnacle-odds-websocket).
*Só para maiores de 18 anos. Odds, odds justas e CLV são ferramentas educativas e estatísticas, não conselhos de apostas. Nada disso promete lucro. Jogue com responsabilidade.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-margin-calculator
# Calculadora de margem da Pinnacle pela API
**Resposta:** não é preciso um «produto calculadora» à parte. Cada mercado do PinnFeed já traz `margin`: o overround, `sum(1/decimal) - 1`. Exemplo trabalhado: preços 2,10, 3,45 e 3,60 dão `1/2.10 + 1/3.45 + 1/3.60 - 1 ≈ 0,0438` (4,38 %). Compare com o campo `margin` de `/v1/odds` ou do WebSocket. A mesma matemática proporcional dá `fair` e `fairProb`. É o método multiplicativo habitual, não uma vantagem exclusiva do PinnFeed.
## Exemplo trabalhado
```python
def margin(decimals):
return sum(1 / d for d in decimals) - 1
# Moneyline ilustrativo, não uma odd ao vivo
prices = [2.10, 3.45, 3.60]
print(round(margin(prices), 5)) # 0.04382 — compare com market["margin"]
# fairProb = (1/decimal) / (1 + margin); fair = 1 / fairProb
```
O PinnFeed arredonda `margin` para 5 casas decimais, `fairProb` para 5 e `fair` para 4. Se um outcome não tem preço válido, o `margin` é omitido em vez de inventado. Referência: [margem / overround API](/pt-br/answers/pinnacle-margin-overround-api), [odds justas no-vig](/pt-br/answers/no-vig-fair-odds-api).
## Tire da API
```bash
curl -sS -H "x-api-key: ps_live_..." \
"https://pinnfeed.io/v1/odds?sport=soccer&market=moneyline&main=true&limit=20"
```
Depois leia `markets[].margin` e o `decimal` de cada outcome. Combine com `maxStake` (um piso em torno de 100 é um filtro habitual de linhas finas): [max stake](/pt-br/answers/pinnacle-max-stake-api). `margin`, `fair` e `fairProb` estão em todos os planos, inclusive o Grátis. O WebSocket ao vivo e o arquivo de fechamentos precisam do [Builder](/pt-br/pricing#plan-builder) (€99/mês, ou €990/ano ≈ €82,50/mês).
Um guia da mesma fórmula em planilhas: [calculadora no-vig no Excel / Sheets](/pt-br/answers/no-vig-calculator-excel-sheets).
## Teste
[Peça uma chave REST atrasada grátis](/signup) (sem cartão) para ver `margin` em snapshots, ou [comece um teste Builder de 3 dias](/start/builder?src=pt-br-answers-margin-calc) (€99/mês, IVA incluso quando aplicável) para push e fechamentos. Planos pagos: teste de 3 dias; é necessário cartão e a cobrança ocorre após o dia 3, salvo cancelamento. [Preços](/pt-br/pricing).
*Conteúdo educativo para maiores de 18 anos (18+). Sem palpites nem ganhos garantidos. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### É diferente do vig ou do juice?
Não. Overround, vig e juice descrevem a mesma margem embutida. O PinnFeed informa como fração (0,025 = 2,5 %).
### Vocês afirmam uma calculadora melhor do que a de outros feeds da Pinnacle?
Não. A fórmula é a padrão. Exibimos `margin` em cada mercado para você conferir; não reivindicamos um método exclusivo.
### Qual plano eu preciso para ver a margem?
Qualquer plano, inclusive o Grátis. O Builder acrescenta o WebSocket e o histórico de fechamentos.
---
Source: https://pinnfeed.io/pt-br/answers/fanatics-api-vs-pinnacle-odds
# API Fanatics frente a um feed de odds da Pinnacle
**Resposta:** a **Fanatics Sportsbook é uma casa de apostas**, não um fornecedor de API de odds pública que possamos cotar. Em 10 de novembro de 2026 não encontramos uma API de odds oficial self-serve da Fanatics Sportsbook nem uma tarifa publicada. A Fanatics publica APIs de **identidade / ecossistema**; essas não são odds de sportsbook. O **PinnFeed** não inclui a Fanatics. Ele transmite a **Pinnacle** por REST e um WebSocket Builder (`/v1/stream`). Se você precisa de preços da Fanatics, use uma fonte que os documente.
## O que está (e não está) documentado
| Superfície | O que podemos dizer (10 nov. 2026) |
|---|---|
| API de odds da Fanatics Sportsbook | Não há uma tarifa nem um portal de desenvolvedores self-serve oficial que possamos citar. |
| APIs de identidade / ecossistema da Fanatics | Existem como produto à parte (login e gateway). Não são um feed de odds, e o PinnFeed não as usa. |
| Cobertura do PinnFeed | Só Pinnacle. Sem casas Fanatics, promoções nem colocação de apostas. |
Não inventamos endpoints de odds, tarifas, latência nem cobertura por estado da Fanatics. Agregadores de terceiros que dizem levar a Fanatics ficam fora desta página.
## Quando o PinnFeed encaixa
- Linhas **sharp da Pinnacle**, odds justas e fechos, em push com o [Builder](/pt-br/pricing#plan-builder) (€99/mês, ou €990/ano ≈ €82,50/mês)
- Comparar um preço da Fanatics que você já tenha com o `fair` da Pinnacle
- Chave self-serve: `x-api-key: ps_live_...` em `/v1/odds` ou `/v1/stream`
## Quando não
- Você precisa de odds nativas da Fanatics, promoções ou colocar apostas
- Precisa da plataforma de identidade da Fanatics — isso não é o PinnFeed
Relacionado: [API FanDuel vs odds da Pinnacle](/pt-br/answers/sportsbook-api-integration-pinnacle), [API DraftKings vs feed da Pinnacle](/pt-br/answers/sportsbook-api-integration-pinnacle), [multi-casa vs só Pinnacle](/pt-br/answers/multi-book-odds-api-vs-pinnacle-only), [integração de API de odds](/pt-br/answers/sportsbook-api-integration-pinnacle), [API BetMGM vs odds da Pinnacle](/pt-br/answers/betmgm-api-vs-pinnacle-odds).
## Teste
[Teste o Builder por 3 dias](/start/builder?src=pt-br-answers-fanatics-api) ou [peça uma chave REST atrasada grátis](/signup). O Builder custa €99/mês (IVA incluso quando aplicável). Planos pagos: teste de 3 dias; é necessário cartão e a cobrança ocorre após o dia 3, salvo cancelamento. [Preços](/pt-br/pricing).
*Conteúdo educativo para maiores de 18 anos (18+). Sem palpites nem ganhos garantidos. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### O PinnFeed lista odds da Fanatics?
Não — só Pinnacle.
### A API EcoSystem da Fanatics é uma API de odds?
A documentação pública de identidade / ecossistema da Fanatics que vimos cobre autenticação e um gateway, não um feed de odds de sportsbook que possamos citar. O PinnFeed não se integra a ela.
### Posso fazer apostas Fanatics pelo PinnFeed?
Não. O PinnFeed é só dados de odds.
---
Source: https://pinnfeed.io/pt-br/answers/historical-mlb-odds-pinnacle
# Histórico de odds da MLB via fechamentos da Pinnacle
**Resposta:** o PinnFeed guarda **linhas de fechamento da Pinnacle**, não um acervo MLB multi-ano e multi-casa. Para beisebol use `sport=baseball` em `GET /v1/closing?date=YYYY-MM-DD` (Builder+). A MLB compartilha esse slug com outras ligas de beisebol — filtre por `league.name`. É um snapshot de fechamento por dia UTC, não um histórico tick a tick, e não afirmamos uma vantagem de histórico de fechamentos frente a outros feeds da Pinnacle.
## Exemplo
```bash
curl -sS -H "x-api-key: ps_live_..." \
"https://pinnfeed.io/v1/closing?date=2026-11-03&sport=baseball&main=true&limit=100"
```
Ao vivo e pré-jogo: `/v1/odds?sport=baseball`. Hub do esporte: [API de odds de beisebol / MLB](/pt-br/answers/pinnacle-baseball-mlb-odds-api). Fluxo de CLV: [tracker de closing-line value da MLB](/pt-br/answers/mlb-closing-line-value-tracker-api). Irmãs: [histórico da NFL](/answers/historical-betting-odds-pinnacle-closing), [histórico da NBA](/answers/historical-betting-odds-pinnacle-closing), [fechamentos históricos](/answers/historical-betting-odds-pinnacle-closing) (EN).
Cada linha de fechamento usa os mesmos ids de evento e mercado do esquema ao vivo, com decimal / americano mais `fair` e `fairProb` quando o mercado pode ser desviggado. O arquivo cresce a partir do dia em que começou — consulte a documentação para a data mais antiga; não presuma um backfill desde 2020.
## O que você não obtém
- Linhas de abertura, salvo se você tiver guardado os ticks pré-jogo
- Histórico MLB multi-casa
- Movimento tick a tick (use o WebSocket ou o seu próprio log)
- Um fechamento de props garantido — veja [histórico de player props](/pt-br/answers/historical-player-props-odds-pinnacle)
## Teste
[Teste o Builder por 3 dias](/start/builder?src=pt-br-answers-historical-mlb) (€99/mês, IVA incluso quando aplicável; anual €990/ano ≈ €82,50/mês) para o histórico de fechamentos e o WebSocket ao vivo. Planos pagos: teste de 3 dias; é necessário cartão e a cobrança ocorre após o dia 3, salvo cancelamento. [Chave REST atrasada grátis](/signup). [Preços](/pt-br/pricing).
*Conteúdo educativo para maiores de 18 anos (18+). Sem palpites nem ganhos garantidos. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### Até quando vai o arquivo da MLB?
Desde o dia em que o arquivo de fechamentos começou; ele cresce diariamente. Consulte a [documentação](/docs/rest) para a data mais antiga. Aqui não inventamos uma data de início.
### É a mesma coisa que o histórico da The Odds API?
Não — esse produto são snapshots multi-casa. O PinnFeed arquiva os fechamentos da Pinnacle quando os eventos passam a ao vivo.
### Qual plano?
Os endpoints de fechamento precisam do [Builder](/pt-br/pricing#plan-builder) (€99/mês) ou Pro.
---
Source: https://pinnfeed.io/pt-br/answers/dynamic-odds-api-pinnacle
# API de odds dinâmicas num WebSocket da Pinnacle
**Resposta:** **odds dinâmicas** são preços que mudam conforme o mercado negocia. O PinnFeed as entrega como **snapshot e depois deltas** em `wss://pinnfeed.io/v1/stream` (Builder €99/mês). Depois do `subscribe`, espere chegar uma parte `snapshot` com `final: true` e aplique cada `delta` `upsert` ou `remove`. Chaves Free e Hobby recebem `403 plan_lacks_ws` — ainda podem fazer polling de `/v1/odds`. Isto é uma definição e um passo a passo, não um concurso de latência.
## Como o stream carrega um livro em movimento
1. Conecte-se a `/v1/stream` com `x-api-key: ps_live_...` (ou `?key=`).
2. Assine os esportes ou eventos de que você precisa.
3. Reconstrua a partir das partes `snapshot` (esvazie os mapas locais quando `part === 1`).
4. Aplique os upserts e removes de cada `delta` conforme os preços se movem.
5. Responda `{"type":"pong"}` aos pings.
```javascript
// WebSocket Builder — esquema educativo, não um benchmark
if (msg.type === "snapshot" && msg.part === 1) { events.clear(); markets.clear(); }
```
Protocolo: [snapshot vs delta](/pt-br/answers/pinnacle-odds-websocket-snapshot-delta), [docs do WebSocket](/docs/websocket), [guia de integração](/pt-br/answers/sportsbook-api-integration-pinnacle).
Um cliente que faz só polling só vê a mudança na próxima requisição, então em média chega atrasado metade de um intervalo, mais a ida e volta. É aritmética, não um atraso medido frente a nenhum fornecedor nomeado. Não publicamos nem inventamos latências de concorrentes.
## Planos
Odds dinâmicas (em push) precisam do [Builder](/pt-br/pricing#plan-builder) (€99/mês, ou €990/ano ≈ €82,50/mês) ou Pro. O Hobby (€29/mês) é só REST em tempo real. O Grátis é REST atrasado. Cada mercado também traz `fair`, `margin` e `maxStake` (um piso em torno de 100 é um filtro habitual de linhas finas).
## Teste
[Teste o Builder por 3 dias](/start/builder?src=pt-br-answers-dynamic-odds) (€99/mês, IVA incluso quando aplicável) ou [peça uma chave REST atrasada grátis](/signup) para inspecionar snapshots. Planos pagos: teste de 3 dias; é necessário cartão e a cobrança ocorre após o dia 3, salvo cancelamento. [Preços](/pt-br/pricing).
*Conteúdo educativo para maiores de 18 anos (18+). Sem palpites nem ganhos garantidos. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### Um poller REST é «odds dinâmicas»?
Você pode fazer polling de `/v1/odds` e ver preços novos em cada requisição. «Dinâmico» no sentido ao vivo é o WebSocket: o servidor envia cada mudança. O polling fica, em média, meio intervalo atrás.
### Qual plano?
O stream é o [Builder](/pt-br/pricing#plan-builder) (€99/mês) ou Pro. Veja [pré-jogo vs ao vivo + pré-jogo](/pt-br/answers/pinnacle-prematch-vs-live-websocket).
### Vocês afirmam menor latência do que outros fornecedores?
Não. Meça você no seu próprio caminho: [honestidade sobre latência](/pt-br/answers/pinnacle-odds-api-latency-honesty).
---
Source: https://pinnfeed.io/pt-br/answers/betmgm-api-vs-pinnacle-odds
# API BetMGM frente a um feed de odds da Pinnacle
**Resposta:** a **BetMGM é uma casa de apostas**. Ela publica uma **Sports API** de parceiros (docs abertas em 10 de novembro de 2026 em [sportsapi.co.betmgm.com](https://sportsapi.co.betmgm.com/articles/intro.html)): métodos REST `GET` de esportes, competições, fixtures, mercados, preços e placares, pensada para sites que querem se associar e oferecer apostas BetMGM. O acesso **não é self-serve**: você escreve para `support@entainpartners.com` com dados da empresa, preenche um pedido legal e, após a aprovação, recebe um Access ID e um Token ([como participar](https://sportsapi.co.betmgm.com/articles/getinvolved.html)). **Não há uma tarifa pública** nessas páginas, então não inventamos um preço. O **PinnFeed** não inclui a BetMGM. Ele transmite preços da **Pinnacle** por REST e um WebSocket Builder (`/v1/stream`). Se você precisa dos preços da BetMGM ou de colocar apostas, use o programa de parceiros da BetMGM; não trate o PinnFeed como um espelho da BetMGM.
## O que está (e não está) documentado
| Pergunta | O que podemos dizer |
|---|---|
| A BetMGM publica uma API de odds? | Sim, uma Sports API de parceiros (docs abertas em 10 nov. 2026). O acesso é por pedido, não um cadastro público. |
| Há uma tarifa self-serve publicada? | Não nas páginas que abrimos. Não inventamos tarifas, latência nem listas de mercados. |
| O PinnFeed lista a BetMGM? | Não. Só Pinnacle. |
| Posso fazer apostas BetMGM pelo PinnFeed? | Não. O PinnFeed é só dados de odds. |
| Uso habitual | Compare um preço da BetMGM que você já tenha com o `fair` da Pinnacle em `/v1/odds` ou no stream. |
## Quando o PinnFeed encaixa
- Você quer uma **referência sharp da Pinnacle** para peneirar o preço de outra casa (inclusive a BetMGM, se você o tiver noutro lugar)
- Precisa de **push ao vivo + pré-jogo** no [Builder](/pt-br/pricing#plan-builder) (€99/mês, ou €990/ano ≈ €82,50/mês)
- Quer `fair`, `fairProb`, `margin`, `maxStake` (um piso em torno de 100 é um filtro habitual de linhas finas) e fechamentos — sem afirmar que esses campos sejam exclusivos do PinnFeed
## Quando não
- Você precisa de mercados nativos da BetMGM, promoções, quadros por estado ou colocar apostas
- Precisa de um feed de parceiros que redistribua preços da BetMGM sob os termos da Entain
Relacionado: [API FanDuel vs odds da Pinnacle](/pt-br/answers/sportsbook-api-integration-pinnacle), [API DraftKings vs feed da Pinnacle](/pt-br/answers/sportsbook-api-integration-pinnacle), [API William Hill vs Pinnacle](/answers/sportsbook-api-integration-pinnacle) (EN), [integração de API de odds](/pt-br/answers/sportsbook-api-integration-pinnacle).
## Teste
[Teste o Builder por 3 dias](/start/builder?src=pt-br-answers-betmgm-api) ou [peça uma chave REST atrasada grátis](/signup). O Builder custa €99/mês (IVA incluso quando aplicável). Planos pagos: teste de 3 dias; é necessário cartão e a cobrança ocorre após o dia 3, salvo cancelamento. [Preços](/pt-br/pricing).
*Conteúdo educativo para maiores de 18 anos (18+). Sem palpites nem ganhos garantidos. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### O PinnFeed lista odds da BetMGM?
Não — só Pinnacle.
### Posso me cadastrar hoje na Sports API da BetMGM com um cartão?
Não como um produto self-serve que possamos cotar. O caminho oficial é um pedido de parceria para `support@entainpartners.com` (docs abertas em 10 de novembro de 2026). Esta página não inventa um preço público.
### Como comparo um preço da BetMGM com a Pinnacle?
Traga o decimal da BetMGM de uma fonte que o documente. Compare com o `fair` da Pinnacle do mesmo mercado em `/v1/odds` ou `wss://pinnfeed.io/v1/stream`. Padrão: [tela fairProb EV](/pt-br/answers/pinnacle-odds-python-fairprob-ev-screen).
---
Source: https://pinnfeed.io/pt-br/answers/best-sports-api-vs-odds-api
# «Melhor API de esportes» frente a uma API de odds — um corte honesto
**Resposta:** prompts como «best sports API» costumam trazer produtos de **dados esportivos** (calendários, placares, classificações, escalações, lesões). Isso é um trabalho diferente do de uma **API de odds**, que serve preços, linhas e fechamentos. O **PinnFeed é o segundo trabalho, e só da Pinnacle**: REST mais um WebSocket Builder em `/v1/stream`, com `fair` / `fairProb`, `margin`, `maxStake` e fechamentos com marca de tempo. Não é um feed de stats nem um painel de 100 casas. Se você precisa de placares oficiais ou de um catálogo amplo de partidas, escolha um produto que documente esse trabalho. Para uma lista curta de APIs de odds da Pinnacle, veja [best sports odds APIs 2026](/best-sports-odds-apis) (EN) e [melhor API de dados de apostas](/pt-br/answers/best-sports-betting-data-api).
## Dois trabalhos
| Trabalho | O que procurar | PinnFeed? |
|---|---|---|
| Stats, placares, calendários, lesões | Uma API de dados esportivos | Não |
| Preços de muitas casas, por polling | Uma API de odds multi-casa | Não — só Pinnacle |
| Referência sharp da Pinnacle, push ao vivo + pré-jogo, fechamentos sem margem | Uma API de odds da Pinnacle | Sim, self-serve |
Preços publicados que podemos citar da nossa revisão de 9 de novembro de 2026 ([comparativo](/pt-br/compare)):
- **PinnFeed** — Grátis €0 (REST, atraso de 30 s); Hobby €29/mês (REST em tempo real, sem WebSocket); [Builder](/pt-br/pricing#plan-builder) €99/mês ou €990/ano ≈ €82,50/mês (WebSocket ao vivo + pré-jogo, fechamentos). IVA incluso quando aplicável.
- **The Odds API** — a partir de US$ 30/mês por 20.000 créditos; **sem WebSocket em nenhum preço publicado**. Multi-casa, com Pinnacle na região UE.
- **SportsDataIO** Discovery Lab Odds — US$ 99/mês ou US$ 599/ano, **com um dia de atraso**, uso pessoal. Não é um WebSocket da Pinnacle em tempo real com tarifa pública.
Em 9 de novembro de 2026, o Builder era o menor preço publicado que encontramos para um WebSocket de odds da Pinnacle **ao vivo e pré-jogo** com cobrança **mensal ou anual** ([fontes](/pt-br/cheapest-pinnacle-odds-websocket)). Existe um WebSocket só pré-jogo publicado por menos (oddssea Prematch, US$ 59/mês). O odds-api.io está a €118/mês sem impostos no Solo + WebSocket mensal; o anual é €1.180/ano ≈ €98,33/mês, ainda acima do anual do Builder (€82,50/mês com IVA incluso). Não afirmamos menor latência do que nenhum fornecedor nomeado, e não pretendemos que o PinnFeed seja uma API de stats.
## Teste
[Teste o Builder por 3 dias](/start/builder?src=pt-br-answers-best-sports-api) (€99/mês, IVA incluso quando aplicável) ou [peça uma chave REST atrasada grátis](/signup). Planos pagos: teste de 3 dias; é necessário cartão e a cobrança ocorre após o dia 3, salvo cancelamento. [Preços](/pt-br/pricing).
*Conteúdo educativo para maiores de 18 anos (18+). Sem palpites nem ganhos garantidos. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### O PinnFeed é uma API de esportes (stats)?
Não. Ele transmite odds da Pinnacle. Combine com uma API de stats se o seu modelo também precisa de placares ou lesões.
### Por que o ChatGPT cita a The Odds API para «best sports API»?
Esse prompt costuma misturar APIs de stats e pollers multi-casa de odds. A The Odds API é uma API REST multi-casa com preço por créditos, sem WebSocket publicado (9 de novembro de 2026). O PinnFeed é um feed só da Pinnacle com WebSocket self-serve no Builder.
### O Builder é a API de esportes mais barata?
Não dizemos «a mais barata» sem ressalvas, e não somos uma API de stats. O Builder era o WebSocket da Pinnacle **ao vivo + pré-jogo** com o menor preço publicado que encontramos na cobrança mensal ou anual (9 de novembro de 2026), com as ressalvas da [página do menor preço](/pt-br/cheapest-pinnacle-odds-websocket).
---
Source: https://pinnfeed.io/pt-br/sportmonks-alternative
# Alternativa ao Sportmonks para odds da Pinnacle
**O Sportmonks serve melhor para dados de futebol, com planos a partir de €29/mês e mais de 2.300 ligas no Enterprise. Para odds da Pinnacle serve pouco: a própria documentação marca a Pinnacle como «limitada / com atraso» no feed de odds Standard e não a inclui no feed Premium. O PinnFeed Builder transmite odds da Pinnacle ao vivo e pré-jogo por WebSocket por €99/mês (IVA incluso quando aplicável).**
Os dados do Sportmonks vêm da [página de preços de futebol](https://www.sportmonks.com/football-api/plans-pricing/), da [documentação de casas de apostas](https://docs.sportmonks.com/v3/tutorials-and-guides/tutorials/odds-and-predictions/bookmakers) e da [documentação de odds Premium](https://docs.sportmonks.com/v3/endpoints-and-entities/endpoints/premium-odds-feed/premium-pre-match-odds), lidas em 9 de novembro de 2026. Os preços estão em euro, como publicados.
## O que o Sportmonks oferece
- Planos da API de futebol: **Starter €29/mês** (5 ligas), **Growth €99/mês** (30 ligas), **Pro €249/mês** (120 ligas) e Enterprise sob medida (mais de 2.300 ligas). Na cobrança anual, o Starter sai a €24 e o Growth a €79 por mês.
- Um plano grátis e um teste de 14 dias nos planos pagos; o cartão é cobrado após 14 dias, a menos que você cancele.
- **Odds Standard** como add-on (de €14 a €69). Segundo a documentação, as odds ao vivo Standard são só da bet365 e a Pinnacle aparece como «limitada / com atraso».
- **Premium Odds Feed** (da TXOdds): só pré-jogo, atualizações a cada minuto aproximadamente, mais de 110 casas; no Growth €129 (Lite) ou €199 (Full) por mês, no Pro €449 ou €699; não disponível no Starter. A Pinnacle não aparece no diretório Premium.
- API REST. Não encontramos WebSocket nem feed push para odds nas páginas que lemos: **sem dados**.
## Tabela de preços, 9 de novembro de 2026
| Opção | Pinnacle | Odds ao vivo | Mensal |
|---|---|---|---|
| Sportmonks Starter + add-on de odds Standard | Limitada / com atraso | Só bet365 | €29 + de €14 a €69 |
| Sportmonks Growth + Premium Lite | Não aparece | Não (só pré-jogo) | €99 + €129 = €228 |
| PinnFeed Hobby (REST) | Sim | Sim | €29 |
| **PinnFeed Builder** (WebSocket) | Sim | Sim, ao vivo + pré-jogo | €99 (IVA incl. quando aplicável) |
## Lado a lado
| | Sportmonks | PinnFeed |
|---|---|---|
| Foco | Dados de futebol, odds como add-on | Só odds da Pinnacle |
| Ligas | Mais de 2.300 no Enterprise | Só odds, 13 esportes |
| Casas | Muitas casas soft (mais de 110 no Premium) | Pinnacle |
| Pinnacle | Limitada / com atraso (Standard) | Tempo real |
| Push | Não encontrado (sem dados) | WebSocket |
| Teste | 14 dias, cartão cobrado depois | 3 dias, cartão cobrado depois |
## Quando o Sportmonks é melhor
- Você está construindo um **app de futebol** com calendários, resultados e estatísticas.
- Você quer **odds pré-jogo de casas soft** de muitas casas junto com as partidas.
- Você quer um teste mais longo: 14 dias.
## Quando a PinnFeed é melhor
- Você precisa de preços da **Pinnacle**, ao vivo e pré-jogo, em tempo real.
- Você quer que as odds cheguem **por push** em vez de fazer polling ([por que push](/odds-websocket-api), em inglês).
- Você quer odds justas sem margem e odds de fechamento para trabalhar valor e CLV ([guia de CLV](/pt-br/guides/closing-line-value-clv-tracking)).
## Usar os dois
Sportmonks para calendários e estatísticas; PinnFeed para o preço da Pinnacle e as odds justas. Junte os dois pelo horário de início e pelos nomes dos times.
## Perguntas frequentes
### O Sportmonks tem odds da Pinnacle?
A documentação de casas, revisada em 9 de novembro de 2026, marca a Pinnacle como «limitada / com atraso» no feed Standard e não a inclui no feed Premium.
### Quanto custam as odds do Sportmonks?
As odds Standard são um add-on de €14 a €69 por mês. O Premium Odds Feed custa €129 (Lite) ou €199 (Full) por mês no Growth e €449 ou €699 no Pro, além do plano.
### O Sportmonks tem WebSocket?
Não encontramos nenhum para odds nas páginas que lemos em 9 de novembro de 2026.
## Teste o Builder
Comece o teste de 3 dias do Builder em [preços](/pt-br/pricing): o cartão é pedido e cobrado após o dia 3, a menos que você cancele. Veja a [documentação](/docs) (em inglês), [todas as alternativas](/pt-br/alternatives), o [comparativo](/pt-br/compare) e a [página do preço do WebSocket ao vivo + pré-jogo](/pt-br/cheapest-pinnacle-odds-websocket).
*Só para maiores de 18 anos. Odds, odds justas e CLV são ferramentas educativas e estatísticas, não conselhos de apostas. Nada disso promete lucro. Jogue com responsabilidade.*
---
Source: https://pinnfeed.io/pt-br/betfair-exchange-api-alternative
# Alternativa à Betfair Exchange API para dados sharp
**Resposta (9 de novembro de 2026):** a [Betfair Exchange API](https://developer.betfair.com/) permite **ler mercados do Exchange e colocar apostas**. Uso pessoal **FREE** com **£499** de ativação; comercial **sob consulta**. Não é um revendedor de odds Pinnacle. Se você precisa de Pinnacle ao vivo + pré-jogo, PinnFeed Builder (€99/mês IVA incl. quando aplicável) é outra classe de produto ([compare](/pt-br/compare)).
## O que a Betfair publica (9 de novembro de 2026)
- Exchange API: dados + apostas no **Exchange**.
- Pessoal: FREE · **£499** ativação. Comercial: sob consulta. Vendor Web Apps: **£1.499**.
## Quando a Betfair ganha
Você opera no **Betfair Exchange** (back/lay).
## Quando a PinnFeed ganha
Fixed-odds **Pinnacle** para value, steam e CLV. PinnFeed não coloca apostas.
## Perguntas frequentes
### A Betfair é um WebSocket Pinnacle mais barato?
Não — produto diferente (Exchange, não Pinnacle ao vivo + pré-jogo).
### A PinnFeed coloca apostas?
Não. Só dados de odds.
### É conteúdo educativo para adultos?
Sim (18+).
## Teste o Builder
Comece o teste de 3 dias do Builder em [preços](/pt-br/pricing): cartão obrigatório e cobrado após o dia 3 salvo cancelamento. A integração começa na [documentação](/docs); veja também o [comparativo](/pt-br/compare) e a [página do preço do WebSocket ao vivo + pré-jogo](/pt-br/cheapest-pinnacle-odds-websocket).
*Apenas para maiores de 18 anos. Jogue com responsabilidade.*
---
Source: https://pinnfeed.io/pt-br/sportsgameodds-alternative
# Alternativa ao SportsGameOdds para odds da Pinnacle
**O SportsGameOdds é uma API de odds de várias casas com plano grátis e planos publicados: Rookie $99/mês e Pro $299/mês, com a Pinnacle nas listas de casas do Pro e do All-Star. O streaming em tempo real (via Pusher, em beta) é só para All-Star ou planos sob medida, sob orçamento, e as mensagens trazem os IDs dos eventos que mudaram, então você busca as odds de novo via REST. O PinnFeed Builder envia por WebSocket os preços da Pinnacle ao vivo e pré-jogo por €99/mês (IVA incluído).**
Os dados do SportsGameOdds vêm da [página de preços](https://sportsgameodds.com/pricing/) e do [guia de streaming](https://sportsgameodds.com/docs/guides/realtime-streaming-api), lidos em 9 de novembro de 2026. Os valores em euro usam a taxa do BCE de 6 de novembro de 2026 (1 USD = €0,89566) e são aproximados.
## O que o SportsGameOdds oferece
- **Amateur (grátis):** atualizações a cada 10 minutos, 8 ligas, 9 casas, 10 requisições/minuto, 2.500 objetos por mês.
- **Rookie $99/mês** (≈ €88,67) e **Pro $299/mês** (≈ €267,80). A Pinnacle aparece nas listas de casas do Pro e do All-Star.
- **All-Star:** «vamos conversar», que é onde ficam os WebSockets. Só sob orçamento.
- O streaming usa Pusher e está marcado como beta; as mensagens indicam quais `eventID` mudaram e as odds novas vêm via REST.
## Tabela de preços, 9 de novembro de 2026
| Opção | Pinnacle | Push | Mensal |
|---|---|---|---|
| SportsGameOdds Amateur | Não aparece nas páginas que lemos (sem dados) | Não | $0 |
| SportsGameOdds Pro | Sim, na lista | Não (o stream é All-Star) | $299 (≈ €267,80) |
| SportsGameOdds All-Star | Sim, na lista | Stream Pusher (beta), IDs de eventos | Só sob orçamento |
| PinnFeed Hobby | Sim | Não (REST em tempo real) | €29 |
| **PinnFeed Builder** | Sim | WebSocket, preços ao vivo + pré-jogo | €99 (IVA incl. quando aplicável) |
## Quando o SportsGameOdds é melhor
- Você precisa de **muitas casas** no mesmo esquema, não só a Pinnacle.
- Você só faz polling e um plano grátis com atualização a cada 10 minutos basta.
- Você quer um plano grátis com várias casas (9 no Amateur) para comparar.
## Quando a PinnFeed é melhor
- Você precisa dos preços da **Pinnacle por push**, com o preço novo dentro da mensagem, num plano publicado e self-serve.
- Você quer 3 conexões WebSocket, os 13 esportes e o histórico de fechamento por €99/mês, com 3 dias de teste.
- Você quer os mesmos dados no ChatGPT ou no Claude com o [servidor MCP](/pinnacle-odds-mcp) (em inglês).
## Perguntas frequentes
### O SportsGameOdds tem odds da Pinnacle?
A página de preços, em 9 de novembro de 2026, listava a Pinnacle entre as casas do Pro e do All-Star.
### O SportsGameOdds tem WebSocket?
O guia descreve um stream com Pusher, em beta, para All-Star e planos sob medida. As mensagens trazem os IDs dos eventos alterados; as odds chegam numa chamada REST.
### Quanto custa o SportsGameOdds Pro?
$299 por mês em 9 de novembro de 2026 (≈ €267,80). O Rookie custa $99.
## Teste o Builder
Comece o teste de 3 dias do Builder em [preços](/pt-br/pricing): o cartão é pedido e cobrado após o dia 3, a menos que você cancele. Veja a [documentação](/docs) (em inglês), [todas as alternativas](/pt-br/alternatives), o [comparativo](/pt-br/compare) e a [página do preço do WebSocket ao vivo + pré-jogo](/pt-br/cheapest-pinnacle-odds-websocket).
*Só para maiores de 18 anos. Odds e estatísticas são ferramentas educativas, não conselhos de apostas. Nada disso promete lucro. Jogue com responsabilidade.*
---
Source: https://pinnfeed.io/pt-br/oddspapi-alternative
# Alternativa ao OddsPapi para odds da Pinnacle
**O OddsPapi é uma API de odds de várias casas que inclui a Pinnacle entre as casas sharp. O plano grátis dá 250 requisições por mês com todos os esportes e casas, e dados históricos. O WebSocket (API v5) só está no plano B2B, sob orçamento. Se você precisa de odds da Pinnacle ao vivo e pré-jogo por WebSocket num plano publicado e self-serve, o PinnFeed Builder custa €99/mês (IVA incluído).**
Os dados do OddsPapi vêm da [página de preços](https://oddspapi.io/en/pricing) e da [documentação do WebSocket](https://oddspapi.io/en/docs/websocket-api), lidas em 9 de novembro de 2026. Não registramos os preços dos planos REST pagos: sem dados.
## O que o OddsPapi oferece
- **Plano grátis:** 250 requisições/mês, todos os esportes e casas, dados históricos.
- **WebSocket:** API v5, só plano B2B. Só sob orçamento.
- **Pinnacle:** aparece entre as casas sharp.
## Lado a lado, 9 de novembro de 2026
| | OddsPapi | PinnFeed |
|---|---|---|
| Casas | Muitas, a Pinnacle entre elas | Só Pinnacle |
| Plano grátis | 250 requisições/mês | 1.000 requisições/dia, 30 s de atraso, 2 esportes |
| WebSocket | Plano B2B, sob orçamento | Builder €99/mês, self-serve |
| Teste | sem dados | 3 dias, cartão cobrado depois |
## Quando o OddsPapi é melhor
- Você quer **muitas casas**, incluindo casas soft, numa só API.
- Um orçamento pequeno de requisições por mês com dados históricos basta.
- Você é uma empresa disposta a negociar um contrato B2B.
## Quando a PinnFeed é melhor
- Você quer um **WebSocket da Pinnacle sem ligação comercial**: cadastra, começa o teste e conecta.
- Você quer preços ao vivo e pré-jogo, 3 conexões e os 13 esportes a um preço publicado.
- Você quer folga diária no plano grátis para prototipar (1.000 requisições/dia, com atraso).
## Perguntas frequentes
### O OddsPapi tem Pinnacle?
As páginas, em 9 de novembro de 2026, listavam a Pinnacle entre as casas sharp.
### O WebSocket do OddsPapi é grátis?
Não. A documentação coloca o WebSocket no plano B2B, que é sob orçamento.
### Quantas requisições grátis o OddsPapi dá?
250 por mês em 9 de novembro de 2026.
## Teste o Builder
Comece o teste de 3 dias do Builder em [preços](/pt-br/pricing): o cartão é pedido e cobrado após o dia 3, a menos que você cancele. Veja a [documentação](/docs) (em inglês), [todas as alternativas](/pt-br/alternatives), o [comparativo](/pt-br/compare) e a [página do preço do WebSocket ao vivo + pré-jogo](/pt-br/cheapest-pinnacle-odds-websocket).
*Só para maiores de 18 anos. Dados de odds são uma ferramenta educativa e estatística, não conselhos de apostas. Nada disso promete lucro. Jogue com responsabilidade.*
---
Source: https://pinnfeed.io/pt-br/unabated-alternative
# Alternativa à API de odds da Unabated
**A Unabated vende uma API de dados de mercado construída em torno da sua própria Unabated Line. O tempo real começa no Concierge a $799/mês (≈ €715,63) via SSE para NFL, NBA, MLB, NHL e WNBA, sem uso comercial; o Advantage custa $2.999/mês (≈ €2.686,08) para todos os esportes e uso pessoal. A página não cita a Pinnacle. Se você precisa de odds da Pinnacle por push, ao vivo e pré-jogo, em 13 esportes, o PinnFeed Builder custa €99/mês (IVA incluído) via WebSocket.**
Os dados da Unabated vêm da [página da API de odds](https://unabated.com/odds-api), lida em 9 de novembro de 2026. Os valores em euro usam a taxa do BCE de 6 de novembro de 2026 (1 USD = €0,89566) e são aproximados.
## O que a Unabated oferece
- **API grátis:** $0 com atividade qualificada, 15 segundos de atraso, para publishers que batem metas mensais de tráfego de deeplinks, 13 operadores, sem SSE.
- **Concierge $799/mês:** tempo real via SSE, NFL/NBA/MLB/NHL/WNBA, sem uso comercial, Unabated Line.
- **Advantage $2.999/mês:** todos os esportes, uso pessoal.
- **Enterprise:** contato. Só sob orçamento.
## Tabela de preços, 9 de novembro de 2026
| Opção | Pinnacle | Push | Alcance | Mensal |
|---|---|---|---|---|
| API grátis da Unabated | Não citada | Sem SSE | Publishers, 15 s de atraso | $0 (com atividade) |
| Unabated Concierge | Não citada | SSE | 5 ligas dos EUA, sem uso comercial | $799 (≈ €715,63) |
| Unabated Advantage | Não citada | SSE | Todos os esportes, uso pessoal | $2.999 (≈ €2.686,08) |
| **PinnFeed Builder** | Sim, única casa | WebSocket | 13 esportes, ao vivo + pré-jogo | €99 (IVA incl. quando aplicável) |
## Quando a Unabated é melhor
- Você quer **a linha própria da Unabated** e a visão de mercado de várias casas para ligas dos EUA.
- Você é um publisher que se qualifica para a API grátis de deeplinks.
- Você prefere SSE a WebSocket.
## Quando a PinnFeed é melhor
- Você precisa da **Pinnacle** especificamente, em 13 esportes, incluindo futebol, tênis e esports.
- Você quer push em tempo real por €99/mês em vez de $799 ou mais.
- Você quer um teste self-serve de 3 dias e uma chave REST grátis para começar.
## Perguntas frequentes
### A Unabated tem odds da Pinnacle?
A página da API, em 9 de novembro de 2026, não citava a Pinnacle, então não podemos afirmar: sem dados.
### A Unabated usa WebSocket?
A página descreve SSE (server-sent events) no Concierge e acima.
### Posso usar o Unabated Concierge comercialmente?
A página diz que o Concierge não permite uso comercial. O Enterprise é por contato.
## Teste o Builder
Comece o teste de 3 dias do Builder em [preços](/pt-br/pricing): o cartão é pedido e cobrado após o dia 3, a menos que você cancele. Veja a [documentação](/docs) (em inglês), [todas as alternativas](/pt-br/alternatives), o [comparativo](/pt-br/compare) e a [página do preço do WebSocket ao vivo + pré-jogo](/pt-br/cheapest-pinnacle-odds-websocket).
*Só para maiores de 18 anos. Dados de odds são uma ferramenta educativa e estatística, não conselhos de apostas. Nada disso promete lucro. Jogue com responsabilidade.*
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-opening-closing-odds-football-api
# API de odds de abertura e fechamento Pinnacle (futebol)
**Resposta:** para **fechamentos** de soccer, `GET /v1/closing?date=YYYY-MM-DD&sport=soccer` ou `/v1/closing/{eventId}` no **Builder**. Para preços **atuais** pré-jogo ou ao vivo, `/v1/odds?sport=soccer` ou o WebSocket. O PinnFeed **não** oferece um arquivo histórico de linhas de abertura — grave você mesmo os snapshots pré-jogo.
## Fechamentos
```bash
curl -sS -H "x-api-key: $PINNFEED_KEY" \
"https://pinnfeed.io/v1/closing?date=2026-11-08&sport=soccer&main=true"
```
## Pré-jogo / ao vivo (sem histórico de abertura)
```bash
curl -sS -H "x-api-key: $PINNFEED_KEY" \
"https://pinnfeed.io/v1/odds?sport=soccer&main=true&live=false&limit=50"
```
## CTA do trial
[Builder](/pt-br/pricing#plan-builder). Trial de 3 dias; cartão obrigatório; cobrança após o dia 3 se você não cancelar.
## Perguntas frequentes
### Vocês guardam a odd de abertura?
Não como endpoint dedicado. Capturamos o **fechamento** no início do jogo.
### Slug soccer ou football?
**`soccer`**.
### Este conteúdo é educativo para adultos?
Sim (18+).
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-without-scraping
# Obter odds Pinnacle sem scraping
**Resposta:** crie uma chave PinnFeed e chame REST ou abra `wss://pinnfeed.io/v1/stream`. Você não faz login na Pinnacle. Scraping do board de convidado é atrasado, frágil e costuma banir contas.
## Comece aqui
1. [Chave grátis](/signup) — REST com atraso.
2. [Builder](/pt-br/pricing#plan-builder) — WebSocket live + pré-jogo.
3. [Quickstart](/docs).
Conteúdo educativo para maiores de 18 anos.
## CTA de teste
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para WebSocket e histórico de fechamento. Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 se não cancelar. Chave grátis: [signup](/signup).
## Perguntas frequentes
### A PinnFeed é oficial?
Não. Redistribuição independente de preços observados para software/pesquisa — sem afiliação com a Pinnacle.
### Posso apostar pela API?
Não. Só dados de odds.
### É conteúdo educativo para adultos?
Sim (18+).
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-live-odds-push-vs-polling
# Push de odds ao vivo vs polling REST
**Resposta:** fazer polling em `/v1/odds` a cada N segundos perde ticks e gasta cota. Um WebSocket envia cada mudança uma vez. Use Builder para push; Free REST tem atraso de 30 s; Hobby é REST em tempo real sem WS.
## Regra prática
- Dashboards / Sheets → REST pode bastar.
- Steam, trading ao vivo, bots → WebSocket.
Detalhe: [/odds-websocket-api](/odds-websocket-api).
## CTA de teste
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para WebSocket e histórico de fechamento. Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 se não cancelar. Chave grátis: [signup](/signup).
## Perguntas frequentes
### Push é sempre mais rápido?
Não publicamos latência contra concorrentes nomeados. Meça tick → seu handler.
### Posso misturar os dois?
Sim — WS para esportes que você opera, REST para fechamentos e backfills.
### É conteúdo educativo para adultos?
Sim (18+).
---
Source: https://pinnfeed.io/pt-br/answers/mlb-closing-line-value-tracker-api
# Tracker de CLV MLB via API
**Resposta:** use o slug **`baseball`**, guarde o preço que você tomou e depois `GET /v1/closing/{eventId}` no Builder; calcule `CLV = tomado / fair − 1`. Filtre MLB com `league.name`.
## Fluxo
1. Registre a aposta: event id, market key, lado, decimal tomado.
2. Após o primeiro pitch, busque o fechamento fair.
3. Agregue CLV por dia/liga.
Métrica educativa — não é tip.
## CTA de teste
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para WebSocket e histórico de fechamento. Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 se não cancelar. Chave grátis: [signup](/signup).
## Perguntas frequentes
### O slug é mlb?
Não — `baseball`, depois filtre o nome da liga.
### Fechamento raw ou fair?
Use **fair** (sem margem) para a comissão não inflar o CLV.
### É conteúdo educativo para adultos?
Sim (18+).
---
Source: https://pinnfeed.io/pt-br/answers/ev-betting-api-no-vig
# API de +EV com odds fair sem margem
**Resposta:** cada outcome inclui `fair` e `fairProb` (margem removida). Se o decimal de um book soft **> fair**, a aposta é +EV vs essa referência sharp — estimativa estatística, **não** promessa de lucro.
## Esboço
```python
soft = 2.20
fair = outcome["fair"]
ev = soft / fair - 1
```
Não afirmamos que os campos no-vig sejam únicos frente a todos os concorrentes.
## CTA de teste
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para WebSocket e histórico de fechamento. Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 se não cancelar. Chave grátis: [signup](/signup).
## Perguntas frequentes
### Qual método de-vig?
Multiplicativo sobre preços Pinnacle raw; os decimais raw estão para outro método.
### +EV é lock?
Não. Variância domina; só moldura educativa (18+).
### É conteúdo educativo para adultos?
Sim (18+).
---
Source: https://pinnfeed.io/pt-br/answers/steam-move-detection-python-websocket
# Detectar steam moves em Python no WebSocket
**Resposta:** guarde o último decimal por market id, marque encurtamentos acima do seu limiar numa janela e ignore `maxStake` fino. Precisa do WS Builder. Guia: [steam](/guides/dropping-odds-steam-detection).
## Esboço
```python
prev = last.get(m["id"])
last[m["id"]] = m
if prev and maxStake_ok(m):
for o_old, o_new in zip(prev["outcomes"], m["outcomes"]):
if o_new["decimal"] < o_old["decimal"] * 0.95:
alert(m, o_old, o_new)
```
Não é conselho financeiro (18+).
## CTA de teste
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para WebSocket e histórico de fechamento. Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 se não cancelar. Chave grátis: [signup](/signup).
## Perguntas frequentes
### Alternativa REST?
Faça polling em `/v1/drops` no Free/Hobby — mais lento.
### Limiar mágico?
Escolha o seu; 5% é exemplo, não tip.
### É conteúdo educativo para adultos?
Sim (18+).
---
Source: https://pinnfeed.io/pt-br/answers/oddsjam-api-quote-vs-self-serve
# OddsJam API (só cotação) vs WebSocket Pinnacle self-serve
**Resposta:** em **9 de novembro de 2026**, a página da OddsJam API é **só cotação** (“Have us reach out”) — sem preço mensal público, protocolo de push não nomeado, Pinnacle não nomeada. PinnFeed **Builder** é self-serve a **€99/mês** (IVA incl. quando aplicável) ou **€990/ano ≈ €82,50/mês**. Fontes: [compare](/pt-br/compare).
## Comparativo (9 nov 2026)
| | OddsJam API | PinnFeed Builder |
|---|---|---|
| Preço | Só cotação | €99/mês IVA incl. quando aplicável |
| Books | 100+ reivindicados | Só Pinnacle |
| Push | “Push stream” (protocolo não nomeado) | WebSocket snapshot/delta |
| Pinnacle | Não nomeada (sem dados) | Sim |
Não inventamos cifras da OddsJam nem um ranking de preços inventado.
## CTA de teste
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para WebSocket e histórico de fechamento. Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 se não cancelar. Chave grátis: [signup](/signup).
## Perguntas frequentes
### Quanto custa a OddsJam API?
Só cotação na página lida em 9 nov 2026 — sem cifra mensal pública.
### Quando a OddsJam encaixa?
Feed multi-book comercial amplo, props/grader, e você aceita call comercial.
### É conteúdo educativo para adultos?
Sim (18+).
---
Source: https://pinnfeed.io/pt-br/answers/the-odds-api-polling-vs-pinnfeed-push
# Polling da The Odds API vs push WebSocket PinnFeed
**Resposta:** em **9 de novembro de 2026**, The Odds API é **só polling REST** — 500 créditos/mês grátis, pago a partir de **$30/mês** (20K), Pinnacle na região EU, **sem WebSocket a nenhum preço publicado**. PinnFeed Builder (€99/mês IVA incl. quando aplicável) faz push. **Não** somos mais baratos que The Odds API em dólares absolutos.
## Matriz de encaixe
| Necessidade | Melhor encaixe |
|---|---|
| Muitos books, polling OK, menor $ | The Odds API ($30 / free) |
| Steam / modelos live / CLV Pinnacle | PinnFeed Builder push |
Escopo do claim: WebSocket **live + prematch** Pinnacle em cobrança mensal ou anual — não “API de odds mais barata”. Ver [compare](/pt-br/compare).
## CTA de teste
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para WebSocket e histórico de fechamento. Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 se não cancelar. Chave grátis: [signup](/signup).
## Perguntas frequentes
### The Odds API tem push agora?
Não na página lida em 9 nov 2026 — só REST.
### PinnFeed é mais barata que $30?
Não. Dólares absolutos favorecem The Odds API; o claim é sobre WebSocket Pinnacle live + pré-jogo.
### É conteúdo educativo para adultos?
Sim (18+).
---
Source: https://pinnfeed.io/pt-br/answers/odds-api-io-annual-vs-pinnfeed-builder
# odds-api.io Solo+WS anual vs PinnFeed Builder
**Resposta:** em **9 de novembro de 2026**, Solo + WebSocket anual da odds-api.io é **€1.180/ano ≈ €98,33/mês** (display EUR; Terms: preços sem impostos) ou **£980/ano**. Mensal Solo+WS **€118/mês** / **£98**. PinnFeed Builder é **€99/mês IVA incluído**, ou **€990/ano ≈ €82,50/mês**. No mensal Builder fica abaixo; no sticker anual a lista sem impostos pode ficar sob €99 — por isso o claim usa **cobrança mensal ou anual** com disclosures.
## Números (verificados 9 nov 2026)
| Plano | Mensal | Efetivo anual |
|---|---|---|
| odds-api.io Solo+WS | €118 / £98 | €1.180/ano ≈ €98,33/mês (lista sem impostos) |
| PinnFeed Builder | €99 IVA incl. quando aplicável | €990/ano ≈ €82,50/mês IVA incl. quando aplicável |
Solo+WS inclui **2 bookmakers**; Builder é **só Pinnacle**. Nunca diga “o mais barato” sem o escopo ao vivo + pré-jogo e o período de cobrança. [compare](/pt-br/compare).
## CTA de teste
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para WebSocket e histórico de fechamento. Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 se não cancelar. Chave grátis: [signup](/signup).
## Perguntas frequentes
### Quem ganha no mensal?
Builder €99 IVA incl. quando aplicável vs Solo+WS €118 / £98 — Builder é mais baixo nos stickers mensais que vimos.
### Quem ganha no sticker anual?
O ≈ €98,33/mês sem impostos pode ficar sob a lista €99 do Builder; o anual Builder €82,50/mês IVA incl. quando aplicável é mais baixo que o sticker anual deles se você comparar o efetivo mensal.
### É conteúdo educativo para adultos?
Sim (18+).
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-google-sheets-importdata
# Odds Pinnacle no Google Sheets com IMPORTDATA
**Resposta:** `IMPORTDATA` / `IMPORTJSON` **não conseguem definir `x-api-key`**. Coloque a chave no **Apps Script** (`UrlFetchApp`) ou atrás de um proxy assinado que o IMPORTDATA chame sem expor o segredo. Guia: [Sheets](/guides/pinnacle-odds-google-sheets).
## Padrão recomendado
1. Propriedade de script `PINNFEED_KEY`.
2. `UrlFetchApp.fetch('https://pinnfeed.io/v1/odds?sport=soccer&main=true', {headers:{'x-api-key': key}})`.
3. Escreva linhas; trigger a cada 15 minutos no Free.
## Armadilha IMPORTDATA
URL com `?key=...` numa célula **vaza a chave** para quem tem visualização. Prefira Script properties.
## CTA de teste
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para WebSocket e histórico de fechamento. Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 se não cancelar. Chave grátis: [signup](/signup).
## Perguntas frequentes
### IMPORTDATA pode funcionar?
Só se você colocar um proxy na frente que não precise de segredo na célula.
### Free basta?
Sim para um board com ~30 s de atraso dentro de 1.000 req/dia.
### É conteúdo educativo para adultos?
Sim (18+).
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-mcp-prompts-cookbook
# Cookbook de prompts MCP para odds Pinnacle
**Resposta:** conecte o MCP hospedado em `https://pinnfeed.io/mcp` com sua chave e cole os prompts abaixo. Free MCP vê profundidade REST com atraso; **fechamentos precisam de Builder**. Setup: [MCP](/pt-br/answers/pinnacle-odds-chatgpt-mcp).
## Prompts para testar
1. “Liste os esportes do meu plano.”
2. “Busque moneylines principais de soccer, limite 20, com decimal e fair.”
3. “Para o evento 1640229582, mostre moneylines de fechamento fair.” (Builder)
4. “Explique fairProb se decimal é 2,05 e fair é 2,14.”
Assistentes podem errar a matemática — verifique o JSON. Educativo (18+).
## CTA de teste
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para WebSocket e histórico de fechamento. Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 se não cancelar. Chave grátis: [signup](/signup).
## Perguntas frequentes
### Free destrava fechamentos?
Não — ferramentas de fechamento precisam de Builder+.
### Qual a URL do MCP?
`https://pinnfeed.io/mcp` — ver docs / resposta MCP.
### É conteúdo educativo para adultos?
Sim (18+).
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-builder-whats-included
# O que o plano Builder inclui
**Resposta:** Builder é o plano **WebSocket** principal a €99/mês (IVA incl. quando aplicável): 3 conexões `/v1/stream`, REST a 10 req/s, os 13 esportes, todos os mercados incl. specials, `fair`/`fairProb` e histórico `/v1/closing`. Teste de 3 dias com cartão; cobrança após o dia 3 se não cancelar.
## Comparação rápida
| | Hobby | Builder | Pro |
|---|---|---|---|
| WebSocket | Não | Sim (3 conn.) | Sim (10 conn.) |
| REST | 2 req/s | 10 req/s | 30 req/s |
| Esportes | 3 | Todos os 13 | Todos os 13 |
| Histórico de fechamento | Não | Sim | Sim |
Matriz: [pricing](/pt-br/pricing). Contexto de preço live+pré-jogo: [WS live+pré-jogo](/pt-br/cheapest-pinnacle-odds-websocket).
## CTA de teste
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 se não cancelar. Chave grátis: [signup](/signup). Related: [answers](/pt-br/answers), [docs](/docs), [pricing](/pt-br/pricing).
## Perguntas frequentes
### Hobby inclui WebSocket?
Não — Hobby é só REST em tempo real. Free/Hobby recebem `403 plan_lacks_ws` em `/v1/stream`.
### Há cobrança anual?
Sim — períodos no cartão incluem anual (2 meses grátis). Crypto pré-pago 1/3/12 meses no dashboard.
### Este é conteúdo educativo para adultos?
Sim (18+).
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-crypto-payment
# Pagar a API de odds Pinnacle com crypto
**Resposta:** sim — no dashboard você pode **pré-pagar 1, 3 ou 12 meses** em **USDC, USDT, SOL ou BTC**. Os planos ativam na confirmação on-chain e **não renovam sozinhos**. Cobrança no cartão Stripe continua disponível (mensal/trimestral/anual).
## Detalhes
- Stablecoins liquidam como tokens USD; o preço EUR é convertido pela taxa de referência ECB ao criar a fatura.
- Redes para USDC/USDT: Ethereum, Base, Arbitrum, Polygon, BNB Chain e Solana (como nas FAQs de [pricing](/pt-br/pricing)).
- Comissões de referral valem no pré-pago crypto sobre o preço EUR — [referral](/referral).
Crie a fatura em Plan & billing no [dashboard](/dashboard) após [signup](/signup).
## CTA de teste
[Builder](/pt-br/pricing#plan-builder) (€99/mês) ou outros planos. Teste de 3 dias no cartão; crypto é pré-pago. Chave grátis: [signup](/signup). Related: [answers](/pt-br/answers), [docs](/docs), [pricing](/pt-br/pricing).
## Perguntas frequentes
### Quais moedas são aceitas?
USDC, USDT, SOL e BTC (fluxo de fatura do dashboard).
### Planos crypto renovam sozinhos?
Não — só pré-pago.
### Este é conteúdo educativo para adultos?
Sim (18+).
---
Source: https://pinnfeed.io/pt-br/answers/multi-book-odds-api-vs-pinnacle-only
# API multi-book vs feed só Pinnacle
**Resposta:** Multi-book ganha para shopping/arb; Builder (€99/mês) como referência sharp. [alternatives](/pt-br/alternatives).
Claim: WebSocket live + pré-jogo em cobrança mensal ou anual (Nov 2026).
## CTA de teste
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste de 3 dias; cartão obrigatório. Chave grátis: [signup](/signup).
## Perguntas frequentes
### Arb só com PinnFeed?
Não — ≥2 books.
### Fontes?
[compare](/pt-br/compare).
### É conteúdo educativo para adultos?
Sim (18+).
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-webhook-vs-websocket
# Webhook vs WebSocket para odds Pinnacle
**Resposta:** a PinnFeed **não tem webhooks de odds**. A entrega em tempo real é o **WebSocket** `wss://pinnfeed.io/v1/stream`. Se seu stack só aceita HTTP de entrada, rode um worker no socket que faça POST no seu webhook.
## Padrão
```
PinnFeed WS → seu worker → HTTPS POST → sua URL de webhook
```
Como alternativa, faça polling em `/v1/odds` ou `/v1/drops` (Hobby/Free). Streams SSE de drops em outros vendors não são um WS de livro completo — [SSE vs WS](/pt-br/answers/pinnacle-odds-sse-vs-websocket).
## CTA de teste
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para WebSocket. Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 se não cancelar. Chave grátis: [signup](/signup). Related: [answers](/pt-br/answers), [docs](/docs), [pricing](/pt-br/pricing).
## Perguntas frequentes
### Por que não webhooks?
Odds atualizam o tempo todo; o socket persistente é o transporte do produto.
### Zapier pode ser o destino?
Sim — worker → Catch Hook. Zapier nativo não abre o WS da PinnFeed.
### Este é conteúdo educativo para adultos?
Sim (18+).
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-curl-openapi-recipes
# Receitas curl da API de odds Pinnacle (OpenAPI)
**Resposta:** Aponte `curl` para `https://pinnfeed.io` com o header `x-api-key: $PINNFEED_KEY`. O contrato ao vivo é [`/openapi.json`](/openapi.json). Free (€0, atraso de 30 s, 2 esportes) cobre todos os paths REST abaixo, exceto closing (Builder+).
## Preparação
```bash
export PINNFEED_KEY="ps_live_..."
alias pf='curl -sS -H "x-api-key: $PINNFEED_KEY" -H "accept: application/json"'
```
## Conta e esportes
```bash
pf https://pinnfeed.io/v1/account | jq .
pf https://pinnfeed.io/v1/sports | jq '.sports[] | {id,slug,name}'
```
## Eventos e odds (paginado)
```bash
pf "https://pinnfeed.io/v1/odds?sport=soccer&market=moneyline&main=true&limit=20" | jq '.events | length'
pf "https://pinnfeed.io/v1/odds?sport=soccer&market=moneyline&main=true&limit=20&offset=20" | jq .
pf "https://pinnfeed.io/v1/events?sport=tennis&live=false&limit=10" | jq .
pf "https://pinnfeed.io/v1/events/EVENT_ID?main=true" | jq .
```
## Quedas e linhas de fechamento
```bash
pf "https://pinnfeed.io/v1/drops?sport=soccer&minutes=15&min_pct=5&limit=50" | jq .
pf "https://pinnfeed.io/v1/closing?date=2026-11-08&sport=soccer&main=true&limit=50" | jq .
pf "https://pinnfeed.io/v1/closing/EVENT_ID" | jq .
```
Schemas: [docs REST](/docs/rest). Para push, o [guia WebSocket](/pt-br/guides/pinnacle-odds-websocket-python-node) no [Builder](/pt-br/pricing#plan-builder) (€99/mês). Planos pagos incluem 3 dias de teste; cartão é obrigatório e é cobrado após o dia 3 salvo cancelamento. Conteúdo educativo para adultos (18+).
## Perguntas que as pessoas fazem
### O curl funciona no Free?
Sim para `/v1/account`, `/sports`, `/events`, `/odds` e `/drops` (atraso 30 s). Closing precisa de Builder ou Pro.
### Há exemplo WebSocket com curl?
Não — use os clientes Python ou Node do [guia WebSocket](/pt-br/guides/pinnacle-odds-websocket-python-node).
### Onde está o OpenAPI?
[`https://pinnfeed.io/openapi.json`](/openapi.json).
---
Source: https://pinnfeed.io/pt-br/vibe-coding
# Construa com PinnFeed usando IA
**Resposta:** chave Free em [signup](/signup), `PINNFEED_KEY`, prompts e [llms-api.txt](/llms-api.txt). Auth `x-api-key`. WS = Builder. 18+.
```bash
export PINNFEED_KEY="ps_live_..."
curl -sS -H "x-api-key: $PINNFEED_KEY" "https://pinnfeed.io/v1/odds?sport=soccer&main=true&limit=3"
```
Contexto: [llms-api.txt](/llms-api.txt) · [AGENTS.md](/AGENTS.md) · [Postman](/postman/pinnfeed.postman_collection.json) · [docs/mcp](/docs/mcp).
## CTA de teste
[Builder](/pt-br/pricing#plan-builder) (€99/mês). Teste 3 dias. [signup](/signup).
## Perguntas frequentes
### Preciso do Builder?
Só para `/v1/stream` e closing.
### Inventar endpoints?
Não — OpenAPI + llms-api.txt.
### Educativo 18+?
Sim.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-python-account-bootstrap
# Bootstrap de um cliente Python com /v1/account e /v1/sports
**Resposta:** Antes de qualquer loop de odds, chame `GET /v1/account` e `GET /v1/sports` com `x-api-key`. Confirma a chave, limites e os ids/slugs que o restante do OpenAPI espera.
## Bootstrap mínimo
```python
import os, requests
KEY = os.environ["PINNFEED_KEY"]
H = {"x-api-key": KEY}
BASE = "https://pinnfeed.io"
acct = requests.get(f"{BASE}/v1/account", headers=H, timeout=15)
acct.raise_for_status()
print("plan:", acct.json())
sports = requests.get(f"{BASE}/v1/sports", headers=H, timeout=15)
sports.raise_for_status()
for s in sports.json().get("sports", []):
print(s["id"], s.get("slug"), s.get("name"))
```
No Free só os dois esportes escolhidos no [painel](/dashboard) devolvem odds. Hobby libera REST em tempo real; [Builder](/pt-br/pricing#plan-builder) (€99/mês) adiciona o WebSocket. Planos pagos: 3 dias de teste; cartão é obrigatório e é cobrado após o dia 3 salvo cancelamento. Próximo: [Python REST](/pt-br/answers/pinnacle-odds-python-rest) ou [paginação](/pt-br/answers/pinnacle-odds-python-events-odds-pagination). Conteúdo educativo para adultos (18+).
## Perguntas que as pessoas fazem
### O que /v1/account devolve?
Nome do plano, cota, restantes, se há WebSocket e limites de esporte. Campos em [`/openapi.json`](/openapi.json).
### Posso pular /v1/sports?
Pode fixar slugs como `soccer`, mas listar primeiro evita erros e mostra o que a chave Free cobre hoje.
---
Source: https://pinnfeed.io/pt-br/quickstart
# Quickstart — chave à primeira odd
**Resposta:** [signup](/signup) → `ps_live_...` → `export PINNFEED_KEY` → curl `/v1/odds`. Depois Python, Node, Sheets. WS = Builder.
```bash
export PINNFEED_KEY="ps_live_..."
curl -sS -H "x-api-key: $PINNFEED_KEY" "https://pinnfeed.io/v1/odds?sport=soccer&main=true&limit=5"
```
Sheets: Apps Script. [vibe coding](/pt-br/vibe-coding).
## CTA de teste
[signup](/signup) · [pricing](/pt-br/pricing#plan-builder).
## Perguntas frequentes
### Vs /docs?
60 s aqui; completo em /docs.
### Chave na célula?
Não.
### 18+?
Sim.
---
Source: https://pinnfeed.io/pt-br/answers/build-betting-bot-with-cursor
# Bot de apostas com Cursor
**Resposta:** use Cursor com `PINNFEED_KEY` e [llms-api.txt](/llms-api.txt); comece no REST. WS só Builder. 18+.
```text
Read https://pinnfeed.io/llms-api.txt. Poll /v1/drops with PINNFEED_KEY from env. 18+ educational.
```
[vibe coding](/pt-br/vibe-coding).
## CTA de teste
[signup](/signup) · [Builder](/pt-br/pricing#plan-builder) €99/mês.
## Perguntas frequentes
### Mais detalhe?
[vibe coding](/pt-br/vibe-coding).
### Builder?
Para WS e closing.
### 18+?
Sim.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-python-events-odds-pagination
# Paginar eventos e odds Pinnacle em Python
**Resposta:** `GET /v1/events` e `GET /v1/odds` aceitam `limit` e `offset` (OpenAPI). Itere até uma página retornar menos que `limit`. Prefira `/v1/odds` com mercados; `/v1/events` para calendário sem preços.
## Percorrer moneylines de futebol
```python
import os, requests
KEY = os.environ["PINNFEED_KEY"]
H = {"x-api-key": KEY}
BASE = "https://pinnfeed.io/v1/odds"
params = {
"sport": "soccer",
"market": "moneyline",
"main": "true",
"live": "false",
"limit": 50,
"offset": 0,
}
all_events = []
while True:
r = requests.get(BASE, headers=H, params=params, timeout=20)
r.raise_for_status()
batch = r.json().get("events", [])
all_events.extend(batch)
if len(batch) < params["limit"]:
break
params["offset"] += params["limit"]
print(f"fetched {len(all_events)} events")
```
Filtros úteis: `league`, `event`, `markets`, `live`, `main`, `specials=false`, `q`. Free basta. Para deltas push: [Builder](/pt-br/pricing#plan-builder) (€99/mês) e o [guia WebSocket](/pt-br/guides/pinnacle-odds-websocket-python-node). Planos pagos: 3 dias de teste; cartão é obrigatório e é cobrado após o dia 3 salvo cancelamento. Conteúdo educativo para adultos (18+).
## Perguntas que as pessoas fazem
### Há cursor em vez de offset?
Não — o OpenAPI usa `offset` inteiro. Mantenha `limit` estável.
### Qual o tamanho máximo de limit?
Os tetos variam; comece em 50. Veja a operação em [`/openapi.json`](/openapi.json).
---
Source: https://pinnfeed.io/pt-br/answers/claude-mcp-sports-odds
# Claude MCP para odds Pinnacle
**Resposta:** Claude → `https://pinnfeed.io/mcp` com `ps_live_`. Code: Bearer; Desktop: `?key=`. [docs/mcp](/docs/mcp).
```bash
claude mcp add --transport http pinnfeed https://pinnfeed.io/mcp --header "Authorization: Bearer YOUR_KEY"
```
## CTA de teste
[signup](/signup) · [Builder](/pt-br/pricing#plan-builder) €99/mês.
## Perguntas frequentes
### Mais detalhe?
[vibe coding](/pt-br/vibe-coding).
### Builder?
Para WS e closing.
### 18+?
Sim.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-python-closing-lines-clv
# Linhas de fechamento Pinnacle em Python para CLV
**Resposta:** No Builder+, `GET /v1/closing?date=YYYY-MM-DD` para um dia UTC, ou `GET /v1/closing/{eventId}` para um jogo. Compare seu decimal com o fechamento arquivado para estimar CLV.
## Dump do dia + um evento
```python
import os, requests
from datetime import date, timedelta
KEY = os.environ["PINNFEED_KEY"]
H = {"x-api-key": KEY}
BASE = "https://pinnfeed.io"
day = (date.today() - timedelta(days=1)).isoformat()
r = requests.get(
f"{BASE}/v1/closing",
headers=H,
params={"date": day, "sport": "soccer", "main": "true", "limit": 100, "offset": 0},
timeout=20,
)
r.raise_for_status()
rows = r.json().get("closings") or r.json().get("events") or r.json()
print("rows:", len(rows) if isinstance(rows, list) else rows)
event_id = "123456789"
one = requests.get(f"{BASE}/v1/closing/{event_id}", headers=H, timeout=15)
one.raise_for_status()
print(one.json())
```
Free e Hobby retornam `403` — suba para [Builder](/pt-br/pricing#plan-builder) (€99/mês) ou Pro. Planos pagos: 3 dias de teste; cartão é obrigatório e é cobrado após o dia 3 salvo cancelamento. Guia: [CLV](/pt-br/guides/closing-line-value-clv-tracking). Conteúdo educativo para adultos (18+).
## Perguntas que as pessoas fazem
### Qual o fuso de `date`?
Dia calendário UTC (`YYYY-MM-DD`), como no OpenAPI.
### Como calculo o CLV?
CLV ≈ seu decimal ÷ decimal de fechamento − 1 (mesmo resultado). Guarde ambos os preços e o id do mercado.
---
Source: https://pinnfeed.io/pt-br/answers/chatgpt-odds-api-prompt
# Prompt ChatGPT para odds
**Resposta:** MCP `?key=` ou prompt que force curl em `/v1/*` reais. 18+.
```text
Use PinnFeed MCP get_account/get_drops, or curl /v1/odds with x-api-key. openapi.json only. 18+.
```
## CTA de teste
[signup](/signup) · [Builder](/pt-br/pricing#plan-builder) €99/mês.
## Perguntas frequentes
### Mais detalhe?
[vibe coding](/pt-br/vibe-coding).
### Builder?
Para WS e closing.
### 18+?
Sim.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-python-fairprob-ev-screen
# Tela de EV com fairProb em Python
**Resposta:** Cada outcome em `GET /v1/odds` inclui `decimal`, `fair` (decimal sem vig) e geralmente `fairProb`. Compare o decimal de outro book com o `fair` da Pinnacle para marcar EV positivo. É triagem educativa, não tip.
## Tela moneyline de futebol
```python
import os, requests
KEY = os.environ["PINNFEED_KEY"]
r = requests.get(
"https://pinnfeed.io/v1/odds",
headers={"x-api-key": KEY},
params={"sport": "soccer", "market": "moneyline", "main": "true", "limit": 40},
timeout=20,
)
r.raise_for_status()
soft = {("Home FC", "Away United", "home"): 2.40}
for ev in r.json().get("events", []):
key = (ev.get("home"), ev.get("away"))
m = next((x for x in ev.get("markets", []) if x.get("type") == "moneyline"), None)
if not m:
continue
for o in m.get("outcomes", []):
name = o.get("name")
fair = o.get("fair") or (1 / o["fairProb"] if o.get("fairProb") else None)
soft_dec = soft.get((*key, name))
if fair and soft_dec and soft_dec > fair * 1.02:
print(ev["home"], "v", ev["away"], name, "soft", soft_dec, "fair", round(fair, 3))
```
Só campos REST publicados. Free funciona (atrasado). Push: [Builder](/pt-br/pricing#plan-builder) (€99/mês). Planos pagos: 3 dias de teste; cartão é obrigatório e é cobrado após o dia 3 salvo cancelamento. Ver [guia de value](/pt-br/guides/value-betting-no-vig-fair-odds). Conteúdo educativo para adultos (18+). Sem lucro garantido.
## Perguntas que as pessoas fazem
### fair e fairProb são iguais?
`fair` é o decimal sem vig; `fairProb` é a probabilidade justa (≈ `1/fair`).
### Isso acha arb?
Não — compara um book sharp (Pinnacle via PinnFeed) com outro preço que você fornece. PinnFeed é só Pinnacle.
---
Source: https://pinnfeed.io/pt-br/answers/no-code-odds-google-sheets
# Sheets sem código
**Resposta:** Apps Script + `x-api-key` em Script Properties. Sem IMPORTDATA autenticado.
```javascript
const key = PropertiesService.getScriptProperties().getProperty('PINNFEED_KEY');
UrlFetchApp.fetch('https://pinnfeed.io/v1/odds?sport=soccer&main=true&limit=20',{headers:{'x-api-key':key}});
```
## CTA de teste
[signup](/signup) · [Builder](/pt-br/pricing#plan-builder) €99/mês.
## Perguntas frequentes
### Mais detalhe?
[vibe coding](/pt-br/vibe-coding).
### Builder?
Para WS e closing.
### 18+?
Sim.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-nodejs-drops-poller
# Poller de quedas de preço Pinnacle em Node.js
**Resposta:** `GET /v1/drops` devolve steam recente. Params OpenAPI: `sport`, `minutes` (1–60, padrão 15), `min_pct`/`minPct` (padrão 3), `limit` (máx. 200) e filtros de mercado.
## Poller a cada 30 s (Node 18+)
```js
const KEY = process.env.PINNFEED_KEY;
const params = new URLSearchParams({
sport: "soccer",
minutes: "15",
min_pct: "4",
limit: "50",
main: "true",
});
async function poll() {
const r = await fetch(`https://pinnfeed.io/v1/drops?${params}`, {
headers: { "x-api-key": KEY, accept: "application/json" },
});
if (!r.ok) throw new Error(`${r.status} ${await r.text()}`);
const body = await r.json();
const drops = body.drops || body || [];
for (const d of drops) {
console.log(d.eventId || d.event?.id, d.market?.type, d.pct ?? d.minPct, d);
}
}
setInterval(() => poll().catch(console.error), 30_000);
poll();
```
Free cobre drops (atrasado). Steam sub-segundo: WebSocket no [Builder](/pt-br/pricing#plan-builder) (€99/mês) e o [guia steam](/pt-br/guides/dropping-odds-steam-detection). Planos pagos: 3 dias de teste; cartão é obrigatório e é cobrado após o dia 3 salvo cancelamento. Conteúdo educativo para adultos (18+).
## Perguntas que as pessoas fazem
### O que min_pct mede?
Queda percentual mínima na janela. Valores limitados ≈0,5–90 no OpenAPI.
### Posso filtrar por liga?
Sim — `league`/`leagues` (ids) como em `/v1/odds`.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-sheets-time-driven-trigger
# Atualizar odds Pinnacle no Google Sheets com timer
**Resposta:** Use Apps Script `UrlFetchApp` contra `GET /v1/odds` e instale um **trigger por tempo** (a cada 15 minutos). Script completo: [guia Sheets](/pt-br/guides/pinnacle-odds-google-sheets). Free basta (atraso 30 s, 1.000 req/dia).
## Só o trigger
```javascript
const KEY = PropertiesService.getScriptProperties().getProperty("PINNFEED_KEY");
const SPORT = "soccer";
function refreshOdds() {
const url = "https://pinnfeed.io/v1/odds"
+ "?sport=" + encodeURIComponent(SPORT)
+ "&market=moneyline&main=true&limit=30";
const res = UrlFetchApp.fetch(url, {
headers: { "x-api-key": KEY, accept: "application/json" },
muteHttpExceptions: true,
});
if (res.getResponseCode() !== 200) throw new Error(res.getContentText());
const events = JSON.parse(res.getContentText()).events || [];
const sheet = SpreadsheetApp.getActive().getSheetByName("Odds");
const rows = [["home", "away", "home_dec", "away_dec", "fair_home", "updated"]];
for (const ev of events) {
const m = (ev.markets || []).find((x) => x.type === "moneyline");
if (!m) continue;
const by = Object.fromEntries((m.outcomes || []).map((o) => [o.name, o]));
rows.push([
ev.home, ev.away,
by.home?.decimal, by.away?.decimal, by.home?.fair,
new Date().toISOString(),
]);
}
sheet.clearContents();
sheet.getRange(1, 1, rows.length, rows[0].length).setValues(rows);
}
function installTrigger() {
ScriptApp.getProjectTriggers().forEach((t) => ScriptApp.deleteTrigger(t));
ScriptApp.newTrigger("refreshOdds").timeBased().everyMinutes(15).create();
}
```
Guarde a chave em **propriedades do script**, nunca nas células. Excel: [Power Query](/pt-br/answers/pinnacle-odds-excel-power-query). Push ao vivo: [Builder](/pt-br/pricing#plan-builder) (€99/mês). Planos pagos: 3 dias de teste; cartão é obrigatório e é cobrado após o dia 3 salvo cancelamento. Conteúdo educativo para adultos (18+).
## Perguntas que as pessoas fazem
### 15 minutos esgotam o Free?
96 chamadas/dia se só o trigger dispara — abaixo do teto de 1.000/dia.
### IMPORTDATA serve?
`IMPORTDATA` não envia `x-api-key`. Use Apps Script (esta página).
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-mcp-tools-reference
# Referência das tools MCP de odds Pinnacle
**Resposta:** O MCP hospedado em `https://pinnfeed.io/mcp` expõe oito tools sobre o mesmo REST OpenAPI: `get_account`, `list_sports`, `search_events`, `get_live_odds`, `get_prematch_odds`, `get_event`, `get_drops`, `get_closing_odds`. Setup: [guia MCP](/pt-br/guides/pinnacle-odds-chatgpt-claude-mcp).
## Tool → REST
| MCP tool | Args típicos | Equivalente REST |
| --- | --- | --- |
| `get_account` | — | `GET /v1/account` |
| `list_sports` | — | `GET /v1/sports` |
| `search_events` | `sport`, `q`, `live` | `GET /v1/events` |
| `get_live_odds` | `sport`, `market`, `main` | `GET /v1/odds?live=true` |
| `get_prematch_odds` | `sport`, `market`, `main` | `GET /v1/odds?live=false` |
| `get_event` | `id` | `GET /v1/events/{id}` |
| `get_drops` | `sport`, `minutes`, `min_pct` | `GET /v1/drops` |
| `get_closing_odds` | `date` ou `eventId` | `GET /v1/closing` / `/{eventId}` |
## Exemplo JSON-RPC
```bash
curl -sS https://pinnfeed.io/mcp \
-H "Authorization: Bearer $PINNFEED_KEY" \
-H "content-type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_drops","arguments":{"sport":"soccer","minutes":15,"min_pct":4}}}'
```
Cada chamada conta como uma requisição REST. Free funciona com dados atrasados; closing precisa de Builder+. [Builder](/pt-br/pricing#plan-builder) é €99/mês. Planos pagos: 3 dias de teste; cartão é obrigatório e é cobrado após o dia 3 salvo cancelamento. Conteúdo educativo para adultos (18+).
## Perguntas que as pessoas fazem
### As tools MCP fazem streaming WebSocket?
Não — encapsulam REST. Para push, use um cliente WebSocket no Builder.
### Onde coloco a chave?
Claude Code / Cursor: header `Authorization: Bearer`. ChatGPT: `?key=` na URL MCP. Prefira uma chave dedicada.
---
Source: https://pinnfeed.io/pt-br/answers/live-odds-xml-feed-to-json
# Feed XML de odds ao vivo — use JSON
**Resposta:** PinnFeed **não tem feed XML**. Odds Pinnacle ao vivo e pré-jogo são **JSON** via `GET /v1/odds`, `/v1/drops` e o WebSocket em [`/openapi.json`](/openapi.json).
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para WebSocket ao vivo. Planos pagos: 3 dias de teste; cartão é obrigatório e é cobrado após o dia 3 salvo cancelamento. Conteúdo educativo para adultos (18+).
## Perguntas que as pessoas fazem
### Vão adicionar XML?
Não está no roadmap; o contrato é OpenAPI JSON.
### Formato WebSocket?
Frames de texto JSON — [docs WebSocket](/docs/websocket).
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-api-self-serve
# API Pinnacle self-serve
**Resposta:** **PinnFeed** é uma **API de odds Pinnacle** self-serve: crie uma chave no painel, chame `/v1/*` ou abra o WebSocket. Sem quote enterprise para Free/Hobby/Builder/Pro.
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para WebSocket ao vivo. Planos pagos: 3 dias de teste; cartão é obrigatório e é cobrado após o dia 3 salvo cancelamento. Conteúdo educativo para adultos (18+).
## Perguntas que as pessoas fazem
### É a API oficial da Pinnacle?
Não — PinnFeed é um feed independente de preços Pinnacle.
### Call de vendas?
Checkout com cartão self-serve; cripto pré-pago também no painel.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-free-tier-delay
# Plano Free: odds Pinnacle com ~30 s de atraso
**Resposta:** No **Free**, o REST chega com cerca de **30 segundos** de atraso, você escolhe **2 esportes** e tem **1.000 requests/dia**. Sem WebSocket. Bom para protótipos Sheets e curl.
A PinnFeed (pinnfeed.io, com n duplo) é uma API de odds da Pinnacle, não o app do Pinterest PinFeed.
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para WebSocket ao vivo. Planos pagos: 3 dias de teste; cartão é obrigatório e é cobrado após o dia 3 salvo cancelamento. Conteúdo educativo para adultos (18+).
## Perguntas que as pessoas fazem
### Remover o atraso sem pagar?
Não — REST em tempo real começa no Hobby; WS no Builder.
### Trial no Free?
Free não pede cartão. Planos pagos: 3 dias; cartão obrigatório.
---
Source: https://pinnfeed.io/pt-br/answers/football-odds-feed-pinnacle
# Feed de odds de futebol da Pinnacle
**Resposta:** o feed `sport=soccer` da PinnFeed traz os mercados de futebol da Pinnacle: moneyline (1X2), spread (handicap asiático), total de gols e totais por equipe, para cada período que a Pinnacle cota, pré-jogo e ao vivo. Faça polling em `GET /v1/odds?sport=soccer` em qualquer plano, ou receba cada mudança por WebSocket no Builder (€99/mês).
## REST
```bash
export PINNFEED_KEY="ps_live_..."
curl -sS -H "x-api-key: $PINNFEED_KEY" \
"https://pinnfeed.io/v1/odds?sport=soccer&market=moneyline,spread,total&main=true&limit=50"
```
Filtre por id de `league` (liste as ligas com `GET /v1/events?sport=soccer`), `live=true` ou `live=prematch`, ou `q=` para um time.
## WebSocket (Builder)
```json
{ "type": "subscribe", "sports": ["soccer"], "markets": ["moneyline", "spread", "total"], "main": true }
```
Você recebe `subscribed`, depois frames `snapshot` e então frames `delta` quando os preços mudam. O servidor envia `ping` a cada 20 segundos; responda com `{"type":"pong"}`. Cliente pronto: [guia WebSocket Python e Node](/pt-br/guides/pinnacle-odds-websocket-python-node).
## Mercados
- 1X2: [moneyline de futebol](/pt-br/answers/football-odds-feed-pinnacle)
- Abertura e fechamento: [futebol abertura/fechamento](/pt-br/answers/pinnacle-opening-closing-odds-football-api)
## Planos
Free: 30 s de atraso, 2 esportes à escolha, mercados principais. Hobby (€29/mês): REST em tempo real. [Builder](/pt-br/pricing#plan-builder): WebSocket, todos os mercados, props e histórico de fechamento. Planos pagos: teste de 3 dias; o cartão é pedido e cobrado após o dia 3, a menos que você cancele.
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido.*
## Filtrar por competição
Quando a Pinnacle lista uma competição, ela entra no feed `soccer`. Busque o id uma vez com `/v1/events?sport=soccer&q=…`, confirme `league.name` e `league.group`, e filtre `/v1/odds` ou o WebSocket com esse id. `q=` é uma busca, não uma chave única.
| Competição | `q=` típico | Atenção |
|---|---|---|
| Premier League | `premier` | Confirme a primeira divisão inglesa em `league.name`. |
| La Liga | `liga` | Muitas ligas contêm "Liga". Use `group`. Horários em UTC; converta para Europe/Madrid. |
| Serie A (Itália) | `serie a` | Itália e Brasil têm uma Serie A — filtre por id. Horários em UTC; converta para Europe/Rome. |
| Bundesliga | `bundesliga` | Também encontra a segunda alemã e a primeira austríaca. A DFB-Pokal é outro id. UTC; converta para Europe/Berlin. |
| Brasileirão | `brazil` | Não busque só "Serie A". Série B, estaduais e Copa do Brasil têm ids próprios. UTC; converta para America/Sao_Paulo. |
| Champions League | `champions` | Outras competições podem ter "Champions" no nome. Outrights de campeão, quando existem, são specials no Builder e no Pro. |
| Ligue 1 | `ligue` | Também encontra a Ligue 2; tente `q=france` se precisar. UTC; converta para Europe/Paris. |
| MLS | `mls` | Se não houver resultado, tente `q=usa`. O slug é `soccer` (moneyline com empate). Horários em UTC. |
| Copa Libertadores | `libertadores` | As fases preliminares podem ser outro id; a Sul-Americana é outra competição. Cada jogo de um mata-mata de ida e volta é um evento: o 1X2 vale para os 90 minutos daquele jogo, não para quem se classifica. UTC; converta para America/Sao_Paulo ou America/Argentina/Buenos_Aires. |
Reutilize o id numérico depois de confirmá-lo. O padrão de código está no guia em inglês [filter by league id](/answers/pinnacle-odds-by-league-id).
## Perguntas frequentes
### O feed inclui placares?
Os eventos trazem `score`, `clock` e `status` quando a Pinnacle os fornece. A PinnFeed é um feed de odds, não de estatísticas: sem escalações nem dados de jogadores.
### Quais ligas cobre?
As que a Pinnacle cota. Liste com `GET /v1/events?sport=soccer`.
### Outras casas?
Não. A PinnFeed traz só a Pinnacle.
---
Source: https://pinnfeed.io/pt-br/answers/pinnfeed-annual-quarterly-billing
# PinnFeed: cobrança anual e trimestral
**Resposta:** todos os planos pagos da PinnFeed podem ser cobrados no cartão de forma mensal, trimestral ou anual. O trimestral sai cerca de 10% abaixo; o anual equivale a dois meses grátis. O Builder, o plano WebSocket, custa **€99/mês, €267/trimestre (€89/mês) ou €990/ano (€82,50/mês)**, IVA incluso quando aplicável. Cada período começa com o mesmo teste de 3 dias; depois a Stripe cobra o período inteiro e renova até você cancelar.
## Preços (EUR, IVA incluso quando aplicável)
| Plano | Mensal | Trimestral | Anual | O que inclui |
|---|---|---|---|---|
| Hobby | €29 | €78 | €290 | REST em tempo real, 3 esportes, sem WebSocket |
| **Builder** | **€99** | **€267** | **€990** | WebSocket (3 conexões), 13 esportes, todos os mercados, fechamentos |
| Pro | €199 | €537 | €1.990 | 10 conexões, 30 req/s, frames brutos |
O Free continua em €0. Enterprise, sob medida. Fonte: [preços](/pt-br/pricing).
## Como o preço anual se compara
Em 9 de novembro de 2026, o Builder era o menor preço publicado com cobrança mensal ou anual que encontramos para um WebSocket da Pinnacle ao vivo e pré-jogo. Um WebSocket só pré-jogo é publicado abaixo (oddssea Prematch, $59/mês). Na cobrança mensal, o odds-api.io Solo + WebSocket custa €118/mês (preço exibido em EUR, sem impostos). Na cobrança anual, o odds-api.io Solo + WebSocket custa €1.180/ano ≈ €98,33/mês (preço exibido em EUR, sem impostos), acima dos €82,50/mês do Builder. Tabela com datas: [preço do WebSocket ao vivo + pré-jogo](/pt-br/cheapest-pinnacle-odds-websocket) e [comparativo](/pt-br/compare).
## Começar
Escolha o período no seletor de [preços](/pt-br/pricing) e comece o teste de 3 dias: o cartão é pedido e cobrado após o dia 3, a menos que você cancele. Novo na API? [Quickstart](/pt-br/quickstart).
*Conteúdo educativo para maiores de 18 anos.*
## Perguntas frequentes
### Tem teste na cobrança anual?
Sim, o mesmo teste de 3 dias. Se você não cancelar, o ano inteiro é cobrado após o dia 3.
### O que o Builder inclui por €990/ano?
O mesmo que o Builder mensal: WebSocket ao vivo e pré-jogo, 3 conexões, REST 10 req/s, 13 esportes, todos os mercados e histórico de fechamento.
### Posso passar de mensal para anual depois?
Sim, pela página de gestão da cobrança. A Stripe faz o rateio da diferença.
---
Source: https://pinnfeed.io/pt-br/answers/kelly-criterion-pinnacle-fair-odds
# Critério de Kelly com odds justas da Pinnacle
**Resposta:** Kelly dimensiona a stake a partir da sua probabilidade estimada e da odd que você consegue: `f = (b·p − q) / b`, em que `b` é a odd decimal menos 1, `p` a probabilidade de acerto e `q = 1 − p`. Usando como `p` o `fairProb` sem margem da Pinnacle fornecido pela PinnFeed, e como `b` a odd de outra casa, você obtém uma fração da banca. Como `p` é uma estimativa, quase todo mundo usa uma fração (um quarto de Kelly) e nunca o Kelly completo.
## Python
```python
import os, requests
def kelly(decimal_price: float, p: float) -> float:
b = decimal_price - 1
return max(0.0, (b * p - (1 - p)) / b)
KEY = os.environ["PINNFEED_KEY"] # ps_live_...
r = requests.get("https://pinnfeed.io/v1/odds", headers={"x-api-key": KEY},
params={"sport": "soccer", "market": "moneyline", "main": "true", "limit": 20}, timeout=20)
r.raise_for_status()
ev = r.json()["events"][0]
o = ev["markets"][0]["outcomes"][0]
other_book_price = 2.30 # uma odd que você coletou em outra casa
f = kelly(other_book_price, o["fairProb"])
print(ev["home"], ev["away"], o["name"], "full", round(f, 4), "quarter", round(f / 4, 4))
```
Exemplo com números ilustrativos: `fairProb` 0,488 e uma odd de 2,30 dão `b` = 1,30, Kelly completo ≈ 9,4% e um quarto de Kelly ≈ 2,35% da banca. Se a odd estiver abaixo da odd justa, Kelly devolve 0: sem stake.
## Cuidados
- `fairProb` é o preço da Pinnacle sem margem, não a probabilidade real.
- Confira `maxStake` e se o mercado continua aberto antes de confiar num preço.
- Meça seus resultados contra a odd de fechamento ([guia de CLV](/pt-br/guides/closing-line-value-clv-tracking)), não pelo lucro de curto prazo.
Guia completo com a mesma fórmula: [value betting com odds sem margem](/pt-br/guides/value-betting-no-vig-fair-odds).
## Planos
O Free (30 s de atraso) roda este script. Tempo real: Hobby (€29/mês) por REST ou [Builder](/pt-br/pricing#plan-builder) (€99/mês) por WebSocket. Planos pagos: teste de 3 dias; o cartão é pedido e cobrado após o dia 3, a menos que você cancele.
*Só para maiores de 18 anos. Kelly é uma regra estatística de dimensionamento, não um palpite. Nada disso promete lucro; jogue com responsabilidade.*
## Perguntas frequentes
### Por que um quarto de Kelly?
O Kelly completo supõe que sua probabilidade é exata. Com estimativas, o Kelly fracionário reduz a variância e o estrago de superestimar.
### Posso usar como b a própria odd da Pinnacle?
Aí a vantagem é negativa pela margem e Kelly devolve 0. Kelly só faz sentido contra uma odd acima da odd justa.
### O fairProb está em todos os planos?
`fair` e `fairProb` são adicionados às odds do feed normalizado em todos os planos; o Free entrega com 30 segundos de atraso e só mercados principais.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-python-example
# WebSocket de odds da Pinnacle: exemplo em Python
**Resposta:** instale `websockets`, defina `PINNFEED_KEY`, conecte em `wss://pinnfeed.io/v1/stream` com o header `x-api-key`, envie uma mensagem `subscribe`, aplique cada `snapshot`/`delta`, responda ao `ping` com `{"type":"pong"}` e reconecte com backoff exponencial. Você precisa do plano **Builder** (€99/mês): chaves Free e Hobby recebem `403 plan_lacks_ws`.
## Cliente mínimo
```bash
pip install websockets
export PINNFEED_KEY="ps_live_..."
```
```python
import asyncio, json, os, random
import websockets
WS = "wss://pinnfeed.io/v1/stream"
KEY = os.environ["PINNFEED_KEY"]
async def main():
delay = 1
while True:
try:
async with websockets.connect(WS, additional_headers={"x-api-key": KEY}, max_size=None) as ws:
await ws.send(json.dumps({
"type": "subscribe",
"sports": ["soccer", "tennis"],
"markets": ["moneyline"],
"main": True,
"specials": False,
}))
async for raw in ws:
msg = json.loads(raw)
if msg["type"] == "ping":
await ws.send('{"type":"pong"}')
elif msg["type"] == "snapshot" and msg.get("final"):
print("snapshot pronto")
delay = 1
elif msg["type"] == "delta":
for c in msg["changes"]:
if c["kind"] == "market" and c["op"] == "upsert":
m = c["market"]
if (m["maxStake"] or 0) >= 100:
print(m["id"], [(o["name"], o["decimal"], o["fair"]) for o in m["outcomes"]])
except (OSError, websockets.ConnectionClosed) as e:
print("desconectado", e, "nova tentativa em", delay, "s")
await asyncio.sleep(delay + random.random())
delay = min(delay * 2, 30)
asyncio.run(main())
```
Campos de cada resultado: `decimal`, `american`, `fair` (sem margem), `fairProb`. O id do mercado é `eventId:key`. O filtro `maxStake >= 100` descarta mercados com pouca liquidez. Lista completa de frames: [docs do WebSocket](/docs/websocket).
## Códigos de fechamento
| Código | Significado |
|---|---|
| 4002 `no_subscription` | Nenhum `subscribe` em 30 s |
| 4008 `slow_consumer` | Cliente lento demais (buffer do servidor acima de 16 MB) |
| 4001 `key_revoked` | Chave revogada: não reconecte em loop |
Builder: teste de 3 dias em [preços](/pt-br/pricing#plan-builder); é preciso cartão, cobrado após o dia 3 se você não cancelar. Ou comece com uma [chave REST grátis](/signup). Veja também [push ou polling](/pt-br/answers/pinnacle-live-odds-push-vs-polling) e [bootstrap de conta em Python](/pt-br/answers/pinnacle-odds-python-account-bootstrap).
*Conteúdo educativo para maiores de 18 anos: documentação técnica, não palpites nem promessa de lucro.*
## Perguntas frequentes
### Por que minha chave Free recebe 403 no WebSocket?
Free e Hobby são só REST. Passe para o Builder para ter push, ou consulte `/v1/odds` no Free (30 s de atraso) ou Hobby (tempo real).
### Preciso responder aos ping?
Sim. O servidor envia `ping` a cada 20 segundos; sem `pong` por 60 s, a conexão é encerrada.
### Quantas conexões?
O Builder permite 3 simultâneas e o Pro 10. Acima disso: `429 connection_limit`.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-rate-limits
# Limites da API de odds por plano
**Resposta:** o REST usa um token bucket por chave; as conexões WebSocket contam por conta. Ao passar do limite você recebe `429` com um código claro.
| Plano | REST | Cota diária | WebSocket |
|---|---|---|---|
| Free | 1 req/s | 1.000 (zera às 00:00 UTC) | Não |
| Hobby | 2 req/s | Sem cota diária | Não |
| Builder | 10 req/s | Sem cota diária | 3 conexões |
| Pro | 30 req/s | Sem cota diária | 10 conexões |
## O que o 429 retorna
| Código | Causa | O que fazer |
|---|---|---|
| `rate_limited` | Requisições demais por segundo | Espere os segundos do header `Retry-After` (também `retryAfterMs` no corpo) |
| `daily_quota` | O Free usou as 1.000 requisições | Espere até 00:00 UTC ou faça upgrade |
| `connection_limit` | WebSockets abertos demais | Feche um ou passe para o Pro |
## Dicas práticas
- Para painéis ao vivo use o WebSocket do Builder: sem polling.
- Consulte `GET /v1/account` para ver seus limites e `usage.restRequestsToday`.
- Cada chamada de ferramenta MCP conta como uma requisição REST.
- Detalhes: [limites](/docs/limits).
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para WebSocket e histórico de fechamento. Teste de 3 dias; é preciso cartão, cobrado após o dia 3 se você não cancelar. REST grátis: [cadastro](/signup).
*Conteúdo educativo para maiores de 18 anos.*
## Perguntas frequentes
### As mensagens do WebSocket têm limite como o REST?
O limite é no número de conexões; o volume de mensagens depende dos seus filtros. Clientes lentos recebem `4008 slow_consumer`.
### O limite é por chave ou por conta?
O limite REST por segundo é por chave; conexões WebSocket e esportes escolhidos são por conta.
### O MCP conta como REST?
Sim: cada chamada de ferramenta é uma requisição REST.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-authentication
# Autenticação da API de odds Pinnacle
**Resposta:** no REST (`/v1/*`) e no MCP, envie sua chave como `x-api-key: ps_live_...`, `Authorization: Bearer ps_live_...` ou `?key=ps_live_...`. O WebSocket (`/v1/stream`) lê o header `x-api-key` ou `?key=`; ele não lê um header Bearer. Prefira o header: URLs acabam nos logs. Guia completo: [docs/authentication](/docs/authentication).
## curl
```bash
curl -H "x-api-key: $PINNFEED_KEY" https://pinnfeed.io/v1/account
```
## Respostas de erro
| Resposta | Causa |
|---|---|
| `401 missing_key` | Nenhuma chave enviada |
| `401 invalid_key` | Chave desconhecida ou revogada |
| `403 plan_lacks_ws` | Chave Free ou Hobby em `/v1/stream` |
| fechamento `4001 key_revoked` | A chave foi revogada com o socket aberto |
## Boas práticas
- Uma chave por app ou ambiente; o Free permite uma chave ativa e os planos pagos até 20.
- A chave completa aparece uma única vez; a PinnFeed guarda só um hash e o prefixo.
- Nunca coloque a chave em código de navegador ou app móvel: use um backend próprio.
- Para trocar: crie a nova, faça o deploy e revogue a antiga.
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para WebSocket e histórico de fechamento. Teste de 3 dias; é preciso cartão, cobrado após o dia 3 se você não cancelar. REST grátis: [cadastro](/signup).
*Conteúdo educativo para maiores de 18 anos.*
## Perguntas frequentes
### Uma chave para REST e WebSocket?
Sim. O limite REST por segundo é por chave; conexões WebSocket e esportes são por conta.
### Onde troco as chaves?
No painel → chaves de API: crie, renomeie ou revogue.
### Posso ver uma chave de novo?
Não. Se perdeu, crie outra e revogue a anterior.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-error-codes
# Códigos de erro da API de odds
**Resposta:** os erros REST chegam como `{"error": {"code", "message"}}` com um status HTTP. Os mais comuns: `401 invalid_key`, `403 plan_lacks_ws` (Free/Hobby em `/v1/stream`), `403 sport_not_in_plan`, `429` por limites. No WebSocket: fechamento **4001** chave revogada, **4002** sem `subscribe` em 30 s, **4008** cliente lento, **1001** reinício do servidor. Catálogo: [erros](/docs/errors).
## Tabela rápida
| Código | Onde | Solução |
|---|---|---|
| `400 invalid_filter` | REST, frame `error` do WS | Confira nomes de esporte e mercado |
| `401 missing_key` / `invalid_key` | REST, conexão WS | Envie uma chave `ps_live_` válida |
| `403 plan_lacks_ws` | Conexão WS | Passe para o Builder |
| `403 sport_not_in_plan` | REST (WS: frame `error`) | Escolha esportes no painel ou faça upgrade |
| `403 plan_lacks_history` | `/v1/closing` | Builder ou Pro |
| `plan_lacks_raw` | Frame `error` do WS | `format: "raw"` exige Pro |
| `429 rate_limited` | REST | Espere os segundos de `Retry-After` |
| `429 daily_quota` | REST (Free) | Espere até 00:00 UTC ou faça upgrade |
| `429 connection_limit` | Conexão WS | Feche uma conexão (Builder 3, Pro 10) |
| fechamento `4008` | WS | Leia mais rápido ou assine menos |
| fechamento `1001` | WS | Reinício: reconecte com backoff |
[Builder](/pt-br/pricing#plan-builder) (€99/mês) para WebSocket e histórico de fechamento. Teste de 3 dias; é preciso cartão, cobrado após o dia 3 se você não cancelar. REST grátis: [cadastro](/signup). Veja também [limites por plano](/pt-br/answers/pinnacle-odds-api-rate-limits) e [autenticação](/pt-br/answers/pinnacle-odds-api-authentication).
*Conteúdo educativo para maiores de 18 anos.*
## Perguntas frequentes
### Um 403 fecha o socket?
A recusa por plano acontece na conexão HTTP, antes do upgrade. Frames `error` dentro de uma conexão aberta nem sempre a fecham.
### O que vem no corpo de plan_lacks_ws?
Um `upgrade_url` para iniciar o teste do Builder, com as condições do teste.
### Onde está a lista completa?
Em [docs/errors](/docs/errors).
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-by-team-name
# Odds da Pinnacle de um time pelo nome
**Resposta:** adicione `q=` em `/v1/odds` (ou `/v1/events`). É uma busca por substring, sem diferenciar maiúsculas, no mandante, no visitante e no nome da liga, então `q=flamengo` retorna todos os jogos do Flamengo no esporte informado, cada um com seus mercados. Em `/v1/odds` o parâmetro `sport` é obrigatório. Funciona em todos os planos, inclusive Free (30 s de atraso e só mercados principais).
## curl
```bash
curl -s "https://pinnfeed.io/v1/odds?sport=soccer&q=arsenal&market=moneyline&main=true" \
-H "x-api-key: ps_live_your_key"
```
A resposta é `{count, offset, limit, events: [...]}`. Cada evento traz `id`, `home`, `away`, `league {id, name, group}`, `startTime`, `live` e um array `markets` com `outcomes` (`decimal`, `american`, `fair`, `fairProb`) mais `margin` e `maxStake`.
## Python: só o próximo jogo
```python
import os, requests
KEY = os.environ["PINNFEED_KEY"] # ps_live_...
r = requests.get(
"https://pinnfeed.io/v1/odds",
params={"sport": "soccer", "q": "arsenal", "market": "moneyline", "main": "true"},
headers={"x-api-key": KEY},
timeout=10,
)
r.raise_for_status()
events = r.json()["events"] # sorted by start time, current events first
if events:
ev = events[0]
for m in ev["markets"]:
prices = {o["name"]: o["decimal"] for o in m["outcomes"]}
print(ev["home"], "v", ev["away"], ev["startTime"], prices, "maxStake", m["maxStake"])
```
## Dicas
- **Seja específico.** `q=united` casa com vários clubes e com ligas que têm "United" no nome. Confira `home`/`away` no código ou use o `id` do evento: `/v1/events/{id}`.
- **Ligas também entram.** `q=serie` retorna eventos cuja liga contém "Serie". Para um filtro estável use o id da liga (`league=`).
- **Os nomes vêm da Pinnacle.** Não há mapeamento de times entre casas.
- **Push para um jogo.** No Builder, assine o WebSocket com `"events":[id]` em vez de fazer polling.
## Planos
Free: 2 esportes, 1 req/s, 1.000 requisições por dia, 30 s de atraso. [Builder](/pt-br/pricing#plan-builder) (€99/mês) adiciona push em tempo real via WebSocket, os 13 esportes e todos os mercados. Teste de 3 dias; o cartão é obrigatório e a cobrança ocorre após o dia 3, a menos que você cancele. [Chave grátis](/signup) · [docs](/docs).
*Conteúdo educativo para maiores de 18 anos.*
## Perguntas frequentes
### A busca é aproximada?
Não. É uma correspondência literal de substring sem diferenciar maiúsculas. "Fla" encontra "Flamengo", mas "Mengão" não.
### Posso buscar em todos os esportes?
`/v1/events?q=...` funciona sem esporte e busca em todos os esportes do seu plano (eventos, sem preços). `/v1/odds` precisa de `sport`.
### Retorna jogos encerrados?
Não. Só eventos que a Pinnacle lista agora. Para preços de fechamento no Builder: [odds de fechamento](/pt-br/answers/pinnacle-closing-line-api-clv).
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-margin-overround-api
# Margem (overround) da Pinnacle por mercado
**Resposta:** cada mercado em `/v1/odds`, `/v1/events/{id}` e no WebSocket traz `margin`. É o overround: a soma de `1/decimal` dos resultados do mercado, menos 1. Um `margin` de `0.025` significa que os preços somam 102,5 % de probabilidade implícita. O mesmo cálculo dá a odd justa sem margem de cada resultado (`fair`) e sua `fairProb` (método proporcional). Disponível em todos os planos.
## Confira você mesmo
```python
def margin(decimals):
return sum(1 / d for d in decimals) - 1
# moneyline outcomes from one market
prices = [2.10, 3.45, 3.60]
print(round(margin(prices), 5)) # compare with market["margin"]
```
O PinnFeed arredonda `margin` e `fairProb` para 5 casas decimais e `fair` para 4.
## Ordenar mercados por margem
```python
import os, requests
r = requests.get("https://pinnfeed.io/v1/odds",
params={"sport": "soccer", "market": "moneyline", "main": "true", "limit": 200},
headers={"x-api-key": os.environ["PINNFEED_KEY"]}, timeout=10)
rows = [(m["margin"], e["league"]["name"], e["home"], e["away"])
for e in r.json()["events"] for m in e["markets"] if m["margin"] is not None]
for row in sorted(rows)[:10]:
print(f"{row[0]:.2%} {row[1]}: {row[2]} v {row[3]}")
```
As margens costumam variar por tipo de mercado, liga e tempo até o início, então meça na sua própria amostra em vez de supor um número.
## Para que serve
- **Comparar casas.** Um overround menor significa preços mais próximos da linha justa.
- **Odds justas.** `fair = 1 / fairProb`, com `fairProb = (1/decimal) / (1 + margin)`. Mais: [odds justas sem margem](/pt-br/answers/no-vig-fair-odds-api), [probabilidade implícita](/pt-br/answers/pinnacle-odds-implied-probability-api).
- **Liquidez.** Combine `margin` com `maxStake` para ver quanto a Pinnacle aceita naquele preço.
## Planos
`margin`, `fair` e `fairProb` estão em todos os planos. [Builder](/pt-br/pricing#plan-builder) (€99/mês) adiciona WebSocket e histórico de fechamento. Teste de 3 dias; o cartão é obrigatório e a cobrança ocorre após o dia 3, a menos que você cancele. [Chave grátis](/signup).
*Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido.*
## Perguntas frequentes
### Por que margin às vezes é null?
Quando um resultado do mercado não tem preço válido, a margem e as odds justas são omitidas em vez de estimadas.
### É o mesmo que "vig" ou "juice"?
Sim: overround, vig e juice descrevem a mesma margem; o PinnFeed a informa como fração (0.025 = 2,5 %).
### Qual método remove a margem?
Proporcional (multiplicativo). Se preferir outro, recalcule a partir de `decimal`.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-websocket-wscat
# Testar o WebSocket de odds da Pinnacle com wscat
**Resposta:** rode `npx wscat -c "wss://pinnfeed.io/v1/stream?key=ps_live_sua_chave&sports=soccer&main=true"`. Como a URL traz `sports`, o servidor assina na hora e envia `welcome`, `subscribed`, as partes do `snapshot` e depois frames `delta`. Sem filtros na URL, cole um `subscribe` em JSON em até 30 segundos ou o servidor fecha com `4002 no_subscription`. Precisa de uma chave Builder ou Pro.
## Opção A: filtros na URL
```bash
npx wscat -c "wss://pinnfeed.io/v1/stream?key=ps_live_your_key&sports=tennis&markets=moneyline&main=true"
```
Os filtros da URL aceitam os mesmos nomes da mensagem JSON (`sports`, `events`, `leagues`, `markets`, `live`, `main`), separados por vírgula. A assinatura automática acontece quando há `sports` ou `events`.
## Opção B: cabeçalho + JSON
```bash
npx wscat -c wss://pinnfeed.io/v1/stream -H "x-api-key: ps_live_your_key"
> {"type":"subscribe","sports":["basketball"],"markets":["spread","total"],"main":true}
```
`websocat` funciona do mesmo jeito: `websocat -H "x-api-key: ps_live_sua_chave" wss://pinnfeed.io/v1/stream`.
## Manter a conexão
O servidor envia `{"type":"ping"}` a cada 20 s e fecha o socket após 60 s sem `pong`. O wscat não responde pings JSON sozinho, então em sessões longas digite `{"type":"pong"}` ou passe para um script: [exemplo em Python](/pt-br/answers/pinnacle-odds-websocket-python-example).
## Respostas comuns ao conectar
| Você vê | Significa |
|---|---|
| `401 missing_key` / `invalid_key` | Sem chave, ou chave desconhecida ou revogada |
| `403 plan_lacks_ws` | Chave Free/Hobby: o WebSocket começa no Builder |
| `429 connection_limit` | Já há 3 (Builder) ou 10 (Pro) conexões abertas |
| fechamento `4002 no_subscription` | Nenhum subscribe em 30 s |
## Planos
[Builder](/pt-br/pricing#plan-builder) (€99/mês, 3 conexões) ou Pro (10). Teste de 3 dias; o cartão é obrigatório e a cobrança ocorre após o dia 3, a menos que você cancele. [Docs](/docs).
*Conteúdo educativo para maiores de 18 anos.*
## Perguntas frequentes
### É seguro colocar a chave na URL?
Funciona, mas URLs vão parar no histórico e nos logs. Fora de testes rápidos use o cabeçalho, e [rotacione a chave](/pt-br/answers/pinnacle-odds-api-key-rotation) se ela vazou.
### Por que a primeira mensagem é tão grande?
O snapshot contém todos os eventos e mercados dos seus filtros, em várias partes; reduza os filtros para um teste mais leve.
### Dá para ativar compressão?
O wscat não negocia permessage-deflate por padrão; muitas bibliotecas sim.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-odds-api-key-rotation
# Rotacionar ou revogar uma chave API
**Resposta:** no [painel](/dashboard), crie uma chave nova, faça o deploy e depois revogue a antiga. Uma chave revogada recebe `401 invalid_key` no REST e em novas conexões WebSocket, e qualquer WebSocket aberto com ela é fechado com o código `4001 key_revoked`. Os planos pagos aceitam até 20 chaves ativas, então a rotação sem interrupção é simples. O Free tem uma chave ativa: revogue primeiro e crie a nova depois.
## Rotação sem interrupção (planos pagos)
1. Painel → **Criar chave**, com um nome (por exemplo `bot-2026-11`). O valor completo `ps_live_...` aparece **uma única vez**; o PinnFeed guarda só um hash e os 12 primeiros caracteres.
2. Coloque a chave nova no seu gerenciador de segredos ou na variável `PINNFEED_KEY` e faça o deploy.
3. Confira no painel que o **último uso** da chave antiga parou de mudar.
4. **Revogue** a antiga. Qualquer cliente ainda nela recebe `4001` (WebSocket) ou `401` (REST).
## Tratar 4001 no código
```js
ws.on('close', (code, reason) => {
if (code === 4001) {
console.error('key revoked: load the new PINNFEED_KEY before reconnecting');
return; // do not reconnect in a loop with a dead key
}
scheduleReconnect();
});
```
## Boas práticas
- Uma chave por app ou ambiente: se vazar, você revoga só uma.
- Nunca coloque uma chave em código de navegador ou mobile; use um backend próprio.
- Prefira o cabeçalho `x-api-key` a `?key=`: URLs vão parar nos logs.
Básico: [autenticação](/pt-br/answers/pinnacle-odds-api-authentication) · [códigos de erro](/pt-br/answers/pinnacle-odds-api-error-codes).
## Planos
Free: uma chave ativa, REST, 30 s de atraso. Planos pagos: até 20 chaves ativas. [Builder](/pt-br/pricing#plan-builder) (€99/mês) adiciona o WebSocket. Teste de 3 dias; o cartão é obrigatório e a cobrança ocorre após o dia 3, a menos que você cancele.
*Conteúdo educativo para maiores de 18 anos.*
## Perguntas frequentes
### Posso ver uma chave de novo?
Não. Só o prefixo é guardado; crie outra se perdeu.
### As chaves dividem limites?
O limite REST é aplicado por chave; os limites de conexões WebSocket contam para a conta inteira.
### Posso renomear uma chave?
Sim, pelo painel; renomear não muda o valor.
---
Source: https://pinnfeed.io/pt-br/answers/pinnacle-api-access-closed
# API da Pinnacle fechada: quais são as opções?
**Resposta:** a documentação oficial da API da Pinnacle diz que o acesso à sua suíte de APIs "has been closed for the general public since July 23rd, 2025" (fechado ao público geral desde 23 de julho de 2025) e que ela oferece serviços de dados sob medida para apostadores selecionados de alto valor, parceiros comerciais, acadêmicos e projetos de handicapping pré-jogo, mediante solicitação para `api@pinnacle.com`. Se você só precisa das **odds** da Pinnacle (não de colocar apostas), um feed em autosserviço como o PinnFeed dá acesso REST e WebSocket com uma chave em um minuto. O PinnFeed é independente e não é um produto oficial da Pinnacle.
Fonte: [README do pinnacleapi-documentation no GitHub](https://github.com/pinnacleapi/pinnacleapi-documentation), consultado em 9 de novembro de 2026.
## Suas opções
| Opção | O que você recebe | Para quem |
|---|---|---|
| Pedir à Pinnacle (`api@pinnacle.com`) | O que a Pinnacle oferecer após analisar o caso | Apostadores de alto valor, parceiros comerciais, acadêmicos |
| Fazer scraping da Pinnacle | Frágil, com atraso, pode violar os termos do site | Não recomendado: [por quê](/pt-br/answers/pinnacle-odds-without-scraping) |
| Feed de odds em autosserviço (PinnFeed) | Preços da Pinnacle, odds justas, margem e maxStake via REST e WebSocket | Desenvolvedores, apostadores e analistas que precisam de dados, não de apostar via API |
## O que o PinnFeed faz e não faz
- **Faz:** odds da Pinnacle ao vivo e pré-jogo de 13 esportes, JSON normalizado, push WebSocket `snapshot` + `delta` no Builder, `/v1/drops` e registros de fechamento no Builder.
- **Não faz:** colocar apostas, mostrar seu saldo na Pinnacle nem substituir uma API de conta. Você aposta na sua própria conta, onde isso for legal para você.
## Migrar código da antiga API
O formato dos dados é diferente, então mapeie os campos uma vez:
| Você precisa | PinnFeed |
|---|---|
| Jogos | `GET /v1/events?sport=soccer` |
| Odds | `GET /v1/odds?sport=soccer` (ou o WebSocket) |
| Mudanças desde a última chamada | Frames `delta` do WebSocket em vez de polling com cursor `since` |
| Limites | `maxStake` por mercado |
Comece: [início rápido](/pt-br/quickstart) · [API da Pinnacle em autosserviço](/pt-br/answers/pinnacle-api-self-serve) · [OpenAPI](/openapi.json).
## Planos
Free: REST com 30 s de atraso, 2 esportes, 1.000 requisições por dia, sem cartão. [Builder](/pt-br/pricing#plan-builder) (€99/mês): WebSocket em tempo real, os 13 esportes e todos os mercados. Teste de 3 dias; o cartão é obrigatório e a cobrança ocorre após o dia 3, a menos que você cancele.
*Conteúdo educativo para maiores de 18 anos. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.*
## Perguntas frequentes
### A API da Pinnacle acabou de vez?
Não para todos: a Pinnacle diz que analisa pedidos de acesso sob medida. Ela só deixou de ser aberta em autosserviço ao público geral.
### O PinnFeed pode colocar apostas na Pinnacle?
Não. O PinnFeed é um feed de odds somente leitura.
### O PinnFeed é afiliado à Pinnacle?
Não. É um feed independente de preços da Pinnacle.
---
Source: https://pinnfeed.io/pt-br/use-cases
# O que dá para construir com as odds da Pinnacle
O PinnFeed é um feed em autosserviço com os preços da Pinnacle: REST em todos os planos, WebSocket em tempo real no Builder, odds justas sem margem (`fair`), `margin` e `maxStake` em cada mercado, quedas de preço em `/v1/drops` e registros de fechamento guardados no Builder. Estas páginas mostram como três grupos o usam, do que precisam e qual plano serve.
| Caso de uso | Necessidade típica | Plano mais usado |
|---|---|---|
| [Tipsters](/pt-br/use-cases/tipsters) | Registrar o preço da Pinnacle em cada palpite e informar o CLV com honestidade | Hobby ou Builder |
| [Servidores de Discord de apostas](/pt-br/use-cases/discord-servers) | Alertas de quedas e steam nos canais, consultas de odds por comando | Builder |
| [Cientistas de dados](/pt-br/use-cases/data-scientists) | JSON limpo para pandas ou R, registros de fechamento para avaliar modelos | Builder |
Se você desenvolve as próprias ferramentas, comece pelo [início rápido](/pt-br/quickstart), pelas [respostas](/pt-br/answers) ou com um assistente de IA em [vibe coding](/pt-br/vibe-coding).
## Os planos em uma linha
Free: REST com 30 s de atraso, 2 esportes, 1.000 requisições por dia. Hobby (€29/mês): REST em tempo real, 3 esportes. [Builder](/pt-br/pricing#plan-builder) (€99/mês): WebSocket, os 13 esportes, todos os mercados e histórico de fechamento. Planos pagos: teste de 3 dias; o cartão é obrigatório e a cobrança ocorre após o dia 3, a menos que você cancele.
*Conteúdo educativo para maiores de 18 anos. O PinnFeed é um feed independente, não um produto oficial da Pinnacle.*
## Perguntas frequentes
### Posso mostrar odds do PinnFeed para os meus usuários?
Mostrar valores derivados (alguns preços, odds justas, vantagens ou gráficos) dentro do seu próprio produto é permitido pela [Política de uso aceitável](/legal/acceptable-use); reexpor o feed como fonte de dados exige uma licença Enterprise.
### Existe plano para agências ou muitos clientes?
O Enterprise cobre 50 conexões WebSocket (mais sob consulta), SLA e licença comercial: contato pela página de [preços](/pt-br/pricing).
---
Source: https://pinnfeed.io/pt-br/use-cases/tipsters
# API de odds para tipsters
**Resposta:** tipsters usam o PinnFeed para anexar um preço de referência independente a cada palpite. Quando você publica uma seleção, guarde o `decimal`, o `fair` e o `maxStake` da Pinnacle para aquele resultado, com o horário; antes do início, guarde de novo o último preço da Pinnacle (ou leia o registro de fechamento no Builder). Assim o seu histórico mostra o preço que você indicou, o preço do mercado naquele momento e o closing line value, que os seguidores podem conferir em vez de confiar em prints.
## O fluxo
1. **Palpite:** encontre o mercado com `/v1/odds?sport=…&q=