Skip to main content

List AI Providers

Returns one row per supported AI provider (claude, openai), in the platform's pick order: its stored configuration, or a not-configured stub for a provider that has never been saved. configured tells the two apart. The response is a plain array, not paginated.

Unlike custody and spot quote providers, several AI providers may be enabled at once. Each serves the AI features listed in its features:

  • tokenization_suggestion — fills a new token's form from a free-text description;
  • support_assistant — answers a support conversation first;
  • tokenization_image — draws an asset image for a new token's form (only openai can serve it).

When a feature is used, the provider the caller names answers (it must be enabled and serve the feature); otherwise the first enabled provider serving it, in the order of this list. There is no static configuration behind these rows: a provider that is not filled in here cannot be called.

The API key never comes back. Only api_key_set and the key's last four characters (api_key_last4).

Platform owner only. The caller's node (the node of the access token) must be the platform root node; any other caller is refused with 403 / 10005.

Required permission: ai-provider:view

Request​

GET /v2/admin/ai-providers

Headers​

NameDescription
AuthorizationRequired. Bearer <access_token>

Example​

curl --request GET \
--url '{{baseUrl}}/v2/admin/ai-providers' \
--header 'Authorization: Bearer <access_token>'

Response​

[
{
"provider": "claude",
"base_url": "https://api.anthropic.com",
"model": "claude-sonnet-4-5",
"image_model": "",
"timeout": 60,
"max_tokens": 1024,
"is_enabled": true,
"features": ["tokenization_suggestion", "support_assistant"],
"api_key_set": true,
"api_key_last4": "Qx3A",
"configured": true,
"created_at": "2026-10-24T09:03:17.442Z",
"updated_at": "2026-10-30T15:41:08.106Z"
},
{
"provider": "openai",
"base_url": "",
"model": "",
"image_model": "",
"timeout": 0,
"max_tokens": 0,
"is_enabled": false,
"features": [],
"api_key_set": false,
"api_key_last4": "",
"configured": false
}
]

Response Fields​

FieldTypeDescription
providerstringProvider key: claude or openai
base_urlstringAPI base URL. A saved provider always shows the effective URL (the vendor's own when none was given)
modelstringModel used for text features
image_modelstringModel used for tokenization_image
timeoutintegerRequest timeout in seconds
max_tokensintegerMaximum length of a reply, in tokens
is_enabledbooleanMaster switch. A disabled provider serves no feature but keeps its features
featuresarrayAI features this provider serves: tokenization_suggestion, support_assistant, tokenization_image
api_key_setbooleanWhether an API key is stored
api_key_last4stringLast four characters of the stored key; empty when none is stored or the key is four characters or shorter
configuredbooleantrue for a saved provider, false for a not-configured stub
created_atstringCreation time (ISO 8601). Omitted on a stub
updated_atstringLast update time (ISO 8601). Omitted on a stub

Errors​

StatusCodeDescription
40310005The caller is not the platform owner (domain 2)

See Errors for the error format and common codes.