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

# Checking API Health

> Confirm the Unsiloed API is reachable and your API key works, and what each response means

## Overview

Two quick checks tell you whether a problem is on your side or ours:

1. **Is the API up?** Call the public liveness endpoint. It needs no API key.
2. **Does my key work?** Make a cheap authenticated request, such as fetching the status of a job you already created.

## Check that the API is reachable

`GET /health` returns `200` as long as the API is up and responding. It needs no API key, does not count against your rate limits, and does no processing.

```bash theme={null}
curl -i https://prod.visionapi.unsiloed.ai/health
```

```json theme={null}
{
  "status": "ok"
}
```

<Note>
  `/health` only confirms the API is responding. It does not check your API key and it does not tell you whether the platform is busy. Use the authenticated check below for that.
</Note>

## Check that your API key works

Fetch the status of a job from one of your earlier requests. This is a lightweight read that does not start any processing or use credits, and it has no per-organization rate limit.

```bash theme={null}
curl -i https://prod.visionapi.unsiloed.ai/extract/YOUR_JOB_ID \
  -H "api-key: $UNSILOED_API_KEY"
```

Your API key is checked before anything else, so the status code answers the question even if the job ID is wrong:

| Status | Meaning | What to do |
| - | - | - |
| `200` | The API is up and your key is valid. | Nothing. |
| `404` with `error.code` `not_found` | Your key is valid, but no job with that ID belongs to your organization. | Nothing, if you were only checking the key. Otherwise check the job ID. |
| `401` with `error.code` `auth_failed` | The `api-key` header is missing, or the key is invalid. | Check that the header is named `api-key` and contains the full key. If the key was revoked or rotated, use a current one. |
| `403` with `error.code` `forbidden` | Your credentials were recognized, but access is not permitted. | Email [support@unsiloed.ai](mailto:support@unsiloed.ai). |
| `503` with `error.code` `service_unavailable` | The API is up but temporarily at capacity. | Wait for `Retry-After` seconds, then retry. See [Capacity and Backpressure](/docs/api-reference/limits/capacity-and-backpressure). |

## Interpreting the results

| `/health` | Authenticated request | Likely cause |
| - | - | - |
| `200` | `200` or `404` | Everything is working. Look at the specific request that failed. |
| `200` | `401` | The API is up; the problem is your API key. |
| `200` | `503` | The API is up but busy. Retry after `Retry-After` seconds. |
| No response or connection error | No response | Check your network, proxy, and DNS. If they are fine and the API stays unreachable, email [support@unsiloed.ai](mailto:support@unsiloed.ai). |

## Check usage and limits

<CardGroup cols={3}>
  <Card title="Get Organization Usage" icon="chart-line" href="/docs/api-reference/organization/usage">
    Credits used and remaining in your billing cycle
  </Card>

  <Card title="Rate Limits" icon="gauge" href="/docs/api-reference/limits/rate-limits">
    Per-plan request limits and the 429 response
  </Card>

  <Card title="Capacity and Backpressure" icon="gauge-high" href="/docs/api-reference/limits/capacity-and-backpressure">
    What a 503 means and how to retry
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.