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/account

Admin 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 keyAdmin key
Prefixisk-isk-admin-
Used forCalling models and toolsManaging your account
Created, disabled and deletedAPI Keys pageAdmin Keys page
ArchivedThrough the Admin API onlyNever
Visible through the Admin APIYes: read and change statusNever

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

MethodEndpointDescription
GET/v1/account/api_keysList API keys
GET/v1/account/api_keys/:api_key_idRetrieve an API key
POST/v1/account/api_keys/:api_key_idUpdate an API key
GET/v1/account/usageGet the usage report
GET/v1/account/billing_balanceGet the billing balance
GET/v1/account/billing_transactionsList billing transactions
GET/v1/account/logsList request logs
GET/v1/account/logs/:log_idRetrieve 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 as starting_at.
  • Money is a decimal string in US dollars ("12.5"), always paired with currency: "USD", so no precision is lost.
  • Every object has a type field (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"
}
ParameterDescription
limitItems per page, 1 to 1000. Default 20.
after_idReturn the page after this ID (older items). Pass the previous page's last_id.
before_idReturn 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"
  }
}
Statuserror.typeWhen it happens
400invalid_request_errorA parameter or body field is invalid. The message names the field.
401authentication_errorThe Admin key is missing, invalid or expired.
403permission_denied_errorA regular API key was used, or the account is suspended.
404not_found_errorThe object doesn't exist or belongs to another account.
500internal_server_errorUnexpected server error. Safe to retry.