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.
| Model | Context | Max output | Capabilities |
|---|---|---|---|
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-5 | 1M | 128K | ChatStreamToolsVisionReasoningCaching |
Claude Sonnet 5claude-sonnet-5 | - | - | ChatStreamToolsReasoning |
Fable 5fable-5 | 1.05M | 128K | ChatStreamToolsReasoningCaching |
GPT-5.3 Codexgpt-5.3-codex | - | 4,096 | ChatResponsesStreamTools |
GPT-5.4gpt-5.4 | - | 4,096 | ChatResponsesStreamTools |
GPT-5.4 minigpt-5.4-mini | - | 4,096 | ChatResponsesStreamTools |
GPT-5.5gpt-5.5 | - | 4,096 | ChatResponsesStreamTools |
GPT-5.6 Lunagpt-5.6-luna | 1.05M | 128K | ChatResponsesStreamToolsCaching |
GPT-5.6 Solgpt-5.6-sol | 1.05M | 128K | ChatStreamToolsCaching |
GPT-5.6 Terragpt-5.6-terra | 1.05M | 128K | ChatResponsesStreamToolsCaching |
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.
{
"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.
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.