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

# Authentication

> Create and manage API keys for the Hado SEO API

All API requests are authenticated with **API keys**. Include your key in the `Authorization` header as a Bearer token:

```bash theme={null}
Authorization: Bearer hado_sk_your_key_here
```

## Creating an API Key

<Steps>
  <Step title="Open Settings">
    Navigate to **Settings → API Keys** in your [Hado SEO dashboard](https://hadoseo.com/dashboard).
  </Step>

  <Step title="Create a key">
    Click **Create API Key** and give it a descriptive name (e.g., "CI/CD Pipeline" or "CMS Webhook").
  </Step>

  <Step title="Copy your key">
    Your full API key is displayed once at creation. Copy it and store it securely — you won't be able to see it again.
  </Step>
</Steps>

<Warning>
  API keys are shown **only once** at creation. If you lose a key, revoke it and create a new one.
</Warning>

## Key Format

API keys use the prefix `hado_sk_` followed by 48 hex characters:

```
hado_sk_a1b2c3d4e5f6...
```

The prefix is visible in your dashboard for identification. The full key is never stored — only a secure hash is kept on our servers.

## Plan Limits

The number of API keys and monthly API calls depends on your plan:

| Plan    | API Keys | Calls / Month | Rate Limit |
| ------- | -------- | ------------- | ---------- |
| Starter | 1        | 300           | 60 req/min |
| Pro     | 2        | 1,500         | 60 req/min |
| Growth  | 3        | 5,000         | 60 req/min |
| Agency  | 5        | 12,000        | 60 req/min |

<Info>
  Need a higher monthly limit? Contact us at [support@hadoseo.com](mailto:support@hadoseo.com).
</Info>

## Revoking a Key

You can revoke an API key at any time from your dashboard. Revoked keys immediately stop working and cannot be restored. Create a new key if you need to replace one.

## Security Best Practices

* **Never commit API keys to source control.** Use environment variables or a secrets manager.
* **Use descriptive key names** so you can identify which integration uses each key.
* **Rotate keys periodically** — revoke old keys and create fresh ones.
* **Use one key per integration** so you can revoke a single key without disrupting other workflows.
