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 idImagesInputOutputStructured outputReasoning
google.gemma-3-4b-it0.040.08json_schema
mistral.ministral-3-14b-instruct0.200.20json_schema
google.gemma-3-12b-it0.090.29json_schema
openai.gpt-oss-20b0.070.30tool
google.gemma-3-27b-it0.230.38json_schema
zai.glm-4.7-flash0.070.40json_schema
openai.gpt-oss-120b0.150.60tool
openai.gpt-5.6-luna0.221.32tool
qwen.qwen3-235b-a22b-25070.220.88json_schema
minimax.minimax-m2.50.301.20json_schema
mistral.mistral-large-3-675b-instruct0.501.50json_schema
  • Images — the model accepts image_url content 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.

  1. 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.
  2. 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.
  3. Long output (descriptions, scripts): mistral.ministral-3-14b-instruct. Its output price is the lowest of the image-capable models.
  4. Multi-step reasoning on English input: openai.gpt-oss-120b.
  5. Top tier: mistral.mistral-large-3-675b-instruct (images) or qwen.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 idReason
anthropic.claude-haiku-4-5Not enabled for the account (AWS Sales)
anthropic.claude-sonnet-5Not enabled for the account (AWS Sales)
anthropic.claude-opus-4-7Not enabled for the account (AWS Sales)
anthropic.claude-opus-4-8Not enabled for the account (AWS Sales)
anthropic.claude-opus-5Not enabled for the account (AWS Sales)
anthropic.claude-fable-5Not enabled for the account (AWS Sales)

GET/v1/models

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

GET
/v1/models
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" }
  ]
}

Was this page helpful?