# Status

`GET https://api.inplan.io/v1/status`

Whether the API is up, and the date each source type is current to. No key needed, and it never counts against a quota.

No key · not counted. Source: https://inplan.io/docs/api/status

## When to use it

Use it for health checks and uptime monitors, and to read data dates without spending calls. Each client may call it up to 5 times a second.

## Request

curl:

```bash
curl https://api.inplan.io/v1/status
```

JavaScript:

```javascript
const res = await fetch("https://api.inplan.io/v1/status");
const body = await res.json();
console.log(body.data.status, body.data.datasets);
```

Python:

```python
import os, requests

res = requests.get(
    "https://api.inplan.io/v1/status",
    timeout=10,
)
body = res.json()
print(body["data"]["status"])
```

## Response fields

Every response has the envelope `request_id`, `data_as_of`, `data`, `sources` and `notes`. Fields of `data`:

| Field | Type | Description |
| --- | --- | --- |
| `status` | string | `ok`, `degraded` (answers still served), `busy` or `paused`. `busy` and `paused` come with HTTP 503. |
| `api_enabled` | boolean | `false` while the API is paused for maintenance. |
| `version` | string | The running API build. |
| `time` | string | Server time, ISO 8601 UTC. |
| `checks` | object | Health of the parts behind the API. |
| `checks.database` | object | The database check. |
| `checks.database.ok` | boolean | `true` when the database answered. |
| `checks.database.latency_ms` | integer \| null | Time the database check took, in milliseconds. |
| `checks.cache` | object | The cache check. |
| `checks.cache.ok` | boolean | `true` when the cache answered. |
| `datasets` | object[] | Every source type with the date it is current to. |
| `datasets[].type` | string | The source type: `insurer_directory`, `plan_directory`, `provider_registry` or `plan_catalog`. |
| `datasets[].description` | string | The source type in plain words. |
| `datasets[].as_of` | date | The date this type of data is current to. |

## Responses

### 200

`status` is `ok`, or `degraded` while answers are still served.

Response (200 OK · application/json):

```json
{
  "request_id": "req_me9mgrJWQxf7oYGP",
  "data_as_of": "2026-10-29",
  "data": {
    "status": "ok",
    "api_enabled": true,
    "version": "d470109",
    "time": "2026-10-30T09:28:11.713Z",
    "checks": {
      "database": {
        "ok": true,
        "latency_ms": 0
      },
      "cache": {
        "ok": true
      }
    },
    "datasets": [
      {
        "type": "insurer_directory",
        "description": "Provider network directories published by health insurers",
        "as_of": "2026-10-29"
      },
      {
        "type": "plan_directory",
        "description": "Provider network directories published by Medicare Advantage plans",
        "as_of": "2026-10-29"
      },
      {
        "type": "provider_registry",
        "description": "National provider registry and practice records",
        "as_of": "2026-10-29"
      },
      {
        "type": "plan_catalog",
        "description": "Published health plan catalogs",
        "as_of": "2026-10-28"
      }
    ]
  },
  "sources": [
    {
      "type": "insurer_directory",
      "description": "Provider network directories published by health insurers",
      "as_of": "2026-10-29"
    },
    {
      "type": "plan_directory",
      "description": "Provider network directories published by Medicare Advantage plans",
      "as_of": "2026-10-29"
    },
    {
      "type": "provider_registry",
      "description": "National provider registry and practice records",
      "as_of": "2026-10-29"
    },
    {
      "type": "plan_catalog",
      "description": "Published health plan catalogs",
      "as_of": "2026-10-28"
    }
  ]
}
```

## Errors

Errors use `application/problem+json` (RFC 7807): `type`, `title`, `status`, `detail`, `instance`, `request_id`, `docs`. Other statuses this endpoint can return: `503` with `status` `busy` or `paused` and a `Retry-After` header, and `429` above 5 requests a second from one client. See [Errors](https://inplan.io/docs/errors).
