Comprobación de estado
Comprueba el estado operativo del servicio SharpAPI, incluyendo la conectividad del backend y la frescura de los datos.
GET /api/v1/healthAutenticación
No requiere autenticación. Este es un endpoint público.
Ejemplos de solicitudes
cURL
curl -X GET "https://api.sharpapi.io/api/v1/health"Respuesta
Correcto (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)
Cuando el servicio es parcialmente funcional, el estado 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"
}
}
}Caído (503)
Cuando el servicio no puede funcionar, el estado será down y el código de estado HTTP será 503:
{
"status": "down",
"version": "v1",
"timestamp": "2026-02-08T15:00:00.123Z",
"checks": {
"redis": {
"status": "down",
"message": "Redis unreachable"
}
}
}Cabeceras de respuesta
X-Request-Id: req_health456defEl endpoint de health no devuelve cabeceras de límite de peticiones (rate limit) ni cabeceras de nivel (tier), ya que no requiere autenticación.
Campos de respuesta
Campos de nivel superior
| Campo | Tipo | Descripción |
|---|---|---|
status | string | Estado general del sistema: ok, degraded o down |
version | string | Versión actual de la API |
timestamp | string | Marca de tiempo ISO 8601 de esta comprobación de estado |
checks | object | Comprobaciones de salud de subsistemas individuales |
Valores de estado
| Estado | Código HTTP | Significado |
|---|---|---|
ok | 200 | Todos los sistemas operativos |
degraded | 200 | Funcional pero con rendimiento reducido o datos obsoletos |
down | 503 | El servicio no está disponible |
Comprobación de Redis
| Campo | Tipo | Descripción |
|---|---|---|
status | string | Estado de conectividad con Redis: ok o down |
latency_ms | number | null | Latencia de ida y vuelta a Redis en milisegundos |
message | string | Mensaje de estado legible para humanos |
Comprobación de datos
| Campo | Tipo | Descripción |
|---|---|---|
status | string | Estado de frescura de los datos: ok o degraded |
message | string | Mensaje de estado legible para humanos (p. ej., “5 sportsbook snapshots available”) |
Comprobación de esquema
Incluida solo en peticiones GET (no en HEAD). Verifica que los datos de snapshot upstream contengan todos los campos requeridos.
| Campo | Tipo | Descripción |
|---|---|---|
status | string | Estado de compatibilidad del esquema: ok o degraded |
message | string | Mensaje de estado legible para humanos (p. ej., “All 14 required fields present”) |
Lógica del estado
El status general se determina por la peor comprobación individual:
- ok - Todas las comprobaciones son
ok - degraded - Al menos una comprobación es
degraded, ninguna esdown - down - Al menos una comprobación es
down
Disponibilidad de datos
| Condición | Estado | Descripción |
|---|---|---|
| 1 o más snapshots de sportsbook | ok | Datos de snapshot disponibles en Redis |
| 0 snapshots en Redis | degraded | No se encontraron datos de snapshot |
| Redis inalcanzable | (no se comprueba) | La comprobación de datos se omite cuando Redis está caído |
Casos de uso
Monitorización y alertas
Usa el endpoint de health en tu stack de monitorización (Prometheus, Datadog, UptimeRobot, etc.) para detectar incidencias:
# 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"
fiVerificación de salud previa a la solicitud
Comprueba la salud antes de realizar peticiones 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());
}Panel 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
- Información de la cuenta - Comprueba el estado y los límites de tu cuenta
- Resumen de la referencia de la API - Documentación completa de la API