meta

Readiness: database, migrations, provider keys, provider status

For monitoring and for the web: a timed database round trip, whether every migration this code needs is applied, whether each provider key is configured (never a value), and provider_status: whether the language model or the search provider is refusing right now, read from how recent runs ended (cached 30 seconds, never a paid probe), and for the search provider our own credits_left (read in the background at most every 10 minutes from its free balance endpoint, never on this request), low (under HD_SEARCH_CREDITS_LOW) and accepting_runs (false while it refuses us: new runs are then 503 search_unavailable). A refusing provider does not make this 503; it is a warning for new runs. fallback_providers says whether the optional anthropic model fallback is configured (never a value); it never makes this degraded. commit is the git commit the image was built from ("unknown" outside a deploy), and credits_today is how much of the global daily research ceiling is reserved (UTC day). database.state is "up", "busy" or "down". Busy means every pooled connection is in use: it answers 200 with status ok, the schema as last read, and no provider_status.

get/health/deep

Request

  • Base URL: https://api.hookdetector.com (the document declares no server; this is the origin it was published from)
  • URL: https://api.hookdetector.com/health/deep
  • Auth: none declared

Response

Successful Response

statusstring required
versionstring required
databaseobject required
schemaobject required
providersobject required
fallback_providersobject nullable

optional providers, configured or not (never a value): anthropic, the model fallback. Unlike providers, a missing one never makes status degraded

modelobject nullable

the language model plan, names only: {"primary": "anthropic" or "openai", "name" (e.g. claude-haiku-5-5), "effort" (e.g. xhigh, null for OpenAI), "backup", "speech": the provider that hears dialect clips first, "speech_backup": the one behind it, "anthropic_keys": how many Anthropic keys are in the chain, "anthropic_keys_spent": the chain positions (1 is the main key) this process found out of credit or refused in the last 10 minutes, positions only}

commitstring nullable

the git commit this image was built from; "unknown" outside a deploy

Example response

{
  "database": {
    "latency_ms": 3.1,
    "state": "up",
    "up": true
  },
  "fallback_providers": {
    "anthropic": true
  },
  "provider_status": {
    "model": {
      "last_success_at": "2026-09-23T10:00:00.000000+00:00",
      "state": "ok"
    },
    "refusing": false,
    "search": {
      "accepting_runs": true,
      "credits_checked_at": "2026-09-23T10:00:00.000000+00:00",
      "credits_left": 12000,
      "low": false,
      "low_threshold": 3500,
      "state": "unknown"
    },
    "source": "how recent runs and chat turns ended",
    "window_minutes": 30
  },
  "providers": {
    "openai": true,
    "scrapecreators": true
  },
  "schema": {
    "current": true,
    "missing": []
  },
  "status": "ok",
  "version": "2.1.0"
}

Changes

No recorded changes to this operation across all 1 revision of this API.