Skip to Content
Referência da APIHealth Check

Verificação de Saúde

Verifique o status operacional do serviço SharpAPI, incluindo conectividade do backend e atualização dos dados.

GET /api/v1/health

Autenticação

Nenhuma autenticação necessária. Este é um endpoint público.

Exemplos de Requisições

curl -X GET "https://api.sharpapi.io/api/v1/health"

Resposta

Saudável (200)

{ "status": "ok", "version": "v1", "timestamp": "2026-02-08T15:00:00.123Z", "checks": { "redis": { "status": "ok", "latency_ms": 2 }, "data": { "status": "ok", "message": "5 sportsbook snapshots available" }, "schema": { "status": "ok", "message": "All 14 required fields present" } } }

Degradado (200)

Quando o serviço está parcialmente funcional, o status será degraded:

{ "status": "degraded", "version": "v1", "timestamp": "2026-02-08T15:00:00.123Z", "checks": { "redis": { "status": "ok", "latency_ms": 5 }, "data": { "status": "degraded", "message": "No snapshot data in Redis" }, "schema": { "status": "degraded", "message": "Schema drift: missing fields [selectionType] in draftkings snapshot" } } }

Inativo (503)

Quando o serviço não consegue funcionar, o status será down e o código de status HTTP será 503:

{ "status": "down", "version": "v1", "timestamp": "2026-02-08T15:00:00.123Z", "checks": { "redis": { "status": "down", "message": "Redis unreachable" } } }

Cabeçalhos de Resposta

X-Request-Id: req_health456def

O endpoint de saúde não retorna cabeçalhos de rate limit nem cabeçalhos de tier, pois não requer autenticação.

Campos da Resposta

Campos de Nível Superior

CampoTipoDescrição
statusstringStatus geral do sistema: ok, degraded ou down
versionstringVersão atual da API
timestampstringTimestamp ISO 8601 desta verificação de saúde
checksobjectVerificações individuais de saúde dos subsistemas

Valores de Status

StatusCódigo HTTPSignificado
ok200Todos os sistemas operacionais
degraded200Funcional, mas com desempenho reduzido ou dados desatualizados
down503Serviço indisponível

Verificação do Redis

CampoTipoDescrição
statusstringStatus de conectividade com o Redis: ok ou down
latency_msnumber | nullLatência de ida e volta até o Redis em milissegundos
messagestringMensagem de status legível para humanos

Verificação de Dados

CampoTipoDescrição
statusstringStatus de atualização dos dados: ok ou degraded
messagestringMensagem de status legível para humanos (ex.: “5 sportsbook snapshots available”)

Verificação de Schema

Incluída apenas em requisições GET (não em HEAD). Verifica se os dados de snapshot upstream contêm todos os campos obrigatórios.

CampoTipoDescrição
statusstringStatus de compatibilidade do schema: ok ou degraded
messagestringMensagem de status legível para humanos (ex.: “All 14 required fields present”)

Lógica de Status

O status geral é determinado pela pior verificação individual:

  • ok - Todas as verificações estão ok
  • degraded - Pelo menos uma verificação está degraded, nenhuma está down
  • down - Pelo menos uma verificação está down

Disponibilidade dos Dados

CondiçãoStatusDescrição
1+ snapshots de sportsbookokDados de snapshot disponíveis no Redis
0 snapshots no RedisdegradedNenhum dado de snapshot encontrado
Redis inacessível(não verificado)A verificação de dados é ignorada quando o Redis está inativo

Casos de Uso

Monitoramento e Alertas

Use o endpoint de saúde em sua stack de monitoramento (Prometheus, Datadog, UptimeRobot, etc.) para detectar problemas:

# Simple health check for monitoring scripts STATUS=$(curl -s https://api.sharpapi.io/api/v1/health | jq -r '.status') if [ "$STATUS" != "ok" ]; then echo "ALERT: SharpAPI status is $STATUS" fi

Verificação de Saúde Pré-Requisição

Verifique a saúde antes de fazer requisições críticas:

async function safeRequest(endpoint) { const health = await fetch('https://api.sharpapi.io/api/v1/health') .then(r => r.json()); if (health.status === 'down') { throw new Error('SharpAPI is currently down'); } if (health.status === 'degraded') { console.warn('SharpAPI is degraded - data may be stale'); } return fetch(`https://api.sharpapi.io/api/v1${endpoint}`, { headers: { 'X-API-Key': 'YOUR_API_KEY' } }).then(r => r.json()); }

Painel de Uptime

import requests from datetime import datetime response = requests.get('https://api.sharpapi.io/api/v1/health') health = response.json() print(f"SharpAPI Status: {health['status'].upper()}") print(f"Version: {health['version']}") print(f"Checked at: {health['timestamp']}") print() for name, check in health['checks'].items(): status_icon = {'ok': 'PASS', 'degraded': 'WARN', 'down': 'FAIL'} print(f" [{status_icon.get(check['status'], '???')}] {name}: {check.get('message', 'healthy')}") if name == 'redis' and check.get('latency_ms') is not None: print(f" Latency: {check['latency_ms']}ms")

Endpoints Relacionados

Last updated on