AI API Key
API keys for accessing inference deployments.
create-ai-api-key
[BETA] Create AI API Key
POST /ai/api-keyCreate a new AI API key
Request body
Content-Type: application/json
| Property | Type | Required | Description |
|---|---|---|---|
name | string | yes | Human-readable name for the AI API key Min length: 1. Max length: 50. |
scope | string | yes | Key scope: ‘public’ for all deployments, or a specific deployment UUID |
Example
{
"name": "string",
"scope": "string"
}Responses
200: OK
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
created-at | string | Creation timestamp ISO 8601 date-time. |
id | string | AI API key ID Must be a valid UUID. |
name | string | Human-readable name for the AI API key |
org-uuid | string | Organization UUID that owns this key Must be a valid UUID. |
scope | string | Key scope: ‘public’ for all deployments, or a specific deployment UUID |
updated-at | string | Last update timestamp ISO 8601 date-time. |
value | string | Plaintext 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
| Property | Type | Description |
|---|---|---|
detail | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
status | integer | Min: 100. Max: 599. |
title | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
type | string | An 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
| Property | Type | Description |
|---|---|---|
detail | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
status | integer | Min: 100. Max: 599. |
title | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
type | string | An 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
| Property | Type | Description |
|---|---|---|
detail | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
status | integer | Min: 100. Max: 599. |
title | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
type | string | An 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
| Name | In | Description |
|---|---|---|
id | path | Must be a valid UUID. |
Responses
200: OK
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
created-at | string | Creation timestamp ISO 8601 date-time. |
id | string | AI API key ID Must be a valid UUID. |
name | string | Human-readable name for the AI API key |
org-uuid | string | Organization UUID that owns this key Must be a valid UUID. |
scope | string | Key scope: ‘public’ for all deployments, or a specific deployment UUID |
updated-at | string | Last 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
| Property | Type | Description |
|---|---|---|
detail | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
status | integer | Min: 100. Max: 599. |
title | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
type | string | An 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
| Property | Type | Description |
|---|---|---|
detail | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
status | integer | Min: 100. Max: 599. |
title | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
type | string | An 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}/revealReveal AI API key plaintext value
Path parameters
| Name | In | Description |
|---|---|---|
id | path | Must be a valid UUID. |
Responses
200: OK
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
value | string | Plaintext AI API key value |
Example output
{
"value": "string"
}404: Not Found
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
detail | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
status | integer | Min: 100. Max: 599. |
title | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
type | string | An 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
| Name | In | Description |
|---|---|---|
id | path | Must be a valid UUID. |
Request body
Content-Type: application/json
| Property | Type | Required | Description |
|---|---|---|---|
name | string | no | Human-readable name for the AI API key Min length: 1. Max length: 50. |
scope | string | no | Key scope: ‘public’ for all deployments, or a specific deployment UUID |
Example
{
"name": "string",
"scope": "string"
}Responses
200: OK
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
created-at | string | Creation timestamp ISO 8601 date-time. |
id | string | AI API key ID Must be a valid UUID. |
name | string | Human-readable name for the AI API key |
org-uuid | string | Organization UUID that owns this key Must be a valid UUID. |
scope | string | Key scope: ‘public’ for all deployments, or a specific deployment UUID |
updated-at | string | Last 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
| Property | Type | Description |
|---|---|---|
detail | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
status | integer | Min: 100. Max: 599. |
title | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
type | string | An 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
| Property | Type | Description |
|---|---|---|
detail | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
status | integer | Min: 100. Max: 599. |
title | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
type | string | An 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
| Property | Type | Description |
|---|---|---|
detail | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
status | integer | Min: 100. Max: 599. |
title | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
type | string | An 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
| Name | In | Description |
|---|---|---|
id | path | Must be a valid UUID. |
Responses
200: OK
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
id | string | Operation ID Must be a valid UUID. |
message | string | Operation message |
reason | string | Operation failure reason Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict. |
reference | Reference | Related resource reference |
state | string | Operation 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
| Property | Type | Description |
|---|---|---|
detail | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
status | integer | Min: 100. Max: 599. |
title | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
type | string | An 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
| Property | Type | Description |
|---|---|---|
detail | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
status | integer | Min: 100. Max: 599. |
title | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
type | string | An 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-keyList AI API keys for an organization
Responses
200: OK
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
ai-api-keys | array 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
| Property | Type | Description |
|---|---|---|
detail | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
status | integer | Min: 100. Max: 599. |
title | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
type | string | An 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}/rotateRotate AI API key value
Path parameters
| Name | In | Description |
|---|---|---|
id | path | Must be a valid UUID. |
Responses
200: OK
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
value | string | Plaintext AI API key value |
Example output
{
"value": "string"
}403: Forbidden
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
detail | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
status | integer | Min: 100. Max: 599. |
title | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
type | string | An 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
| Property | Type | Description |
|---|---|---|
detail | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
status | integer | Min: 100. Max: 599. |
title | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
type | string | An 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/quotaGet 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
| Property | Type | Description |
|---|---|---|
quota-uom-per-minute | integer | null |
Example output
{
"quota-uom-per-minute": 0
}404: Not Found
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
detail | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
status | integer | Min: 100. Max: 599. |
title | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
type | string | An 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