# Teams, resellers and agent keys

> Give team members, your own clients and AI agents separate API keys under one account, each with its own budget, limits, usage and CSV export. Billed to your balance at your price.

HTML page: https://www.twittrapi.com/docs/api-keys

{/* Dashboard: TwitterDash app/(customer)/api-key, lib/api-keys.ts. Gateway: TwitterPayment subkeys.go (sub-keys with parent_user_id). */}

Available in the dashboard under API keys.

Your account has one **main key**: the owner key with your full balance and rate limit. Next to it you can create up to 25 **additional keys** under **API keys** in the dashboard (more on request). Use them for:

| Type | For |
| --- | --- |
| Team member | A colleague or one of your own services. Revoke it when they leave, without touching the main key. |
| Client (reseller) | A customer of yours. They never see your balance or your other keys. |
| AI agent | An agent or automation with a hard budget. Agents can also ask for a key themselves; see [For AI agents](https://www.twittrapi.com/docs/for-agents#agent-sign-up). |

## Budget per key

Each key gets one of two budgets when you create it:

- **Monthly spending cap.** Calls are paid from your balance, up to the cap each calendar month (UTC). When the cap is reached, the key gets **402** until the next month or until you raise the cap. Leave the cap empty to draw from the balance without a limit.
- **Fixed budget.** The amount moves from your balance to the key at once. When it is used up, the key gets **402**. You can add more later; when you delete the key, what is left goes back to your balance.

Calls are always billed to your account **at your price** (Standard, Volume or Scale). There is no markup on our side: resellers set their own prices to their clients and bill them themselves (the CSV export below helps). Reselling X data? See the [Resellers](https://www.twittrapi.com/resellers) page.

The `X-Remaining-Balance` header of a key with a monthly cap shows what is left of the cap, never your account balance.

## Limits per key

| Setting | Default | |
| --- | --- | --- |
| Rate limit | your account's limit | At most your account's limit. All keys together share your account's limit, so more keys do not add throughput. |
| Allowed endpoints | every read endpoint | Path prefixes such as `/search/` or `/user/`. |
| Expiry | never | The key stops working at the end of that day (UTC). |
| Account actions | off | `/client/*` and `/premium/*` (posting, liking, following with X accounts) are blocked unless you allow them for that key. |

A key also stops whenever your account cannot call the API (trial ended, account blocked).

## Manage keys

The **API keys** page lists every key with its type, creation date, last use, calls and spend this month and in the last 30 days, a bar for its budget and its status. Per key you can:

- **Rotate**: a new key is shown once; the old key stops working at once, like the main key rotation.
- **Pause / resume**: a paused key gets **403** until you resume it.
- **Edit limits**: name, cap or extra budget, rate limit, endpoints, expiry, account actions.
- **Delete**: the key stops at once; a fixed budget that is left goes back to your balance. Its usage stays available for the export.

A new or rotated key is shown **once**. Copy it then; we cannot show it again.

## Usage and CSV export

Each key has a detail page with calls and spend per day for the last 30 days, the top endpoint groups, and the error rate.

**Export for invoicing** downloads one CSV per key and month (UTC):

```csv
date,endpoint_group,calls,cost_usd
2026-10-01,search,1250,0.081250
2026-10-01,user,310,0.020150
total,,1560,0.101400
```

`calls` are billed calls (refunded failures are not counted), `cost_usd` is what they cost at your price.

## Errors of an additional key

| Status | Meaning |
| --- | --- |
| 401 | The key is wrong, rotated or deleted. |
| 402 | Monthly cap reached, fixed budget used up, or your account balance is empty. |
| 403 | The key is paused or expired, or the endpoint is not allowed for it (for example `/client/*`). |
| 429 | The key's own rate limit or your account's shared limit. |

Resellers and teams with special needs: write to [support@twittrapi.com](mailto:support@twittrapi.com).
