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

# Authentication

> Create, store, and send an Orbit API key.

Inference requests authenticate with an Orbit API key. Dashboard pages (catalogue, billing, keys) use your signed-in session instead.

## Create a key

1. Sign in at [tryorbit.cloud](https://tryorbit.cloud/sign-in).
2. Open [API Keys](https://tryorbit.cloud/api-keys).
3. Create a key with a name and an expiration (`never`, `30d`, `90d`, or `1y`).
4. Copy the secret. It starts with `sk-orbit-` and is shown once.

Orbit stores a hash and a short preview. If you lose the secret, revoke the key and create a new one.

<Warning>
  Treat the secret like a password. Create a separate key per project or environment, and revoke a key immediately if it leaks.
</Warning>

## Send the key

Orbit accepts either header the official SDKs already send.

| Client                             | Header                               |
| ---------------------------------- | ------------------------------------ |
| OpenAI SDK, curl, native Orbit API | `Authorization: Bearer sk-orbit-...` |
| Anthropic SDK                      | `x-api-key: sk-orbit-...`            |

```bash theme={"theme":"github-dark"}
export ORBIT_API_KEY="sk-orbit-..."
```

```bash theme={"theme":"github-dark"}
curl https://api.tryorbit.cloud/api/v1/chat/completions \
  -H "Authorization: Bearer $ORBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"claude-sonnet-5","messages":[{"role":"user","content":"Hi"}]}'
```

## What a key is scoped to

Each key belongs to one **organization**. Usage, credit holds, and invoices land on that org.

The same key reaches every active model in the catalogue. You do not need a per-vendor key.

## Revoke a key

From [API Keys](https://tryorbit.cloud/api-keys), delete the key. Requests that still use it return `401` with `invalid api key`.
