01

Visão Geral

A Zuryon Odds Engine é uma infraestrutura de coleta e entrega de odds pré-jogo em tempo real. O sistema monitora mais de 250 casas de apostas em paralelo e entrega os dados organizados por esporte → competição → evento → mercado diretamente no seu sistema via Webhook HTTPS.

Apenas odds de pré-jogo são processadas. Quando um evento começa, os dados são automaticamente removidos do sistema, garantindo que você sempre trabalhe com informações relevantes para arbitragem.

250+
Casas Monitoradas
99.9%
Uptime Médio
<200ms
Latência Média
60+
Mercados Cobertos
02

Autenticação

Todas as requisições à API REST devem incluir o header Authorization com sua API key no formato Bearer zoe_.... As API keys são geradas no painel administrativo e têm escopo configurável por módulo.

Exemplo de autenticaçãoGET
// Toda requisição deve incluir o header Authorization
GET https://api.zuryon.com/v1/bookmakers
Authorization: Bearer zoe_sua_api_key_aqui
Content-Type: application/json

Importante: Nunca exponha sua API key no frontend. Sempre faça as chamadas pelo seu backend.

03

Webhook

O sistema entrega odds via POST HTTPS para o endpoint configurado no painel. Cada entrega inclui um header X-Zuryon-Signature com assinatura HMAC-SHA256 para verificação de autenticidade.

🔒
HMAC-SHA256
Cada entrega é assinada com sua chave secreta
Retry automático
3 tentativas em caso de falha (5s, 30s, 2min)
📦
Payload estruturado
JSON organizado por esporte → competição → evento
Verificação da assinatura — Node.jsNode.js
// Node.js — Verificar assinatura HMAC-SHA256
const crypto = require('crypto');

function verifySignature(payload, signature, secret) {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(payload)
    .digest('hex');
  return `sha256=${expected}` === signature;
}

// No seu handler de webhook:
app.post('/odds-webhook', (req, res) => {
  const sig = req.headers['x-zuryon-signature'];
  const body = JSON.stringify(req.body);
  
  if (!verifySignature(body, sig, process.env.WEBHOOK_SECRET)) {
    return res.status(401).json({ error: 'Assinatura inválida' });
  }
  
  // Processar odds...
  res.json({ received: true });
});
04

Formato do Payload

O payload é entregue em JSON com estrutura hierárquica: esporte → competição → evento → mercados. Cada evento inclui o horário de início em UTC e os mercados disponíveis com as odds de cada casa.

Exemplo de payload — odds.updateJSON
POST https://seu-endpoint.com/odds-webhook
Content-Type: application/json
X-Zuryon-Signature: sha256=<hmac_sha256>
X-Zuryon-Timestamp: 1709123456789

{
  "event": "odds.update",
  "timestamp": 1709123456789,
  "data": {
    "football": {
      "Brasileirão Série A": {
        "Flamengo vs Palmeiras": {
          "commence_time": "2024-03-10T20:00:00Z",
          "markets": {
            "h2h": {
              "Flamengo": 2.10,
              "Palmeiras": 3.40,
              "Empate": 3.20
            },
            "totals": {
              "over_2.5": 1.85,
              "under_2.5": 1.95
            }
          }
        }
      }
    }
  }
}
05

Esportes e Mercados

O sistema cobre os principais esportes e mercados para arbitragem pré-jogo. A cobertura é expandida continuamente conforme demanda dos clientes.

Futebol
1X2, Handicap, Over/Under, Ambas Marcam
Basquete
Moneyline, Spread, Totais
Tênis
Vencedor, Sets, Games
Vôlei
Vencedor, Sets, Totais
Hóquei no Gelo
Moneyline, Puck Line, Totais
Beisebol
Moneyline, Run Line, Totais
MMA/UFC
Vencedor, Método de Vitória
Rugby
Vencedor, Handicap, Totais
E-Sports
Vencedor, Mapas
06

Erros e Códigos HTTP

CódigoSignificadoAção Recomendada
200SucessoProcessar normalmente
400Requisição inválidaVerificar parâmetros enviados
401Não autorizadoVerificar API key ou assinatura HMAC
403Acesso negadoVerificar permissões da API key
429Rate limit excedidoAguardar e tentar novamente (Retry-After header)
500Erro internoAguardar e tentar novamente em 30s
07

Quickstart — 5 minutos

Com sua API key em mãos, você consegue receber odds em menos de 5 minutos. Basta configurar um endpoint HTTPS que aceite POST e registrá-lo no painel.

Servidor de webhook completo — Node.js / ExpressNode.js
// 1. Instale o pacote de utilitários (opcional)
npm install axios crypto

// 2. Configure seu endpoint de webhook
const express = require('express');
const crypto = require('crypto');
const app = express();

app.use(express.json());

app.post('/webhook/odds', (req, res) => {
  // Verificar assinatura
  const signature = req.headers['x-zuryon-signature'];
  const hmac = crypto.createHmac('sha256', process.env.WEBHOOK_SECRET);
  const digest = 'sha256=' + hmac.update(JSON.stringify(req.body)).digest('hex');
  
  if (signature !== digest) {
    return res.status(401).send('Unauthorized');
  }

  const { event, data } = req.body;
  
  if (event === 'odds.update') {
    // Processar odds por esporte
    for (const [sport, competitions] of Object.entries(data)) {
      for (const [competition, events] of Object.entries(competitions)) {
        for (const [eventName, eventData] of Object.entries(events)) {
          console.log(`[${sport}] ${competition} — ${eventName}`);
          console.log('Mercados:', eventData.markets);
        }
      }
    }
  }

  res.json({ ok: true });
});

app.listen(3000, () => console.log('Webhook server rodando na porta 3000'));

Pronto para integrar?

Solicite seu acesso e receba sua API key em até 24 horas.