# Check API health

Answers 200 with `data.status` set to `ok` while the API is running.

`GET /health`

Auth **None (public)**

Answers 200 with `data.status` set to `ok` while the API is running. Public: send no `Authorization` header. The response may carry further informational fields in `data`; ignore any you do not recognise. A check that gets no 200 within your timeout should treat the API as unavailable. Requests are limited per client IP address (sustained 5 per second, bursts of 20); poll every few seconds at most. Health checks are not written to the request log.

## Returns

The `data` field of the standard `{ data, error, meta }` envelope:

- `status`: string Always `ok` when the API answers.
  - `ok`

## Errors

| Status | Code | Retry | Meaning |
|---|---|---|---|
| 429 | `RATE_LIMITED` | yes | This client IP address sent too many health checks. code RATE_LIMITED; wait Retry-After seconds. |

## Example

### curl

```bash
curl "https://api.autociso.io/api/v1/health"
```

### Python

```python
import requests

response = requests.get(
    "https://api.autociso.io/api/v1/health",
)
print(response.json())
```

### JavaScript

```javascript
const response = await fetch("https://api.autociso.io/api/v1/health", {
  method: "GET",
});
console.log(await response.json());
```

## Response (200)

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