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
| Method | Path | Description | Auth | Rate Limit |
|---|---|---|---|---|
| GET | /ai/providers | List available providers | JWT + Entitlement | 60/min |
| GET | /ai/providers/:id | Get provider details | JWT + Entitlement | 60/min |
Active Providers
| Provider | Key | Status |
|---|---|---|
google | Active | |
| OpenAI | openai | Inactive |
| Anthropic | anthropic | Inactive |
| Mistral AI | mistral | Inactive |
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
| Parameter | Type | Required | Description |
|---|---|---|---|
key | string | No | Filter by provider key (e.g. google) |
limit | number | No | Items per page |
offset | number | No | Pagination offset |
Response
Response Example
json
{
"data": [
{
"key": "google",
"displayName": "Google",
"isActive": true
}
],
"meta": {
"total": 1,
"limit": 20,
"offset": 0,
"hasNextPage": false
}
}Response Fields
| Field | Type | Description |
|---|---|---|
key | string | Machine-readable provider key |
displayName | string | Display name |
isActive | boolean | Whether 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
| Field | Type | Description |
|---|---|---|
id | string | Provider UUID |
key | string | Machine-readable provider key |
displayName | string | Display name |
isActive | boolean | Whether the provider is currently available |
createdAt | string | ISO 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
providerquery parameter onGET /ai/models.