Feed B2B das casas de aposta que operam no Brasil sob a Lei 14.790/2023. Você assina um WebSocket, escolhe jogos e mercados, e recebe um stream contínuo de deltas normalizados — sem precisar conhecer a API de cada casa.
$ python client.py --subscribe sportingbet:18229384
connected client_id=c_7f3a tier=stream-pilot
subscribed filter_id=f1 markets=match_winner,total_goals
delta match_winner home 2.05 → 2.10
delta total_goals o2.5 1.87 → 1.83
delta match_winner away 3.60 → 3.45
delta total_goals u2.5 1.95 → 2.00
…stream contínuo enquanto a conexão durar
Uma diferença lucrativa entre odds pode durar menos de um segundo. Cada decisão da nossa arquitetura — linguagem, formato de payload, ausência de broker no hot path — usa latência como critério de desempate.
~19 ms
latência interna p99
da captura no extrator ao despacho no WebSocket
0
brokers no hot path
pipeline direto worker → Redis → WebSocket, sem filas intermediárias
1.000+/s
deltas por segundo
throughput atual; pico validado em carga de 30 min
21+ dias
de uptime contínuo
sem um único restart, no nosso ambiente de produção
Números medidos no nosso ambiente de produção e monitorados continuamente via Prometheus + Grafana. Latência interna (captura → despacho); a latência fim-a-fim no cliente depende também da rede entre você e a gente.
Três estágios, cada um isolado do outro: se um conector de casa quebra, o resto do pipeline continua entregando.
Conectores dedicados por casa de aposta, rodando em infraestrutura no Brasil (casas BR exigem IP nacional). Cada casa é um módulo independente — falha contida, sem efeito dominó.
Cada atualização vira um delta tipado, validado e com identificadores canônicos de mercado. A odd da Sportingbet e a da Betano chegam no mesmo formato — quem traduz cada casa somos nós.
Snapshot via REST para reconciliar o estado, WebSocket para os updates dali em diante. Catálogo unificado de competições, casas e mercados em GET /v1/catalog.
Construído para quem perde dinheiro com informação atrasada — não para o apostador final.
Equipes operando vários robôs em paralelo. Ingerem o WebSocket direto no robô interno e executam em segundos, com contrato técnico estável e versionado.
Você já tem o bot — falta um feed simples e rápido. Um WebSocket, uma API key, primeiro delta na tela em menos de uma hora.
Consuma as odds das principais casas do mercado para referenciar e ajustar suas próprias linhas em tempo real.
Qualquer linguagem com HTTP e WebSocket serve. O fluxo é sempre o mesmo:
GET /v1/catalog — competições, casas e mercados disponíveis no seu tier.GET /v1/matches — liste os jogos (eventos aparecem com dias de antecedência; assine cedo).subscribe com os match_ids e mercados que interessam.GET /v1/matches/{id} devolve o snapshot completo para reconciliar.Cliente exemplo em Python, quickstart completo e referência da API entregues no onboarding.
import asyncio, json
import websockets
async def stream():
url = "wss://api.oddsstream.example/v1/stream?api_key=ok_..."
async with websockets.connect(url) as ws:
welcome = json.loads(await ws.recv())
print("connected:", welcome["client_id"])
await ws.send(json.dumps({
"cmd": "subscribe",
"request_id": "r1",
"filter": {
"match_ids": ["sportingbet:18229384"],
"market_kinds": ["match_winner", "total_goals"],
},
}))
async for raw in ws:
print(json.loads(raw)) # seu robô decide a partir daqui
asyncio.run(stream())
{
"id": "sportingbet:18229384",
"bookmaker_id": "sportingbet",
"competition_id": "sportingbet:brasileirao_serie_a",
"status": "live",
"participants": [
{ "name": "Flamengo", "role": "home" },
{ "name": "Palmeiras", "role": "away" }
],
"markets": [
{
"kind": "match_winner",
"is_active": true,
"selections": [
{ "selection_id": "home", "value": "2.10", "sequence_number": 412 },
{ "selection_id": "draw", "value": "3.25", "sequence_number": 410 },
{ "selection_id": "away", "value": "3.45", "sequence_number": 412 }
]
},
{
"kind": "total_goals",
"parameters": { "line": 2.5 },
"is_active": true,
"selections": [
{ "selection_id": "over", "value": "1.83", "sequence_number": 377 },
{ "selection_id": "under", "value": "2.00", "sequence_number": 377 }
]
}
]
}
Hoje, Sportingbet com catálogo aberto de mercados. Betano é a próxima do roadmap, e a expansão seguinte é guiada pela demanda dos clientes. Cada casa expõe seus próprios identificadores de match — entregamos os feeds em paralelo, sem misturar dados entre casas.
Não. Somos exclusivamente um pipeline de dados: não operamos no book de nenhuma casa, não calculamos oportunidades e não decidimos o que apostar. A inteligência é sua; a infraestrutura de informação é nossa.
APIs de odds tradicionais entregam snapshots a cada 30–60 segundos — inúteis para arbitragem. Aqui cada mudança de odd vira um delta empurrado pelo WebSocket no momento em que é capturada, com latência interna p99 de ~19 ms. Não competimos com agregadores de baixa frequência; esse é exatamente o nosso diferencial.
Onboarding direto com a gente: você recebe uma API key com um tier (REST com cache ou REST + stream WebSocket; quota de requisições; escopo de mercados). Estamos em fase piloto — entre em contato e montamos um plano para o seu caso, com suporte direto por WhatsApp e e-mail.
O modelo é snapshot + stream: ao reconectar, você chama GET /v1/matches/{id} e recebe o estado completo e atual do jogo (com número de sequência por seleção), e o WebSocket segue dali em diante. Sem janela cega e sem precisar reconstruir histórico.
Fase piloto com vagas limitadas. Conte o que você opera e montamos o acesso — primeiro delta na tela em menos de uma hora.
Solicitar acesso piloto