Health

Lightweight liveness probe scoped to the authenticated workspace. Confirms the API is reachable, your key is valid, and returns your workspace identity and plan.

Use this when

  • Smoke-testing a new API key before wiring it into your app.
  • Confirming which workspace and plan a key belongs to.
  • Powering an external uptime monitor or readiness check in CI.
MethodGET
Path/api/v1/health
AuthBearer
Credits0

Request

No body. No query parameters.

Response

FieldTypeDescription
statusstringAlways `"healthy"` when the endpoint returns 200.
workspace_iduuidID of the workspace owning the API key used on this request.
plan_namestringPlan identifier for the workspace (e.g. `"free"`).

Example response

{
  "ok": true,
  "data": {
    "status": "healthy",
    "workspace_id": "8f3a1c20-9b4e-4d77-bc1e-3e5a7d2c9f10",
    "plan_name": "free"
  }
}

Example

curl https://www.gyrence.com/api/v1/health \
  -H "Authorization: Bearer $GYRENCE_API_KEY"

Errors

CodeTypeDescription
unauthorized401Missing or invalid `Authorization: Bearer <key>` header.
unavailable503"health check unavailable" — the workspace plan lookup (`get_plan_name` RPC) failed. Retry with backoff.
Credits

0 credits per call regardless of frequency. Calls are still recorded in usage_events for audit.

What this does NOT check

A 200 here only confirms the Gyrence API, your API key, and the workspace plan lookup are alive. It does not probe Brave Search, the headless-browser worker, or the AI Gateway. Search, Fetch (browser tier), and Extract can be degraded independently.

Unauthenticated probe

For a public liveness check (no API key, no workspace context), call GET /api/public/health. Unlike the authenticated endpoint, the response is not wrapped in the standard envelope:

{
  "status": "ok",
  "timestamp": "2026-05-30T18:42:00.000Z",
  "uptime": 1284.31
}

Use this when you can't safely embed an API key (e.g. status-page pingers).