On the wire · 05:18:04 UTC Live 604 · Prematch 14,341 · Markets 57,209 Vol. I · No. 5 · Friday 13 November 2026 wss://pinnfeed.io/v1/stream
PinnFeed
Resposta · Bots · Arquitetura

Arquitetura de um bot de apostas com odds da Pinnacle

Atualizado em · PinnFeed · 2 min de leitura

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#

ParteO que fazCom o PinnFeed
IngestãoManter uma conexão aberta, responder ping com pong, reconectar com backoffwss://pinnfeed.io/v1/stream (Python, Node)
EstadoMapa de market.id → último mercado; remover com op: "remove"snapshot/delta
SinaisQueda de preço, oferta acima de fair, mudança de linhasteam, filtro de EV
RiscoLimites de stake, maxStake >= 100, exposição máxima por evento, botão de paradaSeu código
ExecuçãoFazer a aposta, registrar preço e resultadoSua casa de apostas ou exchange

Loop mínimo de sinais (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, Rust, Kotlin). Registre cada sinal e cada decisão para medir depois contra o fechamento: planilha de apostas com 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 (€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.

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.

O plano WebSocket: Builder, €99/mês.

Odds da Pinnacle em tempo real por um único WebSocket: os 13 esportes, todos os mercados, odds justas sem margem e odds de fechamento. 3 dias grátis, cancele com um clique.

Form K-1 · Free API key

Get your free API key.

One field. No password, no card: enter your email, click the link we send, and your key is on screen.

By continuing you agree to the Terms and Privacy Policy.

One free key per email. Link valid for 20 minutes.