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/healthAutenticação
Nenhuma autenticação necessária. Este é um endpoint público.
Exemplos de Requisições
cURL
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_health456defO 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
| Campo | Tipo | Descrição |
|---|---|---|
status | string | Status geral do sistema: ok, degraded ou down |
version | string | Versão atual da API |
timestamp | string | Timestamp ISO 8601 desta verificação de saúde |
checks | object | Verificações individuais de saúde dos subsistemas |
Valores de Status
| Status | Código HTTP | Significado |
|---|---|---|
ok | 200 | Todos os sistemas operacionais |
degraded | 200 | Funcional, mas com desempenho reduzido ou dados desatualizados |
down | 503 | Serviço indisponível |
Verificação do Redis
| Campo | Tipo | Descrição |
|---|---|---|
status | string | Status de conectividade com o Redis: ok ou down |
latency_ms | number | null | Latência de ida e volta até o Redis em milissegundos |
message | string | Mensagem de status legível para humanos |
Verificação de Dados
| Campo | Tipo | Descrição |
|---|---|---|
status | string | Status de atualização dos dados: ok ou degraded |
message | string | Mensagem 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.
| Campo | Tipo | Descrição |
|---|---|---|
status | string | Status de compatibilidade do schema: ok ou degraded |
message | string | Mensagem 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ção | Status | Descrição |
|---|---|---|
| 1+ snapshots de sportsbook | ok | Dados de snapshot disponíveis no Redis |
| 0 snapshots no Redis | degraded | Nenhum 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"
fiVerificaçã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
- Informações da Conta - Verifique o status e os limites da sua conta
- Visão Geral da Referência da API - Documentação completa da API