AI Models
Browse available AI models and their capabilities. Currently, only Google Gemini models are active and available to users.
Endpoints
| Method | Path | Description | Auth | Rate Limit |
|---|---|---|---|---|
| GET | /ai/models | List available models | JWT + Entitlement | 60/min |
| GET | /ai/models/:id | Get model details | JWT + Entitlement | 60/min |
Active Models
8 Gemini models are currently available:
| Model | Input Cost/1K Tokens | Output Cost/1K Tokens |
|---|---|---|
| gemini-2.5-pro | $0.00125 | $0.01000 |
| gemini-2.5-flash | $0.00030 | $0.00250 |
| gemini-2.5-flash-lite | $0.00010 | $0.00040 |
| gemini-2.0-flash | $0.00010 | $0.00040 |
| gemini-3-pro-preview | $0.00200 | $0.01200 |
| gemini-3-flash-preview | $0.00050 | $0.00300 |
| gemini-3.1-pro-preview | $0.00200 | $0.01200 |
| gemini-3.1-flash-lite-preview | $0.00025 | $0.00150 |
Switching between models requires a Bitter+ tier subscription or higher.
GET /ai/models
List all available AI models.
Authentication: JWT Bearer token + active AI entitlement required. Rate limit: 60/min
Request
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | No | Filter by model name |
provider | string | No | Filter by provider (e.g. google) |
isActive | boolean | No | Filter by active status |
minCostPer1kTokens | number | No | Minimum cost filter |
maxCostPer1kTokens | number | No | Maximum cost filter |
limit | number | No | Items per page |
offset | number | No | Pagination offset |
Response
Response Example
json
{
"data": [
{
"modelKey": "gemini-2.5-pro",
"name": "Gemini 2.5 Pro",
"provider": "google",
"capabilities": ["chat", "analysis", "reasoning", "vision"],
"costPer1kTokens": 0.00125,
"active": true
},
{
"modelKey": "gemini-2.5-flash",
"name": "Gemini 2.5 Flash",
"provider": "google",
"capabilities": ["chat", "analysis", "reasoning"],
"costPer1kTokens": 0.00030,
"active": true
},
{
"modelKey": "gemini-2.5-flash-lite",
"name": "Gemini 2.5 Flash Lite",
"provider": "google",
"capabilities": ["chat", "summarization"],
"costPer1kTokens": 0.00010,
"active": true
},
{
"modelKey": "gemini-2.0-flash",
"name": "Gemini 2.0 Flash",
"provider": "google",
"capabilities": ["chat", "summarization"],
"costPer1kTokens": 0.00010,
"active": true
},
{
"modelKey": "gemini-3-pro-preview",
"name": "Gemini 3 Pro (Preview)",
"provider": "google",
"capabilities": ["chat", "analysis", "reasoning", "vision"],
"costPer1kTokens": 0.00200,
"active": true
},
{
"modelKey": "gemini-3-flash-preview",
"name": "Gemini 3 Flash (Preview)",
"provider": "google",
"capabilities": ["chat", "analysis", "reasoning"],
"costPer1kTokens": 0.00050,
"active": true
},
{
"modelKey": "gemini-3.1-pro-preview",
"name": "Gemini 3.1 Pro (Preview)",
"provider": "google",
"capabilities": ["chat", "analysis", "reasoning", "vision"],
"costPer1kTokens": 0.00200,
"active": true
},
{
"modelKey": "gemini-3.1-flash-lite-preview",
"name": "Gemini 3.1 Flash Lite (Preview)",
"provider": "google",
"capabilities": ["chat", "summarization"],
"costPer1kTokens": 0.00025,
"active": true
}
],
"meta": {
"total": 8,
"limit": 20,
"offset": 0
}
}Response Fields
| Field | Type | Description |
|---|---|---|
modelKey | string | Machine-readable model key |
name | string | Display name |
provider | string | Provider name |
capabilities | string[] | Supported capabilities |
costPer1kTokens | number | Cost in USD per 1,000 input tokens |
active | boolean | Whether the model is currently available |
Code Examples
bash
curl https://api.chainabit.com/api/v1/ai/models \
-H "Authorization: Bearer $TOKEN"javascript
const res = await fetch(`${BASE_URL}/ai/models`, {
headers: { Authorization: `Bearer ${TOKEN}` },
});
const { data } = await res.json();python
import requests
res = requests.get(
f"{BASE_URL}/ai/models",
headers={"Authorization": f"Bearer {TOKEN}"},
)
data = res.json()["data"]GET /ai/models/:id
Get detailed information about a specific model, including pricing.
Authentication: JWT Bearer token + active AI entitlement required. Rate limit: 60/min
Request
Path params: id — from a GET /ai/models response's data[].id. No query parameters.
Response
Response Example
json
{
"data": {
"id": "cm8model01",
"modelKey": "gemini-2.5-pro",
"name": "Gemini 2.5 Pro",
"provider": "google",
"capabilities": ["chat", "analysis", "reasoning", "vision"],
"maxTokens": 8192,
"contextWindow": 1048576,
"costPerInputToken": 0.00000125,
"costPerOutputToken": 0.00001000,
"active": true,
"createdAt": "2026-03-01T00:00:00.000Z"
}
}Response Fields
| Field | Type | Description |
|---|---|---|
id | string | Model ID |
modelKey | string | Machine-readable model key |
name | string | Model name |
provider | string | Underlying provider |
capabilities | string[] | Supported capabilities |
maxTokens | number | Maximum output tokens |
contextWindow | number | Context window size in tokens |
costPerInputToken | number | Cost per input token (USD) |
costPerOutputToken | number | Cost per output token (USD) |
active | boolean | Whether the model is currently available |
createdAt | string | ISO 8601 |
Code Examples
bash
curl https://api.chainabit.com/api/v1/ai/models/<model-id> \
-H "Authorization: Bearer $TOKEN"javascript
const res = await fetch(`${BASE_URL}/ai/models/${modelId}`, {
headers: { Authorization: `Bearer ${TOKEN}` },
});
const { data } = await res.json();python
import requests
res = requests.get(
f"{BASE_URL}/ai/models/{model_id}",
headers={"Authorization": f"Bearer {TOKEN}"},
)
data = res.json()["data"]Notes
- Only active models are returned by default. Pass
isActive=falseto include inactive models (none currently exposed to users). - Model switching between different capability tiers requires a Bitter+ subscription or higher.
- AI operations consume credits from your wallet. Credit costs are derived from the model's USD pricing with a platform margin applied.
- Preview models (
*-preview) may be updated or replaced without notice.