Admin API
Manage your account programmatically: API keys, usage, billing and request logs.
The Admin API lets you manage your Aivene account from code: inspect and update your API keys, pull usage reports, check your balance and transactions, and read your request logs.
https://api.aivene.com/v1/accountAdmin keys are not API keys
The Admin API accepts only Admin keys, and Admin keys work only
on the Admin API. Sending a regular API key here returns 403, and so
does sending an Admin key to any other endpoint. Create Admin keys on the
Admin Keys page.
Admin keys
| API key | Admin key | |
|---|---|---|
| Prefix | isk- | isk-admin- |
| Used for | Calling models and tools | Managing your account |
| Created, disabled and deleted | API Keys page | Admin Keys page |
| Archived | Through the Admin API only | Never |
| Visible through the Admin API | Yes: read and change status | Never |
An Admin key can read your usage, billing and logs, and can switch your API keys off. Treat it like a password:
- Keep it on a server. Never ship it in a browser, a mobile app or other client-side code.
- Keep it out of apps, agents and workflows that send prompts. An agent that holds an Admin key can disable the API key it runs on.
- Give each Admin key an expiration, and delete Admin keys you no longer use. A disabled or deleted Admin key stops working immediately.
Authentication
Send the Admin key as a bearer token in the Authorization header:
curl https://api.aivene.com/v1/account/api_keys \
-H "Authorization: Bearer $AIVENE_ADMIN_KEY"Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /v1/account/api_keys | List API keys |
| GET | /v1/account/api_keys/:api_key_id | Retrieve an API key |
| POST | /v1/account/api_keys/:api_key_id | Update an API key |
| GET | /v1/account/usage | Get the usage report |
| GET | /v1/account/billing_balance | Get the billing balance |
| GET | /v1/account/billing_transactions | List billing transactions |
| GET | /v1/account/logs | List request logs |
| GET | /v1/account/logs/:log_id | Retrieve a request log |
API keys can't be created or deleted through the Admin API. Do that on the API Keys page.
Conventions
The Admin API differs from the rest of the Aivene API in a few places:
- Timestamps are RFC 3339 strings (
2026-10-22T14:03:51.204Z), both in responses and in query parameters such asstarting_at. - Money is a decimal string in US dollars (
"12.5"), always paired withcurrency: "USD", so no precision is lost. - Every object has a
typefield (api_key,log,billing_transaction, ...).
Pagination
List endpoints return the newest items first, in this envelope:
{
"data": [ ... ],
"has_more": true,
"first_id": "key_8fQ2LmV9xR4tN7wK1pZ3cB6dHs0J",
"last_id": "key_2Hs0JcB6d1pZ3N7wKxR4tLmV9fQ8"
}| Parameter | Description |
|---|---|
limit | Items per page, 1 to 1000. Default 20. |
after_id | Return the page after this ID (older items). Pass the previous page's last_id. |
before_id | Return the page before this ID (newer items). Pass the previous page's first_id. |
Pass at most one of after_id and before_id. Keep paging while
has_more is true.
The usage report pages by time
instead and uses a page token.
Errors
Errors use the same shape as the rest of the Aivene API:
{
"error": {
"message": "API key 'key_8fQ2LmV9xR4tN7wK1pZ3cB6dHs0J' not found",
"type": "not_found_error"
}
}| Status | error.type | When it happens |
|---|---|---|
400 | invalid_request_error | A parameter or body field is invalid. The message names the field. |
401 | authentication_error | The Admin key is missing, invalid or expired. |
403 | permission_denied_error | A regular API key was used, or the account is suspended. |
404 | not_found_error | The object doesn't exist or belongs to another account. |
500 | internal_server_error | Unexpected server error. Safe to retry. |