> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ryzeapi.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Health

> Combined probe, process, database and optional dependencies

**Auth:** None • **Rate limit:** Bypass (outside the global limit) • **Idempotent:** yes

## Description

**Open** endpoint (no token) that returns a snapshot of the API's state based on dependency checks (DB always, plus optional probes such as S3 when configured). Bypasses rate limit and CORS so external monitors can query it without credentials.

## Example

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET "https://ryzeapi.cloud/health"
  ```
</RequestExample>

## Response, healthy

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "status": "ok",
    "service": "RyzeAPI",
    "uptime": "12h34m56s",
    "timestamp": "2026-04-28T14:35:21Z",
    "checks": {
      "db": "ok"
    }
  }
  ```
</ResponseExample>

## Response, degraded

```json 503 Service Unavailable theme={null}
{
  "status": "degraded",
  "service": "RyzeAPI",
  "uptime": "12h34m56s",
  "timestamp": "2026-04-28T14:35:21Z",
  "checks": {
    "db": "fail: connection refused"
  }
}
```

## Fields

| Field       | Description                                                                             |
| ----------- | --------------------------------------------------------------------------------------- |
| `status`    | `"ok"` when all checks pass, `"degraded"` when any fail.                                |
| `service`   | Always `"RyzeAPI"`.                                                                     |
| `uptime`    | Time since the process booted, in Go duration format (e.g., `12h34m56s`, `1h2m3.456s`). |
| `timestamp` | Response time in RFC 3339 (UTC).                                                        |
| `checks`    | Map `name → "ok" \| "fail: <reason>"` for each verified dependency.                     |

<Note>
  Entries in `checks` appear conditionally: `db` is always present; other dependencies (e.g., `s3`) only appear when configured on the server.
</Note>

## Use in uptime monitors

Point a monitoring service (UptimeRobot, Better Stack, Pingdom, etc.) at `GET /health`:

* `200` → API healthy.
* `503` → API degraded, fire the alert.

## Notes

* No need to send the `token` header. Tokens sent are ignored.
* The endpoint **does not count** toward the global limit of `100 req/min`, and can be called without restriction by external probes.

## Related

<CardGroup cols={2}>
  <Card title="Overview" icon="heart-pulse" href="/en/api/observability/overview">
    Where the endpoint sits in the API lifecycle.
  </Card>

  <Card title="Error types" icon="triangle-exclamation" href="/en/guide/errors">
    Table of HTTP statuses used by RyzeAPI.
  </Card>
</CardGroup>
