---
title: "Readiness"
method: GET
path: "/readyz"
tags: ["Health"]
---

# Readiness

`GET /readyz`

## Request

- Base URL: `https://api.spicrawl.com`
- URL: `https://api.spicrawl.com/readyz`
- Auth: none required

Outside `/v1` and unauthenticated. Checks Postgres, Redis (when configured) and each configured
data-plane worker (`fetch`, `extract`, `render`) with a 2-second budget, and reports whether the
process is draining. Returns 503 with the same body shape (not a Problem) when any check fails. Stop
routing to this instance on 503; do not restart it.

## Response `200`

Ready for traffic.

- HealthReady
  - `status` 'ready' | 'not_ready', required: `ready` with HTTP 200; `not_ready` with HTTP 503.
  - `checks` object, required: Per-dependency result. Keys: `postgres`, `redis` (when configured), `fetch`, `extract`, `render` (configured workers), and `accepting` (present only as `draining` during shutdown).
    - `accepting` 'draining': Present only while the process is shutting down.
    - `postgres` 'ok' | 'unreachable'
    - `redis` 'ok' | 'unreachable'

## Other responses

- `503`: Not ready. `checks` names what failed. This body is plain JSON, not a Problem.

---

[API](https://skmtc.dev/spicrawl/apis/spicrawl-api.md) · [All operations](https://skmtc.dev/spicrawl/apis/spicrawl-api/llms.txt) · [OpenAPI document](https://skmtc.dev/spicrawl/apis/spicrawl-api/revisions/c4b4c6f97219?raw)
