Skip to content

Core concepts

Models

Pass any of these ids as the model field. The catalogue is shared by both billing surfaces, so a credit key and a token key see exactly the same models.

Catalogue (permalink)

14 models are available. Context window and maximum output are the upstream limits where the provider declares them. A dash means the provider publishes no figure, not that the limit is unlimited.

Available models with context window, output limit and capabilities
ModelContextMax outputCapabilities
Claude Haiku 4.5claude-haiku-4-5-20251001--ChatStreamToolsReasoning
Claude Opus 4.6claude-opus-4-6--ChatStreamToolsReasoning
Claude Opus 4.7claude-opus-4-7--ChatStreamToolsReasoning
Claude Opus 4.8claude-opus-4-8--ChatStreamToolsReasoning
Claude Opus 5claude-opus-51M128KChatStreamToolsVisionReasoningCaching
Claude Sonnet 5claude-sonnet-5--ChatStreamToolsReasoning
Fable 5fable-51.05M128KChatStreamToolsReasoningCaching
GPT-5.3 Codexgpt-5.3-codex-4,096ChatResponsesStreamTools
GPT-5.4gpt-5.4-4,096ChatResponsesStreamTools
GPT-5.4 minigpt-5.4-mini-4,096ChatResponsesStreamTools
GPT-5.5gpt-5.5-4,096ChatResponsesStreamTools
GPT-5.6 Lunagpt-5.6-luna1.05M128KChatResponsesStreamToolsCaching
GPT-5.6 Solgpt-5.6-sol1.05M128KChatStreamToolsCaching
GPT-5.6 Terragpt-5.6-terra1.05M128KChatResponsesStreamToolsCaching

Using an id (permalink)

The id goes in the model field of the request body, exactly as written in the table. Ids are case-sensitive, and a dated variant such as claude-haiku-4-5-20251001 is a distinct model from any undated name.

JSONRequest body fragment
{
  "model": "claude-sonnet-5",
  "messages": [{ "role": "user", "content": "Hello" }]
}

If a model id is wrong, the request is forwarded and the provider answers with its own 404 or 400. If the id is right but your key is not scoped to it, the gateway stops the request first with 403 model_not_allowed.

What your key can use (permalink)

Two separate things decide whether a given id will answer.

  • The key’s model allowlist. Keys can be scoped to a subset of the catalogue. Anything outside it returns 403 model_not_allowed. A key with an empty allowlist can use every enabled model.
  • Whether the model is enabled. Models can be turned off centrally, in which case they stop answering for everyone.

Neither depends on your billing surface: credit and token keys see the same catalogue. To find out what your own key allows, paste it into the usage checker, which lists the allowlist or says that every model is available.

Fetching the live list (permalink)

GET https://api.korlogic.com/v1/models returns the catalogue in OpenAI list format. Prefer it over hard-coding this page if your app renders a model picker.

Shell
curl https://api.korlogic.com/v1/models \
  -H "Authorization: Bearer kl_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Token keys call GET https://api.korlogic.com/token/v1/models instead. Same response, different surface. See Base URLs.