---
title: Ready
description: Check whether the cluster is ready to serve requests.
doc_version: 0.1.0-preview
last_updated: 2026-09-14
---

# Ready

`GET /ready`

Check whether the cluster is ready to serve requests.

**Permission:** No API key required.

Returns 503 when a required dependency or configuration is unavailable, or writes are paused.

## Example request

```http
GET /ready HTTP/1.1
Host: engine.example.com
```

## Responses

### 200 · Success

The cluster is ready.

Content type: `application/json`.

#### Response headers

##### `x-request-id`

**string · required**

Request correlation ID. Retain it when investigating a failed or unexpected request.

```json
{
  "status": "ok"
}
```

#### Response fields

##### `status`

**"ok" · optional**

ok means this health or readiness check succeeded.

Default: `"ok"`.

## Errors

[Error format and retry guidance](/engine/reference/errors.md).

### 503 · `temporarily_unavailable`

A dependency, cluster readiness condition, or capacity limit prevents this operation.

Inspect retryable and details. Retry only when permitted, preserving the idempotency key for the same write.

```json
{
  "error": {
    "code": "temporarily_unavailable",
    "message": "A dependency, cluster readiness condition, or capacity limit prevents this operation.",
    "request_id": "req_example",
    "retryable": true,
    "details": {}
  }
}
```

### 500 · `internal_error`

An unexpected server failure prevented this request from completing.

Retain x-request-id for investigation. Follow retryable before retrying a write.

```json
{
  "error": {
    "code": "internal_error",
    "message": "An unexpected server failure prevented this request from completing.",
    "request_id": "req_example",
    "retryable": false,
    "details": {}
  }
}
```

## Other request languages

### cURL

```bash
curl -sS "$GRAPHON_ENGINE_URL/ready"
```

### Python

```python
import json
import os
import urllib.request

request = urllib.request.Request(
    os.environ["GRAPHON_ENGINE_URL"] + "/ready",
    headers={
    },
    method="GET",
)
with urllib.request.urlopen(request) as response:
    print(response.read().decode())
```

### JavaScript

```javascript
const response = await fetch(process.env.GRAPHON_ENGINE_URL + "/ready", {
  method: "GET",
  headers: {
  },
});
console.log(response.status, await response.text());
```

## Sitemap

See the full [sitemap](/sitemap.md) for all pages.
