Models

One catalog, one id per model, one price list. The table on this page is read from the same source the API serves, so what you see here is what a request gets.

Model ids#

Ids are namespaced by vendor, anthropic/claude-sonnet-5, openai/gpt-6-astra, zhipu/glm-5.3-derisked, and are used exactly as listed, including case. A request naming an id that is not in the catalog, or not in your key’s allowlist, is refused before anything is billed.

Ids are stable. When a vendor renames a model upstream, the catalog id you integrated against keeps working. On the rare occasion we rename a catalog id ourselves, the old one becomes an alias and keeps resolving to the same model, so nothing you have deployed has to change. Each entry lists its retired ids in aliases, and a request that uses one is answered normally, with X-Ahura-Model and your usage record carrying the current id. zhipu/glm-5.3-uncensored is an alias of zhipu/glm-5.3-derisked for this reason.

List models#

GET/v1/models

Returns every active model your key can call: the public catalog plus any models private to your organization, such as your own fine-tuned adapters. The shape is OpenAI’s list shape with extra fields per entry.

request
curl https://api.ahurasense.com/v1/models \
  -H "Authorization: Bearer $AHURA_API_KEY"
response (one entry shown)
{
  "object": "list",
  "data": [
    {
      "id": "anthropic/claude-haiku-4.5",
      "object": "model",
      "created": 0,
      "owned_by": "ahura",
      "display_name": "Claude Haiku 4.5",
      "description": "Fast tier. 200K context. High-volume light workloads.",
      "modality": "chat",
      "capabilities": {
        "tools": true,
        "vision": false,
        "json_mode": true,
        "streaming": true,
        "max_output": 64000,
        "context_window": 200000
      },
      "pricing": {
        "input_cents_per_mtok": 100,
        "cached_cents_per_mtok": 10,
        "output_cents_per_mtok": 500
      },
      "prices": {
        "currency": "USD",
        "unit": "per_million_tokens",
        "list": { "input": 1, "cached_input": 0.1, "output": 5 },
        "discount_percent": 0,
        "input": 1,
        "cached_input": 0.1,
        "output": 5,
        "discount": null,
        "effective_input": 1,
        "effective_cached_input": 0.1,
        "effective_output": 5
      },
      "off_peak": null,
      "featured": true,
      "aliases": []
    }
  ]
}
FieldMeaning
idThe catalog id to send as model.
owned_byahura for the public catalog, ahura-private for models only your organization can see.
modalitychat today. Other modalities appear here as they are added.
capabilitiesWhat the model supports. context_window and max_output are in tokens.
pricingCents per million tokens, for input, cached input and output. Pricing & usage.
pricesThe same rates in dollars per million tokens, plus the discounted rates when a model has a discount window. Described below.
off_peakThe raw discount window behind prices.discount; null means the price applies at all hours.
featuredA model we recommend starting with.
aliasesRetired ids that still resolve to this model. Usually empty.

Prices in the response#

pricing is the raw catalog block, in cents per million tokens. prices is the same money in the unit people quote, dollars per million tokens, with the discounted rates worked out for you:

FieldMeaning
listThe vendor’s own list price for the model, as published on OpenRouter, in the same three fields. null when we have not set one.
discount_percentThe standing discount off list. input and output below are already net of it; 0 means they equal the list price.
inputDollars per million prompt tokens. What you pay.
outputDollars per million generated tokens, reasoning tokens included. What you pay.
cached_inputDollars per million prompt tokens served from cache. A model that publishes no cached rate bills cached tokens at the input rate, and this field says so rather than reading null.
discountnull unless the model has a discount window. Otherwise the percent, the window in UTC, whether it is open at the moment of the request, and the three discounted rates.
effective_input, effective_cached_input, effective_outputWhat a request sent right now is billed at: the discounted rates inside an open window, the list rates outside one.

A rate the catalog does not publish is null, never 0. Prices are what you pay; what a serving backend charges us is not in this response and is not published anywhere.

Hosted models#

Most catalog models are served by partner backends. Some run on AhuraSense GPU infrastructure; the table marks them hosted, and responses from them carry X-Ahura-Routing: managed. Today that is the derisked GLM 5.3 build: the same open weights, served without the vendor’s refusal tuning.

ModelIdContextNotes
Z.AI / GLM 5.3 Deriskedzhipu/glm-5.3-derisked1,000,000The full GLM 5.3, served on AhuraSense GPU capacity and through a dedicated derisked backend. Honours the reasoning ladder: none, minimal and low answer without thinking, the default thinks briefly, max thinks most. Prompt-cache hits, when the backend reports them, bill at the cached rate.

Things that differ for hosted models:

  • Reasoning is under your control: reasoning_effort, an exact thinking budget, or none at all. See Reasoning effort.
  • The gateway’s response cache does not apply to them; every request reaches the model.
  • If every replica is starting up, the gateway returns 503 instance_warming_up with Retry-After: 10. Retry, and the request goes through.
  • zhipu/glm-5.3-derisked is served partly on AhuraSense GPU capacity and partly through a dedicated derisked backend under contract to us, so that backend may receive the prompt; the same retention terms apply.

Catalog#

Prices are per million tokens. Context and max output are in tokens. Updated from the live catalog every few minutes.

The catalog could not be loaded right now. GET /v1/models always has the current list.

Something missing or wrong on this page? Tell us, and quote the page title.