API referenceAPI Keys

List API keys

Returns every API key on the organization — both active and revoked — ordered by createdAt descending, newest first.

Endpoint
GET https://api.dairo.app/v1/api-keys

Returns every API key on the organization — both active and revoked — ordered by createdAt descending, newest first. Each entry carries the key's id, human name, non-secret prefix, granted scopes, allowedIps, inboxIds, status, and lastUsedAt (which is null until the key first authenticates); the secret itself is never included. Requires the keys:read scope. A key restricted to specific inboxes lists only itself and the other keys pinned only to inboxes it holds, whoever created them; unpinned keys are not listed. The full set is returned in the standard data list envelope and is not paginated, so pagination.hasMore is always false and pagination.nextCursor is always null.

Scope: keys:read. Send the API key as a bearer token; Scopes lists what each one reaches.

Request

cURL
curl "https://api.dairo.app/v1/api-keys" \
  -H "Authorization: Bearer $DAIRO_API_KEY"

Response

200 Success. Body: application/json, ApiKeyListResponse.

FieldTypeRequiredDescription
object"list"yes
dataarray of ApiKeyyes
paginationPaginationyes
200
{
  "object": "list",
  "data": [
    {
      "object": "api_key",
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "name": "Ada Lovelace",
      "prefix": "dairo_test_abc123",
      "scopes": [
        "string"
      ],
      "status": "active",
      "createdAt": "2026-10-19T09:30:00Z",
      "lastUsedAt": "2026-10-19T09:30:00Z",
      "allowedIps": [
        "string"
      ],
      "inboxIds": [
        "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ],
      "environment": "live"
    }
  ],
  "pagination": {
    "nextCursor": "string",
    "hasMore": true
  }
}

Errors

Every error has the same body, {"error": {"type", "code", "message", "param"}}; branch on code. Errors lists every code.

StatusMeaning
400The request is malformed or a value is invalid (invalid_request, invalid_domain, idempotency_key_mismatch).
401The API key is missing or invalid.
403The key lacks the scope this endpoint needs (scope_missing) or may not do this (not_permitted).
404No such resource in this account (resource_not_found).
422The request is well-formed but a field failed validation (validation_failed).
429Rate limit, plan limit, budget or spend cap reached (rate_limited, plan_limit_reached, budget_exceeded, spend_cap_reached).
500An unexpected error; retry with backoff, then contact support (internal_error).

On this page