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

# Authentication

> Authenticate public API requests with a secret API key.

## Bearer API keys

Pass your secret key on every request:

```bash theme={null}
curl https://api.keette.com/v1/me \
  -H "Authorization: Bearer sk_live_…"
```

Keys are shown **once** at creation, stored hashed at rest, and always carry an **expiry** (maximum 90 days).

## What the key carries

Resolving a key binds the request to:

* **Tenant** (workspace)
* **Environment** (`live` or `sandbox` from the key prefix)
* Optional **IP allowlist**
* Revocation and kill-switch state (global or per tenant)

## Idempotency

Mutating requests (`POST`, `PATCH`, `DELETE`) should send:

```http theme={null}
Idempotency-Key: <unique-string>
```

Keys are scoped to `(tenant, environment, api_key)`.

## Next

* [API keys](https://docs.keette.com/auth/api-keys.md) — create, expiry, IP allowlist, revoke
* [Retrieve me](https://docs.keette.com/api-reference/me) — connectivity check
* [Errors](https://docs.keette.com/guides/errors.md) — public error envelope


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