Models
The API only exposes models that have been measured end to end and have a known price. Structured-output support is model-specific; check the table before using Objects. Pass its id as model on any request.
The catalog
Prices are USD per million tokens, standard tier, us-east-1. Models are ordered by output price, since output is the expensive side of almost every call.
| Model id | Images | Input | Output | Structured output | Reasoning |
|---|---|---|---|---|---|
google.gemma-3-4b-it | ✓ | 0.04 | 0.08 | json_schema | |
mistral.ministral-3-14b-instruct | ✓ | 0.20 | 0.20 | json_schema | |
google.gemma-3-12b-it | ✓ | 0.09 | 0.29 | json_schema | |
openai.gpt-oss-20b | 0.07 | 0.30 | tool | ✓ | |
google.gemma-3-27b-it | ✓ | 0.23 | 0.38 | json_schema | |
zai.glm-4.7-flash | 0.07 | 0.40 | json_schema | ||
openai.gpt-oss-120b | 0.15 | 0.60 | tool | ✓ | |
openai.gpt-5.6-luna | ✓ | 0.22 | 1.32 | tool | ✓ |
qwen.qwen3-235b-a22b-2507 | 0.22 | 0.88 | json_schema | ||
minimax.minimax-m2.5 | 0.30 | 1.20 | json_schema | ✓ | |
mistral.mistral-large-3-675b-instruct | ✓ | 0.50 | 1.50 | json_schema |
- Images — the model accepts
image_urlcontent parts. - Structured output — how Objects asks this model for JSON. It is measured per model, not guessed: Gemma honours
json_schema, while gpt-oss and Luna use forced tool calls. Luna does not support JSON-schema structured outputs on Bedrock. - Reasoning — the model emits reasoning tokens. They are billed as output and count toward
maxTokens, so budget generously.
Choosing a model
Start cheap and move up only when a real case fails at the cheaper tier. The checks behind these recommendations are a handful of known-answer prompts per model, not a benchmark — enough to catch gross mistakes, not to rank quality.
- Default:
google.gemma-3-12b-it. The cheapest model that got every case right in our structured-output checks, the fastest of the ones we measured, and it reads images. Use it for extraction, translation, form filling and image understanding. - High volume, simple tasks (labelling, classification):
google.gemma-3-4b-it. Two to four times cheaper, but it misread a less common word in our checks. - Long output (descriptions, scripts):
mistral.ministral-3-14b-instruct. Its output price is the lowest of the image-capable models. - Multi-step reasoning on English input:
openai.gpt-oss-120b. - Top tier:
mistral.mistral-large-3-675b-instruct(images) orqwen.qwen3-235b-a22b-2507(text only).
GPT-5.6 Luna supports adjustable reasoning effort:
await llm.chat({
model: 'openai.gpt-5.6-luna',
reasoningEffort: 'medium', // low | medium | high
maxTokens: 2000,
messages: [{ role: 'user', content: '...' }],
})
Models that are not available
These models are listed by Bedrock Mantle but return 403 permission_error for this AWS account — being listed is not the same as being enabled. The API rejects them immediately with 403 AUTH and the reason, instead of spending a round trip.
| Model id | Reason |
|---|---|
anthropic.claude-haiku-4-5 | Not enabled for the account (AWS Sales) |
anthropic.claude-sonnet-5 | Not enabled for the account (AWS Sales) |
anthropic.claude-opus-4-7 | Not enabled for the account (AWS Sales) |
anthropic.claude-opus-4-8 | Not enabled for the account (AWS Sales) |
anthropic.claude-opus-5 | Not enabled for the account (AWS Sales) |
anthropic.claude-fable-5 | Not enabled for the account (AWS Sales) |
List the catalog
Returns the catalog above, plus the models that are blocked and why. Use it to validate a model id at startup rather than hard-coding the table.
Response
- Name
day- Type
- string
- Description
Today's date in UTC,
YYYY-MM-DD.
- Name
models- Type
- array
- Description
Catalog entries:
id,label,api,price,structured,reasoning,vision.
- Name
unavailable- Type
- array
- Description
Blocked models:
id,label,reason.
Request
curl https://api.llm.vovix.io/v1/models \
-H "x-api-key: $LLM_API_KEY"
Response
{
"day": "2026-09-12",
"models": [
{
"id": "google.gemma-3-12b-it",
"label": "Gemma 3 12B",
"api": "chat",
"price": { "input": 0.09, "output": 0.29 },
"structured": "json_schema",
"reasoning": false,
"vision": true
}
],
"unavailable": [
{ "id": "anthropic.claude-opus-5", "label": "Claude Opus 5", "reason": "ACCOUNT_NOT_ENABLED" }
]
}