Health
GET /api/v1/health does double duty depending on whether you pass a url.
Liveness — no url
Section titled “Liveness — no url”curl -H "Authorization: Bearer $FIXEM_API_KEY" \ "https://fixem.be/api/v1/health"{ "ok": true, "redis": true }ok confirms the service is up; redis reports cache-store reachability. Note
the service runs fine with redis: false — the cache fails open — so treat
redis: false as degraded caching, not an outage.
For an unauthenticated liveness check, the public GET /healthz returns the same
{ok, redis} shape without a key.
Adapter check — with url
Section titled “Adapter check — with url”Pass a url and health runs a real resolve, returning a compact,
JSONPath-friendly outcome. This is what an uptime monitor asserts on:
curl -H "Authorization: Bearer $FIXEM_API_KEY" \ "https://fixem.be/api/v1/health?url=https://www.tiktok.com/@nasa/video/123"{ "platform": "tiktok", "status": "ok", "kind": "video", "hasMedia": true, "cacheHit": false, "canonicalUrl": "https://www.tiktok.com/@nasa/video/123", "title": "…"}hasMediais the key signal:truewhen the adapter produced a real image or video. If a platform changes and the embed degrades to a bare link,hasMediaflips tofalse.- A
no-adapterordegradedoutcome returns the matching shape withhasMedia: false.
A malformed url returns 400.