Skip to content

AI Providers

AI providers are the underlying model vendors powering the platform. The provider is resolved automatically from the selected model — you do not need to specify a provider directly in most API calls.

Endpoints

MethodPathDescriptionAuthRate Limit
GET/ai/providersList available providersJWT + Entitlement60/min
GET/ai/providers/:idGet provider detailsJWT + Entitlement60/min

Active Providers

ProviderKeyStatus
GooglegoogleActive
OpenAIopenaiInactive
AnthropicanthropicInactive
Mistral AImistralInactive

Currently, only the Google provider is active. All 8 available models are served through the Google Gemini API.


GET /ai/providers

List all active AI providers.

Authentication: JWT Bearer token + active AI entitlement required.
Rate limit: 60/min

Request

Query Parameters

ParameterTypeRequiredDescription
keystringNoFilter by provider key (e.g. google)
limitnumberNoItems per page
offsetnumberNoPagination offset

Response

Response Example

json
{
  "data": [
    {
      "key": "google",
      "displayName": "Google",
      "isActive": true
    }
  ],
  "meta": {
    "total": 1,
    "limit": 20,
    "offset": 0,
    "hasNextPage": false
  }
}

Response Fields

FieldTypeDescription
keystringMachine-readable provider key
displayNamestringDisplay name
isActivebooleanWhether the provider is currently available

Code Examples

bash
curl https://api.chainabit.com/api/v1/ai/providers \
  -H "Authorization: Bearer $TOKEN"
javascript
const res = await fetch(`${BASE_URL}/ai/providers`, {
  headers: { Authorization: `Bearer ${TOKEN}` },
});
const { data } = await res.json();
python
import requests

res = requests.get(
    f"{BASE_URL}/ai/providers",
    headers={"Authorization": f"Bearer {TOKEN}"},
)
data = res.json()["data"]

GET /ai/providers/:id

Get details about a specific provider by its UUID.

Authentication: JWT Bearer token + active AI entitlement required.
Rate limit: 60/min

Request

Path params: id — from a GET /ai/providers response's data[].id. No query parameters.

Response

Response Example

json
{
  "data": {
    "id": "cm9provider01",
    "key": "google",
    "displayName": "Google",
    "isActive": true,
    "createdAt": "2026-01-01T00:00:00.000Z"
  }
}

Response Fields

FieldTypeDescription
idstringProvider UUID
keystringMachine-readable provider key
displayNamestringDisplay name
isActivebooleanWhether the provider is currently available
createdAtstringISO 8601

Code Examples

bash
curl https://api.chainabit.com/api/v1/ai/providers/<provider-id> \
  -H "Authorization: Bearer $TOKEN"
javascript
const res = await fetch(`${BASE_URL}/ai/providers/${providerId}`, {
  headers: { Authorization: `Bearer ${TOKEN}` },
});
const { data } = await res.json();
python
import requests

res = requests.get(
    f"{BASE_URL}/ai/providers/{provider_id}",
    headers={"Authorization": f"Bearer {TOKEN}"},
)
data = res.json()["data"]

Notes

  • Only active providers are returned by default. Inactive providers (openai, anthropic, mistral) are not exposed.
  • Provider availability is managed at the platform level and cannot be changed through the API.
  • To filter models by provider, use the provider query parameter on GET /ai/models.

Built with purpose.