Files
coyote/quirks.yaml
T
Dark-Alex-17 0dc9dd91c3 chore(TASK-043): regenerate model catalog
Add responses sub-patches to the six o-series quirks entries (temperature
and top_p removal; reasoning.effort high for the -high aliases) and
regenerate models.yaml from live models.dev/openrouter data, picking up
expected upstream price and model drift.
2026-09-16 12:51:49 -06:00

1503 lines
43 KiB
YAML

# Hand-owned model behavior overlay.
#
# Everything in this file is curated by hand and layered on top of API-sourced
# model data: oauth blocks, request patches, wire-name aliases, behavioral
# flags, and models that no public catalog provides.
#
# `models:` entries are self-complete. `rules` apply ONLY to API-sourced
# models, never to hand-owned `models:` entries. Legacy verbatim-preserved
# entries are grouped under a `# legacy -- pruning candidates` comment.
- provider: openai
exclude:
- "text-embedding-*"
- "gpt-image-*"
- "chatgpt-image-*"
- "gpt-realtime*"
rules:
- match: "gpt-5.6-*"
default_reasoning_effort: medium
- match: "gpt-5.5"
default_reasoning_effort: medium
- match: "gpt-5.5-pro"
default_reasoning_effort: high
- match: "gpt-5.4"
default_reasoning_effort: none
- match: "gpt-5.4-pro"
default_reasoning_effort: medium
- match: "gpt-5.4-mini"
default_reasoning_effort: none
- match: "gpt-5.4-nano"
default_reasoning_effort: none
- match: "gpt-5.3-codex"
default_reasoning_effort: medium
- match: "gpt-5.2"
default_reasoning_effort: none
- match: "gpt-5.2-pro"
default_reasoning_effort: medium
- match: "gpt-5.1"
default_reasoning_effort: none
- match: "gpt-5.1-chat-latest"
default_reasoning_effort: none
- match: "gpt-5"
default_reasoning_effort: medium
- match: "gpt-5-chat-latest"
default_reasoning_effort: medium
- match: "o4-mini"
system_prompt_prefix: Formatting re-enabled
default_reasoning_effort: medium
patch:
body:
max_tokens: null
temperature: null
top_p: null
responses:
body:
temperature: null
top_p: null
- match: "o3"
system_prompt_prefix: Formatting re-enabled
patch:
body:
max_tokens: null
temperature: null
top_p: null
responses:
body:
temperature: null
top_p: null
- match: "o3-mini"
system_prompt_prefix: Formatting re-enabled
patch:
body:
max_tokens: null
temperature: null
top_p: null
responses:
body:
temperature: null
top_p: null
models:
- name: text-embedding-3-large
type: embedding
input_price: 0.13
max_tokens_per_chunk: 8191
default_chunk_size: 2000
max_batch_size: 100
- name: text-embedding-3-small
type: embedding
input_price: 0.02
max_tokens_per_chunk: 8191
default_chunk_size: 2000
max_batch_size: 100
# legacy -- pruning candidates
- name: o4-mini-high
max_output_tokens: 100000
real_name: o4-mini
max_input_tokens: 200000
input_price: 1.1
output_price: 4.4
supports_vision: true
supports_function_calling: true
system_prompt_prefix: Formatting re-enabled
patch:
body:
reasoning_effort: high
max_tokens: null
temperature: null
top_p: null
responses:
body:
temperature: null
top_p: null
reasoning:
effort: high
- name: o3-high
real_name: o3
max_input_tokens: 200000
input_price: 2
output_price: 8
supports_vision: true
supports_function_calling: true
system_prompt_prefix: Formatting re-enabled
patch:
body:
reasoning_effort: high
max_tokens: null
temperature: null
top_p: null
responses:
body:
temperature: null
top_p: null
reasoning:
effort: high
- name: o3-mini-high
max_output_tokens: 100000
real_name: o3-mini
max_input_tokens: 200000
input_price: 1.1
output_price: 4.4
supports_vision: true
supports_function_calling: true
system_prompt_prefix: Formatting re-enabled
patch:
body:
reasoning_effort: high
max_tokens: null
temperature: null
top_p: null
responses:
body:
temperature: null
top_p: null
reasoning:
effort: high
- name: chat-latest
max_input_tokens: 400000
max_output_tokens: 128000
input_price: 5
output_price: 30
supports_vision: true
supports_function_calling: true
- name: gpt-5.1-chat-latest
max_input_tokens: 400000
max_output_tokens: 128000
input_price: 1.25
output_price: 10
supports_vision: true
supports_function_calling: true
reasoning_levels: [none, low, medium, high]
default_reasoning_effort: none
- name: gpt-5-chat-latest
max_input_tokens: 400000
max_output_tokens: 128000
input_price: 1.25
output_price: 10
supports_vision: true
supports_function_calling: true
reasoning_levels: [minimal, low, medium, high]
default_reasoning_effort: medium
- provider: gemini
exclude:
- "gemini-embedding-*"
- "veo-*"
- "*-tts"
- "*-tts-preview"
- "*-image-preview"
rules:
- match: "gemini-3.6-flash"
default_reasoning_effort: medium
- match: "gemini-3.5-flash"
default_reasoning_effort: medium
- match: "gemini-3-flash-preview"
default_reasoning_effort: high
- match: "gemini-3.1-flash-lite"
default_reasoning_effort: minimal
- match: "gemini-3.1-pro-preview"
default_reasoning_effort: high
- match: "gemini-3-pro-preview"
default_reasoning_effort: high
- match: "gemini-2.5-pro"
default_reasoning_effort: high
reasoning_levels: [low, medium, high]
models:
- name: text-embedding-004
type: embedding
input_price: 0
max_tokens_per_chunk: 2048
default_chunk_size: 1500
max_batch_size: 100
# legacy -- pruning candidates
- name: gemini-3-pro-preview
max_input_tokens: 1048576
supports_vision: true
supports_function_calling: true
reasoning_levels: [low, high]
default_reasoning_effort: high
- name: gemma-3-27b-it
max_input_tokens: 131072
max_output_tokens: 8192
input_price: 0
output_price: 0
- provider: claude
rules:
- match: "claude-*"
require_max_tokens: true
- match: "claude-opus-5"
default_reasoning_effort: high
- match: "claude-fable-*"
default_reasoning_effort: high
- match: "claude-opus-4-8"
default_reasoning_effort: high
- match: "claude-opus-4-7"
default_reasoning_effort: high
- match: "claude-opus-4-6"
default_reasoning_effort: high
- match: "claude-sonnet-5"
default_reasoning_effort: high
- match: "claude-sonnet-4-6"
default_reasoning_effort: high
variants:
- match: "claude-opus-4-6"
suffix: ":thinking"
real_name: claude-opus-4-6
max_output_tokens: 24000
reasoning_levels: []
patch:
body:
temperature: null
top_p: null
thinking:
type: enabled
budget_tokens: 16000
- match: "claude-sonnet-4-6"
suffix: ":thinking"
real_name: claude-sonnet-4-6
max_output_tokens: 24000
reasoning_levels: []
patch:
body:
temperature: null
top_p: null
thinking:
type: enabled
budget_tokens: 16000
- match: "claude-sonnet-4-5-20250929"
suffix: ":thinking"
real_name: claude-sonnet-4-5-20250929
max_output_tokens: 24000
reasoning_levels: []
patch:
body:
temperature: null
top_p: null
thinking:
type: enabled
budget_tokens: 16000
- match: "claude-haiku-4-5-20251001"
suffix: ":thinking"
real_name: claude-haiku-4-5-20251001
max_output_tokens: 24000
reasoning_levels: []
patch:
body:
temperature: null
top_p: null
thinking:
type: enabled
budget_tokens: 16000
- match: "claude-opus-4-5-20251101"
suffix: ":thinking"
real_name: claude-opus-4-5-20251101
max_output_tokens: 24000
reasoning_levels: []
patch:
body:
temperature: null
top_p: null
thinking:
type: enabled
budget_tokens: 16000
- match: "claude-opus-4-1-20250805"
suffix: ":thinking"
real_name: claude-opus-4-1-20250805
max_output_tokens: 24000
reasoning_levels: []
patch:
body:
temperature: null
top_p: null
thinking:
type: enabled
budget_tokens: 16000
- match: "claude-opus-4-20250514"
suffix: ":thinking"
real_name: claude-opus-4-20250514
max_output_tokens: 24000
reasoning_levels: []
patch:
body:
temperature: null
top_p: null
thinking:
type: enabled
budget_tokens: 16000
models:
# legacy -- pruning candidates
- name: claude-opus-4-1-20250805
max_input_tokens: 200000
max_output_tokens: 8192
require_max_tokens: true
input_price: 15
output_price: 75
supports_vision: true
supports_function_calling: true
- name: claude-opus-4-20250514
max_input_tokens: 200000
max_output_tokens: 8192
require_max_tokens: true
input_price: 15
output_price: 75
supports_vision: true
supports_function_calling: true
- provider: mistral
exclude:
- "voxtral-*"
models:
- name: mistral-embed
type: embedding
max_input_tokens: 8092
input_price: 0.1
max_tokens_per_chunk: 8092
default_chunk_size: 2000
# legacy -- pruning candidates
- name: magistral-small-latest
max_input_tokens: 131072
input_price: 0.5
output_price: 1.5
- name: devstral-small-latest
max_input_tokens: 262144
input_price: 0.1
output_price: 0.3
supports_function_calling: true
- name: ministral-14b-latest
max_input_tokens: 262144
input_price: 0.2
output_price: 0.2
supports_function_calling: true
- provider: ai21
models:
- name: jamba-large
max_input_tokens: 256000
input_price: 2
output_price: 8
supports_function_calling: true
- name: jamba-mini
max_input_tokens: 256000
input_price: 0.2
output_price: 0.4
supports_function_calling: true
- provider: cohere
models:
- name: embed-v4.0
type: embedding
input_price: 0.12
max_tokens_per_chunk: 2048
default_chunk_size: 2000
max_batch_size: 96
- name: embed-english-v3.0
type: embedding
input_price: 0.1
max_tokens_per_chunk: 512
default_chunk_size: 1000
max_batch_size: 96
- name: embed-multilingual-v3.0
type: embedding
input_price: 0.1
max_tokens_per_chunk: 512
default_chunk_size: 1000
max_batch_size: 96
- name: rerank-v3.5
type: reranker
max_input_tokens: 4096
- name: rerank-english-v3.0
type: reranker
max_input_tokens: 4096
- name: rerank-multilingual-v3.0
type: reranker
max_input_tokens: 4096
- provider: xai
exclude:
- "grok-imagine-*"
oauth:
client_id: b1a00492-073a-47ea-816f-4c329264a828
authorize_url: https://auth.x.ai/oauth2/authorize
token_url: https://auth.x.ai/oauth2/token
scopes:
- openid
- profile
- email
- offline_access
- grok-cli:access
- api:access
redirect_port: 56121
flow: pkce
token_request_format: form_url_encoded
extra_authorize_params:
plan: generic
referrer: coyote
echo_pkce_in_token_exchange: true
models:
- name: grok-4.20
real_name: grok-4.20-multi-agent-0309
input_price: 1.25
output_price: 2.5
max_input_tokens: 1000000
supports_function_calling: true
- name: grok-4.20-reasoning
real_name: grok-4.20-0309-reasoning
input_price: 1.25
output_price: 2.5
max_input_tokens: 1000000
supports_function_calling: true
- name: grok-4.20-non-reasoning
real_name: grok-4.20-0309-non-reasoning
input_price: 1.25
output_price: 2.5
max_input_tokens: 1000000
supports_function_calling: true
- name: grok-4-1-fast-non-reasoning
max_input_tokens: 1000000
input_price: 0.2
output_price: 0.5
supports_function_calling: true
- name: grok-4-1-fast-reasoning
max_input_tokens: 1000000
input_price: 0.2
output_price: 0.5
supports_function_calling: true
- name: grok-code-fast-1
max_input_tokens: 256000
input_price: 0.2
output_price: 1.5
supports_function_calling: true
- name: grok-3
max_input_tokens: 131072
input_price: 3
output_price: 15
supports_function_calling: true
- name: grok-3-mini
max_input_tokens: 131072
input_price: 0.3
output_price: 0.5
supports_function_calling: true
- provider: perplexity
models:
# legacy -- pruning candidates
- name: sonar-reasoning
max_input_tokens: 128000
input_price: 1
output_price: 5
- provider: groq
exclude:
- "whisper-*"
models:
# legacy -- pruning candidates
- name: meta-llama/llama-4-maverick-17b-128e-instruct
max_input_tokens: 131072
input_price: 0
output_price: 0
supports_vision: true
supports_function_calling: true
- name: meta-llama/llama-4-scout-17b-16e-instruct
max_input_tokens: 131072
input_price: 0
output_price: 0
supports_vision: true
supports_function_calling: true
- name: moonshotai/kimi-k2-instruct-0905
max_input_tokens: 262144
input_price: 0
output_price: 0
supports_function_calling: true
- name: qwen/qwen3-32b
max_input_tokens: 131072
input_price: 0
output_price: 0
- provider: vertexai
exclude:
- "gemini-embedding-*"
- "*-tts"
rules:
- match: "claude-*"
require_max_tokens: true
- match: "gemini-3.5-flash"
default_reasoning_effort: medium
- match: "gemini-3-flash-preview"
default_reasoning_effort: high
- match: "gemini-3.1-flash-lite"
default_reasoning_effort: minimal
- match: "gemini-3.1-pro-preview"
default_reasoning_effort: high
- match: "gemini-3-pro-preview"
default_reasoning_effort: high
- match: "gemini-2.5-flash"
default_reasoning_effort: medium
reasoning_levels: [low, medium, high]
- match: "gemini-2.5-pro"
default_reasoning_effort: high
reasoning_levels: [low, medium, high]
- match: "claude-opus-5"
default_reasoning_effort: high
- match: "claude-fable-*"
default_reasoning_effort: high
- match: "claude-opus-4-8"
default_reasoning_effort: high
- match: "claude-opus-4-7"
default_reasoning_effort: high
- match: "claude-sonnet-5"
default_reasoning_effort: high
- match: "claude-sonnet-4-6"
default_reasoning_effort: high
variants:
- match: "claude-opus-4-6"
suffix: ":thinking"
real_name: claude-opus-4-6
max_output_tokens: 24000
supports_function_calling: false
reasoning_levels: []
patch:
body:
temperature: null
top_p: null
thinking:
type: enabled
budget_tokens: 16000
- match: "claude-sonnet-4-6"
suffix: ":thinking"
real_name: claude-sonnet-4-6
max_output_tokens: 24000
supports_function_calling: false
reasoning_levels: []
patch:
body:
temperature: null
top_p: null
thinking:
type: enabled
budget_tokens: 16000
- match: "claude-opus-4-5@20251101"
suffix: ":thinking"
real_name: claude-opus-4-5@20251101
max_output_tokens: 24000
supports_function_calling: false
reasoning_levels: []
patch:
body:
temperature: null
top_p: null
thinking:
type: enabled
budget_tokens: 16000
- match: "claude-sonnet-4-5@20250929"
suffix: ":thinking"
real_name: claude-sonnet-4-5@20250929
max_output_tokens: 24000
supports_function_calling: false
reasoning_levels: []
patch:
body:
temperature: null
top_p: null
thinking:
type: enabled
budget_tokens: 16000
- match: "claude-haiku-4-5@20251001"
suffix: ":thinking"
real_name: claude-haiku-4-5@20251001
max_output_tokens: 24000
supports_function_calling: false
reasoning_levels: []
patch:
body:
temperature: null
top_p: null
thinking:
type: enabled
budget_tokens: 16000
models:
- name: text-embedding-005
type: embedding
max_input_tokens: 20000
input_price: 0.025
max_tokens_per_chunk: 2048
default_chunk_size: 1500
max_batch_size: 5
- name: text-multilingual-embedding-002
type: embedding
max_input_tokens: 20000
input_price: 0.2
max_tokens_per_chunk: 2048
default_chunk_size: 1500
max_batch_size: 5
# legacy -- pruning candidates
- name: gemini-3-pro-preview
max_input_tokens: 1048576
supports_vision: true
supports_function_calling: true
reasoning_levels: [low, high]
default_reasoning_effort: high
- name: claude-opus-5
max_input_tokens: 1000000
max_output_tokens: 128000
require_max_tokens: true
input_price: 5
output_price: 25
supports_function_calling: true
supports_vision: true
reasoning_levels: [low, medium, high, xhigh, max]
default_reasoning_effort: high
- name: claude-fable-5-1
max_input_tokens: 1000000
max_output_tokens: 128000
require_max_tokens: true
input_price: 10
output_price: 50
supports_function_calling: true
supports_vision: true
reasoning_levels: [low, medium, high, xhigh, max]
default_reasoning_effort: high
- name: claude-fable-5
max_input_tokens: 1000000
max_output_tokens: 128000
require_max_tokens: true
input_price: 10
output_price: 50
supports_function_calling: true
supports_vision: true
reasoning_levels: [low, medium, high, xhigh, max]
default_reasoning_effort: high
- name: claude-opus-4-8
max_input_tokens: 1000000
max_output_tokens: 128000
require_max_tokens: true
input_price: 5
output_price: 25
supports_vision: true
supports_function_calling: true
reasoning_levels: [low, medium, high, xhigh, max]
default_reasoning_effort: high
- name: claude-opus-4-7
max_input_tokens: 1000000
max_output_tokens: 128000
require_max_tokens: true
input_price: 5
output_price: 25
supports_vision: true
supports_function_calling: true
reasoning_levels: [low, medium, high, xhigh, max]
default_reasoning_effort: high
- name: claude-opus-4-6
max_input_tokens: 200000
max_output_tokens: 8192
require_max_tokens: true
input_price: 5
output_price: 25
supports_vision: true
supports_function_calling: true
- name: claude-sonnet-5
max_input_tokens: 1000000
max_output_tokens: 128000
require_max_tokens: true
input_price: 3
output_price: 15
supports_vision: true
supports_function_calling: true
reasoning_levels: [low, medium, high, xhigh, max]
default_reasoning_effort: high
- name: claude-sonnet-4-6
max_input_tokens: 200000
max_output_tokens: 8192
require_max_tokens: true
input_price: 3
output_price: 15
supports_vision: true
supports_function_calling: true
reasoning_levels: [low, medium, high, max]
default_reasoning_effort: high
- name: claude-3-5-haiku@20241022
max_input_tokens: 200000
max_output_tokens: 8192
require_max_tokens: true
input_price: 0.8
output_price: 4
supports_vision: true
supports_function_calling: true
- name: mistral-small-2503
max_input_tokens: 32000
input_price: 0.1
output_price: 0.3
supports_function_calling: true
- name: codestral-2501
max_input_tokens: 256000
input_price: 0.3
output_price: 0.9
supports_function_calling: true
- provider: bedrock
rules:
- match: "us.anthropic.claude-*"
require_max_tokens: true
- match: "us.meta.llama*"
require_max_tokens: true
- match: "us.anthropic.claude-opus-5"
default_reasoning_effort: high
- match: "us.anthropic.claude-fable-*"
default_reasoning_effort: high
- match: "us.anthropic.claude-opus-4-8"
default_reasoning_effort: high
- match: "us.anthropic.claude-opus-4-7"
default_reasoning_effort: high
- match: "us.anthropic.claude-opus-4-6-v1"
default_reasoning_effort: high
- match: "us.anthropic.claude-sonnet-5"
default_reasoning_effort: high
- match: "us.anthropic.claude-sonnet-4-6"
default_reasoning_effort: high
variants:
- match: "us.anthropic.claude-opus-4-6-v1"
suffix: ":thinking"
real_name: us.anthropic.claude-opus-4-6-v1
max_output_tokens: 24000
supports_function_calling: false
reasoning_levels: []
patch:
body:
inferenceConfig:
temperature: null
topP: null
additionalModelRequestFields:
thinking:
type: enabled
budget_tokens: 16000
- match: "us.anthropic.claude-sonnet-4-6"
suffix: ":thinking"
real_name: us.anthropic.claude-sonnet-4-6
max_output_tokens: 24000
supports_function_calling: false
reasoning_levels: []
patch:
body:
inferenceConfig:
temperature: null
topP: null
additionalModelRequestFields:
thinking:
type: enabled
budget_tokens: 16000
- match: "us.anthropic.claude-opus-4-5-20251101-v1:0"
suffix: ":thinking"
real_name: us.anthropic.claude-opus-4-5-20251101-v1:0
max_output_tokens: 24000
supports_function_calling: false
reasoning_levels: []
patch:
body:
inferenceConfig:
temperature: null
topP: null
additionalModelRequestFields:
thinking:
type: enabled
budget_tokens: 16000
- match: "us.anthropic.claude-sonnet-4-5-20250929-v1:0"
suffix: ":thinking"
real_name: us.anthropic.claude-sonnet-4-5-20250929-v1:0
max_output_tokens: 24000
supports_function_calling: false
reasoning_levels: []
patch:
body:
inferenceConfig:
temperature: null
topP: null
additionalModelRequestFields:
thinking:
type: enabled
budget_tokens: 16000
- match: "us.anthropic.claude-haiku-4-5-20251001-v1:0"
suffix: ":thinking"
real_name: us.anthropic.claude-haiku-4-5-20251001-v1:0
max_output_tokens: 24000
supports_function_calling: false
reasoning_levels: []
patch:
body:
inferenceConfig:
temperature: null
topP: null
additionalModelRequestFields:
thinking:
type: enabled
budget_tokens: 16000
models:
- name: cohere.embed-english-v3
type: embedding
input_price: 0.1
max_tokens_per_chunk: 512
default_chunk_size: 1000
max_batch_size: 96
- name: cohere.embed-multilingual-v3
type: embedding
input_price: 0.1
max_tokens_per_chunk: 512
default_chunk_size: 1000
max_batch_size: 96
# legacy -- pruning candidates
- name: us.meta.llama3-3-70b-instruct-v1:0
max_input_tokens: 131072
max_output_tokens: 8192
require_max_tokens: true
input_price: 0.72
output_price: 0.72
supports_function_calling: true
- name: us.amazon.nova-premier-v1:0
max_input_tokens: 300000
max_output_tokens: 5120
input_price: 2.5
output_price: 12.5
- name: us.amazon.nova-pro-v1:0
max_input_tokens: 300000
max_output_tokens: 5120
input_price: 0.8
output_price: 3.2
supports_vision: true
- name: us.amazon.nova-lite-v1:0
max_input_tokens: 300000
max_output_tokens: 5120
input_price: 0.06
output_price: 0.24
supports_vision: true
- name: us.amazon.nova-micro-v1:0
max_input_tokens: 128000
max_output_tokens: 5120
input_price: 0.035
output_price: 0.14
- provider: cloudflare
rules:
- match: "@cf/*"
require_max_tokens: true
models:
- name: '@cf/baai/bge-large-en-v1.5'
type: embedding
input_price: 0
max_tokens_per_chunk: 512
default_chunk_size: 1000
max_batch_size: 100
# legacy -- pruning candidates
- name: '@cf/google/gemma-3-12b-it'
max_input_tokens: 131072
max_output_tokens: 2048
require_max_tokens: true
input_price: 0
output_price: 0
- provider: ernie
models:
- name: ernie-4.5-turbo-128k
max_input_tokens: 131072
input_price: 0.112
output_price: 0.448
- name: ernie-4.5-turbo-vl-32k
max_input_tokens: 32768
input_price: 0.42
output_price: 1.26
supports_vision: true
- name: ernie-5.0-thinking-preview
max_input_tokens: 131072
input_price: 1.4
output_price: 5.6
- name: ernie-x1.1-preview
max_input_tokens: 65536
input_price: 0.14
output_price: 0.56
- name: bge-large-zh
type: embedding
input_price: 0.07
max_tokens_per_chunk: 512
default_chunk_size: 1000
max_batch_size: 16
- name: bge-large-en
type: embedding
input_price: 0.07
max_tokens_per_chunk: 512
default_chunk_size: 1000
max_batch_size: 16
- name: bce-reranker-base
type: reranker
max_input_tokens: 1024
input_price: 0.07
- provider: qianwen
exclude:
- "*-realtime"
rules:
- match: "qwen3.5-plus"
patch:
body:
enable_thinking: false
- match: "qwen3.5-397b-a17b"
patch:
body:
enable_thinking: false
variants:
- match: "qwen3-max"
suffix: ":thinking"
real_name: qwen3-max
patch:
body:
enable_thinking: true
models:
- name: qwen3.5-plus:thinking
real_name: qwen3.5-plus
max_input_tokens: 262144
supports_function_calling: true
- name: qwen3.5-397b-a17b:thinking
real_name: qwen3.5-397b-a17b
max_input_tokens: 262144
supports_function_calling: true
- name: text-embedding-v4
type: embedding
input_price: 0.1
max_tokens_per_chunk: 8192
default_chunk_size: 2000
max_batch_size: 10
- name: text-embedding-v3
type: embedding
input_price: 0.1
max_tokens_per_chunk: 8192
default_chunk_size: 2000
max_batch_size: 10
# legacy -- pruning candidates
- name: qwen3-vl-flash
max_input_tokens: 262144
supports_vision: true
- name: qwen3-235b-a22b-instruct-2507
max_input_tokens: 131072
input_price: 0.28
output_price: 1.12
supports_function_calling: true
- name: qwen3-235b-a22b-thinking-2507
max_input_tokens: 131072
input_price: 0.28
output_price: 2.8
- name: qwen3-30b-a3b-instruct-2507
max_input_tokens: 131072
input_price: 0.105
output_price: 0.42
supports_function_calling: true
- name: qwen3-30b-a3b-thinking-2507
max_input_tokens: 131072
input_price: 0.105
output_price: 1.05
- name: qwen3-vl-32b-instruct
max_input_tokens: 131072
input_price: 0.28
output_price: 1.12
supports_vision: true
- name: qwen3-vl-8b-instruct
max_input_tokens: 131072
input_price: 0.07
output_price: 0.28
supports_vision: true
- name: qwen3-coder-next
max_input_tokens: 262144
- provider: hunyuan
models:
- name: hunyuan-2.0-instruct-20251111
max_input_tokens: 131072
input_price: 0.112
output_price: 0.28
supports_function_calling: true
- name: hunyuan-2.0-thinking-20251109
max_input_tokens: 131072
input_price: 0.14
output_price: 0.56
supports_function_calling: true
- name: hunyuan-vision-1.5-instruct
max_input_tokens: 24576
input_price: 0.42
output_price: 1.26
supports_vision: true
- name: hunyuan-embedding
type: embedding
input_price: 0.01
max_tokens_per_chunk: 1024
default_chunk_size: 1000
max_batch_size: 100
- provider: deepseek
models:
# legacy -- pruning candidates
- name: deepseek-chat
max_input_tokens: 64000
max_output_tokens: 8192
input_price: 0.56
output_price: 1.68
supports_function_calling: true
- name: deepseek-reasoner
max_input_tokens: 64000
max_output_tokens: 32768
input_price: 0.56
output_price: 1.68
- provider: zhipuai
variants:
- match: "glm-5"
suffix: ":instruct"
real_name: glm-5
patch:
body:
thinking:
type: disabled
- match: "glm-4.7"
suffix: ":instruct"
real_name: glm-4.7
patch:
body:
thinking:
type: disabled
models:
- name: embedding-3
type: embedding
max_input_tokens: 8192
input_price: 0.07
max_tokens_per_chunk: 8192
default_chunk_size: 2000
- name: rerank
type: reranker
max_input_tokens: 4096
input_price: 0.112
# legacy -- pruning candidates
- name: glm-4.6v-flash
max_input_tokens: 65536
input_price: 0
output_price: 0
supports_vision: true
- provider: minimax
models:
# legacy -- pruning candidates
- name: minimax-m3
max_input_tokens: 1000000
input_price: 4.2
output_price: 16.8
supports_function_calling: true
- name: minimax-m2.7
max_input_tokens: 204800
input_price: 0.294
output_price: 1.176
supports_function_calling: true
- name: minimax-m2.5
max_input_tokens: 204800
input_price: 0.294
output_price: 1.176
supports_function_calling: true
- name: minimax-m2.5-highspeed
max_input_tokens: 204800
input_price: 0.588
output_price: 2.352
supports_function_calling: true
- name: minimax-m2.1
max_input_tokens: 204800
input_price: 0.294
output_price: 1.176
supports_function_calling: true
- name: minimax-m2.1-highspeed
max_input_tokens: 204800
input_price: 0.588
output_price: 2.352
supports_function_calling: true
- provider: openrouter
rules:
- match: "anthropic/claude-*"
require_max_tokens: true
- match: "openai/gpt-5.6-*"
default_reasoning_effort: medium
reasoning_levels: [none, low, medium, high, xhigh, max]
- match: "openai/gpt-5.5"
default_reasoning_effort: medium
reasoning_levels: [none, low, medium, high, xhigh]
- match: "openai/gpt-5.5-pro"
default_reasoning_effort: high
reasoning_levels: [medium, high, xhigh]
- match: "openai/gpt-5.4"
default_reasoning_effort: none
reasoning_levels: [none, low, medium, high, xhigh]
- match: "openai/gpt-5.4-pro"
default_reasoning_effort: medium
reasoning_levels: [medium, high, xhigh]
- match: "openai/gpt-5.4-mini"
default_reasoning_effort: none
reasoning_levels: [none, low, medium, high, xhigh]
- match: "openai/gpt-5.4-nano"
default_reasoning_effort: none
reasoning_levels: [none, low, medium, high, xhigh]
- match: "openai/gpt-5.3-codex"
default_reasoning_effort: medium
reasoning_levels: [low, medium, high, xhigh]
- match: "openai/gpt-5.2"
default_reasoning_effort: none
reasoning_levels: [none, low, medium, high, xhigh]
- match: "openai/gpt-5.2-pro"
default_reasoning_effort: medium
reasoning_levels: [medium, high, xhigh]
- match: "openai/gpt-5"
default_reasoning_effort: medium
reasoning_levels: [minimal, low, medium, high]
- match: "google/gemini-3.5-flash"
default_reasoning_effort: medium
reasoning_levels: [minimal, low, medium, high]
- match: "google/gemini-3-flash-preview"
default_reasoning_effort: high
reasoning_levels: [minimal, low, medium, high]
- match: "google/gemini-3.1-flash-lite"
default_reasoning_effort: minimal
reasoning_levels: [minimal, low, medium, high]
- match: "google/gemini-3.1-pro-preview"
default_reasoning_effort: high
reasoning_levels: [low, medium, high]
- match: "google/gemini-3-pro-preview"
default_reasoning_effort: high
- match: "google/gemini-2.5-flash"
default_reasoning_effort: low
reasoning_levels: [low, medium, high]
- match: "google/gemini-2.5-pro"
default_reasoning_effort: high
reasoning_levels: [low, medium, high]
- match: "anthropic/claude-opus-5"
default_reasoning_effort: high
reasoning_levels: [low, medium, high, xhigh, max]
- match: "anthropic/claude-fable-*"
default_reasoning_effort: high
reasoning_levels: [low, medium, high, xhigh, max]
- match: "anthropic/claude-opus-4-8"
default_reasoning_effort: high
- match: "anthropic/claude-opus-4-7"
default_reasoning_effort: high
- match: "anthropic/claude-opus-4.6"
default_reasoning_effort: high
reasoning_levels: [low, medium, high, max]
- match: "anthropic/claude-sonnet-5"
default_reasoning_effort: high
reasoning_levels: [low, medium, high, xhigh, max]
- match: "anthropic/claude-sonnet-4.6"
default_reasoning_effort: high
reasoning_levels: [low, medium, high, max]
- match: "perplexity/sonar-reasoning-pro"
patch:
body:
include_reasoning: true
- match: "perplexity/sonar-deep-research"
patch:
body:
include_reasoning: true
models:
# legacy -- pruning candidates
- name: google/gemini-3-pro-preview
max_input_tokens: 1048576
supports_vision: true
supports_function_calling: true
reasoning_levels: [low, high]
default_reasoning_effort: high
- name: google/gemini-2.0-flash-001
max_input_tokens: 1000000
input_price: 0.15
output_price: 0.6
supports_vision: true
supports_function_calling: true
- name: google/gemini-2.0-flash-lite-001
max_input_tokens: 1048576
input_price: 0.075
output_price: 0.3
supports_vision: true
supports_function_calling: true
- name: anthropic/claude-fable-5-1
max_input_tokens: 1000000
max_output_tokens: 128000
require_max_tokens: true
input_price: 10
output_price: 50
supports_function_calling: true
supports_vision: true
reasoning_levels: [low, medium, high, xhigh, max]
default_reasoning_effort: high
- name: anthropic/claude-opus-4-8
max_input_tokens: 1000000
max_output_tokens: 128000
require_max_tokens: true
input_price: 5
output_price: 25
supports_vision: true
supports_function_calling: true
reasoning_levels: [low, medium, high, xhigh, max]
default_reasoning_effort: high
- name: anthropic/claude-opus-4-7
max_input_tokens: 1000000
max_output_tokens: 128000
require_max_tokens: true
input_price: 5
output_price: 25
supports_vision: true
supports_function_calling: true
reasoning_levels: [low, medium, high, xhigh, max]
default_reasoning_effort: high
- name: mistralai/devstral-small
max_input_tokens: 131072
input_price: 0.07
output_price: 0.28
supports_function_calling: true
- name: ai21/jamba-large-1.7
max_input_tokens: 256000
input_price: 2
output_price: 8
supports_function_calling: true
- name: x-ai/grok-4.1-fast
max_input_tokens: 2000000
input_price: 0.2
output_price: 0.5
supports_function_calling: true
- name: x-ai/grok-code-fast-1
max_input_tokens: 256000
input_price: 0.2
output_price: 1.5
supports_function_calling: true
# Fully hand-owned: upstream catalogs track GitHub Copilot ids, which do not
# match the GitHub Models API ids coyote uses.
- provider: github
models:
- name: gpt-5
max_input_tokens: 400000
max_output_tokens: 128000
supports_vision: true
supports_function_calling: true
- name: gpt-5-mini
max_input_tokens: 400000
max_output_tokens: 128000
supports_vision: true
supports_function_calling: true
- name: gpt-5-nano
max_input_tokens: 400000
max_output_tokens: 128000
supports_vision: true
supports_function_calling: true
- name: gpt-4.1
max_input_tokens: 1047576
max_output_tokens: 32768
supports_vision: true
supports_function_calling: true
- name: gpt-4o
max_input_tokens: 128000
max_output_tokens: 16384
supports_function_calling: true
- name: text-embedding-3-large
type: embedding
max_tokens_per_chunk: 8191
default_chunk_size: 2000
max_batch_size: 100
- name: text-embedding-3-small
type: embedding
max_tokens_per_chunk: 8191
default_chunk_size: 2000
max_batch_size: 100
- name: llama-4-maverick-17b-128e-instruct-fp8
max_input_tokens: 1048576
supports_vision: true
- name: llama-4-scout-17b-16e-instruct
max_input_tokens: 327680
supports_vision: true
- name: llama-3.3-70b-instruct
max_input_tokens: 131072
- name: mistral-medium-2505
max_input_tokens: 131072
supports_function_calling: true
- name: mistral-small-2503
max_input_tokens: 131072
supports_function_calling: true
- name: codestral-2501
max_input_tokens: 256000
supports_function_calling: true
- name: cohere-embed-v3-english
type: embedding
max_tokens_per_chunk: 512
default_chunk_size: 1000
max_batch_size: 96
- name: cohere-embed-v3-multilingual
type: embedding
max_tokens_per_chunk: 512
default_chunk_size: 1000
max_batch_size: 96
- name: deepseek-r1-0528
max_input_tokens: 163840
- name: deepseek-v3-0324
max_input_tokens: 163840
- name: mai-ds-r1
max_input_tokens: 163840
- name: phi-4
max_input_tokens: 16384
- name: phi-4-mini-instruct
max_input_tokens: 131072
- name: phi-4-reasoning
max_input_tokens: 33792
- name: phi-4-mini-reasoning
max_input_tokens: 131072
- name: grok-3
max_input_tokens: 131072
- name: grok-3-mini
max_input_tokens: 131072
- provider: deepinfra
models:
- name: BAAI/bge-large-en-v1.5
type: embedding
input_price: 0.01
max_tokens_per_chunk: 512
default_chunk_size: 1000
max_batch_size: 100
- name: BAAI/bge-m3
type: embedding
input_price: 0.01
max_tokens_per_chunk: 8192
default_chunk_size: 2000
max_batch_size: 100
- name: intfloat/e5-large-v2
type: embedding
input_price: 0.01
max_tokens_per_chunk: 512
default_chunk_size: 1000
max_batch_size: 100
- name: intfloat/multilingual-e5-large
type: embedding
input_price: 0.01
max_tokens_per_chunk: 512
default_chunk_size: 1000
max_batch_size: 100
- name: thenlper/gte-large
type: embedding
input_price: 0.01
max_tokens_per_chunk: 512
default_chunk_size: 1000
max_batch_size: 100
# legacy -- pruning candidates
- name: Qwen/Qwen3-Max-Thinking
max_input_tokens: 262144
input_price: 1.2
output_price: 6
supports_function_calling: true
- name: Qwen/Qwen3-Next-80B-A3B-Thinking
max_input_tokens: 262144
input_price: 0.14
output_price: 1.4
- name: Qwen/Qwen3-235B-A22B-Thinking-2507
max_input_tokens: 131072
input_price: 0.13
output_price: 0.6
- name: Qwen/Qwen3-Coder-480B-A35B-Instruct
max_input_tokens: 131072
input_price: 0.4
output_price: 1.6
supports_function_calling: true
- name: Qwen/Qwen3-Coder-30B-A3B-Instruct
max_input_tokens: 262144
input_price: 0.07
output_price: 0.27
supports_function_calling: true
- name: Qwen/Qwen3-VL-8B-Instruct
max_input_tokens: 262144
input_price: 0.18
output_price: 0.69
supports_vision: true
- name: google/gemma-3-27b-it
max_input_tokens: 131072
input_price: 0.1
output_price: 0.2
- name: mistralai/Mistral-Small-3.2-24B-Instruct-2506
max_input_tokens: 32768
input_price: 0.06
output_price: 0.12
- name: moonshotai/Kimi-K2-Instruct-0905
max_input_tokens: 262144
input_price: 0.5
output_price: 2.0
supports_function_calling: true
- name: moonshotai/Kimi-K2-Thinking
max_input_tokens: 262144
input_price: 0.55
output_price: 2.5
supports_function_calling: true
- name: MiniMaxAI/MiniMax-M2.1
max_input_tokens: 196608
input_price: 0.27
output_price: 0.95
supports_function_calling: true
- name: zai-org/GLM-4.6V
max_input_tokens: 131072
input_price: 0.3
output_price: 0.9
supports_vision: true
- provider: jina
models:
- name: jina-embeddings-v3
type: embedding
input_price: 0
max_tokens_per_chunk: 8192
default_chunk_size: 2000
max_batch_size: 100
- name: jina-clip-v2
type: embedding
input_price: 0
max_tokens_per_chunk: 8192
default_chunk_size: 1500
max_batch_size: 100
- name: jina-colbert-v2
type: embedding
input_price: 0
max_tokens_per_chunk: 8192
default_chunk_size: 1500
max_batch_size: 100
- name: jina-reranker-v2-base-multilingual
type: reranker
max_input_tokens: 8192
input_price: 0
- name: jina-colbert-v2
type: reranker
max_input_tokens: 8192
input_price: 0
- provider: voyageai
models:
- name: voyage-3-large
type: embedding
max_input_tokens: 120000
input_price: 0.18
max_tokens_per_chunk: 32000
default_chunk_size: 2000
max_batch_size: 128
- name: voyage-3
type: embedding
max_input_tokens: 320000
input_price: 0.06
max_tokens_per_chunk: 32000
default_chunk_size: 2000
max_batch_size: 128
- name: voyage-3-lite
type: embedding
max_input_tokens: 1000000
input_price: 0.02
max_tokens_per_chunk: 32000
default_chunk_size: 1000
max_batch_size: 128
- name: rerank-2
type: reranker
max_input_tokens: 16000
input_price: 0.05
- name: rerank-2-lite
type: reranker
max_input_tokens: 8000
input_price: 0.02