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ónPermalink for this section

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

Ejemplos de solicitudesPermalink for this section

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

RespuestaPermalink for this section

Correcto (200)Permalink for this section

{ "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)Permalink for this section

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)Permalink for this section

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 respuestaPermalink for this section

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 respuestaPermalink for this section

Campos de nivel superiorPermalink for this section

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 estadoPermalink for this section

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

Comprobación de RedisPermalink for this section

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 datosPermalink for this section

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 esquemaPermalink for this section

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 estadoPermalink for this section

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 datosPermalink for this section

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 usoPermalink for this section

Monitorización y alertasPermalink for this section

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 solicitudPermalink for this section

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 uptimePermalink for this section

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 relacionadosPermalink for this section

Last updated on