Skip to Content
API-ReferenzHealth Check

Health Check

Überprüfen Sie den Betriebsstatus des SharpAPI-Dienstes, einschließlich Backend-Konnektivität und Datenaktualität.

GET /api/v1/health

Authentifizierung

Keine Authentifizierung erforderlich. Dies ist ein öffentlicher Endpoint.

Beispielanfragen

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

Antwort

Healthy (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" } } }

Degraded (200)

Wenn der Dienst nur teilweise funktionsfähig ist, lautet der Status 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" } } }

Down (503)

Wenn der Dienst nicht funktionsfähig ist, lautet der Status down und der HTTP-Statuscode ist 503:

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

Antwort-Header

X-Request-Id: req_health456def

Der Health-Endpoint gibt keine Rate-Limit-Header oder Tier-Header zurück, da keine Authentifizierung erforderlich ist.

Antwortfelder

Top-Level-Felder

FeldTypBeschreibung
statusstringGesamtsystemstatus: ok, degraded oder down
versionstringAktuelle API-Version
timestampstringISO 8601-Zeitstempel dieser Health-Prüfung
checksobjectEinzelne Subsystem-Health-Prüfungen

Statuswerte

StatusHTTP-CodeBedeutung
ok200Alle Systeme betriebsbereit
degraded200Funktionsfähig, jedoch mit reduzierter Leistung oder veralteten Daten
down503Dienst ist nicht verfügbar

Redis-Prüfung

FeldTypBeschreibung
statusstringRedis-Konnektivitätsstatus: ok oder down
latency_msnumber | nullRound-Trip-Latenz zu Redis in Millisekunden
messagestringMenschenlesbare Statusmeldung

Datenprüfung

FeldTypBeschreibung
statusstringStatus der Datenaktualität: ok oder degraded
messagestringMenschenlesbare Statusmeldung (z. B. “5 sportsbook snapshots available”)

Schemaprüfung

Nur bei GET-Anfragen enthalten (nicht bei HEAD). Überprüft, ob die Upstream-Snapshot-Daten alle erforderlichen Felder enthalten.

FeldTypBeschreibung
statusstringSchemakompatibilitätsstatus: ok oder degraded
messagestringMenschenlesbare Statusmeldung (z. B. “All 14 required fields present”)

Statuslogik

Der Gesamtstatus status wird durch die schlechteste Einzelprüfung bestimmt:

  • ok – Alle Prüfungen sind ok
  • degraded – Mindestens eine Prüfung ist degraded, keine ist down
  • down – Mindestens eine Prüfung ist down

Datenverfügbarkeit

BedingungStatusBeschreibung
1+ Sportsbook-SnapshotsokSnapshot-Daten in Redis verfügbar
0 Snapshots in RedisdegradedKeine Snapshot-Daten gefunden
Redis nicht erreichbar(nicht geprüft)Die Datenprüfung wird übersprungen, wenn Redis ausgefallen ist

Anwendungsfälle

Monitoring und Alarmierung

Verwenden Sie den Health-Endpoint in Ihrem Monitoring-Stack (Prometheus, Datadog, UptimeRobot usw.), um Probleme zu erkennen:

# 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

Health-Prüfung vor Anfragen

Überprüfen Sie die Verfügbarkeit, bevor Sie kritische Anfragen stellen:

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()); }

Uptime-Dashboard

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")

Verwandte Endpoints

Last updated on