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

# Authentication

> Generate an API key and authenticate your requests.

## Generate an API key

1. Log in to your Tabillo workspace
2. Go to **Settings → API Keys**
3. Click **Generate new key**
4. Give the key a name (e.g. "Zapier integration")
5. Copy the key immediately — it is shown only once

<Warning>
  Store your API key securely. It will not be shown again after you close the modal.
  If lost, revoke it and generate a new one.
</Warning>

## Using your key

Pass the key as a Bearer token in the `Authorization` header on every request. Also include your workspace slug in the `x-tenant-slug` header.

```bash theme={null}
curl https://crossproductroadmapbackend.vercel.app/api/v1/workspace \
  -H "Authorization: Bearer tab_YOUR_KEY_HERE" \
  -H "x-tenant-slug: your-workspace-slug"
```

## Finding your workspace slug

Your workspace slug is the subdomain of your Tabillo URL. If your workspace is at `acme.tabillo.com`, your slug is `acme`.

## Revoking a key

Go to **Settings → API Keys** and click **Revoke** next to the key. It stops working immediately.

## Error responses

| Status                           | Meaning                                                |
| -------------------------------- | ------------------------------------------------------ |
| `401 Invalid or revoked API key` | Key is wrong, revoked, or the `tab_` prefix is missing |
| `400 Tenant slug is required`    | Missing `x-tenant-slug` header                         |
| `404 Organization not found`     | Slug doesn't match any workspace                       |
| `429 Rate limit exceeded`        | More than 1,000 requests in the current hour           |
