Provider API reference
Config Reference
Model Definition Reference
cost shape is equivalent to Model<Api>["cost"]. Base rates and every tier are complete rate sets. When multiple thresholds match, calculateCost() uses the highest threshold and applies that tier to all four cost buckets for the request.
openrouter sends reasoning: { effort }. deepseek sends thinking: { type: "enabled" | "disabled" } and reasoning_effort when enabled. together sends reasoning: { enabled } and also reasoning_effort when supportsReasoningEffort is enabled. qwen is for DashScope-style top-level enable_thinking. Use qwen-chat-template for local Qwen-compatible servers that read chat_template_kwargs.enable_thinking and need preserve_thinking. Use chat-template for configurable chat_template_kwargs, for example DeepSeek V3.x behind vLLM with chatTemplateKwargs: { "thinking": { "$var": "thinking.enabled" } }. Use thinkingFormat: "baseten" with chatTemplateArgs when the provider expects toggle values under chat_template_args and optionally supports top-level reasoning_effort.
thinkingTokenBudgetField sends a clamped per-level thinking budget as a top-level request field (thinking_token_budget on vLLM, thinking_budget on Qwen/SGLang, thinking_budget_tokens on llama.cpp). supportsThinkingTokenBudget: true is an alias for the vLLM field name. Do not combine it with reasoning_effort on DashScope Qwen models.
vllmPriority sends a top-level priority request field for openai-completions providers. Lower values are scheduled earlier and the vLLM server default is 0, so it only takes effect when vLLM runs with --scheduling-policy priority. Set it on a background or batch model so its long prefills queue behind interactive sessions. Unset by default and never set on the generated catalog.
cacheControlFormat: "anthropic" applies Anthropic-style cache_control markers to the system prompt, last tool definition, and last user, assistant, or tool-result text content.
Capability flags are enforcement claims, not preferences. supportsStrictMode controls strict JSON-schema tools for OpenAI-compatible APIs; Anthropic/Bedrock use supportsStrictTools; supportsOpenAIGrammarTools controls OpenAI Lark/regex custom tools. Atomic also accepts supportsGrammarTools as a compatibility alias and synchronizes it to the canonical OpenAI name; when both disagree, the canonical field wins. Leave these fields unset/false unless the endpoint and selected model actually preserve and enforce the corresponding request shape. See Extensions for exact constrainedSampling modes.
For openai-responses providers, set compat.sessionAffinityFormat to "openai" for session_id plus x-client-request-id, "openai-nosession" to omit session_id while retaining x-client-request-id, or "openrouter" for x-session-id. Responses-compatible providers may also set supportsToolSearch when they support deferred tool loading. supportsMaxOutputTokens defaults to true; set it to false for OpenAI Responses-compatible gateways such as Codex-protocol proxies that reject max_output_tokens with a 400, and Atomic omits the parameter from those requests.