Skip to Content
Referencia de la APIComprobación de estado

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/health

Autenticación

No requiere autenticación. Este es un endpoint público.

Ejemplos de solicitudes

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_health456def

El 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

CampoTipoDescripción
statusstringEstado general del sistema: ok, degraded o down
versionstringVersión actual de la API
timestampstringMarca de tiempo ISO 8601 de esta comprobación de estado
checksobjectComprobaciones de salud de subsistemas individuales

Valores de estado

EstadoCódigo HTTPSignificado
ok200Todos los sistemas operativos
degraded200Funcional pero con rendimiento reducido o datos obsoletos
down503El servicio no está disponible

Comprobación de Redis

CampoTipoDescripción
statusstringEstado de conectividad con Redis: ok o down
latency_msnumber | nullLatencia de ida y vuelta a Redis en milisegundos
messagestringMensaje de estado legible para humanos

Comprobación de datos

CampoTipoDescripción
statusstringEstado de frescura de los datos: ok o degraded
messagestringMensaje 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.

CampoTipoDescripción
statusstringEstado de compatibilidad del esquema: ok o degraded
messagestringMensaje 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 es down
  • down - Al menos una comprobación es down

Disponibilidad de datos

CondiciónEstadoDescripción
1 o más snapshots de sportsbookokDatos de snapshot disponibles en Redis
0 snapshots en RedisdegradedNo 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" fi

Verificació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

Last updated on