# BlueBot’s status

> Whether BlueBot itself is up.

`GET /v1/status`

Whether BlueBot itself is up. Needs no key. For your own Mac, see `GET /v1/device`.

Needs no key.

## Example

```bash
curl "https://usebluebot.com/api/v1/status" \
  -H "Authorization: Bearer $BLUEBOT_API_KEY"
```

```ts
import BlueBot from '@usebluebot/sdk';

const client = new BlueBot({ apiKey: process.env.BLUEBOT_API_KEY });

const status = await client.status();
console.log(status);
```

```python
import os
from bluebot import BlueBot

client = BlueBot(api_key=os.environ["BLUEBOT_API_KEY"])

status = client.status()
print(status)
```

## Response

`200`: BlueBot’s status.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `object` | "status" | Yes |   |
| `status` | string | Yes | `ok`; `degraded` when BlueBot stopped sending for everyone; `down` when it can’t reach its database. One of `ok`, `degraded`, `down` |
| `sending` | string | Yes | `ok`; `stopped` while BlueBot has stopped all sending, during an incident; `unknown` when BlueBot can’t reach its database to check. Macs can’t pick up texts while the database is down, so queued texts wait. One of `ok`, `stopped`, `unknown` |
| `database` | string | Yes | One of `ok`, `down` |
| `api_version` | string | Yes |   |
| `checked_at` | timestamp | Yes | When this was checked. |

The answer, `200`:

```json
{
  "object": "status",
  "status": "ok",
  "sending": "ok",
  "database": "ok",
  "api_version": "2026-11-13",
  "checked_at": "2026-11-13T19:41:00.000Z"
}
```

## Errors

Every refusal has the same envelope and a page of its own. These are the ones this operation can give.

| Code                                        | Status | What it means                                                                                                                               |
| ------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------- |
| [`rate_limited`](https://usebluebot.com/docs/errors/rate_limited) | 429    | Too many requests. A key may make 120 requests a minute. The `RateLimit` header says how many are left, and `Retry-After` how long to wait. |
| [`internal`](https://usebluebot.com/docs/errors/internal)         | 500    | Something went wrong on BlueBot’s side. It was reported. Send the request again; with an Idempotency-Key that is always safe.               |
| [`unavailable`](https://usebluebot.com/docs/errors/unavailable)   | 503    | BlueBot isn’t taking requests right now, during maintenance or an incident. `GET /v1/status` says what is going on.                         |

## Try it
