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. |
all-deployments | boolean | no | Grant access to all deployments of the organization. Takes precedence over the deployments array, which is ignored when set. Default: false. |
all-models | boolean | no | Grant access to all public models. Takes precedence over the models array, which is ignored when set. Default: false. |
deployments | array of AI API Key Deployment Ref | no | |
models | array[string] | no |
Example
{
"all-deployments": true,
"all-models": true,
"deployments": [
{
"id": "string"
}
],
"models": [
"string"
],
"name": "string"
}Responses
200: OK
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
all-deployments | boolean | True when the key has access to all deployments of the organization. |
all-models | boolean | True when the key has access to all public models. |
created-at | string | ISO 8601 date-time. |
deployments | array of AI API Key Deployment Ref | |
id | string | Must be a valid UUID. |
models | array[string] | |
name | string | |
revoked-at | string | null |
updated-at | string | ISO 8601 date-time. |
value | string | Plaintext AI API key value |
Example output
{
"all-deployments": true,
"all-models": true,
"created-at": "2024-01-01T12:00:00Z",
"deployments": [
{
"id": "string"
}
],
"id": "string",
"models": [
"string"
],
"name": "string",
"revoked-at": "2024-01-01T12:00:00Z",
"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. |
xks-proxy-error | Xks Proxy Error Detail |
Example output
{
"detail": "string",
"status": 0,
"title": "string",
"type": "string",
"xks-proxy-error": {
"error-message": "string",
"error-name": "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. |
xks-proxy-error | Xks Proxy Error Detail |
Example output
{
"detail": "string",
"status": 0,
"title": "string",
"type": "string",
"xks-proxy-error": {
"error-message": "string",
"error-name": "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. |
xks-proxy-error | Xks Proxy Error Detail |
Example output
{
"detail": "string",
"status": 0,
"title": "string",
"type": "string",
"xks-proxy-error": {
"error-message": "string",
"error-name": "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 |
|---|---|---|
all-deployments | boolean | True when the key has access to all deployments of the organization. |
all-models | boolean | True when the key has access to all public models. |
created-at | string | Creation timestamp ISO 8601 date-time. |
deployments | array of AI API Key Deployment Ref | |
id | string | AI API key ID Must be a valid UUID. |
models | array[string] | |
name | string | Human-readable name for the AI API key |
revoked-at | string | null |
updated-at | string | Last update timestamp ISO 8601 date-time. |
Example output
{
"all-deployments": true,
"all-models": true,
"created-at": "2024-01-01T12:00:00Z",
"deployments": [
{
"id": "string"
}
],
"id": "string",
"models": [
"string"
],
"name": "string",
"revoked-at": "2024-01-01T12:00:00Z",
"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. |
xks-proxy-error | Xks Proxy Error Detail |
Example output
{
"detail": "string",
"status": 0,
"title": "string",
"type": "string",
"xks-proxy-error": {
"error-message": "string",
"error-name": "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. |
xks-proxy-error | Xks Proxy Error Detail |
Example output
{
"detail": "string",
"status": 0,
"title": "string",
"type": "string",
"xks-proxy-error": {
"error-message": "string",
"error-name": "string"
}
}SDK reference for get-ai-api-key: golang | Python | Java
CLI: exo api get-ai-api-key
update-ai-api-key
[BETA] Update AI API Key access
PUT /ai/api-key/{id}Update the models and deployments accessible by an AI API key.
Path parameters
| Name | In | Description |
|---|---|---|
id | path | Must be a valid UUID. |
Request body
Content-Type: application/json
| Property | Type | Required | Description |
|---|---|---|---|
all-deployments | boolean | no | Grant or remove access to all deployments of the organization. Takes precedence over the deployments array, which is ignored when set. |
all-models | boolean | no | Grant or remove access to all public models. Takes precedence over the models array, which is ignored when set. |
deployments | array of AI API Key Deployment Ref | no | |
models | array[string] | no |
Example
{
"all-deployments": true,
"all-models": true,
"deployments": [
{
"id": "string"
}
],
"models": [
"string"
]
}Responses
200: OK
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
all-deployments | boolean | True when the key has access to all deployments of the organization. |
all-models | boolean | True when the key has access to all public models. |
created-at | string | ISO 8601 date-time. |
deployments | array of AI API Key Deployment Ref | |
id | string | Must be a valid UUID. |
models | array[string] | |
name | string | |
updated-at | string | ISO 8601 date-time. |
Example output
{
"all-deployments": true,
"all-models": true,
"created-at": "2024-01-01T12:00:00Z",
"deployments": [
{
"id": "string"
}
],
"id": "string",
"models": [
"string"
],
"name": "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. |
xks-proxy-error | Xks Proxy Error Detail |
Example output
{
"detail": "string",
"status": 0,
"title": "string",
"type": "string",
"xks-proxy-error": {
"error-message": "string",
"error-name": "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. |
xks-proxy-error | Xks Proxy Error Detail |
Example output
{
"detail": "string",
"status": 0,
"title": "string",
"type": "string",
"xks-proxy-error": {
"error-message": "string",
"error-name": "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. |
xks-proxy-error | Xks Proxy Error Detail |
Example output
{
"detail": "string",
"status": 0,
"title": "string",
"type": "string",
"xks-proxy-error": {
"error-message": "string",
"error-name": "string"
}
}SDK reference for update-ai-api-key: golang | Python | Java
CLI: exo api update-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": [
{
"all-deployments": true,
"all-models": true,
"created-at": "2024-01-01T12:00:00Z",
"deployments": [
{
"id": "string"
}
],
"id": "string",
"models": [
"string"
],
"name": "string",
"revoked-at": "2024-01-01T12:00:00Z",
"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. |
xks-proxy-error | Xks Proxy Error Detail |
Example output
{
"detail": "string",
"status": 0,
"title": "string",
"type": "string",
"xks-proxy-error": {
"error-message": "string",
"error-name": "string"
}
}SDK reference for list-ai-api-keys: golang | Python | Java
CLI: exo api list-ai-api-keys
revoke-ai-api-key
[BETA] Revoke AI API Key
POST /ai/api-key/{id}/revokeRevoke an AI API key. Key will be deleted after 30 days of retention
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. |
xks-proxy-error | Xks Proxy Error Detail |
Example output
{
"detail": "string",
"status": 0,
"title": "string",
"type": "string",
"xks-proxy-error": {
"error-message": "string",
"error-name": "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. |
xks-proxy-error | Xks Proxy Error Detail |
Example output
{
"detail": "string",
"status": 0,
"title": "string",
"type": "string",
"xks-proxy-error": {
"error-message": "string",
"error-name": "string"
}
}500: Internal Server Error
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. |
xks-proxy-error | Xks Proxy Error Detail |
Example output
{
"detail": "string",
"status": 0,
"title": "string",
"type": "string",
"xks-proxy-error": {
"error-message": "string",
"error-name": "string"
}
}SDK reference for revoke-ai-api-key: golang | Python | Java
CLI: exo api revoke-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. |
xks-proxy-error | Xks Proxy Error Detail |
Example output
{
"detail": "string",
"status": 0,
"title": "string",
"type": "string",
"xks-proxy-error": {
"error-message": "string",
"error-name": "string"
}
}SDK reference for get-user-org-consumption-quota: golang | Python | Java
CLI: exo api get-user-org-consumption-quota