Skip to content

AI API Key

API keys for accessing inference deployments.

Read more

create-ai-api-key

[BETA] Create AI API Key

POST /ai/api-key

Create a new AI API key

Request body

Content-Type: application/json

PropertyTypeRequiredDescription
namestringyesHuman-readable name for the AI API key

Min length: 1. Max length: 50.
scopestringyesKey scope: ‘public’ for all deployments, or a specific deployment UUID
Example
{
  "name": "string",
  "scope": "string"
}

Responses

200: OK

Content-Type: application/json

PropertyTypeDescription
created-atstringCreation timestamp

ISO 8601 date-time.
idstringAI API key ID

Must be a valid UUID.
namestringHuman-readable name for the AI API key
org-uuidstringOrganization UUID that owns this key

Must be a valid UUID.
scopestringKey scope: ‘public’ for all deployments, or a specific deployment UUID
updated-atstringLast update timestamp

ISO 8601 date-time.
valuestringPlaintext AI API key value
Example output
{
  "created-at": "2024-01-01T12:00:00Z",
  "id": "string",
  "name": "string",
  "org-uuid": "string",
  "scope": "string",
  "updated-at": "2024-01-01T12:00:00Z",
  "value": "string"
}

400: Bad Request

Content-Type: application/json

PropertyTypeDescription
detailstringA highly contextual, readable explanation breaking down explicitly what triggered this error scenario.
statusintegerMin: 100. Max: 599.
titlestringA brief summary defining the class of failure, optimal for quick user interface groupings.
typestringAn absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.

Must be a valid URI reference.
Example output
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

403: Forbidden

Content-Type: application/json

PropertyTypeDescription
detailstringA highly contextual, readable explanation breaking down explicitly what triggered this error scenario.
statusintegerMin: 100. Max: 599.
titlestringA brief summary defining the class of failure, optimal for quick user interface groupings.
typestringAn absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.

Must be a valid URI reference.
Example output
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

404: Not Found

Content-Type: application/json

PropertyTypeDescription
detailstringA highly contextual, readable explanation breaking down explicitly what triggered this error scenario.
statusintegerMin: 100. Max: 599.
titlestringA brief summary defining the class of failure, optimal for quick user interface groupings.
typestringAn absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.

Must be a valid URI reference.
Example output
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

SDK reference for create-ai-api-key: golang | Python | Java

CLI: exo api create-ai-api-key

get-ai-api-key

[BETA] Get AI API Key

GET /ai/api-key/{id}

Get AI API key metadata

Path parameters

NameInDescription
idpathMust be a valid UUID.

Responses

200: OK

Content-Type: application/json

PropertyTypeDescription
created-atstringCreation timestamp

ISO 8601 date-time.
idstringAI API key ID

Must be a valid UUID.
namestringHuman-readable name for the AI API key
org-uuidstringOrganization UUID that owns this key

Must be a valid UUID.
scopestringKey scope: ‘public’ for all deployments, or a specific deployment UUID
updated-atstringLast update timestamp

ISO 8601 date-time.
Example output
{
  "created-at": "2024-01-01T12:00:00Z",
  "id": "string",
  "name": "string",
  "org-uuid": "string",
  "scope": "string",
  "updated-at": "2024-01-01T12:00:00Z"
}

403: Forbidden

Content-Type: application/json

PropertyTypeDescription
detailstringA highly contextual, readable explanation breaking down explicitly what triggered this error scenario.
statusintegerMin: 100. Max: 599.
titlestringA brief summary defining the class of failure, optimal for quick user interface groupings.
typestringAn absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.

Must be a valid URI reference.
Example output
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

404: Not Found

Content-Type: application/json

PropertyTypeDescription
detailstringA highly contextual, readable explanation breaking down explicitly what triggered this error scenario.
statusintegerMin: 100. Max: 599.
titlestringA brief summary defining the class of failure, optimal for quick user interface groupings.
typestringAn absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.

Must be a valid URI reference.
Example output
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

SDK reference for get-ai-api-key: golang | Python | Java

CLI: exo api get-ai-api-key

reveal-ai-api-key

[BETA] Reveal AI API Key

GET /ai/api-key/{id}/reveal

Reveal AI API key plaintext value

Path parameters

NameInDescription
idpathMust be a valid UUID.

Responses

200: OK

Content-Type: application/json

PropertyTypeDescription
valuestringPlaintext AI API key value
Example output
{
  "value": "string"
}

404: Not Found

Content-Type: application/json

PropertyTypeDescription
detailstringA highly contextual, readable explanation breaking down explicitly what triggered this error scenario.
statusintegerMin: 100. Max: 599.
titlestringA brief summary defining the class of failure, optimal for quick user interface groupings.
typestringAn absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.

Must be a valid URI reference.
Example output
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

SDK reference for reveal-ai-api-key: golang | Python | Java

CLI: exo api reveal-ai-api-key

update-ai-api-key

[BETA] Update AI API Key

PATCH /ai/api-key/{id}

Update AI API key name and/or scope

Path parameters

NameInDescription
idpathMust be a valid UUID.

Request body

Content-Type: application/json

PropertyTypeRequiredDescription
namestringnoHuman-readable name for the AI API key

Min length: 1. Max length: 50.
scopestringnoKey scope: ‘public’ for all deployments, or a specific deployment UUID
Example
{
  "name": "string",
  "scope": "string"
}

Responses

200: OK

Content-Type: application/json

PropertyTypeDescription
created-atstringCreation timestamp

ISO 8601 date-time.
idstringAI API key ID

Must be a valid UUID.
namestringHuman-readable name for the AI API key
org-uuidstringOrganization UUID that owns this key

Must be a valid UUID.
scopestringKey scope: ‘public’ for all deployments, or a specific deployment UUID
updated-atstringLast update timestamp

ISO 8601 date-time.
Example output
{
  "created-at": "2024-01-01T12:00:00Z",
  "id": "string",
  "name": "string",
  "org-uuid": "string",
  "scope": "string",
  "updated-at": "2024-01-01T12:00:00Z"
}

400: Bad Request

Content-Type: application/json

PropertyTypeDescription
detailstringA highly contextual, readable explanation breaking down explicitly what triggered this error scenario.
statusintegerMin: 100. Max: 599.
titlestringA brief summary defining the class of failure, optimal for quick user interface groupings.
typestringAn absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.

Must be a valid URI reference.
Example output
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

403: Forbidden

Content-Type: application/json

PropertyTypeDescription
detailstringA highly contextual, readable explanation breaking down explicitly what triggered this error scenario.
statusintegerMin: 100. Max: 599.
titlestringA brief summary defining the class of failure, optimal for quick user interface groupings.
typestringAn absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.

Must be a valid URI reference.
Example output
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

404: Not Found

Content-Type: application/json

PropertyTypeDescription
detailstringA highly contextual, readable explanation breaking down explicitly what triggered this error scenario.
statusintegerMin: 100. Max: 599.
titlestringA brief summary defining the class of failure, optimal for quick user interface groupings.
typestringAn absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.

Must be a valid URI reference.
Example output
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

SDK reference for update-ai-api-key: golang | Python | Java

CLI: exo api update-ai-api-key

delete-ai-api-key

[BETA] Delete AI API Key

DELETE /ai/api-key/{id}

Delete AI API key

Path parameters

NameInDescription
idpathMust be a valid UUID.

Responses

200: OK

Content-Type: application/json

PropertyTypeDescription
idstringOperation ID

Must be a valid UUID.
messagestringOperation message
reasonstringOperation failure reason

Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict.
referenceReferenceRelated resource reference
statestringOperation status

Allowed values: failure, pending, success, timeout.
Example output
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}

403: Forbidden

Content-Type: application/json

PropertyTypeDescription
detailstringA highly contextual, readable explanation breaking down explicitly what triggered this error scenario.
statusintegerMin: 100. Max: 599.
titlestringA brief summary defining the class of failure, optimal for quick user interface groupings.
typestringAn absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.

Must be a valid URI reference.
Example output
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

404: Not Found

Content-Type: application/json

PropertyTypeDescription
detailstringA highly contextual, readable explanation breaking down explicitly what triggered this error scenario.
statusintegerMin: 100. Max: 599.
titlestringA brief summary defining the class of failure, optimal for quick user interface groupings.
typestringAn absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.

Must be a valid URI reference.
Example output
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

SDK reference for delete-ai-api-key: golang | Python | Java

CLI: exo api delete-ai-api-key


Other Operations

list-ai-api-keys

[BETA] List AI API Keys

GET /ai/api-key

List AI API keys for an organization

Responses

200: OK

Content-Type: application/json

PropertyTypeDescription
ai-api-keysarray of AI API key list entry
Example output
{
  "ai-api-keys": [
    {
      "created-at": "2024-01-01T12:00:00Z",
      "id": "string",
      "name": "string",
      "org-uuid": "string",
      "scope": "string",
      "updated-at": "2024-01-01T12:00:00Z"
    }
  ]
}

403: Forbidden

Content-Type: application/json

PropertyTypeDescription
detailstringA highly contextual, readable explanation breaking down explicitly what triggered this error scenario.
statusintegerMin: 100. Max: 599.
titlestringA brief summary defining the class of failure, optimal for quick user interface groupings.
typestringAn absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.

Must be a valid URI reference.
Example output
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

SDK reference for list-ai-api-keys: golang | Python | Java

CLI: exo api list-ai-api-keys

rotate-ai-api-key

[BETA] Rotate AI API Key

POST /ai/api-key/{id}/rotate

Rotate AI API key value

Path parameters

NameInDescription
idpathMust be a valid UUID.

Responses

200: OK

Content-Type: application/json

PropertyTypeDescription
valuestringPlaintext AI API key value
Example output
{
  "value": "string"
}

403: Forbidden

Content-Type: application/json

PropertyTypeDescription
detailstringA highly contextual, readable explanation breaking down explicitly what triggered this error scenario.
statusintegerMin: 100. Max: 599.
titlestringA brief summary defining the class of failure, optimal for quick user interface groupings.
typestringAn absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.

Must be a valid URI reference.
Example output
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

404: Not Found

Content-Type: application/json

PropertyTypeDescription
detailstringA highly contextual, readable explanation breaking down explicitly what triggered this error scenario.
statusintegerMin: 100. Max: 599.
titlestringA brief summary defining the class of failure, optimal for quick user interface groupings.
typestringAn absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.

Must be a valid URI reference.
Example output
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

SDK reference for rotate-ai-api-key: golang | Python | Java

CLI: exo api rotate-ai-api-key

get-user-org-consumption-quota

[BETA] Get Organization Consumption Quota

GET /ai/quota

Get per-org Unit Of Measurement (UOM) consumption quota (UOM/min). Null means unlimited. UOM represents weighted units across different AI workloads (e.g., tokens for LLMs, minutes for TTS, pages for OCR).

Responses

200: OK

Content-Type: application/json

PropertyTypeDescription
quota-uom-per-minuteintegernull
Example output
{
  "quota-uom-per-minute": 0
}

404: Not Found

Content-Type: application/json

PropertyTypeDescription
detailstringA highly contextual, readable explanation breaking down explicitly what triggered this error scenario.
statusintegerMin: 100. Max: 599.
titlestringA brief summary defining the class of failure, optimal for quick user interface groupings.
typestringAn absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.

Must be a valid URI reference.
Example output
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

SDK reference for get-user-org-consumption-quota: golang | Python | Java

CLI: exo api get-user-org-consumption-quota

Last updated on