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.
all-deploymentsbooleannoGrant access to all deployments of the organization. Takes precedence over the deployments array, which is ignored when set.

Default: false.
all-modelsbooleannoGrant access to all public models. Takes precedence over the models array, which is ignored when set.

Default: false.
deploymentsarray of AI API Key Deployment Refno
modelsarray[string]no
Example
{
  "all-deployments": true,
  "all-models": true,
  "deployments": [
    {
      "id": "string"
    }
  ],
  "models": [
    "string"
  ],
  "name": "string"
}

Responses

200: OK

Content-Type: application/json

PropertyTypeDescription
all-deploymentsbooleanTrue when the key has access to all deployments of the organization.
all-modelsbooleanTrue when the key has access to all public models.
created-atstringISO 8601 date-time.
deploymentsarray of AI API Key Deployment Ref
idstringMust be a valid UUID.
modelsarray[string]
namestring
revoked-atstringnull
updated-atstringISO 8601 date-time.
valuestringPlaintext 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

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.
xks-proxy-errorXks 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

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.
xks-proxy-errorXks 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

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.
xks-proxy-errorXks 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

NameInDescription
idpathMust be a valid UUID.

Responses

200: OK

Content-Type: application/json

PropertyTypeDescription
all-deploymentsbooleanTrue when the key has access to all deployments of the organization.
all-modelsbooleanTrue when the key has access to all public models.
created-atstringCreation timestamp

ISO 8601 date-time.
deploymentsarray of AI API Key Deployment Ref
idstringAI API key ID

Must be a valid UUID.
modelsarray[string]
namestringHuman-readable name for the AI API key
revoked-atstringnull
updated-atstringLast 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

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.
xks-proxy-errorXks 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

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.
xks-proxy-errorXks 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

NameInDescription
idpathMust be a valid UUID.

Request body

Content-Type: application/json

PropertyTypeRequiredDescription
all-deploymentsbooleannoGrant or remove access to all deployments of the organization. Takes precedence over the deployments array, which is ignored when set.
all-modelsbooleannoGrant or remove access to all public models. Takes precedence over the models array, which is ignored when set.
deploymentsarray of AI API Key Deployment Refno
modelsarray[string]no
Example
{
  "all-deployments": true,
  "all-models": true,
  "deployments": [
    {
      "id": "string"
    }
  ],
  "models": [
    "string"
  ]
}

Responses

200: OK

Content-Type: application/json

PropertyTypeDescription
all-deploymentsbooleanTrue when the key has access to all deployments of the organization.
all-modelsbooleanTrue when the key has access to all public models.
created-atstringISO 8601 date-time.
deploymentsarray of AI API Key Deployment Ref
idstringMust be a valid UUID.
modelsarray[string]
namestring
updated-atstringISO 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

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.
xks-proxy-errorXks 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

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.
xks-proxy-errorXks 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

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.
xks-proxy-errorXks 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-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": [
    {
      "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

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.
xks-proxy-errorXks 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}/revoke

Revoke an AI API key. Key will be deleted after 30 days of retention

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.
xks-proxy-errorXks 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

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.
xks-proxy-errorXks 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

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.
xks-proxy-errorXks 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/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.
xks-proxy-errorXks 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

Last updated on