diff --git a/cecli/coders/agent_coder.py b/cecli/coders/agent_coder.py
index b9622fd856a..184080e2046 100644
--- a/cecli/coders/agent_coder.py
+++ b/cecli/coders/agent_coder.py
@@ -833,10 +833,12 @@ def get_environment_info(self):
result += f"- Git repository: {rel_repo_dir} with {num_files:,} files\n"
except Exception:
result += "- Git repository: active but details unavailable\n"
- if self.mcp_manager and self.mcp_manager.connected_servers:
- num_mcp_servers = len(self.mcp_manager.connected_servers)
- result += f"- Connected MCP servers: {num_mcp_servers}\n"
+ else:
result += "- Git repository: none\n"
+
+ if self.mcp_manager and self.mcp_manager.connected_servers:
+ num_mcp_servers = len(self.mcp_manager.connected_servers)
+ result += f"- Connected MCP servers: {num_mcp_servers}\n"
result += ""
return result
except Exception as e:
diff --git a/cecli/coders/base_coder.py b/cecli/coders/base_coder.py
index 5b5840836de..a6714110d1c 100755
--- a/cecli/coders/base_coder.py
+++ b/cecli/coders/base_coder.py
@@ -744,6 +744,15 @@ def __init__(
if root is not None:
self.root = os.path.normpath(os.path.abspath(root))
+ # Outside a git repo with no files in context there is nothing to derive
+ # a root from. Fall back to the primary workspace (sub-agents) or the
+ # process working directory so tools that pass root as their subprocess
+ # cwd never receive an empty path.
+ if not self.root:
+ self.root = utils.safe_abs_path(
+ primary_root or getattr(self, "primary_root", None) or os.getcwd()
+ )
+
# A sub-agent may operate on a different base path than its parent. In
# that case its repo must be scoped to *this* root (per-base-path),
# rather than inheriting the parent's repo, so the coder's repo/fs match
@@ -2331,6 +2340,7 @@ async def compact_context_if_needed(self, force=False, message=""):
if (
self.context_compaction_max_tokens
and non_compactable_tokens >= self.context_compaction_max_tokens
+ and not force
):
if getattr(self, "_compaction_noop_warning_time", 0) + 300 < time.time():
self._compaction_noop_warning_time = time.time()
diff --git a/cecli/helpers/agents/service.py b/cecli/helpers/agents/service.py
index 4025b951923..f1777b56971 100644
--- a/cecli/helpers/agents/service.py
+++ b/cecli/helpers/agents/service.py
@@ -87,6 +87,7 @@ class SubAgentInfo:
independent: bool = False
detached: bool = False
cancel_requested: bool = False # the current run was cancelled (see _was_cancelled)
+ worktree: Optional[Any] = None
class AgentService:
@@ -535,6 +536,28 @@ def _cleanup_sub_agent(self, agent_uuid: str) -> None:
if info is None:
return
+ # Release a finished agent's worktree before tearing down its coder. A
+ # still-running task is left to WorktreeManager.release_all() on exit.
+ worktree = getattr(info, "worktree", None)
+ if worktree is not None and (info.generate_task is None or info.generate_task.done()):
+ record = worktree
+ result = self._release_worktree(
+ record, f"Failed to release worktree for sub-agent {agent_uuid}"
+ )
+ if result is not None:
+ _subagent_event(self.coder, info.coder.uuid, "worktree", **result.to_dict())
+
+ path = getattr(record, "path", None)
+ if path is None and isinstance(record, dict):
+ path = record.get("path")
+ if path:
+ try:
+ from cecli.repo import GitRepoProxy
+
+ GitRepoProxy.evict(str(path))
+ except Exception:
+ logger.warning("Failed to evict worktree repo proxy", exc_info=True)
+
# Destroy conversation resources for the sub-agent
from cecli.helpers.conversation.service import ConversationService
@@ -590,6 +613,20 @@ def _cleanup_sub_agent(self, agent_uuid: str) -> None:
AgentTree.unregister(info.coder.uuid)
self.destroy_instance(info.coder.uuid)
+ @staticmethod
+ def _release_worktree(record: Any, failure_message: str) -> Any:
+ """Release *record*, logging *failure_message* if the release raises.
+
+ Returns the release result, or None when the release failed.
+ """
+ try:
+ from cecli.helpers.worktrees import WorktreeManager
+
+ return WorktreeManager.release(record)
+ except Exception:
+ logger.warning("%s", failure_message, exc_info=True)
+ return None
+
def _check_max_sub_agents(self) -> None:
"""If we've hit max_sub_agents, reap the oldest finished one.
@@ -618,12 +655,31 @@ def _check_max_sub_agents(self) -> None:
"Wait for one to finish or use /reap-agent to free resources."
)
+ @staticmethod
+ def _resolve_root(value: Any, base: Any = None) -> str:
+ """Resolve *value* to an absolute, existing directory.
+
+ Relative paths resolve against *base* (usually the parent coder's root).
+ """
+ from pathlib import Path
+
+ path = Path(value).expanduser()
+ if not path.is_absolute():
+ base_path = Path(base).expanduser() if isinstance(base, (str, Path)) else Path.cwd()
+ path = base_path / path
+ path = path.resolve()
+ if not path.is_dir():
+ raise ValueError(f"Sub-agent root is not an existing directory: {path}")
+ return str(path)
+
async def _create_sub_agent_coder(
self,
name: str,
parent: Any = None,
auto_reap: Optional[bool] = None,
independent: bool = False,
+ root: Any = None,
+ resume_worktree: Any = None,
) -> Tuple[Any, SubAgentInfo]:
"""Create a sub-agent coder, register it, and set up its container and prompt.
@@ -639,6 +695,10 @@ async def _create_sub_agent_coder(
auto_reap: If True, agent may be automatically reaped when FINISHED.
If not set, defers to the sub-agent config's ``auto_reap``
value, then defaults to ``True``.
+ independent: If True, the sub-agent is detached from its parent.
+ root: Optional working directory for the sub-agent. Relative paths
+ resolve against the parent coder's root.
+ resume_worktree: Optional saved worktree record to recreate and use.
Returns:
Tuple of ``(new_coder, info)``.
@@ -682,7 +742,8 @@ async def _create_sub_agent_coder(
from cecli.coders import Coder
- metadata = getattr(config, "metadata", {}).copy()
+ metadata = getattr(config, "metadata", None)
+ metadata = dict(metadata) if isinstance(metadata, dict) else {}
agent_config = metadata.get("agent-config", {})
# Optional per-sub-agent root override for multi-project workspaces.
@@ -690,6 +751,13 @@ async def _create_sub_agent_coder(
if not configured_root and isinstance(agent_config, dict):
configured_root = agent_config.get("root")
+ worktree_spec = (
+ metadata.get("worktree")
+ if name.startswith("wf:") and isinstance(metadata, dict)
+ else None
+ )
+ override_root = override.get("root") if override else None
+
# Workspace/workflow sub-agents (ws:*, wf:*) inherit the parent/primary
# coder's agent_config as their default; the agent's own metadata
# agent-config is merged on top. ws: additionally hard-enables nested
@@ -711,7 +779,6 @@ async def _create_sub_agent_coder(
# this merge so an allowlist override cannot hide the file/exec tools.
if override:
agent_config = apply_agent_override(agent_config, override.get("agent-config"))
- configured_root = override.get("root") or configured_root
if override.get("description") is not None:
metadata["description"] = override["description"]
if "detached" in override:
@@ -726,6 +793,47 @@ async def _create_sub_agent_coder(
servers.append("local")
agent_config["servers_includelist"] = servers
+ if not name.startswith("wf:"):
+ resume_worktree = None
+
+ parent_root = getattr(parent_coder, "root", None) or None
+ worktree_record = None
+ resolved_root = None
+
+ if root is not None:
+ resolved_root = self._resolve_root(root, parent_root)
+ elif override_root:
+ resolved_root = str(override_root)
+ elif resume_worktree is not None:
+ from cecli.helpers.worktrees import WorktreeManager
+
+ worktree_record = await asyncio.to_thread(
+ WorktreeManager.recreate,
+ resume_worktree,
+ agent_name=name,
+ uuid=new_uuid,
+ )
+ resolved_root = worktree_record.path
+ elif worktree_spec is not None:
+ from cecli.helpers.worktrees import WorktreeManager
+
+ base_ref = worktree_spec.get("branch") if isinstance(worktree_spec, dict) else None
+ try:
+ worktree_record = await asyncio.to_thread(
+ WorktreeManager.create,
+ agent_name=name,
+ uuid=new_uuid,
+ source=metadata.get("worktree_source") or parent_root,
+ base_ref=base_ref,
+ base_root=parent_root,
+ reuse_existing=True,
+ )
+ except Exception as e:
+ raise RuntimeError(f"Failed to create worktree for sub-agent '{name}': {e}") from e
+ resolved_root = worktree_record.path
+ elif configured_root:
+ resolved_root = str(configured_root)
+
kwargs = dict(
io=parent_coder.io,
from_coder=parent_coder,
@@ -751,8 +859,8 @@ async def _create_sub_agent_coder(
)
)
- if configured_root:
- kwargs["root"] = configured_root
+ if resolved_root:
+ kwargs["root"] = resolved_root
if agent_config:
# Reset the per-instance tool/server filters so AgentCoder.post_init()
@@ -784,35 +892,57 @@ async def _create_sub_agent_coder(
agent_model=model_override,
)
- new_coder = await Coder.create(**kwargs)
+ try:
+ new_coder = await Coder.create(**kwargs)
+ except BaseException:
+ if worktree_record is not None:
+ await asyncio.to_thread(
+ self._release_worktree,
+ worktree_record,
+ "Failed to release worktree after coder creation failed",
+ )
+ raise
+
new_coder.max_sub_agents = getattr(self.coder, "max_sub_agents", 30)
+ if worktree_record is not None:
+ new_coder.worktree = worktree_record
# IOProxy wrapping is handled by base_coder.py's Coder.__init__
# Re-acquire the lock to register — we must re-check max agents since
# the lock was released and other spawns may have registered in between.
- with self._get_lock(self._spawn_locks, parent_coder.uuid):
- self._check_max_sub_agents()
-
- # Register in global coder lookup and the visibility tree
- self._uuid_coder_map[new_uuid] = weakref.ref(new_coder)
- AgentTree.register(
- str(new_coder.uuid),
- parent_uuid=str(parent_coder.uuid),
- name=name,
- )
+ try:
+ with self._get_lock(self._spawn_locks, parent_coder.uuid):
+ self._check_max_sub_agents()
+
+ # Register in global coder lookup and the visibility tree
+ self._uuid_coder_map[new_uuid] = weakref.ref(new_coder)
+ AgentTree.register(
+ str(new_coder.uuid),
+ parent_uuid=str(parent_coder.uuid),
+ name=name,
+ )
- info = SubAgentInfo(
- name=name,
- coder=new_coder,
- parent_uuid=parent_coder.uuid,
- status=SubAgentStatus.CREATED,
- auto_reap=auto_reap,
- independent=independent,
- detached=isinstance(agent_config, dict)
- and bool(agent_config.get("detached", False)),
- )
- self.sub_agents[new_coder.uuid] = info
- self._sub_agent_order.append(new_coder.uuid)
+ info = SubAgentInfo(
+ name=name,
+ coder=new_coder,
+ parent_uuid=parent_coder.uuid,
+ status=SubAgentStatus.CREATED,
+ auto_reap=auto_reap,
+ independent=independent,
+ detached=isinstance(agent_config, dict)
+ and bool(agent_config.get("detached", False)),
+ worktree=worktree_record,
+ )
+ self.sub_agents[new_coder.uuid] = info
+ self._sub_agent_order.append(new_coder.uuid)
+ except BaseException:
+ if worktree_record is not None:
+ await asyncio.to_thread(
+ self._release_worktree,
+ worktree_record,
+ "Failed to release worktree after registration failed",
+ )
+ raise
# Notify TUI to create a container
try:
@@ -821,16 +951,15 @@ async def _create_sub_agent_coder(
_tui_notify(tui, tui.create_sub_agent_container, new_uuid, name)
except Exception:
logger.warning("Failed to notify TUI to create sub-agent container", exc_info=True)
-
- _subagent_event(
- parent_coder,
- new_coder.uuid,
- "created",
+ created_event = dict(
parent_uuid=str(parent_coder.uuid),
name=name,
description=metadata.get("description") if isinstance(metadata, dict) else None,
root=str(getattr(new_coder, "root", "") or ""),
)
+ if worktree_record is not None:
+ created_event["worktree"] = worktree_record.to_dict()
+ _subagent_event(parent_coder, new_coder.uuid, "created", **created_event)
# Initialize system prompt from config
system_prompt = override.get("prompt") or getattr(config, "prompt", "")
@@ -894,6 +1023,7 @@ async def switch_sub_agent_coder(self, info: SubAgentInfo, switch, preproc=True)
kwargs["summarize_from_coder"] = False
new_coder = await Coder.create(**kwargs)
+ new_coder.worktree = getattr(old_coder, "worktree", None)
AgentTree.replace(old_coder.uuid, new_coder.uuid)
new_coder.prompt_queue = list(old_coder.prompt_queue)
@@ -1073,9 +1203,11 @@ def _queue_to_conversation() -> None:
async def _inject_sub_agent_result(self, info: SubAgentInfo) -> None:
"""Inject the sub-agent's result (summary/error) into the parent's conversation.
- Adds a user message with the result content and an assistant acknowledgment
- so the parent coder (and therefore the LLM) sees what the sub-agent produced.
- Uses unique hash keys so multiple sub-agent completions don't overwrite each other.
+ Adds a single user message containing a typed ```` block so the parent coder (and therefore the
+ LLM) sees what the sub-agent produced. No synthetic assistant reply is
+ fabricated on the model's behalf. Uses unique hash keys so multiple
+ sub-agent completions don't overwrite each other.
"""
from cecli.helpers.conversation.service import ConversationService
from cecli.helpers.conversation.tags import MessageTag
@@ -1096,38 +1228,27 @@ async def _inject_sub_agent_result(self, info: SubAgentInfo) -> None:
return
if info.status == SubAgentStatus.ERROR:
- user_content = (
- f"The **{info.name}** agent (`{coder_uuid}`) encountered an error:\n"
- f"{info.error}"
- )
- assistant_content = (
- f"The {info.name} agent `{coder_uuid}` failed with the error above. "
- f"You may want to review or retry the delegation."
- )
+ header = f"The **{info.name}** agent (`{coder_uuid}`) encountered an error:"
+ body = str(info.error)
elif info.status == SubAgentStatus.FINISHED:
- is_interrupted = info.summary == DEFAULT_SUMMARY_INTERRUPTED
- summary_text = info.summary or DEFAULT_SUMMARY_COMPLETED
- if is_interrupted:
- user_content = (
- f"The **{info.name}** agent (`{coder_uuid}`) was interrupted:\n"
- f"{summary_text}"
- )
- assistant_content = (
- f"The {info.name} agent `{coder_uuid}` was interrupted before completing its task. "
- f"You may want to review or retry the delegation."
- )
+ if info.summary == DEFAULT_SUMMARY_INTERRUPTED:
+ header = f"The **{info.name}** agent (`{coder_uuid}`) was interrupted:"
else:
- user_content = (
- f"The **{info.name}** agent (`{coder_uuid}`) completed with the following summary:\n"
- f"{summary_text}"
- )
- assistant_content = (
- f"Thank you for sharing the summary for {info.name} agent `{coder_uuid}`. "
- f"The agent has finished its task."
+ header = (
+ f"The **{info.name}** agent (`{coder_uuid}`) completed with the following"
+ " summary:"
)
+ body = info.summary or DEFAULT_SUMMARY_COMPLETED
else:
return
+ user_content = (
+ '\n'
+ f"{header}\n"
+ f"{body}\n"
+ ""
+ )
+
with self._get_lock(self._conversation_locks, info.parent_uuid):
ConversationService.get_manager(parent_coder).add_message(
message_dict={"role": "user", "content": user_content},
@@ -1135,12 +1256,6 @@ async def _inject_sub_agent_result(self, info: SubAgentInfo) -> None:
hash_key=("sub_agent_result", "user", coder_uuid, str(time.monotonic_ns())),
force=True,
)
- ConversationService.get_manager(parent_coder).add_message(
- message_dict={"role": "assistant", "content": assistant_content},
- tag=MessageTag.CUR,
- hash_key=("sub_agent_result", "assistant", coder_uuid, str(time.monotonic_ns())),
- force=True,
- )
_subagent_event(
parent_coder, parent_coder.uuid, "message", sender_uuid=coder_uuid, text=user_content
@@ -1153,6 +1268,8 @@ async def invoke(
blocking: bool = True,
parent: Any = None,
auto_reap: Optional[bool] = None,
+ root: Any = None,
+ resume_worktree: Any = None,
) -> Optional[str]:
"""Invoke a sub-agent by name with the given prompt (blocking by default).
@@ -1162,9 +1279,15 @@ async def invoke(
blocking: If True, waits for completion and returns summary.
parent: Optional coder instance to use as the parent for nested
sub-agent hierarchies. Defaults to ``self.coder``.
+ root: Optional working directory for this invocation.
+ resume_worktree: Optional saved worktree record to recreate.
"""
new_coder, info = await self._create_sub_agent_coder(
- name, auto_reap=auto_reap, parent=parent
+ name,
+ auto_reap=auto_reap,
+ parent=parent,
+ root=root,
+ resume_worktree=resume_worktree,
)
if not blocking:
@@ -1197,6 +1320,8 @@ async def spawn(
parent: Any = None,
auto_reap: Optional[bool] = None,
independent: bool = False,
+ root: Any = None,
+ resume_worktree: Any = None,
) -> Tuple[Any, SubAgentInfo]:
"""Spawn a sub-agent (non-blocking) that waits for user input.
@@ -1206,13 +1331,20 @@ async def spawn(
immediately with this prompt (fire-and-forget).
parent: Optional coder instance to use as the parent for nested
sub-agent hierarchies. Defaults to ``self.coder``.
+ root: Optional working directory for the sub-agent.
+ resume_worktree: Optional saved worktree record to recreate.
Returns:
Tuple of ``(new_coder, info)`` so callers can further interact
with the sub-agent (e.g. call ``start_generate_task`` later).
"""
new_coder, info = await self._create_sub_agent_coder(
- name, auto_reap=auto_reap, parent=parent, independent=independent
+ name,
+ auto_reap=auto_reap,
+ parent=parent,
+ independent=independent,
+ root=root,
+ resume_worktree=resume_worktree,
)
if prompt:
sender = parent if parent is not None else self.coder
@@ -1279,6 +1411,7 @@ def get_active_agents(self) -> List[Dict[str, Any]]:
"uuid": info.coder.uuid,
"status": info.status.value,
"summary": info.summary,
+ "worktree": info.worktree.to_dict() if info.worktree is not None else None,
}
for info in self.sub_agents.values()
]
@@ -1421,11 +1554,24 @@ def _tui_notify(tui, callback, *args):
thread. Scheduler-dispatched workflow runs now execute on the coder's own
loop (the TUI worker-thread loop — see ``SchedulerService._on_coder_loop``),
so notifications originate from the worker thread and ``call_from_thread``
- applies; when we are already on the app thread (or the TUI is unavailable),
- fall back to calling directly.
+ applies; when we are already on the app thread, the callback runs directly.
+
+ Notifications that arrive after the app has stopped are dropped: its DOM is
+ already torn down by then, so running the callback would fail on its widget
+ lookups. This happens on shutdown, when ``graceful_exit()`` cleans up
+ sub-agents after the TUI has exited.
"""
+ if getattr(tui, "is_running", None) is False:
+ return
+
try:
tui.call_from_thread(callback, *args)
except RuntimeError:
+ # A stale app object stays reachable through the coder's weakref after
+ # the TUI exits; its DOM is gone, so drop the notification instead of
+ # calling the callback. Otherwise this is the same-thread error and the
+ # callback must run here.
+ if getattr(tui, "is_running", None) is False:
+ return
callback(*args)
diff --git a/cecli/helpers/background_commands.py b/cecli/helpers/background_commands.py
index 50d59ec5b86..579ce68eac0 100644
--- a/cecli/helpers/background_commands.py
+++ b/cecli/helpers/background_commands.py
@@ -283,6 +283,7 @@ def __init__(
self.start_time = time.time()
self.end_time = None
self.persist = persist
+ self.continued_in_background = False
self.input_buffer = input_buffer or InputBuffer()
self.writer_thread = None
self._stop_event = threading.Event()
@@ -671,6 +672,20 @@ def start_background_command(
except Exception as e:
raise RuntimeError(f"Failed to start background command: {str(e)}")
+ @classmethod
+ def mark_continued_in_background(cls, command_key: str) -> bool:
+ """Flag a timeout-managed command as continuing after its timeout."""
+
+ with cls._lock:
+ bg_process = cls._background_commands.get(command_key)
+
+ if not bg_process:
+ return False
+
+ bg_process.continued_in_background = True
+
+ return True
+
@classmethod
def is_command_running(cls, command_key: str) -> bool:
"""
@@ -826,6 +841,9 @@ def list_background_commands(cls) -> Dict[str, Dict[str, any]]:
"command": bg_process.command,
"running": bg_process.is_alive(),
"persist": getattr(bg_process, "persist", False),
+ "continued_in_background": getattr(
+ bg_process, "continued_in_background", False
+ ),
"buffer_size": bg_process.buffer.size(),
"pages": getattr(bg_process.buffer, "page_count", 0),
"total_chars": getattr(
diff --git a/cecli/helpers/conversation/files.py b/cecli/helpers/conversation/files.py
index cd14a60825e..e75749306f3 100644
--- a/cecli/helpers/conversation/files.py
+++ b/cecli/helpers/conversation/files.py
@@ -263,9 +263,10 @@ def generate_diff(self, fname: str) -> Optional[str]:
context_lines=3,
)
- # If there's a diff, update the last snapshot with current content
+ # If there's a diff, update the snapshot and invalidate cached read ranges.
if diff_text.strip():
self._file_contents_snapshot[abs_fname] = current_content
+ self.invalidate_file_context(abs_fname)
return diff_text if diff_text.strip() else None
@@ -512,6 +513,19 @@ def update_file_context(
return (start_line, end_line) # fallback
+ def invalidate_file_context(self, file_path: str) -> None:
+ """Discard cached ReadFile ranges after a file edit.
+
+ Cached ranges are numeric line intervals. An edit can change the lines
+ inside a range or shift every later range, so the whole per-file range
+ cache is discarded instead of trying to remap offsets.
+ """
+ abs_fname = os.path.abspath(file_path)
+ self._numbered_contexts.pop(abs_fname, None)
+ self._last_merged_ranges.pop(abs_fname, None)
+ self._emitted_contexts.pop(abs_fname, None)
+ self._file_context_versions.pop(abs_fname, None)
+
def push_range(self, file_path: str, ranges: List[Tuple[int, int]]) -> None:
"""
Push merged ranges into the _last_merged_ranges cache for a file.
diff --git a/cecli/helpers/conversation/integration.py b/cecli/helpers/conversation/integration.py
index 215c2dab182..fd42101cc02 100644
--- a/cecli/helpers/conversation/integration.py
+++ b/cecli/helpers/conversation/integration.py
@@ -772,6 +772,15 @@ def add_file_context_messages(self, promote_messages=True) -> None:
hash_key=("file_context_user", file_path, content_hash),
)
+ def notify_file_edited(self, file_path: str) -> None:
+ """Invalidate cached ReadFile ranges for a file changed by a tool."""
+
+ coder = self.get_coder()
+ if not coder:
+ return
+
+ ConversationService.get_files(coder).invalidate_file_context(file_path)
+
def reset(self) -> None:
"""
Reset the entire conversation system to initial state.
diff --git a/cecli/helpers/coroutines.py b/cecli/helpers/coroutines.py
index 6c8e590404e..ed5d26ddc28 100644
--- a/cecli/helpers/coroutines.py
+++ b/cecli/helpers/coroutines.py
@@ -158,10 +158,26 @@ async def cancel_and_abandon(tasks, grace=INTERRUPT_UNWIND_GRACE_SECONDS):
if not pending_tasks:
return
+ # Tasks can outlive their loop during shutdown. Cancelling one then calls
+ # loop.call_soon() on a closed loop and raises RuntimeError, so drop those
+ # instead of failing the whole shutdown sequence.
+ active_tasks = []
for task in pending_tasks:
+ task_loop = task.get_loop() if hasattr(task, "get_loop") else None
+
+ if task_loop is not None and task_loop.is_closed():
+ background_tasks.discard(task)
+ continue
+
+ active_tasks.append(task)
+
+ if not active_tasks:
+ return
+
+ for task in active_tasks:
task.cancel()
- done, still_running = await asyncio.wait(set(pending_tasks), timeout=grace)
+ done, still_running = await asyncio.wait(set(active_tasks), timeout=grace)
drain_task_results(done)
for task in still_running:
diff --git a/cecli/helpers/hashline.py b/cecli/helpers/hashline.py
index f232e5e85ff..4b7bebb5968 100644
--- a/cecli/helpers/hashline.py
+++ b/cecli/helpers/hashline.py
@@ -183,12 +183,23 @@ def find_hashline_range(
start_hash, _, _ = parse_hashline(start_line_hash)
end_hash, _, _ = parse_hashline(end_line_hash)
+ # Handle an empty range at EOF ("000@" ... "000@"): append content.
+ if start_hash == "000@" and end_hash == "000@":
+ return len(hashed_lines), len(hashed_lines) - 1
+
+ # "000@" is only valid as a start marker when paired with another "000@".
+ if start_hash == "000@":
+ raise ContentHashError(
+ "Start marker '000@' (EOF) is only valid with end marker '000@' "
+ "to append at the end of the file"
+ )
+
# Handle special marker "@000" (top of file)
if start_hash == "@000":
found_start = 0
# If end is also "@000", it's an empty range at the start
if end_hash == "@000":
- return 0, 0
+ return 0, -1
# If end is "000@", it's the entire file
if end_hash == "000@":
if not hashed_lines:
@@ -1208,6 +1219,24 @@ def _merge_replace_operations(resolved_ops):
and current["op"]["operation"] == "replace"
and prev["op"].get("text") is not None
and current["op"].get("text") is not None
+ and not (
+ prev["op"].get("start_line_hash") == "000@"
+ and prev["op"].get("end_line_hash") == "000@"
+ )
+ and not (
+ prev["op"].get("start_line_hash") == "@000"
+ and prev["op"].get("end_line_hash") == "@000"
+ )
+ and not (
+ current["op"].get("start_line_hash") == "000@"
+ and current["op"].get("end_line_hash") == "000@"
+ )
+ and not (
+ current["op"].get("start_line_hash") == "@000"
+ and current["op"].get("end_line_hash") == "@000"
+ )
+ and prev["op"].get("original_operation") != "insert"
+ and current["op"].get("original_operation") != "insert"
):
# Check if they are contiguous or overlapping
# Contiguous: prev.end_idx == current.start_idx OR prev.end_idx + 1 == current.start_idx
@@ -1355,7 +1384,10 @@ def _deduplicate_ranges(resolved_ops):
ops_by_key = {}
for op in resolved_ops:
- key = (op["start_idx"], op["op"]["operation"])
+ key = (
+ op["start_idx"],
+ op["op"].get("original_operation", op["op"]["operation"]),
+ )
ops_by_key.setdefault(key, []).append(op)
for ops in ops_by_key.values():
@@ -1508,7 +1540,8 @@ def _merged_contained_ranges(resolved_ops):
if (
op_a["start_idx"] == op_b["start_idx"]
and op_a["end_idx"] == op_b["end_idx"]
- and op_a["op"]["operation"] != op_b["op"]["operation"]
+ and op_a["op"].get("original_operation", op_a["op"]["operation"])
+ != op_b["op"].get("original_operation", op_b["op"]["operation"])
):
# Keep both operations if they have different types
continue
@@ -1538,7 +1571,7 @@ def sort_ranges(op):
start_idx = op["start_idx"]
# Operation type priority: insert (0), replace (1), delete (2)
# Lower priority number means applied first
- op_type = op["op"]["operation"]
+ op_type = op["op"].get("original_operation", op["op"]["operation"])
if op_type == "insert":
priority = 0
elif op_type == "replace":
@@ -1577,11 +1610,27 @@ def _would_create_duplicate_content(source_lines, candidate_start, candidate_end
def _fix_duplicate_content_boundaries(source_lines, resolved_ops):
"""
Expand edit boundaries when replacement content duplicates adjacent lines.
+ Expansions never cross another operation's resolved range.
"""
+
+ def _overlaps_other(start, end, current):
+ for other in resolved_ops:
+ if other is current:
+ continue
+ if start <= other["end_idx"] and end >= other["start_idx"]:
+ return True
+ return False
+
for resolved in resolved_ops:
op = resolved["op"]
if op["operation"] not in {"replace", "insert", "delete"}:
continue
+ if op.get("original_operation") == "insert":
+ continue
+ if (op.get("start_line_hash") == "000@" and op.get("end_line_hash") == "000@") or (
+ op.get("start_line_hash") == "@000" and op.get("end_line_hash") == "@000"
+ ):
+ continue
repl_text = op.get("text", "") or ""
repl_lines = repl_text.splitlines()
if not repl_lines:
@@ -1591,7 +1640,7 @@ def _fix_duplicate_content_boundaries(source_lines, resolved_ops):
end_idx = resolved["end_idx"]
# Expand start backward if first replacement line duplicates line before
- while start_idx > 0:
+ while start_idx > 0 and not _overlaps_other(start_idx - 1, end_idx, resolved):
line_before = source_lines[start_idx - 1].strip()
first_repl = repl_lines[0].strip()
if line_before and line_before == first_repl:
@@ -1600,7 +1649,9 @@ def _fix_duplicate_content_boundaries(source_lines, resolved_ops):
break
# Expand end forward if last replacement line duplicates line after
- while end_idx < len(source_lines) - 1:
+ while end_idx < len(source_lines) - 1 and not _overlaps_other(
+ start_idx, end_idx + 1, resolved
+ ):
line_after = source_lines[end_idx + 1].strip()
last_repl = repl_lines[-1].strip()
if line_after and line_after == last_repl:
@@ -1668,6 +1719,23 @@ def count_ast_errors(node) -> int:
errors += count_ast_errors(child)
return errors
+ def apply_resolved_operations(lines: list, ops: list) -> bytes:
+ """Apply resolved operations to a line list for whole-batch AST checks."""
+ result = list(lines)
+
+ for candidate in sorted(ops, key=lambda item: (-item["start_idx"], item["index"])):
+ candidate_op = candidate["op"]
+ candidate_start = candidate["start_idx"]
+ candidate_end = candidate["end_idx"]
+ replacement = (candidate_op.get("text") or "").splitlines()
+
+ if candidate_op["operation"] == "insert":
+ result[candidate_start + 1 : candidate_start + 1] = replacement
+ else:
+ result[candidate_start : candidate_end + 1] = replacement
+
+ return "\n".join(result).encode("utf-8")
+
def _detect_indent_unit(source_lines: list) -> int:
"""Detect the common indentation unit from non-empty source lines."""
indents = []
@@ -1709,6 +1777,12 @@ def _has_indent_jump(test_lines: list, unit: int) -> bool:
return False
+ def _replacement_duplicate_count(lines: list, replacement_lines: list) -> int:
+ """Count extra occurrences of replacement-text lines in the file."""
+ counts = Counter(line.strip() for line in lines if line.strip())
+ keys = {line.strip() for line in replacement_lines if line.strip()}
+ return sum(max(0, counts[key] - 1) for key in keys)
+
# Establish the baseline syntax health of the original file
base_tree = parser.parse(source_bytes)
baseline_error_count = count_ast_errors(base_tree.root_node)
@@ -1742,6 +1816,7 @@ def _has_indent_jump(test_lines: list, unit: int) -> bool:
repl_lines = replacement_text.splitlines()
llm_end = min(llm_end, len(source_lines) - 1)
+ baseline_replacement_duplicates = _replacement_duplicate_count(source_lines, repl_lines)
offsets = [0, 1, -1, 2, -2]
all_candidates = []
@@ -1767,11 +1842,6 @@ def _has_indent_jump(test_lines: list, unit: int) -> bool:
if overlaps:
continue
- if _would_create_duplicate_content(
- source_lines, candidate_start, candidate_end, repl_lines
- ):
- continue
-
test_source_bytes = apply_edit(
source_lines,
candidate_start,
@@ -1783,6 +1853,12 @@ def _has_indent_jump(test_lines: list, unit: int) -> bool:
edited_tree = parser.parse(test_source_bytes)
ast_error_count = count_ast_errors(edited_tree.root_node)
+ test_lines = test_source_bytes.decode("utf-8").splitlines()
+ duplicate_delta = (
+ _replacement_duplicate_count(test_lines, repl_lines)
+ - baseline_replacement_duplicates
+ )
+
is_partial = (start_shift == 0) ^ (end_shift == 0)
is_downward = start_shift <= 0
is_both = start_shift == end_shift
@@ -1792,7 +1868,6 @@ def _has_indent_jump(test_lines: list, unit: int) -> bool:
# Check for indentation jumps in the resulting edit
if is_normally_indented:
- test_lines = test_source_bytes.decode("utf-8").splitlines()
has_indent_jump = _has_indent_jump(test_lines, indent_unit)
else:
has_indent_jump = False
@@ -1804,6 +1879,7 @@ def _has_indent_jump(test_lines: list, unit: int) -> bool:
"ast_error_count": ast_error_count,
"start_line_match": start_line_match,
"end_line_match": end_line_match,
+ "duplicate_delta": duplicate_delta,
"cumulative_movement": cumulative_movement,
"has_indent_jump": has_indent_jump,
"is_partial": is_partial,
@@ -1813,15 +1889,19 @@ def _has_indent_jump(test_lines: list, unit: int) -> bool:
)
if all_candidates:
- # 1. AST Health is the absolute highest priority.
- # 2. Cumulative movement acts as the tie-breaker for equally valid ASTs.
+ # 1. AST health is the highest priority.
+ # 2. Preserve exact boundary-line matches.
+ # 3. Minimize total duplication of replacement-text lines.
+ # 4. Prefer the smallest cumulative movement.
+ # 5. Use indentation heuristics only to break remaining ties.
all_candidates.sort(
key=lambda r: (
r["ast_error_count"], # Ascending: fewer syntax errors wins
not r["start_line_match"], # Descending: True first
not r["end_line_match"], # Descending: True first
- r.get("has_indent_jump", False), # Ascending: False (no jump) first
+ r["duplicate_delta"], # Ascending: fewer replacement-line duplicates
r["cumulative_movement"], # Ascending: smaller is better
+ r.get("has_indent_jump", False), # Ascending: False (no jump) first
not r["is_partial"], # Booleans: False comes before True
not r["is_downward"], # Booleans: False comes before True
r["is_both"], # Booleans: False comes before True
@@ -1833,7 +1913,6 @@ def _has_indent_jump(test_lines: list, unit: int) -> bool:
# EVICTION GATE: If the absolute best boundary still introduces NEW
# syntax errors compared to the original file, discard the edit entirely.
if best["ast_error_count"] > baseline_error_count:
-
rejected_ops.append(
{
"index": resolved["index"],
@@ -1843,6 +1922,11 @@ def _has_indent_jump(test_lines: list, unit: int) -> bool:
f"{len(all_candidates)} candidate boundary adjustments could resolve it"
),
"operation": op,
+ "resolved": {
+ **resolved,
+ "start_idx": best["start_idx"],
+ "end_idx": best["end_idx"],
+ },
}
)
continue
@@ -1852,6 +1936,21 @@ def _has_indent_jump(test_lines: list, unit: int) -> bool:
safe_resolved_ops.append(resolved)
+ # An operation can be individually invalid but valid in combination with
+ # sibling operations (e.g., a structural refactor split across edits).
+ # Accept the batch when the combined result is no worse than the source.
+ if rejected_ops and len(resolved_ops) > 1:
+ batch_ops = safe_resolved_ops + [
+ rejected["resolved"] for rejected in rejected_ops if "resolved" in rejected
+ ]
+ combined_tree = parser.parse(apply_resolved_operations(source_lines, batch_ops))
+ if count_ast_errors(combined_tree.root_node) <= baseline_error_count:
+ safe_resolved_ops = batch_ops
+ rejected_ops = []
+
+ for rejected in rejected_ops:
+ rejected.pop("resolved", None)
+
return safe_resolved_ops, rejected_ops
@@ -1916,31 +2015,71 @@ def _raise_clear_hash_error(hp, op, key):
"Use a hashed ID prefix (e.g., `—XXXX—`) to target the line."
)
- # Count how many lines contain this value as a substring
- matching_count = 0
- for line in hp.lines:
- if value_stripped in line:
- matching_count += 1
+ if "\n" in value_stripped or "\r" in value_stripped:
+ raise ContentHashError(
+ "Line anchors must be single-line; multi-line text is only supported "
+ "in the replacement text."
+ )
- if matching_count > 1:
+ if re.search(r"(?:^|[ \t])@[CPN][0-9]*[ \t]*$", value_stripped):
raise ContentHashError(
- f"Line '{value_stripped}' appears {matching_count} times in the file. "
- "Use the hashed ID prefix (e.g., `—XXXX—`) to disambiguate "
- "which occurrence to target."
+ "ReadFile-only range markers ('@C', '@P', '@N') are not "
+ "supported by EditFile; use a content ID or '@L' line reference."
)
- elif matching_count == 1:
+
+ if re.search(r"(?:^|[ \t])@[AB][ \t]*$", value_stripped):
raise ContentHashError(
- f"Line '{value_stripped}' was found once in the file but could not be "
- "resolved as a unique content ID. Use the hashed ID prefix (e.g., `—XXXX—`) "
- "to target it precisely."
+ "Bare '@A'/'@B' hints are not supported; include anchor text before "
+ "the hint, e.g. 'my line @A{regex}'."
)
- else:
+
+ substring_indices = [i for i, line in enumerate(hp.lines) if value_stripped in line]
+ exact_indices = [i for i, line in enumerate(hp.lines) if line.strip() == value_stripped]
+
+ def _format_line_numbers(indices):
+ shown = ", ".join(str(i + 1) for i in indices[:10])
+ if len(indices) > 10:
+ return f"{shown} (+{len(indices) - 10} more)"
+ return shown
+
+ if not substring_indices:
raise ContentHashError(
f"Line '{value_stripped}' was not found in the file. "
"Use the exact line content or a hashed ID prefix (e.g., `—XXXX—`) "
"to target the desired line."
)
+ if len(exact_indices) > 1:
+ raise ContentHashError(
+ f"Line '{value_stripped}' appears {len(exact_indices)} times "
+ f"(lines {_format_line_numbers(exact_indices)}). "
+ "Add a line hint (e.g., 'text @L') or use the hashed ID prefix "
+ "(e.g., `—XXXX—`) to choose one occurrence."
+ )
+
+ if len(exact_indices) == 1:
+ raise ContentHashError(
+ f"Line '{value_stripped}' exactly matches line {exact_indices[0] + 1} "
+ "but could not be resolved to a unique content ID. Use its hashed ID "
+ "prefix (e.g., `—XXXX—`) to target it precisely."
+ )
+
+ if len(substring_indices) == 1:
+ matched_line = hp.lines[substring_indices[0]].strip()
+ raise ContentHashError(
+ f"Line '{value_stripped}' only partially matches line "
+ f"{substring_indices[0] + 1} ('{matched_line}'). "
+ "Anchors must match the complete line. "
+ "Use the full line text or the hashed ID prefix (e.g., `—XXXX—`)."
+ )
+
+ raise ContentHashError(
+ f"Line '{value_stripped}' partially matches {len(substring_indices)} lines "
+ f"(lines {_format_line_numbers(substring_indices)}). "
+ "Anchors must match one complete line; use the full line text or the "
+ "hashed ID prefix (e.g., `—XXXX—`) to disambiguate."
+ )
+
def _detect_overlapping_ranges(resolved_ops):
"""Check resolved operations for genuinely overlapping ranges.
@@ -1988,8 +2127,8 @@ def _detect_overlapping_ranges(resolved_ops):
op_b = b["op"]
error_msg = (
f"Operation {a['index'] + 1} ({op_a['operation']}, lines "
- f"{a_start}-{a_end}) overlaps with operation {b['index'] + 1} "
- f"({op_b['operation']}, lines {b_start}-{b_end}). "
+ f"{a_start + 1}-{a_end + 1}) overlaps with operation {b['index'] + 1} "
+ f"({op_b['operation']}, lines {b_start + 1}-{b_end + 1}). "
"Edits with overlapping ranges are not supported. "
"Combine them into a single edit or use non-overlapping ranges."
)
@@ -2067,12 +2206,72 @@ def apply_hashline_operations(
hashed_content = hp.format_content()
hashed_lines = hashed_content.splitlines(keepends=True)
+ def _rewrite_insert_as_replace(op):
+ """Rewrite insert to replace so it follows the same remediation chain."""
+ text = op.get("text") or ""
+ start_hash = op["start_line_hash"]
+ position = (op.get("position") or "after").lower()
+
+ if position not in ("before", "after"):
+ raise ContentHashError(f"Invalid insert position '{position}'; use 'before' or 'after'")
+
+ if start_hash in ("@000", "000@"):
+ return {
+ **op,
+ "end_line_hash": start_hash,
+ "operation": "replace",
+ "original_operation": "insert",
+ }
+
+ fragment, line_num_str, _ = parse_hashline(start_hash)
+ target_idx = find_hashline_by_exact_match(hashed_lines, fragment, line_num_str)
+ if target_idx is None:
+ raise ContentHashError(f"Start line hash fragment '{fragment}' not found in file")
+
+ target_line = strip_hashline(hashed_lines[target_idx])
+
+ if position == "before":
+ replacement = text if text.endswith("\n") else text + "\n"
+ replacement += target_line
+ else:
+ replacement = target_line
+ if not replacement.endswith("\n"):
+ replacement += "\n"
+ replacement += text
+
+ return {
+ **op,
+ "end_line_hash": start_hash,
+ "operation": "replace",
+ "text": replacement,
+ "original_operation": "insert",
+ }
+
# Resolve all operations to indices first
resolved_ops = []
# Loop to convert hashline references to line indices
for i, op in enumerate(normalized_operations):
try:
if op["operation"] == "insert":
+ if op.get("text"):
+ rewritten_op = _rewrite_insert_as_replace(op)
+ found_start, found_end = find_hashline_range(
+ hashed_lines,
+ rewritten_op["start_line_hash"],
+ rewritten_op["end_line_hash"],
+ allow_exact_match=True,
+ replacement_text=rewritten_op.get("text"),
+ )
+ resolved_ops.append(
+ {
+ "index": i,
+ "start_idx": found_start,
+ "end_idx": found_end,
+ "op": rewritten_op,
+ }
+ )
+ continue
+
start_hash_fragment, start_line_num_str, start_line_num = parse_hashline(
op["start_line_hash"]
)
@@ -2139,7 +2338,9 @@ def apply_hashline_operations(
)
except Exception as e:
raise ContentHashError(
- f"Could not resolve hash range {start_hash}...{end_hash}: {str(e)}"
+ f"Could not resolve hash range {start_hash}...{end_hash}: {e}. "
+ "The file may have changed since these IDs were read; re-read "
+ "it and use the fresh IDs or '@L' anchors."
)
except Exception as e:
@@ -2221,10 +2422,14 @@ def apply_hashline_operations(
else:
hashed_lines.append(text)
elif op["operation"] == "delete":
- del hashed_lines[start_idx : end_idx + 1]
+ if start_idx > end_idx:
+ changed = False
+ else:
+ del hashed_lines[start_idx : end_idx + 1]
elif op["operation"] == "replace":
- # If operation ends with "000@", ensure end_idx is at actual end of file
- if op.get("end_line_hash") == "000@":
+ # If operation ends with "000@", ensure end_idx is at actual end of file.
+ # A "000@" start is an empty append range, so leave it alone.
+ if op.get("end_line_hash") == "000@" and op.get("start_line_hash") != "000@":
end_idx = len(hashed_lines) - 1
text = op["text"]
@@ -2271,6 +2476,16 @@ def apply_hashline_operations(
next_idx < len(hashed_lines) and hashed_lines[next_idx].strip() == ""
)
+ # Appending after the last line needs a separator when the
+ # source text did not end with a newline.
+ if (
+ start_idx > end_idx
+ and start_idx >= len(hashed_lines)
+ and hashed_lines
+ and not hashed_lines[-1].endswith("\n")
+ ):
+ hashed_lines[-1] += "\n"
+
hashed_lines[start_idx : end_idx + 1] = replacement_lines
# Ensure the trailing empty line is preserved after replacement
@@ -2324,6 +2539,14 @@ def apply_hashline_operations(
# Original doesn't end with newline but result does - remove it
result = result[:-1]
+ # Restore CRLF when the source used it consistently.
+ if (
+ original_content
+ and "\r\n" in original_content
+ and original_content.count("\r\n") == original_content.count("\n")
+ ):
+ result = result.replace("\r\n", "\n").replace("\n", "\r\n")
+
return result, successful_ops, failed_ops
diff --git a/cecli/helpers/hashpos/hashpos.py b/cecli/helpers/hashpos/hashpos.py
index 538fc483200..1fa8e40f541 100644
--- a/cecli/helpers/hashpos/hashpos.py
+++ b/cecli/helpers/hashpos/hashpos.py
@@ -86,17 +86,50 @@ def __init__(self, source_text: str = ""):
if line.strip():
self.line_counts[line] = self.line_counts.get(line, 0) + 1
+ self._line_anchors = []
+ self._line_local_occurrences = []
+ last_anchor = 0
+ segment_counts = {}
+
+ for line in self.lines:
+ self._line_anchors.append(last_anchor)
+
+ if not line.strip():
+ self._line_local_occurrences.append(0)
+ continue
+
+ occurrence = segment_counts.get(line, 0) + 1
+ segment_counts[line] = occurrence
+ self._line_local_occurrences.append(occurrence)
+
+ if self.line_counts.get(line, 0) == 1:
+ last_anchor = self._get_anchor_hash(line)
+ segment_counts = {}
+
def _get_line_hash(self, text: str) -> int:
return xxhash.xxh3_64_intdigest(text.encode("utf-8")) & 0xFFFFF
+ def _get_anchor_hash(self, text: str) -> int:
+ return self._get_line_hash(text) & 0x3FFF
+
def generate_public_id(self, text: str, line_idx: int, occurrence: int) -> str:
+ """Encode content hash + local anchor hash + local occurrence.
+
+ The anchor is the hash of the closest preceding unique line (or 0 for
+ the file prefix); occurrence counts equal lines of the same content
+ since that anchor. This keeps IDs stable when unrelated content shifts
+ line numbers.
+ """
line_hash = self._get_line_hash(text)
- # Explicit modulo for bounds wrapping
- idx_bits = line_idx % 16384
- occ_bits = occurrence % 64
+ if 0 <= line_idx < len(self.lines) and self.lines[line_idx] == text:
+ anchor_bits = self._line_anchors[line_idx]
+ occ_bits = self._line_local_occurrences[line_idx]
+ else:
+ anchor_bits = 0
+ occ_bits = occurrence
- packed = (line_hash << 20) | (idx_bits << 6) | occ_bits
+ packed = (line_hash << 20) | ((anchor_bits & 0x3FFF) << 6) | (occ_bits & 0x3F)
res = ""
for i in range(3, -1, -1):
@@ -109,14 +142,13 @@ def unpack_public_id(self, public_id: str) -> tuple[int, int, int]:
packed |= self.B1024.index(char) << (10 * (3 - i))
occ_bits = packed & 0x3F
- idx_bits = (packed >> 6) & 0x3FFF
+ anchor_bits = (packed >> 6) & 0x3FFF
line_hash = (packed >> 20) & 0xFFFFF
- return line_hash, idx_bits, occ_bits
+ return line_hash, anchor_bits, occ_bits
def format_content(self, start_line: int = 1) -> str:
formatted_lines = []
- seen = {}
for i, line in enumerate(self.lines):
if not line.strip():
@@ -129,8 +161,7 @@ def format_content(self, start_line: int = 1) -> str:
# Flush directly against code using the unique token
formatted_lines.append(f"{UNIQUE_HASH_DELIMITER}{line}")
else:
- occ = seen.get(line, 0) + 1
- seen[line] = occ
+ occ = self._line_local_occurrences[i]
prefix = self.generate_public_id(line, i, occ)
# Wrap the generated Base1024 hash in tildes
formatted_lines.append(f"{self.get_wrapped_id(prefix)}{line}")
@@ -148,38 +179,36 @@ def resolve_to_lines(self, public_id: str, start_line: int = 1) -> list[int]:
if len(clean_id) != 4:
raise ValueError(f"Invalid public ID string for unpacking: {public_id}")
- target_line_hash, target_idx, target_occ = self.unpack_public_id(clean_id)
+ target_line_hash, target_anchor, target_occurrence = self.unpack_public_id(clean_id)
- matches = []
- for i, line in enumerate(self.lines):
- if self._get_line_hash(line) == target_line_hash:
- matches.append((i, line))
+ matches = [
+ i for i, line in enumerate(self.lines) if self._get_line_hash(line) == target_line_hash
+ ]
if not matches:
return []
if len(matches) == 1:
- return [matches[0][0]]
+ return matches
- current_seen = {}
- scored_matches = []
-
- for i, line in matches:
- current_seen[line] = current_seen.get(line, 0) + 1
- current_occ = current_seen[line]
+ exact_matches = [
+ i
+ for i in matches
+ if self._line_anchors[i] == target_anchor
+ and (self._line_local_occurrences[i] & 0x3F) == target_occurrence
+ ]
- # Apply identical modulo to current spatial data before comparing
- current_idx_mod = i % 16384
- current_occ_mod = current_occ % 64
+ if exact_matches:
+ return sorted(exact_matches)
- # Cartesian distance squared
- distance_sq = ((current_idx_mod - target_idx) ** 2) + (
- (current_occ_mod - target_occ) ** 2
- )
- scored_matches.append((distance_sq, i))
+ scored_matches = []
+ for i in matches:
+ anchor_penalty = 0 if self._line_anchors[i] == target_anchor else 1
+ occurrence_distance = abs((self._line_local_occurrences[i] & 0x3F) - target_occurrence)
+ scored_matches.append((anchor_penalty, occurrence_distance, i))
- scored_matches.sort(key=lambda x: x[0])
- return [m[1] for m in scored_matches]
+ scored_matches.sort()
+ return [m[2] for m in scored_matches]
def resolve_range(self, start_id: str, end_id: str) -> tuple[int, int]:
starts = self.resolve_to_lines(start_id)
diff --git a/cecli/helpers/hashpos/transformations.py b/cecli/helpers/hashpos/transformations.py
index 0f76be0c164..5ea1e10106a 100644
--- a/cecli/helpers/hashpos/transformations.py
+++ b/cecli/helpers/hashpos/transformations.py
@@ -3,8 +3,7 @@
Centralizes all operations related to searching, processing line hints,
contextual markers, and extracting content from HashPos-encoded files.
-Previously scattered across read_file.py, edit_file.py, hashline.py,
-and region_resolver.py.
+Previously scattered across read_file.py, edit_file.py, and hashline.py.
"""
from __future__ import annotations
@@ -155,6 +154,9 @@ def resolve_at_l(
):
return line_spec
+ if line_spec == "@L0":
+ return "@000"
+
line_num = int(line_spec[2:]) - 1
if line_num < 0 or line_num >= len(lines):
@@ -183,8 +185,8 @@ def extract_hint(
Supports three hint types:
* ``@L`` — direct line number (always resolvable).
- * ``@A{{{{regex}}}}`` — keep only matches **after** the first regex hit.
- * ``@B{{{{regex}}}}`` — keep only matches **before** the last regex hit.
+ * ``@A{regex}`` / ``@A{{regex}}`` — keep only matches **after** the first regex hit.
+ * ``@B{regex}`` / ``@B{{regex}}`` — keep only matches **before** the last regex hit.
Returns a ``(stripped_pattern, hint_value, hint_type)`` tuple:
@@ -199,8 +201,8 @@ def extract_hint(
stripped = pattern[: m.start()]
return (stripped if stripped else pattern), int(m.group(1)) - 1, "L"
- # @A{{regex}} hint — first regex match, filter to lines AFTER
- m = re.search(r"(?:^|[ \t]+)@A\{\{(.+?)\}\}[ \t]*$", pattern)
+ # @A{regex} or @A{{regex}} hint — first regex match, filter to lines AFTER
+ m = re.search(r"(?:^|[ \t]+)@A\{\{?(.+?)\}\}?[ \t]*$", pattern)
if m:
stripped = pattern[: m.start()]
@@ -217,8 +219,8 @@ def extract_hint(
return stripped, None, None
- # @B{{regex}} hint — last regex match, filter to lines BEFORE
- m = re.search(r"(?:^|[ \t]+)@B\{\{(.+?)\}\}[ \t]*$", pattern)
+ # @B{regex} or @B{{regex}} hint — last regex match, filter to lines BEFORE
+ m = re.search(r"(?:^|[ \t]+)@B\{\{?(.+?)\}\}?[ \t]*$", pattern)
if m:
stripped = pattern[: m.start()]
diff --git a/cecli/helpers/model_config/api.py b/cecli/helpers/model_config/api.py
index c65f838b35b..80e8c62738a 100644
--- a/cecli/helpers/model_config/api.py
+++ b/cecli/helpers/model_config/api.py
@@ -20,6 +20,7 @@
is_glm,
is_kimi,
is_mistral,
+ is_qwen,
)
from .registry import get_default
from .utils import supports_reasoning
@@ -62,6 +63,7 @@ def derive_api_config(
is_glm(provider, route, record)
or is_kimi(provider, route, record)
or is_mistral(provider, route, record)
+ or is_qwen(provider, route, record)
):
default_effort = _DEFAULT_HIGH_REASONING_EFFORT
diff --git a/cecli/helpers/model_config/identifiers.py b/cecli/helpers/model_config/identifiers.py
index 10ba3c22998..cd4203533c5 100644
--- a/cecli/helpers/model_config/identifiers.py
+++ b/cecli/helpers/model_config/identifiers.py
@@ -79,6 +79,11 @@ def is_mistral(provider, route, record):
return "mistral" in _haystack(provider, route, record)
+def is_qwen(provider, route, record):
+ """True when the model is a Qwen-series model (Alibaba)."""
+ return "qwen" in _haystack(provider, route, record)
+
+
def gpt_version(route):
"""Return the leading ``gpt-`` model version, or 0 when not a gpt model.
diff --git a/cecli/helpers/model_config/model_routers.py b/cecli/helpers/model_config/model_routers.py
new file mode 100644
index 00000000000..c166d6d4e4f
--- /dev/null
+++ b/cecli/helpers/model_config/model_routers.py
@@ -0,0 +1,238 @@
+"""Router / multi-segment model-name resolution helpers.
+
+OpenRouter-style names encode a router, an upstream vendor, and a model in one
+slash-delimited name (``openrouter/z-ai/glm-5.3-flash``). The bundled metadata
+usually stores the same model under its upstream provider slug
+(``zai/glm-5.3-flash``), so resolving a router model needs vendor alias
+expansion and a route-tail fallback.
+
+This module owns that name-space logic; :mod:`.pipeline` keeps the metadata
+loading and record-lookup chain.
+"""
+
+from __future__ import annotations
+
+import re
+
+from .utils import get_entry_from_raw, top_level_keys
+
+#: Suffix segments dropped when looking for a nearby model family.
+#: ``gpt-5.6-luna`` -> ``gpt-5.6`` -> ``gpt-5`` -> ``gpt``
+#: ``claude-sonnet-4-5`` -> ``claude-sonnet-4`` -> ``claude-sonnet`` -> ``claude``
+#: ``[^.-]`` (no dots, no hyphens) ensures exactly one trailing ``-X`` / ``.X``
+#: segment is dropped per pass instead of collapsing the whole remainder.
+_TRAILING_SEGMENT_RE = re.compile(r"[-.][^.-]+$")
+
+#: Router/upstream vendor tokens that differ from the provider slug used in
+#: the bundled metadata. OpenRouter-style names look like
+#: ``openrouter//``; the vendor token often needs normalizing
+#: before it matches a metadata key (``z-ai`` -> ``zai``, ``google`` ->
+#: ``gemini``, ...).
+_VENDOR_ALIASES = {
+ "z-ai": "zai",
+ "z_ai": "zai",
+ "z.ai": "zai",
+ "x-ai": "xai",
+ "x_ai": "xai",
+ "x.ai": "xai",
+ "mistralai": "mistral",
+ "moonshotai": "moonshot",
+ "meta-llama": "meta_llama",
+ "metallama": "meta_llama",
+ "google": "gemini",
+ "cohere": "cohere_chat",
+ "qwen": "dashscope",
+ "xiaomi": "xiaomi_mimo",
+}
+
+_SLUG_NORMALIZE_RE = re.compile(r"[^a-z0-9]+")
+
+
+def candidate_keys(model_name, route, provider):
+ """Ordered lookup keys: full name, same-provider families, route, bare families.
+
+ Same-provider family candidates come before the bare route so a provider
+ prefix is never silently dropped for a bare (possibly different-provider)
+ record, e.g. ``github_copilot/gpt-5.6-luna`` should resolve to the
+ ``github_copilot/gpt-5`` family rather than the bare ``gpt-5.6-luna``
+ (openai) record.
+
+ Multi-segment routes (``openrouter/z-ai/glm-5.3-flash``) are also expanded
+ with vendor aliases (``zai/glm-5.3-flash``) and with the leading vendor
+ segment dropped (``glm-5.3-flash``) so router-hosted models inherit the
+ upstream model's limits and costs.
+ """
+ keys = []
+
+ def add(key):
+ if key and key not in keys:
+ keys.append(key)
+
+ add(model_name)
+ variants = _route_variants(route)
+ shortened = []
+
+ for variant in variants:
+ shortened.extend(_shorten_route(variant))
+
+ if provider and route:
+ for variant in variants:
+ add(f"{provider}/{variant}")
+
+ for candidate in shortened:
+ add(f"{provider}/{candidate}")
+
+ for variant in variants:
+ add(variant)
+
+ for candidate in shortened:
+ add(candidate)
+
+ tail = route.rsplit("/", 1)[-1] if route else ""
+
+ for candidate in [tail, *_shorten_route(tail)]:
+ add(candidate)
+
+ return keys
+
+
+def closest_route_match(sources, route):
+ """Return the record whose route best matches the requested route tail.
+
+ Cross-provider fallback for router models (``openrouter/z-ai/glm-5.3-flash``)
+ when no same-provider record exists. The final route segment (the model
+ name) must match case-insensitively; ties prefer the record whose provider
+ is the upstream vendor token (aliases included) so ``z-ai/glm-5.3-flash``
+ resolves to ``zai/glm-5.3-flash`` rather than an arbitrary rehost.
+ """
+ if not route or "/" not in route:
+ return None
+
+ best = None
+ best_score = -1
+
+ for source in reversed(sources):
+ if source["kind"] == "dict":
+ for key, record in source["data"].items():
+ if not isinstance(record, dict):
+ continue
+
+ score = _route_match_score(route, key)
+
+ if score > best_score:
+ best_score = score
+ best = record
+
+ else:
+ for key in top_level_keys(source["text"]):
+ score = _route_match_score(route, key)
+
+ if score <= best_score:
+ continue
+
+ record = get_entry_from_raw(source["text"], key)
+
+ if not record:
+ continue
+
+ best_score = score
+ best = record
+
+ return best if best_score > 0 else None
+
+
+def _shorten_route(route):
+ """Yield progressively shorter routes, e.g. ``gpt-5.6-luna`` -> ``gpt-5``."""
+ candidates = []
+ current = route
+
+ while current:
+ shortened = _TRAILING_SEGMENT_RE.sub("", current)
+
+ if not shortened or shortened == current:
+ break
+
+ candidates.append(shortened)
+ current = shortened
+
+ return candidates
+
+
+def _route_variants(route):
+ """Return the route plus any vendor-alias / vendor-less variants.
+
+ ``z-ai/glm-5.3-flash`` -> ``[z-ai/glm-5.3-flash, zai/glm-5.3-flash,
+ glm-5.3-flash]``. Single-segment routes are returned unchanged.
+ """
+ if not route:
+ return [route]
+
+ variants = [route]
+ segments = route.split("/")
+
+ if len(segments) < 2:
+ return variants
+
+ vendor = segments[0]
+ rest = "/".join(segments[1:])
+
+ for alias in _vendor_aliases(vendor):
+ variants.append(f"{alias}/{rest}")
+
+ variants.append(rest)
+
+ return variants
+
+
+def _vendor_aliases(vendor):
+ """Return normalized/aliased forms of a vendor token (never the original)."""
+ token = vendor.lower()
+ normalized = _SLUG_NORMALIZE_RE.sub("", token)
+ candidates = [normalized]
+
+ alias = _VENDOR_ALIASES.get(token) or _VENDOR_ALIASES.get(normalized)
+
+ if alias:
+ candidates.append(alias)
+
+ return list(dict.fromkeys(c for c in candidates if c and c != token))
+
+
+def _route_match_score(requested_route, key):
+ """Score how well a metadata ``key`` matches a requested route tail.
+
+ Returns ``-1`` unless the final route segment matches. Extra score is
+ awarded for contiguous trailing segments and for an upstream vendor whose
+ provider slug matches the requested vendor (``z-ai``/``zai``).
+ """
+ key_route = key.split("/", 1)[-1] if "/" in key else key
+ requested_parts = requested_route.lower().split("/")
+ key_parts = key_route.lower().split("/")
+
+ matched = 0
+
+ for left, right in zip(reversed(requested_parts), reversed(key_parts)):
+ if _SLUG_NORMALIZE_RE.sub("", left) != _SLUG_NORMALIZE_RE.sub("", right):
+ break
+
+ matched += 1
+
+ if matched == 0:
+ return -1
+
+ score = matched * 100
+ vendor = requested_parts[-2] if len(requested_parts) >= 2 else ""
+
+ if vendor:
+ key_provider = key.split("/", 1)[0].lower() if "/" in key else ""
+
+ if key_provider in (vendor, *_vendor_aliases(vendor)):
+ score += 40
+
+ if len(key_parts) >= 2 and key_parts[-2] in (
+ vendor,
+ *_vendor_aliases(vendor),
+ ):
+ score += 25
+
+ return score
diff --git a/cecli/helpers/model_config/pipeline.py b/cecli/helpers/model_config/pipeline.py
index 2839be426b2..b679039c395 100644
--- a/cecli/helpers/model_config/pipeline.py
+++ b/cecli/helpers/model_config/pipeline.py
@@ -15,7 +15,6 @@
import importlib.resources as importlib_resources
import json
-import re
from pathlib import Path
from typing import Any, Dict, List, Optional, Union
@@ -26,17 +25,11 @@
from .formatters.reasoning import format_reasoning
from .formatters.thinking import format_thinking
from .llm import derive_llm_config
+from .model_routers import candidate_keys, closest_route_match
from .utils import get_entry_from_raw, top_level_keys
RESOURCE_FILE = "model-metadata.json"
-#: Suffix segments dropped when looking for a nearby model family.
-#: ``gpt-5.6-luna`` -> ``gpt-5.6`` -> ``gpt-5`` -> ``gpt``
-#: ``claude-sonnet-4-5`` -> ``claude-sonnet-4`` -> ``claude-sonnet`` -> ``claude``
-#: ``[^.-]`` (no dots, no hyphens) ensures exactly one trailing ``-X`` / ``.X``
-#: segment is dropped per pass instead of collapsing the whole remainder.
-_TRAILING_SEGMENT_RE = re.compile(r"[-.][^.-]+$")
-
#: Lazily loaded raw text of the bundled metadata file (never json.loads-ed).
_BUNDLED_RAW_CACHE: Optional[str] = None
@@ -260,37 +253,13 @@ def _find_record(sources, model_name, provider, route):
if not sources:
return None
- for key in _candidate_keys(model_name, route, provider):
+ for key in candidate_keys(model_name, route, provider):
record = _lookup_entry(sources, key)
if record:
return record
- return _closest_provider_match(sources, provider, route)
-
-
-def _candidate_keys(model_name, route, provider):
- """Ordered lookup keys: full name, same-provider families, route, bare families.
-
- Same-provider family candidates come before the bare route so a provider
- prefix is never silently dropped for a bare (possibly different-provider)
- record, e.g. ``github_copilot/gpt-5.6-luna`` should resolve to the
- ``github_copilot/gpt-5`` family rather than the bare ``gpt-5.6-luna``
- (openai) record.
- """
- keys = [model_name]
- shortened = _shorten_route(route) if provider and route else []
-
- if provider and route:
- keys.extend(f"{provider}/{candidate}" for candidate in shortened)
-
- if route and route != model_name:
- keys.append(route)
-
- if provider and route:
- keys.extend(shortened)
-
- return keys
+ return _closest_provider_match(sources, provider, route) or closest_route_match(sources, route)
def _lookup_entry(sources, key):
@@ -311,23 +280,6 @@ def _lookup_entry(sources, key):
return None
-def _shorten_route(route):
- """Yield progressively shorter routes, e.g. ``gpt-5.6-luna`` -> ``gpt-5``."""
- candidates = []
- current = route
-
- while current:
- shortened = _TRAILING_SEGMENT_RE.sub("", current)
-
- if not shortened or shortened == current:
- break
-
- candidates.append(shortened)
- current = shortened
-
- return candidates
-
-
def _closest_provider_match(sources, provider, route):
"""Return the same-provider record with the longest shared route prefix.
diff --git a/cecli/helpers/model_providers.py b/cecli/helpers/model_providers.py
index 72bb7c5e82b..312ad75a509 100644
--- a/cecli/helpers/model_providers.py
+++ b/cecli/helpers/model_providers.py
@@ -22,9 +22,153 @@
import requests
from cecli.helpers.file_searcher import handle_core_files
+from cecli.helpers.nested import getter
RESOURCE_FILE = "providers.json"
+#: Candidate paths (dot notation for ``nested.getter``) that may hold the model
+#: list in a provider response. Tried in order; the first list wins.
+MODEL_LIST_PATHS = (
+ "data",
+ "models",
+ "result.data",
+ "result",
+ "model_list",
+ "items",
+ "available_models",
+ "response.data",
+ "data.models",
+ "results",
+)
+
+#: Candidate paths for a provider's model identifier, in preference order.
+MODEL_ID_PATHS = (
+ "id",
+ "model_id",
+ "model",
+ "canonical_id",
+ "slug",
+ "name",
+ "model_spec.name",
+ "metadata.display_name",
+ "display_name",
+ "title",
+ "canonical_slug",
+)
+
+#: Canonical field -> ordered extraction paths.
+#:
+#: Provider model lists disagree on both key names and nesting (OpenAI
+#: ``data[].context_length``, OpenRouter ``data[].top_provider.context_length``,
+#: Fireworks ``models[].name``, ...). Declaring the superset of paths here keeps
+#: parsing generic; providers.json entries can override any field through
+#: ``model_field_paths`` without touching code.
+MODEL_FIELD_PATHS = {
+ "max_input_tokens": (
+ "max_input_tokens",
+ "input_token_limit",
+ "max_context_tokens",
+ "context_length",
+ "context_window.context_length",
+ "max_context_length",
+ "max_model_len",
+ "context_size",
+ "limit.context",
+ "model_spec.availableContextTokens",
+ "top_provider.context_length",
+ "top_provider_context_length",
+ "metadata.context_length",
+ "limits.context_length",
+ "limits.max_input_tokens",
+ "context_window",
+ "max_tokens",
+ ),
+ "max_output_tokens": (
+ "max_output_tokens",
+ "max_completion_tokens",
+ "max_output_length",
+ "max_completion_length",
+ "top_provider.max_completion_tokens",
+ "top_provider_max_completion_tokens",
+ "limit.output",
+ "context_window.max_output_tokens",
+ "model_spec.maxCompletionTokens",
+ "max_tokens",
+ "metadata.max_tokens",
+ "context_length",
+ "context_window",
+ "top_provider.context_length",
+ "limits.max_output_tokens",
+ ),
+ "max_tokens": (
+ "max_tokens",
+ "max_input_tokens",
+ "input_token_limit",
+ "context_length",
+ "context_window.context_length",
+ "max_context_length",
+ "max_model_len",
+ "context_size",
+ "limit.context",
+ "model_spec.availableContextTokens",
+ "top_provider.context_length",
+ "top_provider_context_length",
+ "limits.context_length",
+ ),
+ "input_cost_per_token": (
+ "input_cost_per_token",
+ "prompt_cost_per_token",
+ "pricing.prompt",
+ "pricing.input",
+ "pricing.prompt.price_per_m_decimal",
+ "input_token_price_per_m",
+ "price.input.usd",
+ "cost.text.input.price",
+ "model_spec.pricing.input.usd",
+ "metadata.pricing.input_tokens",
+ "pricing.input_tokens",
+ "cost.input",
+ "cost.prompt",
+ "pricing.prompt_tokens",
+ ),
+ "output_cost_per_token": (
+ "output_cost_per_token",
+ "completion_cost_per_token",
+ "pricing.completion",
+ "pricing.output",
+ "pricing.completion.price_per_m_decimal",
+ "output_token_price_per_m",
+ "price.output.usd",
+ "cost.text.output.price",
+ "model_spec.pricing.output.usd",
+ "metadata.pricing.output_tokens",
+ "pricing.output_tokens",
+ "cost.output",
+ "cost.completion",
+ "pricing.completion_tokens",
+ ),
+ "cache_read_input_token_cost": (
+ "cache_read_input_token_cost",
+ "input_cost_per_token_cache_hit",
+ "pricing.input_cache_read",
+ "pricing.cache_read",
+ "pricing.input_cache_read.price_per_m_decimal",
+ "cache_read_cost_per_token",
+ "metadata.pricing.cache_read",
+ ),
+ "cache_creation_input_token_cost": (
+ "cache_creation_input_token_cost",
+ "pricing.input_cache_write",
+ "pricing.cache_write",
+ "pricing.input_cache_write.price_per_m_decimal",
+ "cache_write_cost_per_token",
+ "metadata.pricing.cache_write",
+ ),
+}
+
+#: Provider model-type values that mean "chat model".
+CHAT_MODE_VALUES = frozenset({"chat", "completion", "completions", "language", "text", "responses"})
+
def _first_env_value(names):
"""Return the first non-empty environment variable for the provided names."""
@@ -234,43 +378,26 @@ def _find_record(self, content: Optional[Dict], route: str) -> Optional[Dict]:
return next((item for item in content["data"] if item.get("id") in candidates), None)
def _record_to_info(self, record: Dict, provider: str) -> Dict:
- context_len = _first_value(
- record,
- "max_input_tokens",
- "max_tokens",
- "max_output_tokens",
- "context_length",
- "context_window",
- "top_provider_context_length",
- "top_provider",
- )
- if isinstance(context_len, dict):
- context_len = context_len.get("context_length") or context_len.get("max_tokens")
- pricing = record.get("pricing", {}) if isinstance(record.get("pricing"), dict) else {}
- input_cost = _cost_per_token(
- _first_value(pricing, "prompt", "input", "prompt_tokens")
- or _first_value(record, "input_cost_per_token", "prompt_cost_per_token")
- )
+ field_paths = self._model_field_paths(provider)
+ context_len = _first_path_value(record, field_paths["max_input_tokens"])
+ if context_len is None:
+ top_provider = getter(record, "top_provider")
+ if isinstance(top_provider, dict):
+ context_len = _first_path_value(
+ top_provider, ("context_length", "max_tokens", "max_completion_tokens")
+ )
+ input_cost = _cost_per_token(_first_path_value(record, field_paths["input_cost_per_token"]))
output_cost = _cost_per_token(
- _first_value(pricing, "completion", "output", "completion_tokens")
- or _first_value(record, "output_cost_per_token", "completion_cost_per_token")
+ _first_path_value(record, field_paths["output_cost_per_token"])
)
- max_tokens = _first_value(
- record,
- "max_tokens",
- "max_input_tokens",
- "context_length",
- "context_window",
- "top_provider_context_length",
+ cache_read_cost = _cost_per_token(
+ _first_path_value(record, field_paths["cache_read_input_token_cost"])
)
- max_output_tokens = _first_value(
- record,
- "max_output_tokens",
- "max_tokens",
- "context_length",
- "context_window",
- "top_provider_context_length",
+ cache_creation_cost = _cost_per_token(
+ _first_path_value(record, field_paths["cache_creation_input_token_cost"])
)
+ max_tokens = _first_path_value(record, field_paths["max_tokens"])
+ max_output_tokens = _first_path_value(record, field_paths["max_output_tokens"])
if max_tokens is None:
max_tokens = context_len
if max_output_tokens is None:
@@ -290,8 +417,12 @@ def _normalize_cost(cost: Optional[float]) -> float:
"input_cost_per_token": _normalize_cost(input_cost),
"output_cost_per_token": _normalize_cost(output_cost),
"litellm_provider": provider,
- "mode": record.get("mode", "chat"),
+ "mode": _normalize_mode(getter(record, ("mode", "type", "model_type"), "chat")),
}
+ if cache_read_cost is not None:
+ info["cache_read_input_token_cost"] = _normalize_cost(cache_read_cost)
+ if cache_creation_cost is not None:
+ info["cache_creation_input_token_cost"] = _normalize_cost(cache_creation_cost)
return {k: v for k, v in info.items() if v is not None}
def _get_cache_file(self, provider: str) -> Path:
@@ -299,38 +430,58 @@ def _get_cache_file(self, provider: str) -> Path:
return self.cache_dir / fname
def _normalize_models_payload(self, provider: str, payload: Dict) -> Dict:
- """Normalize provider payloads into an OpenAI-style `{data: [{id: ...}]}`."""
- if not isinstance(payload, dict):
+ """Normalize provider payloads into an OpenAI-style `{data: [{id: ...}]}`.
+
+ The list location and per-entry field names differ per provider. Both
+ are resolved through the declarative path sets above (``nested.getter``),
+ with optional ``model_list_paths`` / ``model_field_paths`` overrides in
+ the provider's ``providers.json`` entry.
+ """
+ items = payload if isinstance(payload, list) else None
+
+ if items is None and isinstance(payload, dict):
+ for path in self._model_list_paths(provider):
+ candidate = getter(payload, path)
+ if isinstance(candidate, list):
+ items = candidate
+ break
+ if isinstance(candidate, dict):
+ items = []
+ for model_key, value in candidate.items():
+ if not isinstance(value, dict):
+ continue
+ record = dict(value)
+ record.setdefault("id", model_key)
+ items.append(record)
+ break
+
+ if items is None:
return {}
- if "data" in payload and isinstance(payload.get("data"), list):
- return payload
- # Fireworks returns `{models: [...], nextPageToken: ..., totalSize: ...}`
- models = payload.get("models")
- if isinstance(models, list):
- normalized = []
- for item in models:
- if not isinstance(item, dict):
- continue
- model_id = item.get("name") or item.get("id")
- if not model_id:
- continue
- record = {"id": model_id}
- for key in (
- "max_input_tokens",
- "max_output_tokens",
- "max_tokens",
- "context_length",
- "context_window",
- "mode",
- "pricing",
- "input_cost_per_token",
- "output_cost_per_token",
- ):
- if key in item and item[key] is not None:
- record[key] = item[key]
- normalized.append(record)
- return {"data": normalized}
- return {}
+
+ field_paths = self._model_field_paths(provider)
+ normalized = []
+ for item in items:
+ if not isinstance(item, dict):
+ continue
+ model_id = _first_path_value(item, MODEL_ID_PATHS)
+ if not model_id:
+ continue
+ record = {"id": model_id}
+ for key, paths in field_paths.items():
+ value = _first_path_value(item, paths)
+ if value is not None:
+ record[key] = value
+ # Keep the raw pricing dict for cache/cost fields not covered by
+ # the canonical paths (e.g. cache-read pricing).
+ pricing = getter(item, "pricing")
+ if isinstance(pricing, dict):
+ record["pricing"] = pricing
+ for key in ("mode", "type", "supported_endpoints"):
+ value = getter(item, key)
+ if value not in (None, "", [], {}):
+ record[key] = value
+ normalized.append(record)
+ return {"data": normalized}
def _load_cache(self, provider: str) -> None:
if self._cache_loaded.get(provider):
@@ -422,6 +573,31 @@ def _get_account_id(self, provider: str) -> Optional[str]:
return os.environ.get(account_id_env)
return None
+ def _model_field_paths(self, provider: str) -> Dict[str, tuple]:
+ """Return canonical field -> extraction paths, with provider overrides."""
+ overrides = (self.provider_configs.get(provider) or {}).get("model_field_paths") or {}
+ if not overrides:
+ return MODEL_FIELD_PATHS
+
+ paths = dict(MODEL_FIELD_PATHS)
+ for field, candidates in overrides.items():
+ if isinstance(candidates, str):
+ candidates = (candidates,)
+ if isinstance(candidates, (list, tuple)):
+ paths[field] = tuple(candidates)
+
+ return paths
+
+ def _model_list_paths(self, provider: str) -> tuple:
+ """Return candidate payload paths that may contain the model list."""
+ override = (self.provider_configs.get(provider) or {}).get("model_list_paths")
+ if isinstance(override, str):
+ return (override,)
+ if isinstance(override, (list, tuple)) and override:
+ return tuple(override)
+
+ return MODEL_LIST_PATHS
+
_NUMBER_RE = re.compile(r"-?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?")
@@ -453,3 +629,33 @@ def _first_value(record: Dict, *keys: str):
if value not in (None, ""):
return value
return None
+
+
+def _first_path_value(record: Dict, paths):
+ """Return the first non-empty scalar value from ordered dotted paths."""
+
+ for path in paths:
+ value = getter(record, path)
+
+ if value in (None, "", [], {}):
+ continue
+
+ if isinstance(value, (dict, list, tuple)):
+ continue
+
+ return value
+
+ return None
+
+
+def _normalize_mode(value):
+ """Map provider model-type values (``language``, ``text``, ...) to ``chat``."""
+ if not isinstance(value, str):
+ return "chat"
+
+ value = value.lower()
+
+ if value in CHAT_MODE_VALUES:
+ return "chat"
+
+ return value
diff --git a/cecli/helpers/orchestration/agent_proxy.py b/cecli/helpers/orchestration/agent_proxy.py
index a016d8d4ff9..7401a7db9e7 100644
--- a/cecli/helpers/orchestration/agent_proxy.py
+++ b/cecli/helpers/orchestration/agent_proxy.py
@@ -389,77 +389,6 @@ def get_content_id(self, file_path: str, line_content: str) -> str:
raise ValueError(f"Could not resolve content ID for '{line_content}' in {file_path}")
return result
- def resolve_regions(
- self,
- file_path: str,
- regions: list[dict[str, str]],
- exact: bool = True,
- ):
- """
- Store named region patterns for lazy content-ID resolution.
-
- Content IDs are resolved *on access* via `.get_start(name)` /
- `.get_end(name)`, so they are always fresh — even after
- intervening edits shift hashline positions.
-
- Args:
- file_path: Path to the file containing the target regions.
- regions: List of region spec dicts with "name", "start", "end" keys.
- exact: When True (default), use exact line matching (no stripping).
- When False, use substring matching with stripped content.
-
- Returns an :class:`AgentRegion` instance.
- """
-
- from cecli.helpers.orchestration.region_resolver import AgentRegion
-
- return AgentRegion(file_path, self._coder, regions, exact=exact)
-
- async def edit_region(
- self,
- file_path: str,
- edits: list[dict[str, object]],
- change_id: str | None = None,
- ):
- """
- Thin wrapper around `EditFile` that accepts `{"start": content_id, "end": content_id}` region dicts.
-
- Use with `Agent.resolve_regions()` and `regions.get(name)`:
-
- regions = Agent.resolve_regions("foo.py", [
- {"name": "my_func", "start": "def my_func", "end": "return result"},
- ])
- await Agent.edit_region(
- file_path="foo.py",
- edits=[
- {"region": regions.get("my_func"), "text": "def my_func():\\n return 42"},
- ],
- )
- """
-
- edit_tool = self.get_tool("EditFile")
-
- edit_objects: list[dict[str, object]] = []
- for edit in edits:
- region = edit["region"]
-
- edit_objects.append(
- {
- "file_path": file_path,
- "operation": edit.get("operation", "replace"),
- "start_line": region["start"],
- "end_line": region["end"],
- "text": edit["text"],
- }
- )
-
- # self._validate_edit_regions(edits, edit_objects)
-
- return await edit_tool.call(
- edits=edit_objects,
- change_id=change_id,
- )
-
async def sleep(self, seconds: float) -> None:
"""Safe sleep - pauses execution (0-120 seconds max).
@@ -505,57 +434,6 @@ def allowed_methods(self) -> list[str]:
)
return builtins + globals_list
- @staticmethod
- def _validate_edit_regions(
- edits: list[dict[str, object]],
- edit_objects: list[dict[str, object]],
- ) -> None:
- """Reject batches where any two edit regions overlap or are adjacent.
-
- Adjacent edits (within 8 lines of each other) corrupt content IDs
- because the first edit regenerates IDs in the surrounding ~8-line
- window, making the second edit's target IDs stale.
- """
- _ADJACENCY_THRESHOLD = 8 # lines of ID-regeneration buffer
-
- if len(edits) <= 1:
- return
-
- # Collect (start_line, end_line, idx) for each edit
- indexed: list[tuple[int, int, int]] = []
- for i, (edit, eo) in enumerate(zip(edits, edit_objects)):
- region = edit["region"]
- sl = region.get("start_line")
- el = region.get("end_line")
- if sl is None or el is None:
- # No line numbers available — skip validation (best-effort)
- return
- indexed.append((int(sl), int(el), i))
-
- # Sort by start_line
- indexed.sort(key=lambda x: x[0])
-
- for j in range(len(indexed) - 1):
- sl_a, el_a, idx_a = indexed[j]
- sl_b, el_b, idx_b = indexed[j + 1]
-
- if sl_b <= el_a:
- raise ValueError(
- f"Overlapping edit regions detected: "
- f"edit {idx_a + 1} (lines {sl_a}-{el_a}) overlaps with "
- f"edit {idx_b + 1} (lines {sl_b}-{el_b}). "
- f"Split edits into separate calls."
- )
- if sl_b <= el_a + _ADJACENCY_THRESHOLD:
- raise ValueError(
- f"Adjacent edit regions detected: "
- f"edit {idx_a + 1} (lines {sl_a}-{el_a}) is within "
- f"{_ADJACENCY_THRESHOLD} lines of edit {idx_b + 1} (lines {sl_b}-{el_b}). "
- f"Content IDs within ~8 lines of an edit are regenerated, "
- f"so adjacent edits corrupt each other's targets. "
- f"Split edits into separate calls."
- )
-
# ---------------------------------------------------------------------------
# Main execution environment
diff --git a/cecli/helpers/orchestration/environment.py b/cecli/helpers/orchestration/environment.py
index 59cef7da459..188317bd0df 100644
--- a/cecli/helpers/orchestration/environment.py
+++ b/cecli/helpers/orchestration/environment.py
@@ -558,22 +558,13 @@ def build_orchestration_context_block(agent_config: dict[str, Any]) -> str | Non
| `Agent.get_tool(name)` | Get a tool proxy (case-insensitive; `Local--` / `{{Server Name}}--` prefixes ok) |
| `Agent.get_tool_schema(name)` | Return a copy of the full function-calling JSON schema |
| `Agent.get_tool_signature(name)` | Return a readable Python-style signature; optional params without defaults appear as `= ...` |
-| `await tool.call(**params)` | Run a tool; returns `{"result": [...], "errors": [...], "details": [...]}`, items with shape `{"content", "_"}` |
+| `await tool.call(**params)` | Run a tool; `params` match the tool's JSON schema. Returns `{"result", "errors", "details"}` |
| `Agent.peek(result)` / `Agent.get_value(result, path, default?)` | Inspect / extract values from tool results. path is dot-separated string |
-| `Agent.resolve_regions(path, specs)` / `Agent.edit_region(path, edits)` | Resolve text boundaries once, then apply edits |
| `gather(**tasks)` | Run tasks concurrently; results expose `.key` and `["key"]` |
| `state` / `shared_state` | Persistent dicts that survive between Orchestrate calls; `state.get(k)` falls back to `shared_state`. Use these for anything you need to reuse in a later call |
| `print(...)` / `reset(local_vars=True, state=False)` | Emit output / clear namespaces |
| `typeof(x)`, `isinstance(x, t)`, `hasattr(x, n)`, `repr(x)`, `vars(obj)` | Type inspection and debugging |
-### Region editing
-
-- `resolve_regions(path, specs)`:
- `specs` = `[{"name", "start", "end", "start_line_hint"?, "end_line_hint"?}]`; `start`/`end` are line text, `@L{num}`, or a content ID.
- Returns `regions` with `.get(name)` -> `{"start", "end", "start_line", "end_line"}` plus `.get_start(name)` / `.get_end(name)`.
-- `edit_region(path, edits)`:
- `edits` = `[{"region": regions.get(name), "text", "operation" ("replace"|"delete", default "replace")}]`.
-
### Modules
Pre-imported, read-only: `re`, `math`, `itertools`, `collections`, `datetime`, `pathlib` (I/O blocked), `json`, `traceback`. Any other import fails.
@@ -583,7 +574,7 @@ def build_orchestration_context_block(agent_config: dict[str, Any]) -> str | Non
- Keyword args only; `gather()` takes named tasks
- Do not touch private (`_`) attributes or `__builtins__`
- Always `await` tool calls
-- Inspect tool results with `Agent.peek()` / `Agent.get_value()`; edit files via `Agent.resolve_regions()` + `Agent.edit_region()` or `EditFile` directly
+- Inspect tool results with `Agent.peek()` / `Agent.get_value()`
"""
# Task 6: Append sandbox configuration overrides when non-empty
diff --git a/cecli/helpers/orchestration/region_resolver.py b/cecli/helpers/orchestration/region_resolver.py
deleted file mode 100644
index 5d578b58ad2..00000000000
--- a/cecli/helpers/orchestration/region_resolver.py
+++ /dev/null
@@ -1,488 +0,0 @@
-"""
-Region resolution helpers for the orchestration sandbox.
-
-Provides AgentRegion for storing named region boundary *patterns* that are
-resolved to content IDs on-demand at access time. This ensures content IDs
-are always fresh — important after intervening edits shift hashline positions.
-"""
-
-from __future__ import annotations
-
-from typing import Any
-
-from cecli.helpers.hashpos.transformations import (
- extract_hint,
- is_content_id,
- narrow_by_proximity,
- resolve_at_l,
- search_in_lines,
-)
-
-
-class AgentRegion:
- """
- Stores named region boundary *patterns* resolved to content IDs on access.
-
- Content IDs can shift after edits, so ``get_start(name)`` and
- ``get_end(name)`` re-read the file and re-resolve patterns at each call.
- Use these directly in ``EditFile`` calls for always-fresh IDs.
-
- When a region spec uses a **content ID** (e.g. `"—abcd—"`) instead of
- text, the referenced line content is snapshotted on first resolution.
- If the ID goes stale after intervening edits, subsequent resolutions
- fall back to content matching against the snapshotted line text.
-
- Example usage in orchestration code:
-
- regions = Agent.resolve_regions("foo.py", [
- {"name": "helper", "start": "def helper", "end": "return x"},
- ])
- edit_tool = Agent.get_tool("EditFile")
- await edit_tool.call(edits=[{
- "file_path": "foo.py",
- "operation": "replace",
- "start_line": regions.get_start("helper"),
- "end_line": regions.get_end("helper"),
- "text": "def helper():\\n return 42",
- }])
- """
-
- def __init__(
- self,
- file_path: str,
- coder: Any,
- region_specs: list[dict[str, str]],
- exact: bool = True,
- ) -> None:
- self._exact = exact
- self._file_path = file_path
- self._coder = coder
- self._specs: dict[str, dict[str, str]] = {}
-
- for spec in region_specs:
- name = spec["name"]
- entry: dict[str, object] = {
- "start": spec["start"],
- "end": spec["end"],
- }
- if "start_line_hint" in spec:
- entry["start_line_hint"] = spec["start_line_hint"]
- if "end_line_hint" in spec:
- entry["end_line_hint"] = spec["end_line_hint"]
- self._specs[name] = entry
-
- # Eagerly validate uniqueness for all regions at creation time.
- # This catches ambiguous patterns immediately with clear error messages.
- self._eager_validate()
-
- # ------------------------------------------------------------------
- # Public API
- # ------------------------------------------------------------------
-
- def get_start(self, name: str) -> str:
- """Re-read file and return the current content ID for the start of *name*."""
-
- return self._resolve(name)[0]
-
- def get_end(self, name: str) -> str:
- """Re-read file and return the current content ID for the end of *name*."""
-
- return self._resolve(name)[1]
-
- def get_start_line(self, name: str) -> int:
- """Re-read file and return the current 1-based start line for *name*."""
-
- return self._resolve(name)[2]
-
- def get_end_line(self, name: str) -> int:
- """Re-read file and return the current 1-based end line for *name*."""
-
- return self._resolve(name)[3]
-
- def __contains__(self, name: str) -> bool:
- return name in self._specs
-
- def __len__(self) -> int:
- return len(self._specs)
-
- def names(self) -> list[str]:
- """Return the list of region names."""
-
- return sorted(self._specs.keys())
-
- def get(self, name: str) -> dict[str, object]:
- """Return ``{"start": ..., "end": ..., "start_line": N, "end_line": N}`` for *name*.
-
- The returned dict can be passed directly as the ``region`` value
- in ``Agent.edit_region()`` edits. ``start_line`` / ``end_line`` are
- 1-based for readability and enable adjacent-edit detection.
- """
-
- start_id, end_id, start_line, end_line = self._resolve(name)
- return {
- "start": start_id,
- "end": end_id,
- "start_line": start_line + 1,
- "end_line": end_line + 1,
- }
-
- def __repr__(self) -> str:
- names = ", ".join(sorted(self._specs.keys()))
- return f"AgentRegion({len(self._specs)} regions on " f"{self._file_path!r}: {names})"
-
- # ------------------------------------------------------------------
- # Resolution internals
- # ------------------------------------------------------------------
-
- def _eager_validate(self) -> None:
- """Eagerly resolve and validate all region patterns at init time.
-
- Raises ValueError immediately for ambiguous patterns so the LLM
- gets clear feedback without waiting for the first access.
- """
-
- for name in list(self._specs.keys()):
- self._resolve(name)
-
- def _resolve(self, name: str) -> tuple[str, str, int, int]:
- """
- Re-read file and resolve *name* to
- (start_id, end_id, start_line, end_line).
-
- When a pattern is a content ID the referenced line is snapshotted
- so future resolutions can fall back to content matching if the
- original ID goes stale.
- """
-
- import os
-
- from cecli.helpers.hashline import (
- ContentHashError,
- normalize_hashline,
- resolve_content_to_hashline_ids,
- )
- from cecli.helpers.hashpos.hashpos import HashPos
- from cecli.tools.utils.helpers import resolve_paths
-
- spec = self._specs[name]
-
- # Read explicit line hints from spec (preferred over @L in patterns).
- # 1-based in the spec, converted to 0-based internally.
- explicit_start = spec.get("start_line_hint")
- explicit_end = spec.get("end_line_hint")
-
- abs_path, rel_path = resolve_paths(self._coder, self._file_path)
-
- if not os.path.isfile(abs_path):
- raise ValueError(f"File not found: {self._file_path}")
-
- content = self._coder.io.read_text(abs_path)
-
- if content is None:
- raise ValueError(f"Could not read file: {self._file_path}")
-
- lines = content.splitlines()
- hp = HashPos(content)
-
- start_pattern = self._resolve_pattern(
- hp, lines, spec, "start", normalize_hashline, ContentHashError
- )
- end_pattern = self._resolve_pattern(
- hp, lines, spec, "end", normalize_hashline, ContentHashError
- )
-
- # Always strip @L hints from patterns — they are metadata, not literal text.
- # Explicit hints (start_line_hint / end_line_hint) override any @L in patterns.
- start_pattern, extracted_start, start_hint_type = self._extract_l_hint(start_pattern, lines)
- end_pattern, extracted_end, end_hint_type = self._extract_l_hint(end_pattern, lines)
-
- # Handle explicit hints (start_line_hint / end_line_hint)
- # Integers are treated as @L (1-based line numbers).
- # Strings support the full @L, @A, @B syntax (same as ReadFile).
- if explicit_start is not None:
- if isinstance(explicit_start, str):
- # String hint — parse through _extract_l_hint
- _, start_hint, start_hint_type = self._extract_l_hint(explicit_start, lines)
- if start_hint is None:
- # String hint like "@L394" may fail because the regex
- # requires the @L to be preceded by whitespace or be at
- # the start of the string. Guide the user to use an
- # integer hint instead.
- raise ValueError(
- f"start_line_hint '{explicit_start}' for region "
- f"'{name}' could not be resolved. "
- f"Use an integer line number instead: "
- f"start_line_hint={explicit_start.replace('@L', '')}"
- )
- else:
- # Integer hint — treat as @L (1-based, converted to 0-based)
- start_hint = explicit_start - 1
- start_hint_type = "L"
- else:
- start_hint = extracted_start
-
- if explicit_end is not None:
- if isinstance(explicit_end, str):
- _, end_hint, end_hint_type = self._extract_l_hint(explicit_end, lines)
- if end_hint is None:
- # String hint like "@L437" may fail because the regex
- # requires @L to be preceded by whitespace or be at
- # the start of the string. Guide the user to use an
- # integer hint instead.
- raise ValueError(
- f"end_line_hint '{explicit_end}' for region "
- f"'{name}' could not be resolved. "
- f"Use an integer line number instead: "
- f"end_line_hint={explicit_end.replace('@L', '')}"
- )
- else:
- end_hint = explicit_end - 1
- end_hint_type = "L"
- else:
- end_hint = extracted_end
-
- # Strip hashline prefixes from text patterns — the LLM may have copied
- # content-ID-prefixed lines from a ReadFile response (e.g. —XYZ12—text).
- # Content-ID patterns and special markers are left untouched.
- if not self._looks_like_content_id(start_pattern) and start_pattern not in ("@000", "000@"):
- start_pattern = HashPos.strip_prefix(start_pattern)
- if not self._looks_like_content_id(end_pattern) and end_pattern not in ("@000", "000@"):
- end_pattern = HashPos.strip_prefix(end_pattern)
-
- # Validate uniqueness for text-based patterns (not content IDs or special markers).
- self._validate_pattern_uniqueness(
- start_pattern, start_hint, "start", name, lines, start_hint_type
- )
- self._validate_pattern_uniqueness(end_pattern, end_hint, "end", name, lines, end_hint_type)
-
- start_id, end_id = resolve_content_to_hashline_ids(
- content,
- start_pattern,
- end_pattern,
- start_hint_line=start_hint if start_hint_type == "L" else None,
- exact=self._exact,
- )
-
- # Resolve line numbers from content IDs
- def _line_from_id(content_id: str, default_if_not_found: int) -> int:
- if content_id == "@000":
- return 1
-
- if content_id == "000@":
- return len(lines)
-
- try:
- normalized = normalize_hashline(content_id)
- candidates = hp.resolve_to_lines(normalized)
-
- if candidates:
- return candidates[0] + 1
- except (ContentHashError, ValueError):
- pass
-
- return default_if_not_found
-
- start_line = _line_from_id(start_id, -1)
- end_line = _line_from_id(end_id, -1)
-
- if start_line < 0 or end_line < 0:
- parts = []
- if start_line >= 0:
- parts.append(f" Start pattern resolved to: {start_pattern!r} (line {start_line})")
- else:
- parts.append(f" Start pattern NOT FOUND: {start_pattern!r}")
- if end_line >= 0:
- parts.append(f" End pattern resolved to: {end_pattern!r} (line {end_line})")
- else:
- parts.append(f" End pattern NOT FOUND: {end_pattern!r}")
- raise ValueError(
- f"Could not resolve line numbers for region "
- f"'{name}' in {self._file_path}\n" + "\n".join(parts)
- )
-
- return start_id, end_id, start_line, end_line
-
- # ------------------------------------------------------------------
- # Helpers
- # ------------------------------------------------------------------
-
- @staticmethod
- def _search_in_lines(lines: list[str], pattern: str) -> list[int]:
- """Return 0-based indices of all lines where *pattern* matches.
-
- Supports multiline patterns (each line of *pattern* must appear
- as a whole word in the corresponding line of *lines*).
-
- Delegates to the core ``search_in_lines`` in
- ``cecli.helpers.hashpos.transformations`` for unified matching.
- """
-
- return search_in_lines(lines, pattern)
-
- @staticmethod
- def _extract_l_hint(
- pattern: str, lines: list[str] | None = None
- ) -> tuple[str, int | None, str | None]:
- """Extract a hint suffix from a pattern string.
-
- Supports @L (direct line number), @A{{regex}} (filter to matches AFTER
- the first regex match), and @B{{regex}} (filter to matches BEFORE the last
- regex match) hints.
-
- Returns (stripped_pattern, hint_value, hint_type) where:
- - hint_value is a 0-based line number or None
- - hint_type is 'L', 'A', 'B', or None
- """
-
- return extract_hint(pattern, lines)
-
- @staticmethod
- def _narrow_by_proximity(indices: list[int], target: int, max_results: int = 5) -> list[int]:
- """Return up to *max_results* indices closest to *target* (0-based)."""
-
- return narrow_by_proximity(indices, target, max_results=max_results)
-
- def _validate_pattern_uniqueness(
- self,
- pattern: str,
- hint: int | None,
- boundary: str,
- name: str,
- lines: list[str],
- hint_type: str | None = None,
- ) -> None:
- """Raise ValueError if *pattern* matches multiple locations.
-
- Only validates text patterns — content IDs and special markers
- (@000 / 000@) are inherently unique and are skipped.
- """
-
- if self._looks_like_content_id(pattern):
- return
- if pattern in ("@000", "000@"):
- return
-
- matches = self._search_in_lines(lines, pattern)
-
- # Apply @A/@B directional filtering — keep only closest match in direction
- if hint_type == "A" and hint is not None:
- after = [m for m in matches if m > hint]
- matches = [min(after)] if after else []
- elif hint_type == "B" and hint is not None:
- before = [m for m in matches if m < hint]
- matches = [max(before)] if before else []
-
- if len(matches) <= 1:
- return
-
- # Try proximity narrowing — find the unique closest match (only for @L hints)
- if hint is not None and hint_type == "L":
- best = min(matches, key=lambda i: abs(i - hint))
- best_dist = abs(best - hint)
- conflicts = [i for i in matches if i != best and abs(i - hint) == best_dist]
- if not conflicts:
- return # Unique closest match found
- matches_for_display = [best] + conflicts
- else:
- matches_for_display = matches
-
- # Build detailed match display with line content
- max_preview = 10
- sorted_matches = sorted(matches_for_display)
- all_line_nums = [str(i + 1) for i in sorted_matches]
- line_nums_display = ", ".join(all_line_nums)
- if len(all_line_nums) > 50:
- line_nums_display = (
- ", ".join(all_line_nums[:50]) + f", ... ({len(all_line_nums)} total)"
- )
-
- # Only show content previews for the first 10 matches
- match_lines = []
- for i in sorted_matches[:max_preview]:
- line_content = lines[i]
- if len(line_content) > 120:
- line_content = line_content[:117] + "..."
- match_lines.append(f" @L{i + 1}: {line_content}")
- match_details = "\n".join(match_lines)
- if len(sorted_matches) > max_preview:
- match_details += f"\n ... and {len(sorted_matches) - max_preview} more match(es)"
-
- if hint is not None:
- raise ValueError(
- f"{boundary.capitalize()} pattern '{pattern}' for region "
- f"'{name}' has {len(matches)} matches (lines {line_nums_display}); "
- f"@L{hint + 1} hint ties between "
- f"{len(matches_for_display)} equally-close locations:\n"
- f"{match_details}\n"
- f"Use a more specific pattern."
- )
-
- raise ValueError(
- f"{boundary.capitalize()} pattern '{pattern}' for region "
- f"'{name}' matches {len(matches)} locations (lines {line_nums_display}):\n"
- f"{match_details}\n"
- f"Use a more specific pattern or append ' @L' to "
- f"disambiguate (e.g., '{pattern} @L{all_line_nums[0]}')."
- )
-
- @staticmethod
- def _looks_like_content_id(value: str) -> bool:
- """Return True if *value* appears to be a content ID rather than text."""
-
- return is_content_id(value)
-
- def _resolve_pattern(
- self,
- hp,
- lines: list[str],
- spec: dict[str, str],
- key: str,
- normalize_hashline,
- ContentHashError,
- ) -> str:
- """
- Resolve a single boundary pattern.
-
- Content-ID patterns have their referenced line content snapshotted
- so stale IDs can be recovered via content matching.
- """
-
- pattern = spec[key]
-
- # Special markers never go stale
- if pattern in ("@000", "000@"):
- return pattern
-
- # @L{num} notation — resolve via shared utility
- import re as _re
-
- _m = _re.match(r"^@L(\d+)$", pattern)
- if _m:
- return resolve_at_l(pattern, hp, lines)
-
- if not self._looks_like_content_id(pattern):
- return pattern
-
- # Content ID — try to resolve and snapshot the line content
- content_key = f"_{key}_content"
-
- try:
- normalized = normalize_hashline(pattern)
- candidates = hp.resolve_to_lines(normalized)
-
- if candidates and candidates[0] < len(lines):
- spec[content_key] = lines[candidates[0]]
-
- return pattern
- except (ContentHashError, ValueError):
- pass
-
- # Content ID may be stale — fall back to snapshotted line content
- cached = spec.get(content_key)
-
- if cached:
- return cached
-
- # No fallback available; return the (stale) ID and let the
- # caller's resolution logic handle the error
- return pattern
diff --git a/cecli/helpers/sessions/manager.py b/cecli/helpers/sessions/manager.py
index 974baacdf31..bfe69dc8c8b 100644
--- a/cecli/helpers/sessions/manager.py
+++ b/cecli/helpers/sessions/manager.py
@@ -269,10 +269,12 @@ async def _reload_sub_agent(self, service, sub_file: Path) -> None:
return
independent = bool(sub_data.get("independent", True))
+ spawn_kwargs = {"auto_reap": False, "independent": independent}
+ resume_worktree = sub_data.get("worktree")
+ if resume_worktree is not None:
+ spawn_kwargs["resume_worktree"] = resume_worktree
- new_coder, _info = await service.spawn(
- name, parent=self.coder, auto_reap=False, independent=independent
- )
+ new_coder, _info = await service.spawn(name, parent=self.coder, **spawn_kwargs)
sub_manager = SessionManager(new_coder, self.io)
applied, _edit_format = await sub_manager._apply_session_data(
diff --git a/cecli/helpers/sessions/payload.py b/cecli/helpers/sessions/payload.py
index 7d08d9e9df1..f5e12cc921f 100644
--- a/cecli/helpers/sessions/payload.py
+++ b/cecli/helpers/sessions/payload.py
@@ -41,6 +41,7 @@ def build_payload(coder, io, session_name: str, agent_name: Optional[str] = None
"session_name": session_name,
"agent_name": agent_name,
"agent_root": str(coder.root) if agent_name and agent_name.startswith("ws:") else None,
+ "worktree": _worktree_data(coder),
"independent": independent,
"status": status,
"model": coder.main_model.name,
@@ -261,6 +262,20 @@ def _agent_config_data(coder) -> Optional[Dict]:
}
+def _worktree_data(coder) -> Optional[Dict]:
+ """Return a JSON-serializable worktree dict, or ``None`` when absent."""
+ record = getattr(coder, "worktree", None)
+ if record is None or not hasattr(record, "to_dict"):
+ return None
+
+ try:
+ data = record.to_dict()
+ except Exception:
+ return None
+
+ return data if isinstance(data, dict) else None
+
+
def _restore_files(coder, io, target: set, rel_fnames: list) -> None:
"""Add every existing ``rel_fnames`` entry to ``target``."""
for rel_fname in rel_fnames:
diff --git a/cecli/helpers/skills.py b/cecli/helpers/skills.py
index 84e632c9e32..f20c722b02a 100644
--- a/cecli/helpers/skills.py
+++ b/cecli/helpers/skills.py
@@ -347,7 +347,7 @@ def _parse_skill_metadata(self, skill_md_path: Path) -> SkillMetadata:
description=description,
path=skill_md_path.parent,
license=frontmatter.get("license"),
- allowed_tools=frontmatter.get("allowed-tools", []),
+ allowed_tools=_normalize_allowed_tools(frontmatter.get("allowed-tools")),
metadata=frontmatter.get("metadata", {}),
)
@@ -1092,3 +1092,58 @@ def get_skills_context(self) -> Optional[str]:
# We can't use io.tool_error here since we don't have access to io
# The caller should handle the exception
raise
+
+
+def _normalize_allowed_tools(value: Any) -> List[str]:
+ """Normalize an ``allowed-tools`` frontmatter value into a list of strings.
+
+ YAML permits ``allowed-tools`` to be either a sequence or a single scalar;
+ the latter is split on top-level commas so that constructs such as
+ ``Bash(git commit -m "a, b"), Read`` are not broken apart. Missing values
+ become an empty list. Raises ``ValueError`` for unsupported types.
+ """
+ if value is None:
+ return []
+
+ if isinstance(value, str):
+ return _split_top_level_commas(value)
+
+ if not isinstance(value, (list, tuple)):
+ raise ValueError(
+ "'allowed-tools' must be a string or a list of strings, " f"got {type(value).__name__}"
+ )
+
+ tools: List[str] = []
+
+ for item in value:
+ if not isinstance(item, str):
+ raise ValueError(f"'allowed-tools' entries must be strings, got {type(item).__name__}")
+
+ tool = item.strip()
+ if tool:
+ tools.append(tool)
+
+ return tools
+
+
+def _split_top_level_commas(value: str) -> List[str]:
+ """Split ``value`` on commas that are not nested inside parentheses."""
+ parts: List[str] = []
+ current: List[str] = []
+ depth = 0
+
+ for char in value:
+ if char == "(":
+ depth += 1
+ elif char == ")" and depth > 0:
+ depth -= 1
+ elif char == "," and depth == 0:
+ parts.append("".join(current))
+ current = []
+ continue
+
+ current.append(char)
+
+ parts.append("".join(current))
+
+ return [part.strip() for part in parts if part.strip()]
diff --git a/cecli/helpers/workflows/config.py b/cecli/helpers/workflows/config.py
index b6c04f6dc5f..4056816475e 100644
--- a/cecli/helpers/workflows/config.py
+++ b/cecli/helpers/workflows/config.py
@@ -163,6 +163,29 @@ def validate_workflow_config(wf: WorkflowConfig, raw: Optional[Dict[str, Any]] =
if norm.get("persist") is not None and not isinstance(norm["persist"], bool):
warnings.append("'persist' is not a boolean")
+ if wf.repo is not None and not isinstance(wf.repo, str):
+ raise ValueError(f"{where}: 'repo' must be a string")
+
+ if wf.worktree is not None:
+ if not isinstance(wf.worktree, dict):
+ raise ValueError(f"{where}: 'worktree' must be a boolean or a mapping")
+
+ unknown = sorted(set(wf.worktree) - {"branch"})
+ if unknown:
+ warnings.append(f"unknown 'worktree' key(s) ignored: {', '.join(unknown)}")
+
+ branch = wf.worktree.get("branch")
+ if branch is not None and not isinstance(branch, str):
+ raise ValueError(f"{where}: 'worktree.branch' must be a string")
+
+ from .subagents import _worktree_source
+
+ if _worktree_source(wf) is None:
+ warnings.append(
+ "'worktree' is enabled but no source repository could be inferred; "
+ "the dispatching agent's root will be used"
+ )
+
wf.lease_timeout = _positive_number(wf.lease_timeout, "lease_timeout", where, default=30.0)
_check_schedule(wf.schedule, where)
diff --git a/cecli/helpers/workflows/logs.py b/cecli/helpers/workflows/logs.py
index 4d246b49c91..0446f4ca2ce 100644
--- a/cecli/helpers/workflows/logs.py
+++ b/cecli/helpers/workflows/logs.py
@@ -86,6 +86,7 @@ def finish_log(handle: Optional[LogHandle], result) -> None:
"summary": getattr(result, "summary", ""),
"error_message": getattr(result, "error_message", ""),
"run_id": getattr(result, "run_id", None),
+ "worktree": getattr(result, "worktree", None),
},
)
except Exception:
diff --git a/cecli/helpers/workflows/models.py b/cecli/helpers/workflows/models.py
index 5a0f02fca00..59ebb6445e5 100644
--- a/cecli/helpers/workflows/models.py
+++ b/cecli/helpers/workflows/models.py
@@ -55,6 +55,8 @@ class WorkflowConfig:
lease_timeout: float = 30.0 # minutes
model: Optional[str] = None
root: Optional[str] = None
+ repo: Optional[str] = None
+ worktree: Optional[Dict[str, Any]] = None
hooks: Dict[str, Any] = field(default_factory=dict)
skills: List[str] = field(default_factory=list)
servers: List[str] = field(default_factory=list)
@@ -64,13 +66,22 @@ class WorkflowConfig:
catch_up: Optional[bool] = None # None: use the scheduler default
source_path: Optional[str] = None
+ def __post_init__(self) -> None:
+ """Normalize the worktree field for programmatic construction."""
+ if self.worktree is True:
+ self.worktree = {}
+ elif self.worktree is False:
+ self.worktree = None
+ elif isinstance(self.worktree, dict):
+ self.worktree = dict(self.worktree)
+
@property
def agent_name(self) -> str:
return f"wf:{self.name}"
def to_dict(self) -> Dict[str, Any]:
"""Canonical dict form used for hashing and ``/workflows show``."""
- return {
+ data = {
"name": self.name,
"description": self.description,
"schedule": self.schedule,
@@ -89,6 +100,14 @@ def to_dict(self) -> Dict[str, Any]:
"tasks": [t.to_dict() for t in self.tasks],
}
+ if self.repo is not None:
+ data["repo"] = self.repo
+
+ if self.worktree is not None:
+ data["worktree"] = self.worktree
+
+ return data
+
def definition_hash(self) -> str:
"""sha256 of the normalized definition (key-order independent)."""
canonical = json.dumps(self.to_dict(), sort_keys=True, separators=(",", ":"), default=str)
@@ -136,6 +155,10 @@ def from_dict(cls, raw: Dict[str, Any], source_path: Optional[str] = None) -> "W
)
hooks = data.get("hooks") or {}
+ worktree = _normalize_worktree(data.get("worktree"))
+ if isinstance(worktree, dict) and isinstance(worktree.get("branch"), str):
+ worktree["branch"] = interpolate_env_vars(worktree["branch"])
+
return cls(
name=str(data.get("name") or ""),
tasks=tasks,
@@ -156,6 +179,12 @@ def from_dict(cls, raw: Dict[str, Any], source_path: Optional[str] = None) -> "W
if data.get("root") is not None
else None
),
+ repo=(
+ _interp(interpolate_env_vars, data["repo"])
+ if data.get("repo") is not None
+ else None
+ ),
+ worktree=worktree,
hooks=hooks if isinstance(hooks, dict) else {},
skills=[_interp(interpolate_env_vars, s) for s in data.get("skills") or []],
servers=[_interp(interpolate_env_vars, s) for s in data.get("servers") or []],
@@ -199,6 +228,23 @@ class RunResult:
tasks: List[TaskResult] = field(default_factory=list)
run_id: Optional[int] = None
log_path: Optional[str] = None
+ worktree: Optional[Dict[str, Any]] = None
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Serialize the run outcome, including the worker's worktree record."""
+ return {
+ "name": self.name,
+ "status": self.status,
+ "source": self.source,
+ "summary": self.summary,
+ "error_message": self.error_message,
+ "started_at": self.started_at,
+ "finished_at": self.finished_at,
+ "tasks": [t.to_dict() for t in self.tasks],
+ "run_id": self.run_id,
+ "log_path": self.log_path,
+ "worktree": self.worktree,
+ }
@classmethod
def error(cls, exc: BaseException, name: str = "", source: str = "scheduler") -> "RunResult":
@@ -207,6 +253,25 @@ def error(cls, exc: BaseException, name: str = "", source: str = "scheduler") ->
)
+def _normalize_worktree(value: Any) -> Any:
+ """Normalize the ``worktree`` field: true -> {}, false/None -> None, mapping -> dict.
+
+ Other values are left untouched so validation can reject them with a useful
+ error.
+ """
+
+ if value is None or value is False:
+ return None
+
+ if value is True:
+ return {}
+
+ if isinstance(value, dict):
+ return dict(value)
+
+ return value
+
+
def _as_bool(value: Any, default: bool = False) -> bool:
"""Coerce a config value to a boolean without treating "false" as truthy."""
diff --git a/cecli/helpers/workflows/runner.py b/cecli/helpers/workflows/runner.py
index 6bcb5599d59..9f0b47574b8 100644
--- a/cecli/helpers/workflows/runner.py
+++ b/cecli/helpers/workflows/runner.py
@@ -112,6 +112,11 @@ async def execute_workflow(
result.error_message = str(exc) or exc.__class__.__name__
finally:
if worker is not None:
+ record = getattr(worker, "worktree", None)
+ if record is not None:
+ to_dict = getattr(record, "to_dict", None)
+ result.worktree = to_dict() if callable(to_dict) else record
+
_save_session(worker, coder, wf, result)
if not wf.persist:
_reap_worker(service, worker)
diff --git a/cecli/helpers/workflows/subagents.py b/cecli/helpers/workflows/subagents.py
index 09e82dd6132..43a338714d8 100644
--- a/cecli/helpers/workflows/subagents.py
+++ b/cecli/helpers/workflows/subagents.py
@@ -16,8 +16,9 @@
from __future__ import annotations
import logging
+import subprocess
from pathlib import Path
-from typing import Any, Dict, List
+from typing import Any, Dict, List, Optional
logger = logging.getLogger(__name__)
@@ -110,6 +111,19 @@ def register_workflow_subagents(workflow_configs) -> List[str]:
if wf.root:
metadata["root"] = str(Path(wf.root).expanduser().resolve())
+ if wf.worktree is not None:
+ worktree = wf.worktree if isinstance(wf.worktree, dict) else {}
+ metadata["worktree"] = dict(worktree)
+
+ source = _worktree_source(wf)
+ if source:
+ metadata["worktree_source"] = source
+ else:
+ logger.warning(
+ "Workflow '%s' enables worktree but no source repository could be inferred",
+ wf.name,
+ )
+
metadata["agent-config"] = agent_config
metadata["description"] = f"Workflow sub-agent for '{wf.name}'"
# ``allow_nested_delegation`` is intentionally NOT forced here: the
@@ -176,3 +190,45 @@ def ensure_wf_agent_registered(name: str) -> Any:
def get_workflow_configs() -> List[Any]:
"""Return the cached WorkflowConfigs from the most recent registrations."""
return list(_workflow_configs_by_agent.values())
+
+
+def _worktree_source(wf: Any) -> Optional[str]:
+ """Resolve the worktree source repository for *wf*.
+
+ Prefer an explicit ``repo``; otherwise use the normalized ``root``; as a
+ last resort use the git top-level of the workflow definition file's
+ directory. Returns None when nothing can be inferred.
+ """
+
+ if wf.repo:
+ return str(wf.repo)
+
+ if wf.root:
+ return str(Path(wf.root).expanduser().resolve())
+
+ return _git_toplevel(wf.source_path)
+
+
+def _git_toplevel(source_path: Optional[str]) -> Optional[str]:
+ """Return the git top-level containing *source_path*, if any."""
+
+ if not source_path:
+ return None
+
+ directory = Path(source_path).expanduser().resolve().parent
+
+ try:
+ completed = subprocess.run(
+ ["git", "-C", str(directory), "rev-parse", "--show-toplevel"],
+ capture_output=True,
+ text=True,
+ timeout=5,
+ check=False,
+ )
+ except (OSError, subprocess.SubprocessError):
+ return None
+
+ if completed.returncode != 0:
+ return None
+
+ return completed.stdout.strip() or None
diff --git a/cecli/helpers/worktrees/__init__.py b/cecli/helpers/worktrees/__init__.py
new file mode 100644
index 00000000000..b5cf9cc4e7c
--- /dev/null
+++ b/cecli/helpers/worktrees/__init__.py
@@ -0,0 +1,19 @@
+"""Git worktree isolation helpers for agent workspaces.
+
+Public entry points live in :mod:`cecli.helpers.worktrees.manager`; this
+package re-exports them for convenient imports.
+"""
+
+from cecli.helpers.worktrees.git import WorktreeError
+from cecli.helpers.worktrees.manager import (
+ WorktreeManager,
+ WorktreeRecord,
+ WorktreeReleaseResult,
+)
+
+__all__ = [
+ "WorktreeError",
+ "WorktreeManager",
+ "WorktreeRecord",
+ "WorktreeReleaseResult",
+]
diff --git a/cecli/helpers/worktrees/git.py b/cecli/helpers/worktrees/git.py
new file mode 100644
index 00000000000..924df7fe10f
--- /dev/null
+++ b/cecli/helpers/worktrees/git.py
@@ -0,0 +1,204 @@
+"""Thin subprocess wrappers around the git CLI.
+
+Every wrapper captures output, disables the pager and interactive credential
+prompts, and reports fatal failures as :class:`WorktreeError` carrying git's
+stderr. Read-only probes accept ``check=False`` so callers can treat a
+non-zero exit code as a falsy answer instead of an exception.
+"""
+
+from __future__ import annotations
+
+import os
+import subprocess
+from pathlib import Path
+
+
+class WorktreeError(RuntimeError):
+ """Raised when a worktree operation or git invocation cannot complete."""
+
+
+def run_git(
+ *args: str,
+ cwd: str | Path | None = None,
+ check: bool = True,
+ timeout: int = 120,
+ env: dict[str, str] | None = None,
+) -> subprocess.CompletedProcess:
+ """Run ``git`` with *args* and capture its output.
+
+ ``GIT_PAGER=cat`` keeps output machine-readable and
+ ``GIT_TERMINAL_PROMPT=0`` prevents a hung process waiting on credentials.
+ When *check* is true a non-zero exit code raises :class:`WorktreeError`
+ with git's stderr attached.
+ """
+ command = ["git", *(_as_text(arg) for arg in args)]
+ full_env = os.environ.copy()
+ full_env["GIT_PAGER"] = "cat"
+ full_env.setdefault("GIT_TERMINAL_PROMPT", "0")
+
+ if env:
+ full_env.update(env)
+
+ try:
+ result = subprocess.run(
+ command,
+ cwd=_as_text(cwd) if cwd is not None else None,
+ capture_output=True,
+ text=True,
+ encoding="utf-8",
+ errors="replace",
+ env=full_env,
+ timeout=timeout,
+ )
+ except FileNotFoundError as exc:
+ raise WorktreeError("git executable not found") from exc
+ except OSError as exc:
+ raise WorktreeError(f"failed to run {' '.join(command)}: {exc}") from exc
+ except subprocess.TimeoutExpired as exc:
+ raise WorktreeError(f"git command timed out: {' '.join(command)}") from exc
+
+ if check and result.returncode != 0:
+ raise WorktreeError(_format_error(command, result))
+
+ return result
+
+
+def rev_parse(ref: str, cwd: str | Path | None = None, *, check: bool = True) -> str | None:
+ """Resolve *ref* to a commit SHA, or return ``None`` when it is unknown."""
+ result = run_git("rev-parse", "--verify", ref, cwd=cwd, check=False)
+
+ if result.returncode != 0:
+ if check:
+ raise WorktreeError(_format_error(["git", "rev-parse", "--verify", ref], result))
+
+ return None
+
+ value = result.stdout.strip()
+
+ return value or None
+
+
+def git_root(path: str | Path) -> str | None:
+ """Return the absolute top-level of the worktree containing *path*.
+
+ A path pointing directly at a ``.git`` file (as used by linked worktrees)
+ is resolved through its parent. Bare repositories are returned as-is.
+ """
+ target = Path(path).expanduser()
+
+ if target.is_file():
+ if target.name != ".git":
+ return None
+
+ target = target.parent
+
+ result = run_git("rev-parse", "--show-toplevel", cwd=target, check=False)
+
+ if result.returncode == 0:
+ value = result.stdout.strip()
+
+ if value:
+ return str(Path(value).resolve())
+
+ if is_bare_repo(target):
+ return str(target.resolve())
+
+ return None
+
+
+def is_git_repo(path: str | Path) -> bool:
+ """Return whether *path* is inside a git repository (bare included)."""
+ result = run_git("rev-parse", "--git-dir", cwd=path, check=False)
+
+ return result.returncode == 0 and bool(result.stdout.strip())
+
+
+def is_bare_repo(path: str | Path) -> bool:
+ """Return whether *path* is a bare git repository."""
+ result = run_git("rev-parse", "--is-bare-repository", cwd=path, check=False)
+
+ return result.returncode == 0 and result.stdout.strip() == "true"
+
+
+def default_branch(cwd: str | Path | None = None) -> str | None:
+ """Best-effort default base branch, preferring ``origin/HEAD``.
+
+ Falls back to local ``main``, then ``master``, then the currently checked
+ out branch. Returns ``None`` for an empty repository with no commits.
+ """
+ result = run_git(
+ "symbolic-ref", "--quiet", "--short", "refs/remotes/origin/HEAD", cwd=cwd, check=False
+ )
+
+ if result.returncode == 0 and result.stdout.strip():
+ return result.stdout.strip()
+
+ for candidate in ("main", "master"):
+ if rev_parse(candidate, cwd=cwd, check=False):
+ return candidate
+
+ return current_branch(cwd)
+
+
+def current_branch(cwd: str | Path | None = None) -> str | None:
+ """Return the short name of the checked out branch, if any."""
+ result = run_git("rev-parse", "--abbrev-ref", "HEAD", cwd=cwd, check=False)
+
+ if result.returncode != 0:
+ return None
+
+ name = result.stdout.strip()
+
+ return name if name and name != "HEAD" else None
+
+
+def status_porcelain(cwd: str | Path) -> str:
+ """Return V1 porcelain status, listing untracked files individually."""
+ result = run_git("status", "--porcelain=v1", "--untracked-files=all", cwd=cwd, check=False)
+
+ return result.stdout
+
+
+def branch_exists(branch: str, cwd: str | Path | None = None) -> bool:
+ """Return whether a local branch named *branch* exists."""
+ name = branch.removeprefix("refs/heads/")
+ result = run_git("show-ref", "--verify", "--quiet", f"refs/heads/{name}", cwd=cwd, check=False)
+
+ return result.returncode == 0
+
+
+def branch_merged(branch: str, base: str, cwd: str | Path | None = None) -> bool:
+ """Return whether *branch* is an ancestor of (fully merged into) *base*."""
+ if not branch or not base:
+ return False
+
+ result = run_git("merge-base", "--is-ancestor", branch, base, cwd=cwd, check=False)
+
+ return result.returncode == 0
+
+
+def ahead_count(base_sha: str, branch: str, cwd: str | Path | None = None) -> int:
+ """Return the number of commits on *branch* not reachable from *base_sha*."""
+ if not base_sha or not branch:
+ return 0
+
+ result = run_git("rev-list", "--count", f"{base_sha}..{branch}", cwd=cwd, check=False)
+
+ if result.returncode != 0:
+ return 0
+
+ try:
+ return int(result.stdout.strip())
+ except ValueError:
+ return 0
+
+
+def _format_error(command: list[str], result: subprocess.CompletedProcess) -> str:
+ detail = (result.stderr or result.stdout or "").strip()
+ prefix = f"git command failed (exit {result.returncode}): {' '.join(command)}"
+
+ return f"{prefix}: {detail}" if detail else prefix
+
+
+def _as_text(value: object) -> str:
+ return str(value)
diff --git a/cecli/helpers/worktrees/manager.py b/cecli/helpers/worktrees/manager.py
new file mode 100644
index 00000000000..e0372ebdf13
--- /dev/null
+++ b/cecli/helpers/worktrees/manager.py
@@ -0,0 +1,980 @@
+"""Lifecycle management for isolated agent git worktrees.
+
+A worktree is created from a local repository or a cached bare clone of a
+remote. Each worktree gets its own generated branch and lives under
+``~/.cecli/worktrees`` (see :mod:`cecli.helpers.worktrees.paths`). Records are
+tracked in an atomically-written JSON registry so they can be recreated or
+released later, even from a different process.
+
+Releasing a worktree deliberately commits any uncommitted work first
+("commit-on-release"), then removes the worktree. Only branches with no
+commits ahead of their base -- or branches fully merged into their base -- are
+deleted; otherwise the branch is kept so the work is not lost. Ignored files
+are intentionally discarded by ``git worktree remove --force``.
+"""
+
+from __future__ import annotations
+
+import json
+import os
+import re
+import shutil
+import socket
+import tempfile
+import threading
+from contextlib import contextmanager
+from dataclasses import asdict, dataclass, fields
+from datetime import datetime, timezone
+from pathlib import Path
+from typing import Iterator
+
+from cecli.helpers.worktrees import paths
+from cecli.helpers.worktrees.git import (
+ WorktreeError,
+ ahead_count,
+ branch_exists,
+ branch_merged,
+ current_branch,
+ default_branch,
+ git_root,
+ is_git_repo,
+ rev_parse,
+ run_git,
+ status_porcelain,
+)
+
+__all__ = [
+ "WorktreeError",
+ "WorktreeManager",
+ "WorktreeRecord",
+ "WorktreeReleaseResult",
+]
+
+_SCHEME_URL = re.compile(r"^[A-Za-z][A-Za-z0-9+.-]*://")
+_SCP_URL = re.compile(r"^[^/@\s]+@[^:\s]+:.+")
+
+
+@dataclass(frozen=True)
+class WorktreeRecord:
+ """A managed worktree and the metadata needed to recreate or release it."""
+
+ source: str
+ repo: str
+ path: str
+ branch: str
+ base_ref: str
+ base_sha: str
+ agent: str
+ uuid: str
+ pid: int
+ host: str
+ created_at: str
+
+ def to_dict(self) -> dict:
+ """Return a JSON-serializable representation of the record."""
+ return asdict(self)
+
+ @classmethod
+ def from_dict(cls, data: dict) -> "WorktreeRecord":
+ """Build a record from a mapping, ignoring unknown keys."""
+ known = {field.name for field in fields(cls)}
+ values = {name: data[name] for name in known if name in data}
+
+ return cls(**values)
+
+
+@dataclass(frozen=True)
+class WorktreeReleaseResult:
+ """Outcome of releasing a single worktree."""
+
+ uuid: str
+ branch: str
+ committed: bool = False
+ removed: bool = False
+ branch_kept: bool = False
+ branch_deleted: bool = False
+ reason: str = ""
+
+ def to_dict(self) -> dict:
+ """Return a JSON-serializable representation of the result."""
+ return asdict(self)
+
+
+class WorktreeManager:
+ """Create, recreate, release, and sweep agent worktrees."""
+
+ BASE: Path = paths.managed_root()
+ REGISTRY_FILENAME = "registry.json"
+ MAX_UNTRACKED_FILE_BYTES = 10 * 1024 * 1024
+ MAX_UNTRACKED_TOTAL_BYTES = 100 * 1024 * 1024
+ MAX_NAME_ATTEMPTS = 8
+ _THREAD_LOCK = threading.RLock()
+
+ @classmethod
+ def create(
+ cls,
+ *,
+ agent_name: str,
+ uuid: str,
+ source: str | Path,
+ base_ref: str | None = None,
+ base_root: str | Path | None = None,
+ reuse_existing: bool = True,
+ ) -> WorktreeRecord:
+ """Create a new worktree for *agent_name* and return its record.
+
+ *source* may be a local repository path or a remote URL. Remotes are
+ cloned into a shared bare cache and fetched on reuse. The default base
+ branch is resolved from ``origin/HEAD``, ``main``, ``master``, or the
+ current ``HEAD`` in that order.
+
+ By default an already-recorded checkout for the same agent and
+ repository is adopted (its owner is refreshed) instead of creating a
+ duplicate; workflows never run the same pair concurrently. Pass
+ ``reuse_existing=False`` only when deliberately creating a second
+ independent checkout for the same agent.
+ """
+ base = cls._base()
+ repo = cls._prepare_source(source, base_root=base_root)
+
+ # Reuse and creation are serialized per repository so concurrent runs of
+ # the same workflow cannot each create their own checkout.
+ with cls._repo_lock(base, repo):
+ if reuse_existing:
+ existing = cls._find_reusable(repo, agent_name)
+
+ if existing is not None:
+ return cls._adopt(existing)
+
+ base_ref_name, base_sha = cls._resolve_base(repo, base_ref)
+ branch = paths.branch_name(agent_name, uuid)
+ path = paths.worktree_path(base, repo, agent_name, uuid)
+ path.parent.mkdir(parents=True, exist_ok=True)
+ branch, path = cls._add_worktree(repo, branch, path, base_ref_name, base_sha)
+
+ record = WorktreeRecord(
+ source=str(source),
+ repo=str(Path(repo).resolve()),
+ path=str(path.resolve()),
+ branch=branch,
+ base_ref=base_ref_name,
+ base_sha=base_sha,
+ agent=str(agent_name),
+ uuid=str(uuid),
+ pid=os.getpid(),
+ host=socket.gethostname(),
+ created_at=_now(),
+ )
+ cls._save_record(record)
+
+ return record
+
+ @classmethod
+ def recreate(
+ cls,
+ record: WorktreeRecord | dict,
+ *,
+ agent_name: str | None = None,
+ uuid: str | None = None,
+ path: str | Path | None = None,
+ ) -> WorktreeRecord:
+ """Reattach or rebuild the worktree described by *record*.
+
+ An existing recorded path is reused when it is still a valid worktree.
+ Otherwise the existing branch is attached, the recorded base SHA is
+ checked out onto a new branch, or the base is resolved again as a last
+ resort. ``agent_name``, ``uuid``, and ``path`` may be overridden.
+ """
+ original = cls._coerce_record(record)
+ base = cls._base()
+ repo = Path(original.repo)
+ new_agent = str(agent_name) if agent_name is not None else original.agent
+ new_uuid = str(uuid) if uuid is not None else original.uuid
+ recorded_path = Path(original.path)
+ base_ref = original.base_ref
+ base_sha = original.base_sha
+
+ if path is None and recorded_path.exists() and cls._is_worktree(recorded_path, repo):
+ target_path = recorded_path
+ branch = current_branch(target_path) or original.branch
+ else:
+ branch = original.branch or paths.branch_name(new_agent, new_uuid)
+
+ if path is not None:
+ target_path = Path(path).expanduser().resolve()
+ elif new_agent == original.agent and new_uuid == original.uuid:
+ target_path = recorded_path
+ else:
+ target_path = paths.worktree_path(base, repo, new_agent, new_uuid)
+
+ target_path.parent.mkdir(parents=True, exist_ok=True)
+
+ with cls._repo_lock(base, repo):
+ reusable = cls._find_reusable(repo, new_agent) if path is None else None
+
+ if reusable is not None:
+ adopted = cls._adopt(reusable)
+
+ if original.uuid != adopted.uuid:
+ cls._discard_record(original.uuid)
+
+ return adopted
+
+ if branch_exists(branch, repo):
+ try:
+ run_git("worktree", "add", str(target_path), branch, cwd=repo)
+ except WorktreeError:
+ # The saved branch may still be checked out elsewhere.
+ # Preserve its tip under the new generated name instead.
+ tip = rev_parse(branch, cwd=repo, check=False)
+ branch = paths.branch_name(new_agent, new_uuid)
+
+ if tip:
+ run_git(
+ "worktree", "add", "-b", branch, str(target_path), tip, cwd=repo
+ )
+ else:
+ raise
+ elif base_sha and rev_parse(base_sha, cwd=repo, check=False):
+ run_git("worktree", "add", "-b", branch, str(target_path), base_sha, cwd=repo)
+ else:
+ fallback_ref = base_ref if rev_parse(base_ref, cwd=repo, check=False) else None
+ base_ref, base_sha = cls._resolve_base(repo, fallback_ref)
+ branch, target_path = cls._add_worktree(
+ repo, branch, target_path, base_ref, base_sha
+ )
+
+ record = WorktreeRecord(
+ source=original.source,
+ repo=str(repo.resolve()),
+ path=str(target_path.resolve()),
+ branch=branch,
+ base_ref=base_ref,
+ base_sha=base_sha,
+ agent=new_agent,
+ uuid=new_uuid,
+ pid=os.getpid(),
+ host=socket.gethostname(),
+ created_at=original.created_at,
+ )
+ cls._replace_record(original.uuid, record)
+
+ return record
+
+ @classmethod
+ def release(
+ cls,
+ record_or_uuid: WorktreeRecord | dict | str,
+ *,
+ force: bool = False,
+ ) -> WorktreeReleaseResult:
+ """Commit dirty work, remove the worktree, and clean up its branch.
+
+ Uncommitted changes are committed with the cecli identity before the
+ worktree is removed. Oversized untracked files abort the release and
+ leave everything in place. *force* bypasses that size guard. A branch
+ is deleted only when it has no commits ahead of its base or is fully
+ merged; otherwise it is kept.
+ """
+ record = cls._coerce_record(record_or_uuid)
+ repo = Path(record.repo)
+ path = Path(record.path)
+
+ if not path.exists():
+ run_git("worktree", "prune", cwd=repo, check=False)
+ ahead = ahead_count(record.base_sha, record.branch, cwd=repo)
+ branch_deleted = cls._drop_empty_branch(repo, record, ahead)
+ cls._discard_record(record.uuid)
+
+ return _release_result(
+ record,
+ removed=False,
+ branch_kept=not branch_deleted,
+ branch_deleted=branch_deleted,
+ reason="worktree path missing",
+ )
+
+ if not cls._is_worktree(path, repo):
+ cls._discard_record(record.uuid)
+
+ return _release_result(
+ record,
+ branch_kept=True,
+ reason="path is not a managed worktree",
+ )
+
+ try:
+ status = status_porcelain(path)
+ except WorktreeError as exc:
+ return _release_result(record, branch_kept=True, reason=f"status failed: {exc}")
+
+ committed = False
+
+ if status.strip():
+ if not force and cls._untracked_too_large(path, status):
+ return _release_result(
+ record,
+ branch_kept=True,
+ reason="untracked files too large",
+ )
+
+ try:
+ cls._commit_dirty(record, path, status)
+ except WorktreeError as exc:
+ return _release_result(record, branch_kept=True, reason=f"commit failed: {exc}")
+
+ committed = True
+
+ active_branch = current_branch(path)
+ if active_branch is None and (
+ status.strip() or ahead_count(record.base_sha, "HEAD", cwd=repo) > 0
+ ):
+ run_git("branch", "-f", f"{record.branch}-detached", "HEAD", cwd=path, check=False)
+
+ ahead = ahead_count(record.base_sha, record.branch, cwd=repo)
+
+ with cls._repo_lock(cls._base(), repo):
+ try:
+ run_git("worktree", "remove", "--force", str(path), cwd=repo)
+ except WorktreeError as exc:
+ return _release_result(
+ record,
+ committed=committed,
+ branch_kept=True,
+ reason=f"worktree remove failed: {exc}",
+ )
+
+ run_git("worktree", "prune", cwd=repo, check=False)
+ branch_deleted = cls._drop_empty_branch(
+ repo, record, ahead, allow_delete=active_branch == record.branch
+ )
+
+ branch_kept = not branch_deleted
+ cls._discard_record(record.uuid)
+
+ return _release_result(
+ record,
+ committed=committed,
+ removed=True,
+ branch_kept=branch_kept,
+ branch_deleted=branch_deleted,
+ reason="" if branch_deleted else "branch kept (unmerged commits)",
+ )
+
+ @classmethod
+ def release_all(cls, *, pid: int | None = None) -> list[WorktreeReleaseResult]:
+ """Release every recorded worktree belonging to *pid* (default: us)."""
+ target = os.getpid() if pid is None else int(pid)
+ host = socket.gethostname()
+ results = []
+
+ for record in cls._records():
+ if record.pid != target or record.host != host:
+ continue
+
+ results.append(cls._release_safely(record))
+
+ return results
+
+ @classmethod
+ def sweep_stale(cls) -> list[WorktreeReleaseResult]:
+ """Release worktrees from this host whose owning process is gone."""
+ host = socket.gethostname()
+ results = []
+
+ for record in cls._records():
+ if record.host != host or _pid_alive(record.pid):
+ continue
+
+ results.append(cls._release_safely(record))
+
+ return results
+
+ @classmethod
+ def get(cls, uuid: str) -> WorktreeRecord | None:
+ """Return the registry record for *uuid*, or ``None`` if unknown."""
+ data = cls._read_registry().get(str(uuid))
+
+ if not data:
+ return None
+
+ try:
+ return WorktreeRecord.from_dict(data)
+ except (TypeError, KeyError):
+ return None
+
+ @classmethod
+ def resolve_source(
+ cls,
+ source: str | Path,
+ *,
+ base_root: str | Path | None = None,
+ ) -> str:
+ """Resolve *source* to an absolute repository path or a remote URL.
+
+ Existing paths are normalized to their git top-level; relative paths
+ are resolved against *base_root* (or the current directory). Strings
+ that do not exist but look like URLs are returned unchanged. A missing
+ non-remote path raises :class:`WorktreeError`.
+ """
+ raw = str(source)
+ candidate = Path(raw).expanduser()
+
+ if candidate.is_absolute():
+ if candidate.exists():
+ return _normalize_local(candidate)
+ elif base_root is not None:
+ candidate = Path(base_root).expanduser() / candidate
+
+ if candidate.exists():
+ return _normalize_local(candidate)
+ elif candidate.exists():
+ return _normalize_local(candidate)
+
+ if _looks_remote(raw):
+ return raw
+
+ raise WorktreeError(f"source path does not exist: {raw}")
+
+ @classmethod
+ def _base(cls) -> Path:
+ override = os.environ.get("CECLI_WORKTREES_DIR")
+
+ if override:
+ return Path(override).expanduser().resolve()
+
+ return Path(cls.BASE).expanduser().resolve()
+
+ @classmethod
+ def _prepare_source(
+ cls,
+ source: str | Path,
+ *,
+ base_root: str | Path | None = None,
+ ) -> str:
+ resolved = cls.resolve_source(source, base_root=base_root)
+
+ if _looks_remote(resolved):
+ return cls._cache_remote(cls._base(), resolved)
+
+ return resolved
+
+ @classmethod
+ def _cache_remote(cls, base: Path, source: str) -> str:
+ digest = paths.short_digest(source, 8)
+ slug = paths.source_slug(source)
+ cache = paths.sources_dir(base) / f"{slug}-{digest}"
+ cache.parent.mkdir(parents=True, exist_ok=True)
+ lock = paths.lock_path(base, f"source-{digest}")
+
+ with _file_lock(lock):
+ if cache.exists() and is_git_repo(cache):
+ run_git(
+ "fetch",
+ "--prune",
+ "origin",
+ "+refs/heads/*:refs/heads/*",
+ cwd=cache,
+ check=False,
+ )
+ else:
+ if cache.exists():
+ shutil.rmtree(cache, ignore_errors=True)
+
+ run_git("clone", "--bare", source, str(cache))
+
+ return str(cache.resolve())
+
+ @classmethod
+ def _resolve_base(cls, repo: str | Path, base_ref: str | None) -> tuple[str, str]:
+ if base_ref is not None:
+ ref = str(base_ref)
+ sha = rev_parse(ref, cwd=repo, check=False)
+
+ if not sha:
+ raise WorktreeError(f"unknown base ref {ref!r} in {repo}")
+
+ return ref, sha
+
+ name = default_branch(cwd=repo)
+
+ if name is None:
+ name = "HEAD"
+
+ sha = rev_parse(name, cwd=repo, check=False)
+
+ if not sha:
+ raise WorktreeError(f"repository has no resolvable base commit: {repo}")
+
+ return name, sha
+
+ @classmethod
+ def _add_worktree(
+ cls,
+ repo: str | Path,
+ branch: str,
+ path: Path,
+ base_ref: str,
+ base_sha: str,
+ ) -> tuple[str, Path]:
+ start = base_ref if rev_parse(base_ref, cwd=repo, check=False) else base_sha
+
+ if path.exists():
+ existing = cls._existing_branch(repo, path, branch)
+
+ if existing is not None:
+ return existing, path
+
+ raise WorktreeError(f"worktree path already exists: {path}")
+
+ last_error: WorktreeError | None = None
+
+ for attempt in range(cls.MAX_NAME_ATTEMPTS):
+ candidate_branch = branch if attempt == 0 else f"{branch}-{attempt + 1}"
+
+ try:
+ if branch_exists(candidate_branch, repo):
+ run_git("worktree", "add", str(path), candidate_branch, cwd=repo)
+ else:
+ run_git(
+ "worktree",
+ "add",
+ "-b",
+ candidate_branch,
+ str(path),
+ start,
+ cwd=repo,
+ )
+ except WorktreeError as exc:
+ last_error = exc
+
+ if path.exists():
+ existing = cls._existing_branch(repo, path, candidate_branch)
+
+ if existing is not None:
+ return existing, path
+
+ break
+
+ continue
+
+ return candidate_branch, path
+
+ raise WorktreeError(
+ f"could not create worktree for branch {branch!r} in {repo}: {last_error}"
+ )
+
+ @classmethod
+ def _commit_dirty(cls, record: WorktreeRecord, path: Path, status: str) -> None:
+ subject = f"Unfinished Dirty Worktree from agent {record.uuid}"
+ summary = status.rstrip()
+ body = "\n".join(
+ [
+ f"agent: {record.agent}",
+ f"worktree: {record.path}",
+ f"base ref: {record.base_ref}",
+ f"base sha: {record.base_sha}",
+ "",
+ "status:",
+ summary[:4000],
+ ]
+ )
+ run_git("add", "-A", cwd=path)
+ run_git(
+ "-c",
+ "user.name=cecli",
+ "-c",
+ "user.email=cecli@localhost",
+ "-c",
+ "commit.gpgsign=false",
+ "commit",
+ "--no-verify",
+ "-m",
+ subject,
+ "-m",
+ body,
+ cwd=path,
+ )
+
+ @classmethod
+ def _untracked_too_large(cls, path: Path, status: str) -> bool:
+ total = 0
+
+ for line in status.splitlines():
+ if not line.startswith("?? "):
+ continue
+
+ relative = line[3:].strip().strip('"')
+ candidate = path / relative
+
+ try:
+ size = candidate.stat().st_size
+ except OSError:
+ continue
+
+ if size > cls.MAX_UNTRACKED_FILE_BYTES:
+ return True
+
+ total += size
+
+ if total > cls.MAX_UNTRACKED_TOTAL_BYTES:
+ return True
+
+ return False
+
+ @classmethod
+ def _drop_empty_branch(
+ cls, repo: Path, record: WorktreeRecord, ahead: int, *, allow_delete: bool = True
+ ) -> bool:
+ """Delete a managed branch when it has no unique commits."""
+ if not branch_exists(record.branch, repo):
+ return True
+
+ if not allow_delete:
+ return False
+
+ if not record.branch.startswith(f"{paths.BRANCH_PREFIX}/"):
+ return False
+
+ if not record.base_sha or not rev_parse(record.base_sha, cwd=repo, check=False):
+ return False
+
+ if ahead == 0 or cls._branch_merged(repo, record):
+ delete = run_git("branch", "-D", record.branch, cwd=repo, check=False)
+ return delete.returncode == 0
+
+ return False
+
+ @classmethod
+ def _branch_merged(cls, repo: Path, record: WorktreeRecord) -> bool:
+ if record.base_ref and branch_merged(record.branch, record.base_ref, cwd=repo):
+ return True
+
+ if record.base_sha and branch_merged(record.branch, record.base_sha, cwd=repo):
+ return True
+
+ return False
+
+ @classmethod
+ def _is_worktree(cls, path: Path, repo: Path) -> bool:
+ if not path.is_dir():
+ return False
+
+ root = git_root(path)
+
+ if root is None:
+ return False
+
+ try:
+ if Path(root).resolve() != path.resolve():
+ return False
+ except OSError:
+ return False
+
+ path_common = _git_common_dir(path)
+ repo_common = _git_common_dir(repo)
+
+ return bool(path_common and repo_common and path_common == repo_common)
+
+ @classmethod
+ def _release_safely(cls, record: WorktreeRecord) -> WorktreeReleaseResult:
+ try:
+ return cls.release(record)
+ except Exception as exc:
+ return _release_result(record, branch_kept=True, reason=str(exc))
+
+ @classmethod
+ def _coerce_record(cls, value: WorktreeRecord | dict | str) -> WorktreeRecord:
+ if isinstance(value, WorktreeRecord):
+ return value
+
+ if isinstance(value, dict):
+ return WorktreeRecord.from_dict(value)
+
+ record = cls.get(str(value))
+
+ if record is None:
+ raise WorktreeError(f"unknown worktree uuid: {value}")
+
+ return record
+
+ @classmethod
+ def _save_record(cls, record: WorktreeRecord) -> None:
+ with cls._registry_lock():
+ data = cls._read_registry()
+ data[record.uuid] = record.to_dict()
+ cls._write_registry(data)
+
+ @classmethod
+ def _replace_record(cls, old_uuid: str, record: WorktreeRecord) -> None:
+ with cls._registry_lock():
+ data = cls._read_registry()
+
+ if old_uuid != record.uuid:
+ data.pop(old_uuid, None)
+
+ data[record.uuid] = record.to_dict()
+ cls._write_registry(data)
+
+ @classmethod
+ def _discard_record(cls, uuid: str) -> None:
+ with cls._registry_lock():
+ data = cls._read_registry()
+
+ if data.pop(str(uuid), None) is not None:
+ cls._write_registry(data)
+
+ @classmethod
+ def _records(cls) -> list[WorktreeRecord]:
+ records = []
+
+ for value in cls._read_registry().values():
+ try:
+ records.append(WorktreeRecord.from_dict(value))
+ except (TypeError, KeyError):
+ continue
+
+ return records
+
+ @classmethod
+ def _read_registry(cls) -> dict[str, dict]:
+ path = paths.registry_path(cls._base())
+
+ try:
+ with open(path, "r", encoding="utf-8") as handle:
+ data = json.load(handle)
+ except FileNotFoundError:
+ return {}
+ except (OSError, json.JSONDecodeError):
+ return {}
+
+ if not isinstance(data, dict):
+ return {}
+
+ return {str(key): value for key, value in data.items() if isinstance(value, dict)}
+
+ @classmethod
+ def _write_registry(cls, data: dict[str, dict]) -> None:
+ path = paths.registry_path(cls._base())
+ path.parent.mkdir(parents=True, exist_ok=True)
+ fd, temp_name = tempfile.mkstemp(prefix=".registry-", suffix=".tmp", dir=str(path.parent))
+
+ try:
+ with os.fdopen(fd, "w", encoding="utf-8") as handle:
+ json.dump(data, handle, indent=2, sort_keys=True)
+ handle.write("\n")
+ handle.flush()
+ os.fsync(handle.fileno())
+
+ os.replace(temp_name, path)
+ except BaseException:
+ try:
+ os.unlink(temp_name)
+ except OSError:
+ pass
+
+ raise
+
+ @classmethod
+ @contextmanager
+ def _registry_lock(cls) -> Iterator[None]:
+ with cls._THREAD_LOCK:
+ with _file_lock(paths.lock_path(cls._base(), "registry")):
+ yield
+
+ @classmethod
+ @contextmanager
+ def _repo_lock(cls, base: Path, repo: str | Path) -> Iterator[None]:
+ digest = paths.short_digest(str(Path(repo).resolve()), 12)
+
+ with _file_lock(paths.lock_path(base, f"repo-{digest}")):
+ yield
+
+ @classmethod
+ def _find_reusable(cls, repo: str | Path, agent_name: str) -> WorktreeRecord | None:
+ """Return a recorded checkout for *agent_name* in *repo*, if usable."""
+ resolved_repo = str(Path(repo).resolve())
+
+ for record in sorted(cls._records(), key=lambda item: item.created_at, reverse=True):
+ if record.agent != agent_name:
+ continue
+
+ if str(Path(record.repo).resolve()) != resolved_repo:
+ continue
+
+ if cls._is_worktree(Path(record.path), Path(repo)):
+ return record
+
+ return None
+
+ @classmethod
+ def _adopt(cls, record: WorktreeRecord) -> WorktreeRecord:
+ """Refresh *record* ownership and persist it."""
+ adopted = WorktreeRecord(
+ source=record.source,
+ repo=record.repo,
+ path=record.path,
+ branch=record.branch,
+ base_ref=record.base_ref,
+ base_sha=record.base_sha,
+ agent=record.agent,
+ uuid=record.uuid,
+ pid=os.getpid(),
+ host=socket.gethostname(),
+ created_at=record.created_at,
+ )
+ cls._save_record(adopted)
+
+ return adopted
+
+ @classmethod
+ def _existing_branch(cls, repo: str | Path, path: Path, fallback: str) -> str | None:
+ """Return the branch checked out at an existing managed worktree."""
+ if not cls._is_worktree(path, Path(repo)):
+ return None
+
+ return current_branch(path) or fallback
+
+
+@contextmanager
+def _file_lock(path: Path) -> Iterator[None]:
+ path.parent.mkdir(parents=True, exist_ok=True)
+ handle = open(path, "a+", encoding="utf-8")
+ fcntl = None
+ msvcrt = None
+
+ try:
+ try:
+ import fcntl as _fcntl
+ except ImportError:
+ _fcntl = None
+
+ fcntl = _fcntl
+
+ if fcntl is not None:
+ fcntl.flock(handle.fileno(), fcntl.LOCK_EX)
+ else:
+ try:
+ import msvcrt as _msvcrt
+ except ImportError:
+ _msvcrt = None
+
+ msvcrt = _msvcrt
+
+ if msvcrt is not None:
+ handle.seek(0)
+ msvcrt.locking(handle.fileno(), msvcrt.LK_LOCK, 1)
+
+ yield
+ finally:
+ if fcntl is not None:
+ try:
+ fcntl.flock(handle.fileno(), fcntl.LOCK_UN)
+ except OSError:
+ pass
+ elif msvcrt is not None:
+ try:
+ handle.seek(0)
+ msvcrt.locking(handle.fileno(), msvcrt.LK_UNLCK, 1)
+ except OSError:
+ pass
+
+ handle.close()
+
+
+def _normalize_local(path: Path) -> str:
+ root = git_root(path)
+
+ if root is None:
+ raise WorktreeError(f"not a git repository: {path}")
+
+ return root
+
+
+def _looks_remote(value: str) -> bool:
+ text = str(value)
+
+ return bool(_SCHEME_URL.match(text) or _SCP_URL.match(text))
+
+
+def _git_common_dir(path: str | Path) -> str | None:
+ """Return a canonical git common directory for *path*, or ``None``."""
+ result = run_git("rev-parse", "--git-common-dir", cwd=path, check=False)
+
+ if result.returncode != 0:
+ return None
+
+ value = result.stdout.strip()
+
+ if not value:
+ return None
+
+ common = Path(value)
+
+ if not common.is_absolute():
+ common = Path(path).expanduser() / common
+
+ try:
+ return str(common.resolve())
+ except OSError:
+ return None
+
+
+def _release_result(
+ record: WorktreeRecord,
+ *,
+ committed: bool = False,
+ removed: bool = False,
+ branch_kept: bool = False,
+ branch_deleted: bool = False,
+ reason: str = "",
+) -> WorktreeReleaseResult:
+ return WorktreeReleaseResult(
+ uuid=record.uuid,
+ branch=record.branch,
+ committed=committed,
+ removed=removed,
+ branch_kept=branch_kept,
+ branch_deleted=branch_deleted,
+ reason=reason,
+ )
+
+
+def _pid_alive(pid: int) -> bool:
+ if pid <= 0:
+ return False
+
+ try:
+ import psutil
+
+ return bool(psutil.pid_exists(int(pid)))
+ except ImportError:
+ pass
+
+ if os.name == "nt":
+ import ctypes
+
+ process_query_limited_information = 0x1000
+ kernel32 = ctypes.windll.kernel32
+ handle = kernel32.OpenProcess(process_query_limited_information, False, int(pid))
+
+ if handle:
+ kernel32.CloseHandle(handle)
+ return True
+
+ return kernel32.GetLastError() == 5
+
+ try:
+ os.kill(pid, 0)
+ except PermissionError:
+ return True
+ except ProcessLookupError:
+ return False
+ except OSError:
+ return False
+
+ return True
+
+
+def _now() -> str:
+ return datetime.now(timezone.utc).isoformat()
diff --git a/cecli/helpers/worktrees/paths.py b/cecli/helpers/worktrees/paths.py
new file mode 100644
index 00000000000..c49a25cccb6
--- /dev/null
+++ b/cecli/helpers/worktrees/paths.py
@@ -0,0 +1,131 @@
+"""Filesystem layout and naming helpers for managed git worktrees.
+
+Managed layout::
+
+ /
+ registry.json
+ .locks/
+ _sources/-/ # bare caches for remote sources
+ /-/ # one directory per worktree
+
+``BASE`` defaults to ``~/.cecli/worktrees`` and can be overridden with the
+``CECLI_WORKTREES_DIR`` environment variable.
+"""
+
+from __future__ import annotations
+
+import hashlib
+import os
+import re
+from pathlib import Path
+
+DEFAULT_BASE = "~/.cecli/worktrees"
+BRANCH_PREFIX = "cecli"
+AGENT_SLUG_MAX = 40
+REPO_SLUG_MAX = 48
+LOCK_NAME_MAX = 80
+
+_SLUG_SEPARATORS = re.compile(r"[:\\/\s]+")
+_SLUG_INVALID = re.compile(r"[^A-Za-z0-9._-]+")
+_SLUG_DASHES = re.compile(r"-{2,}")
+
+
+def managed_root() -> Path:
+ """Return the managed worktree root, honoring ``CECLI_WORKTREES_DIR``."""
+ override = os.environ.get("CECLI_WORKTREES_DIR")
+ raw = override if override else DEFAULT_BASE
+ return Path(raw).expanduser().resolve()
+
+
+def registry_path(base: str | Path | None = None) -> Path:
+ """Return the path of the JSON registry for managed worktrees."""
+ return _base_path(base) / "registry.json"
+
+
+def lock_dir(base: str | Path | None = None) -> Path:
+ """Return the directory holding inter-process lock files."""
+ return _base_path(base) / ".locks"
+
+
+def lock_path(base: str | Path | None, name: str) -> Path:
+ """Return a lock file path for *name* under the managed lock directory."""
+ slug = slugify(name, max_length=LOCK_NAME_MAX, fallback="lock")
+ return lock_dir(base) / f"{slug}.lock"
+
+
+def sources_dir(base: str | Path | None = None) -> Path:
+ """Return the directory holding bare caches for remote sources."""
+ return _base_path(base) / "_sources"
+
+
+def slugify(value: str, *, max_length: int | None = None, fallback: str = "item") -> str:
+ """Turn *value* into a filesystem- and branch-safe slug.
+
+ Colons, whitespace, and path separators become dashes; other characters
+ outside ``[A-Za-z0-9._-]`` become dashes as well. Leading and trailing
+ punctuation is stripped, and the result is truncated to *max_length*.
+ """
+ text = str(value).strip()
+ text = _SLUG_SEPARATORS.sub("-", text)
+ text = _SLUG_INVALID.sub("-", text)
+ text = _SLUG_DASHES.sub("-", text).strip("-._")
+
+ if max_length is not None and len(text) > max_length:
+ text = text[:max_length].rstrip("-._")
+
+ return text or fallback
+
+
+def short_digest(value: str, length: int = 8) -> str:
+ """Return a stable short SHA-1 digest of *value*."""
+ return hashlib.sha1(str(value).encode("utf-8")).hexdigest()[:length]
+
+
+def repo_slug(repo: str | Path) -> str:
+ """Return the directory slug used for the repository at *repo*."""
+ name = Path(str(repo)).name.removesuffix(".git")
+ fallback = f"repo-{short_digest(str(repo))}"
+
+ return slugify(name, max_length=REPO_SLUG_MAX, fallback=fallback)
+
+
+def source_slug(source: str) -> str:
+ """Return a human-readable slug for a remote source URL."""
+ text = str(source).rstrip("/")
+ text = text.removesuffix(".git")
+ name = re.split(r"[/:]", text)[-1]
+ fallback = f"source-{short_digest(str(source))}"
+
+ return slugify(name, max_length=REPO_SLUG_MAX, fallback=fallback)
+
+
+def agent_slug(agent_name: str) -> str:
+ """Return the slug used for *agent_name* in branches and paths."""
+ return slugify(agent_name, max_length=AGENT_SLUG_MAX, fallback="agent")
+
+
+def branch_name(agent_name: str, uuid: str) -> str:
+ """Return the generated branch name for an agent worktree."""
+ return f"{BRANCH_PREFIX}/{worktree_dir_name(agent_name, uuid)}"
+
+
+def worktree_dir_name(agent_name: str, uuid: str) -> str:
+ """Return the generated directory name for an agent worktree."""
+ return f"{agent_slug(agent_name)}-{_uuid_slug(uuid)}"
+
+
+def worktree_path(base: str | Path | None, repo: str | Path, agent_name: str, uuid: str) -> Path:
+ """Return the full managed path for an agent worktree."""
+ return _base_path(base) / repo_slug(repo) / worktree_dir_name(agent_name, uuid)
+
+
+def _uuid_slug(uuid: str) -> str:
+ text = slugify(uuid, max_length=40, fallback="")
+ return text or short_digest(uuid, 8)
+
+
+def _base_path(base: str | Path | None) -> Path:
+ if base is None:
+ return managed_root()
+
+ return Path(base).expanduser().resolve()
diff --git a/cecli/io.py b/cecli/io.py
index d2f49aa4d93..2def2478ffd 100644
--- a/cecli/io.py
+++ b/cecli/io.py
@@ -777,6 +777,13 @@ def write_text(self, filename, content, max_retries=5, initial_delay=0.1):
if self.line_endings == "preserve":
newline = self._detect_newline(filename) or self.newline
+ # Content that already carries CRLF must not be translated again,
+ # which would double the carriage returns on Windows.
+ # ``None`` is the platform default, which is CRLF on Windows, so it
+ # must be handled alongside an explicit CRLF target.
+ if newline in (None, "\r\n") and "\r\n" in content:
+ newline = ""
+
delay = initial_delay
for attempt in range(max_retries):
try:
diff --git a/cecli/main.py b/cecli/main.py
index cac438c1a72..bd210673b04 100644
--- a/cecli/main.py
+++ b/cecli/main.py
@@ -1515,6 +1515,15 @@ def get_io(pretty):
except Exception:
logging.exception("workflow sub-agent registration failed")
+ # Sweep worktrees left behind by dead processes before the session starts.
+ # Best-effort: a worktree failure must never block startup.
+ try:
+ from cecli.helpers.worktrees import WorktreeManager
+
+ WorktreeManager.sweep_stale()
+ except Exception:
+ logging.warning("worktree sweep failed", exc_info=True)
+
# Creator ``agents:`` map: re-read it so the spawn-time override index is
# fresh, then register definition entries as dynamic ``creator:``
# sub-agents. The map never flows through agent_config.
@@ -2018,10 +2027,24 @@ async def graceful_exit(coder=None, exit_code=0):
if info.generate_task is not None
]
await coroutines.cancel_and_abandon(agent_tasks)
- agent_service.cleanup_all_for_parent()
+ # Cancel background tasks again before the blocking worktree release:
+ # abandoned tasks can outlive their loop, and re-cancelling them after a
+ # long git operation can hit "Event loop is closed".
await coroutines.cancel_and_abandon(list(coroutines.background_tasks))
+ agent_service.cleanup_all_for_parent()
await _stop_scheduler_quietly(coder)
+ # Release every worktree owned by this process, including ones that were
+ # never attached to a tracked sub-agent. Best-effort on the way out.
+ try:
+ import logging
+
+ from cecli.helpers.worktrees import WorktreeManager
+
+ WorktreeManager.release_all(pid=os.getpid())
+ except Exception:
+ logging.warning("worktree release on exit failed", exc_info=True)
+
if coder.mcp_manager and coder.mcp_manager.is_connected:
await coder.mcp_manager.disconnect_all()
# Cleanup old agent directories
diff --git a/cecli/models.py b/cecli/models.py
index 052e30e8273..1b2bcd794f0 100644
--- a/cecli/models.py
+++ b/cecli/models.py
@@ -282,57 +282,30 @@ def _ensure_model_settings_entry(self, model):
def fetch_openrouter_model_info(self, model):
"""
- Fetch model info by scraping the openrouter model page.
- Expected URL: https://openrouter.ai/
- Example: openrouter/qwen/qwen-2.5-72b-instruct:free
+ Fetch model metadata from OpenRouter's public models endpoint.
+
+ Expected model name: ``openrouter//``.
Returns a dict with keys: max_tokens, max_input_tokens, max_output_tokens,
input_cost_per_token, output_cost_per_token.
"""
- url_part = model[len("openrouter/") :]
- url = "https://openrouter.ai/" + url_part
- try:
- import requests
-
- response = requests.get(url, timeout=5, verify=self.verify_ssl)
- if response.status_code != 200:
- return {}
- html = response.text
- import re
-
- if re.search(
- f"The model\\s*.*{re.escape(url_part)}.* is not available",
- html,
- re.IGNORECASE,
- ):
- print(f"\x1b[91mError: Model '{url_part}' is not available\x1b[0m")
- return {}
- text = re.sub("<[^>]+>", " ", html)
- context_match = re.search("([\\d,]+)\\s*context", text)
- if context_match:
- context_str = context_match.group(1).replace(",", "")
- context_size = int(context_str)
- else:
- context_size = None
- input_cost_match = re.search("\\$\\s*([\\d.]+)\\s*/M input tokens", text, re.IGNORECASE)
- output_cost_match = re.search(
- "\\$\\s*([\\d.]+)\\s*/M output tokens", text, re.IGNORECASE
- )
- input_cost = float(input_cost_match.group(1)) / 1000000 if input_cost_match else None
- output_cost = float(output_cost_match.group(1)) / 1000000 if output_cost_match else None
- if context_size is None or input_cost is None or output_cost is None:
- return {}
- params = {
- "max_input_tokens": context_size,
- "max_tokens": context_size,
- "max_output_tokens": context_size,
- "input_cost_per_token": input_cost,
- "output_cost_per_token": output_cost,
- "litellm_provider": "openrouter",
+ manager = ModelProviderManager(
+ {
+ "openrouter": {
+ "api_base": "https://openrouter.ai/api/v1",
+ "models_url": "https://openrouter.ai/api/v1/models",
+ "requires_api_key": False,
+ }
}
- return params
- except Exception as e:
- print("Error fetching openrouter info:", str(e))
- return {}
+ )
+ manager.cache_dir = self.cache_dir
+ manager.verify_ssl = self.verify_ssl
+
+ info = manager.get_model_info(model)
+ if info:
+ info.setdefault("litellm_provider", "openrouter")
+ return info
+
+ return {}
model_info_manager = ModelInfoManager()
diff --git a/cecli/prompts/agent.yml b/cecli/prompts/agent.yml
index 900bed62f2e..7085a0ef50a 100644
--- a/cecli/prompts/agent.yml
+++ b/cecli/prompts/agent.yml
@@ -59,7 +59,6 @@ main_system: |
- **Plan**: Outline multi-step work with `UpdateTodoList`.
- **Execute**: Make read-only files editable with `ManageResources` before editing, then review the diff and fix lint errors immediately.
- **Recover**: Repair a bad edit in place; use `UndoChange` only when the corruption is beyond repair.
- - **Outputs**: Tool calls trigger turns. Yield when finished with the final user summary.
- **Sandbox**: Perform all verification and temp logic in `.cecli/temp`.
- **Responses**: Be brief in your reasoning. Use bulleted lists of known facts and be terse in your deliberation on how to accomplish the goal.
- **Finishing Up**: Avoid verifying the same detail multiple times. Be detailed in your `Yield` tool summary in describing your task, findings, efforts and results.
diff --git a/cecli/prompts/subagent.yml b/cecli/prompts/subagent.yml
index b43afbf8fea..f51048e4d51 100644
--- a/cecli/prompts/subagent.yml
+++ b/cecli/prompts/subagent.yml
@@ -44,7 +44,6 @@ main_system: |
- **Plan**: Outline multi-step work with `UpdateTodoList`.
- **Execute**: Make read-only files editable with `ManageResources` before editing, then review the diff and fix lint errors immediately.
- **Recover**: Repair a bad edit in place; use `UndoChange` only when the corruption is beyond repair.
- - **Outputs**: Tool calls trigger turns. Yield when finished with the final user summary.
- **Sandbox**: Perform all verification and temp logic in `.cecli/temp`.
- **Responses**: Be brief in your reasoning. Use bulleted lists of known facts and be terse in your deliberation on how to accomplish the goal.
- **Finishing Up**: Avoid verifying the same detail multiple times. Be detailed in your `Yield` tool summary in describing your task, findings, efforts and results.
diff --git a/cecli/resources/model-metadata.ext.json b/cecli/resources/model-metadata.ext.json
index c57a81d1ed6..be2fbaf7c64 100644
--- a/cecli/resources/model-metadata.ext.json
+++ b/cecli/resources/model-metadata.ext.json
@@ -64,9 +64,9 @@
},
"github_copilot/claude-fable-5": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 16000,
- "max_tokens": 16000,
+ "max_input_tokens": 200000,
+ "max_output_tokens": 64000,
+ "max_tokens": 64000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -77,10 +77,38 @@
"supports_vision": true
},
"github_copilot/claude-fable-5.1": {
+ "litellm_provider": "github_copilot",
+ "max_input_tokens": 200000,
+ "max_output_tokens": 64000,
+ "max_tokens": 64000,
+ "mode": "chat",
+ "source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_vision": true
+ },
+ "github_copilot/claude-haiku-4.5": {
"litellm_provider": "github_copilot",
"max_input_tokens": 128000,
- "max_output_tokens": 16000,
- "max_tokens": 16000,
+ "max_output_tokens": 32000,
+ "max_tokens": 32000,
+ "mode": "chat",
+ "source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_vision": true
+ },
+ "github_copilot/claude-haiku-5.5": {
+ "litellm_provider": "github_copilot",
+ "max_input_tokens": 100000,
+ "max_output_tokens": 100000,
+ "max_tokens": 100000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -92,9 +120,9 @@
},
"github_copilot/claude-opus-4.7": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 16000,
- "max_tokens": 16000,
+ "max_input_tokens": 200000,
+ "max_output_tokens": 64000,
+ "max_tokens": 64000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -106,9 +134,9 @@
},
"github_copilot/claude-opus-4.8": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 16000,
- "max_tokens": 16000,
+ "max_input_tokens": 200000,
+ "max_output_tokens": 64000,
+ "max_tokens": 64000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -120,9 +148,9 @@
},
"github_copilot/claude-opus-4.8-fast": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 16000,
- "max_tokens": 16000,
+ "max_input_tokens": 200000,
+ "max_output_tokens": 64000,
+ "max_tokens": 64000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -134,9 +162,23 @@
},
"github_copilot/claude-opus-5": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 16000,
- "max_tokens": 16000,
+ "max_input_tokens": 200000,
+ "max_output_tokens": 64000,
+ "max_tokens": 64000,
+ "mode": "chat",
+ "source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_vision": true
+ },
+ "github_copilot/claude-opus-5.5": {
+ "litellm_provider": "github_copilot",
+ "max_input_tokens": 200000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -148,9 +190,9 @@
},
"github_copilot/claude-sonnet-4.6": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 16000,
- "max_tokens": 16000,
+ "max_input_tokens": 200000,
+ "max_output_tokens": 64000,
+ "max_tokens": 64000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -162,9 +204,23 @@
},
"github_copilot/claude-sonnet-5": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 16000,
- "max_tokens": 16000,
+ "max_input_tokens": 200000,
+ "max_output_tokens": 64000,
+ "max_tokens": 64000,
+ "mode": "chat",
+ "source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_vision": true
+ },
+ "github_copilot/claude-sonnet-5.5": {
+ "litellm_provider": "github_copilot",
+ "max_input_tokens": 200000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -198,7 +254,7 @@
},
"github_copilot/gemini-3.7-flash": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
+ "max_input_tokens": 200000,
"max_output_tokens": 64000,
"max_tokens": 64000,
"mode": "chat",
@@ -209,9 +265,20 @@
},
"github_copilot/gemini-3.8-flash": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 200000,
+ "max_output_tokens": 65536,
+ "max_tokens": 65536,
+ "mode": "chat",
+ "source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_vision": true
+ },
+ "github_copilot/gemini-4-argon": {
+ "litellm_provider": "github_copilot",
+ "max_input_tokens": 200000,
+ "max_output_tokens": 65536,
+ "max_tokens": 65536,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supports_function_calling": true,
@@ -220,9 +287,9 @@
},
"github_copilot/gpt-5.3-codex": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -236,9 +303,9 @@
},
"github_copilot/gpt-5.4": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -252,9 +319,9 @@
},
"github_copilot/gpt-5.4-mini": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -267,9 +334,9 @@
},
"github_copilot/gpt-5.4-nano": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -282,9 +349,9 @@
},
"github_copilot/gpt-5.5": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -298,9 +365,9 @@
},
"github_copilot/gpt-5.6-luna": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 200000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -314,9 +381,9 @@
},
"github_copilot/gpt-5.6-sol": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -330,9 +397,9 @@
},
"github_copilot/gpt-5.6-terra": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -346,9 +413,9 @@
},
"github_copilot/gpt-6-astra": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -362,9 +429,9 @@
},
"github_copilot/grok-4.5": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 200000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -376,9 +443,9 @@
},
"github_copilot/gpt-6-luna": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -392,9 +459,9 @@
},
"github_copilot/gpt-6-sol": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -405,12 +472,26 @@
"supports_parallel_function_calling": true,
"supports_response_schema": true,
"supports_vision": true
- },
+ },
"github_copilot/grok-4.6": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 200000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
+ "mode": "chat",
+ "source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_response_schema": true
+ },
+ "github_copilot/grok-4.7": {
+ "litellm_provider": "github_copilot",
+ "max_input_tokens": 200000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -422,9 +503,9 @@
},
"github_copilot/kimi-k2.7-code": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 262144,
+ "max_output_tokens": 131072,
+ "max_tokens": 131072,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -436,9 +517,9 @@
},
"github_copilot/kimi-k3": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 917504,
+ "max_output_tokens": 131072,
+ "max_tokens": 131072,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -451,8 +532,8 @@
"github_copilot/mai-code-1.1-flash": {
"litellm_provider": "github_copilot",
"max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -1028,4 +1109,3 @@
"source": "https://agnes-ai.com/en/docs/agnes-30-flash"
}
}
-
diff --git a/cecli/resources/model-metadata.json b/cecli/resources/model-metadata.json
index a054515262b..880b0fdf797 100644
--- a/cecli/resources/model-metadata.json
+++ b/cecli/resources/model-metadata.json
@@ -1,4 +1,104 @@
{
+ "abliteration/abliterated-model": {
+ "cache_read_input_token_cost": 1e-7,
+ "input_cost_per_token": 0.000001,
+ "litellm_provider": "abliteration",
+ "max_input_tokens": 262144,
+ "max_output_tokens": 262134,
+ "mode": "chat",
+ "output_cost_per_token": 0.000003,
+ "source": "https://abliteration.ai/pricing",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "reasoning_effort_levels": [
+ "none",
+ "minimal",
+ "low",
+ "medium",
+ "high",
+ "xhigh",
+ "max"
+ ]
+ },
+ "abliteration/abliterated-model-large": {
+ "cache_read_input_token_cost": 3e-7,
+ "input_cost_per_token": 0.000003,
+ "litellm_provider": "abliteration",
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 999990,
+ "mode": "chat",
+ "output_cost_per_token": 0.000005,
+ "source": "https://abliteration.ai/pricing",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": false,
+ "reasoning_effort_levels": [
+ "none",
+ "minimal",
+ "low",
+ "medium",
+ "high",
+ "xhigh",
+ "max"
+ ]
+ },
+ "abliteration/abliterated-model-large-flash": {
+ "cache_read_input_token_cost": 1e-7,
+ "input_cost_per_token": 0.000001,
+ "litellm_provider": "abliteration",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 262144,
+ "mode": "chat",
+ "output_cost_per_token": 0.000002,
+ "source": "https://abliteration.ai/pricing",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "reasoning_effort_levels": [
+ "none",
+ "minimal",
+ "low",
+ "medium",
+ "high",
+ "xhigh",
+ "max"
+ ]
+ },
+ "abliteration/abliterated-model-large-v2": {
+ "cache_read_input_token_cost": 3e-7,
+ "input_cost_per_token": 0.000003,
+ "litellm_provider": "abliteration",
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 999990,
+ "mode": "chat",
+ "output_cost_per_token": 0.000005,
+ "source": "https://abliteration.ai/pricing",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_none_reasoning_effort": false,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": false,
+ "reasoning_effort_levels": [
+ "minimal",
+ "low",
+ "medium",
+ "high",
+ "xhigh",
+ "max"
+ ]
+ },
"agnes/agnes-3.0-flash": {
"max_tokens": 65536,
"max_input_tokens": 512000,
@@ -14,7 +114,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 8191,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.0000125,
"source": "https://aws.amazon.com/bedrock/pricing/"
@@ -24,29 +123,28 @@
"litellm_provider": "bedrock",
"max_input_tokens": 8191,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.0000188,
"source": "https://aws.amazon.com/bedrock/pricing/"
},
"ai21.jamba-1-5-large-v1:0": {
"deprecation_date": "2026-11-26",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-ai21-labs-jamba-1-5-large.md",
"input_cost_per_token": 0.000002,
"litellm_provider": "bedrock",
"max_input_tokens": 256000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000008,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-ai21-labs-jamba-1-5-large.md"
},
"ai21.jamba-1-5-mini-v1:0": {
"deprecation_date": "2026-11-26",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-ai21-labs-jamba-1-5-mini.md",
"input_cost_per_token": 2e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 256000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 4e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-ai21-labs-jamba-1-5-mini.md"
@@ -56,18 +154,245 @@
"litellm_provider": "bedrock",
"max_input_tokens": 70000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 7e-7,
"source": "https://aws.amazon.com/bedrock/pricing/",
"supports_system_messages": true
},
+ "aiand/deepseek-ai/deepseek-v4-flash": {
+ "cache_read_input_token_cost": 8e-8,
+ "deprecation_date": "2026-10-27",
+ "input_cost_per_token": 1.5e-7,
+ "litellm_provider": "aiand",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 384000,
+ "mode": "chat",
+ "output_cost_per_token": 2.5e-7,
+ "source": "https://api.aiand.com/v1/models",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": false
+ },
+ "aiand/deepseek-ai/deepseek-v4-pro": {
+ "cache_read_input_token_cost": 2.5e-7,
+ "input_cost_per_token": 0.000001,
+ "litellm_provider": "aiand",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 384000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000025,
+ "source": "https://api.aiand.com/v1/models",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": false
+ },
+ "aiand/deepseek-ai/deepseek-v4.1-flash": {
+ "cache_read_input_token_cost": 2e-8,
+ "deprecation_date": "2026-11-05",
+ "input_cost_per_token": 3e-7,
+ "litellm_provider": "aiand",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 384000,
+ "mode": "chat",
+ "output_cost_per_token": 6e-7,
+ "source": "https://api.aiand.com/v1/models",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
+ "aiand/deepseek-ai/deepseek-v4.1-flash-1017": {
+ "cache_read_input_token_cost": 2e-8,
+ "input_cost_per_token": 3e-7,
+ "litellm_provider": "aiand",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 384000,
+ "mode": "chat",
+ "output_cost_per_token": 6e-7,
+ "source": "https://api.aiand.com/v1/models",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
+ "aiand/google/gemma-4-31b-it": {
+ "cache_read_input_token_cost": 5e-8,
+ "input_cost_per_token": 2e-7,
+ "litellm_provider": "aiand",
+ "max_input_tokens": 262144,
+ "max_output_tokens": 32768,
+ "mode": "chat",
+ "output_cost_per_token": 5e-7,
+ "source": "https://api.aiand.com/v1/models",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
+ "aiand/meta/muse-spark-open": {
+ "cache_read_input_token_cost": 1.5e-7,
+ "input_cost_per_token": 0.00000125,
+ "litellm_provider": "aiand",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 943718,
+ "mode": "chat",
+ "output_cost_per_token": 0.00000425,
+ "source": "https://api.aiand.com/v1/models",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
+ "aiand/moonshotai/kimi-k2.7-code": {
+ "cache_read_input_token_cost": 2e-7,
+ "deprecation_date": "2026-10-27",
+ "input_cost_per_token": 7.5e-7,
+ "litellm_provider": "aiand",
+ "max_input_tokens": 262144,
+ "max_output_tokens": 262144,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000035,
+ "source": "https://api.aiand.com/v1/models",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
+ "aiand/moonshotai/kimi-k3": {
+ "cache_read_input_token_cost": 5e-7,
+ "input_cost_per_token": 0.000003,
+ "litellm_provider": "aiand",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 131072,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000125,
+ "source": "https://api.aiand.com/v1/models",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
+ "aiand/motif-technologies/motif-3": {
+ "cache_read_input_token_cost": 2e-7,
+ "input_cost_per_token": 5e-7,
+ "litellm_provider": "aiand",
+ "max_input_tokens": 262144,
+ "max_output_tokens": 262144,
+ "mode": "chat",
+ "output_cost_per_token": 0.000002,
+ "source": "https://api.aiand.com/v1/models",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": false
+ },
+ "aiand/openai/gpt-oss-120b": {
+ "cache_read_input_token_cost": 8e-8,
+ "input_cost_per_token": 1.5e-7,
+ "litellm_provider": "aiand",
+ "max_input_tokens": 131072,
+ "max_output_tokens": 32768,
+ "mode": "chat",
+ "output_cost_per_token": 6e-7,
+ "source": "https://api.aiand.com/v1/models",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": false
+ },
+ "aiand/qwen/qwen3.6-27b": {
+ "cache_read_input_token_cost": 2e-7,
+ "input_cost_per_token": 3.2e-7,
+ "litellm_provider": "aiand",
+ "max_input_tokens": 262144,
+ "max_output_tokens": 65536,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000032,
+ "source": "https://api.aiand.com/v1/models",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
+ "aiand/qwen/qwen3.8-27b": {
+ "cache_read_input_token_cost": 2e-7,
+ "input_cost_per_token": 4e-7,
+ "litellm_provider": "aiand",
+ "max_input_tokens": 262144,
+ "max_output_tokens": 32768,
+ "mode": "chat",
+ "output_cost_per_token": 0.000003,
+ "source": "https://api.aiand.com/v1/models",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
+ "aiand/zai-org/glm-5.2": {
+ "cache_read_input_token_cost": 3e-7,
+ "deprecation_date": "2026-10-27",
+ "input_cost_per_token": 0.000001,
+ "litellm_provider": "aiand",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 131072,
+ "mode": "chat",
+ "output_cost_per_token": 0.000004,
+ "source": "https://api.aiand.com/v1/models",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": false
+ },
+ "aiand/zai-org/glm-5.3": {
+ "cache_read_input_token_cost": 3e-7,
+ "input_cost_per_token": 0.000001,
+ "litellm_provider": "aiand",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 131072,
+ "mode": "chat",
+ "output_cost_per_token": 0.000004,
+ "source": "https://api.aiand.com/v1/models",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": false
+ },
+ "aiand/zai-org/glm-5.3-flash": {
+ "cache_read_input_token_cost": 3e-8,
+ "input_cost_per_token": 1.5e-7,
+ "litellm_provider": "aiand",
+ "max_input_tokens": 1048550,
+ "max_output_tokens": 131072,
+ "mode": "chat",
+ "output_cost_per_token": 5e-7,
+ "source": "https://api.aiand.com/v1/models",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
"aihubmix/agnes-2.5-flash": {
"input_cost_per_token": 3e-8,
"litellm_provider": "aihubmix",
"max_input_tokens": 512000,
"max_output_tokens": 65500,
- "max_tokens": 65500,
"mode": "chat",
"output_cost_per_token": 1.5e-7,
"source": "https://aihubmix.com/api/v1/models",
@@ -80,7 +405,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1000000,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 9e-7,
"source": "https://aihubmix.com/api/v1/models",
@@ -93,7 +417,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 200000,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 2.2e-7,
"source": "https://aihubmix.com/api/v1/models",
@@ -108,7 +431,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000055,
"source": "https://aihubmix.com/api/v1/models",
@@ -129,7 +451,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.0000055,
"source": "https://aihubmix.com/api/v1/models",
@@ -147,7 +468,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"source": "https://aihubmix.com/api/v1/models",
@@ -167,7 +487,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"source": "https://aihubmix.com/api/v1/models",
@@ -188,7 +507,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"source": "https://aihubmix.com/api/v1/models",
@@ -207,7 +525,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 2.2e-7,
"source": "https://aihubmix.com/api/v1/models",
@@ -222,7 +539,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
- "max_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.00000161333,
"source": "https://aihubmix.com/api/v1/models",
@@ -251,7 +567,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 1.6e-7,
"source": "https://aihubmix.com/api/v1/models",
@@ -267,7 +582,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 4e-7,
"source": "https://aihubmix.com/api/v1/models",
@@ -281,7 +595,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 128000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"source": "https://aihubmix.com/api/v1/models",
@@ -296,7 +609,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1000000,
"max_output_tokens": 384000,
- "max_tokens": 384000,
"mode": "chat",
"output_cost_per_token": 2.84e-7,
"source": "https://aihubmix.com/api/v1/models",
@@ -311,7 +623,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1000000,
"max_output_tokens": 384000,
- "max_tokens": 384000,
"mode": "chat",
"output_cost_per_token": 0.00000338,
"source": "https://aihubmix.com/api/v1/models",
@@ -326,7 +637,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 256000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000002411,
"source": "https://aihubmix.com/api/v1/models",
@@ -342,7 +652,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 256000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 5.4246e-7,
"source": "https://aihubmix.com/api/v1/models",
@@ -359,7 +668,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 256000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 3.0136e-7,
"source": "https://aihubmix.com/api/v1/models",
@@ -376,7 +684,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 256000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000002411,
"source": "https://aihubmix.com/api/v1/models",
@@ -393,7 +700,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 0.00000232375,
"source": "https://aihubmix.com/api/v1/models",
@@ -410,7 +716,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 119000,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.0000025353,
"source": "https://aihubmix.com/api/v1/models",
@@ -423,7 +728,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.000003,
"source": "https://aihubmix.com/api/v1/models",
@@ -440,7 +744,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.000003,
"source": "https://aihubmix.com/api/v1/models",
@@ -457,7 +760,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.000012,
"source": "https://aihubmix.com/api/v1/models",
@@ -474,7 +776,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.000012,
"source": "https://aihubmix.com/api/v1/models",
@@ -491,7 +792,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.000002499999,
"source": "https://aihubmix.com/api/v1/models",
@@ -499,6 +799,7 @@
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
+ "supports_sampling_params": false,
"supports_vision": true,
"supports_web_search": true
},
@@ -508,7 +809,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.00000375,
"source": "https://aihubmix.com/api/v1/models",
@@ -516,6 +816,7 @@
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
+ "supports_sampling_params": false,
"supports_vision": true,
"supports_web_search": true
},
@@ -524,7 +825,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 262144,
"max_output_tokens": 131100,
- "max_tokens": 131100,
"mode": "chat",
"output_cost_per_token": 3.9998e-7,
"source": "https://aihubmix.com/api/v1/models",
@@ -536,7 +836,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 262144,
"max_output_tokens": 131100,
- "max_tokens": 131100,
"mode": "chat",
"output_cost_per_token": 3.9998e-7,
"source": "https://aihubmix.com/api/v1/models",
@@ -549,7 +848,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1000000,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000007889,
"source": "https://aihubmix.com/api/v1/models",
@@ -564,7 +862,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000039438,
"source": "https://aihubmix.com/api/v1/models",
@@ -579,7 +876,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 3.9438e-7,
"source": "https://aihubmix.com/api/v1/models",
@@ -595,7 +891,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 200000,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.00000309848,
"source": "https://aihubmix.com/api/v1/models",
@@ -609,7 +904,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 400000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000014,
"source": "https://aihubmix.com/api/v1/models",
@@ -625,7 +919,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1050000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"source": "https://aihubmix.com/api/v1/models",
@@ -642,7 +935,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1050000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"source": "https://aihubmix.com/api/v1/models",
@@ -659,7 +951,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 400000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000045,
"source": "https://aihubmix.com/api/v1/models",
@@ -676,7 +967,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 400000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00000125,
"source": "https://aihubmix.com/api/v1/models",
@@ -693,7 +983,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1050000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00003,
"source": "https://aihubmix.com/api/v1/models",
@@ -709,7 +998,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1050000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00018,
"source": "https://aihubmix.com/api/v1/models",
@@ -726,7 +1014,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1050000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://aihubmix.com/api/v1/models",
@@ -743,7 +1030,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1050000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00002,
"source": "https://aihubmix.com/api/v1/models",
@@ -760,7 +1046,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1050000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000012,
"source": "https://aihubmix.com/api/v1/models",
@@ -776,7 +1061,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 400000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00003,
"source": "https://aihubmix.com/api/v1/models",
@@ -821,7 +1105,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 500000,
"max_output_tokens": 500000,
- "max_tokens": 500000,
"mode": "chat",
"output_cost_per_token": 0.000006,
"source": "https://aihubmix.com/api/v1/models",
@@ -837,7 +1120,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 0.000002,
"source": "https://aihubmix.com/api/v1/models",
@@ -853,7 +1135,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 256000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 6.248e-7,
"source": "https://aihubmix.com/api/v1/models",
@@ -869,7 +1150,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1048576,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000002535,
"source": "https://aihubmix.com/api/v1/models",
@@ -885,7 +1165,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.0000039995,
"source": "https://aihubmix.com/api/v1/models",
@@ -901,7 +1180,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000007999,
"source": "https://aihubmix.com/api/v1/models",
@@ -917,7 +1195,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
- "max_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.000015,
"source": "https://aihubmix.com/api/v1/models",
@@ -933,7 +1210,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1000000,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000030984,
"source": "https://aihubmix.com/api/v1/models",
@@ -946,7 +1222,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 256000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000008,
"source": "https://aihubmix.com/api/v1/models",
@@ -982,7 +1257,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 204800,
"max_output_tokens": 204800,
- "max_tokens": 204800,
"mode": "chat",
"output_cost_per_token": 0.0000011832,
"source": "https://aihubmix.com/api/v1/models",
@@ -996,7 +1270,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1000000,
"max_output_tokens": 524288,
- "max_tokens": 524288,
"mode": "chat",
"output_cost_per_token": 0.000001152,
"source": "https://aihubmix.com/api/v1/models",
@@ -1021,7 +1294,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 5.48e-7,
"source": "https://aihubmix.com/api/v1/models",
@@ -1033,7 +1305,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 9.008e-7,
"source": "https://aihubmix.com/api/v1/models",
@@ -1048,7 +1319,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 9.864e-7,
"source": "https://aihubmix.com/api/v1/models",
@@ -1063,7 +1333,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.000002532,
"source": "https://aihubmix.com/api/v1/models",
@@ -1078,7 +1347,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.000001524,
"source": "https://aihubmix.com/api/v1/models",
@@ -1095,7 +1363,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.000007608,
"source": "https://aihubmix.com/api/v1/models",
@@ -1112,7 +1379,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1000000,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000001128,
"source": "https://aihubmix.com/api/v1/models",
@@ -1129,7 +1395,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1000000,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000006,
"source": "https://aihubmix.com/api/v1/models",
@@ -1146,7 +1411,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1000000,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 3.80025e-7,
"source": "https://aihubmix.com/api/v1/models",
@@ -1164,7 +1428,6 @@
"litellm_provider": "aihubmix",
"max_input_tokens": 1000000,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.00000507,
"source": "https://aihubmix.com/api/v1/models",
@@ -1192,7 +1455,6 @@
"litellm_provider": "amazon_nova",
"max_input_tokens": 300000,
"max_output_tokens": 10000,
- "max_tokens": 10000,
"mode": "chat",
"output_cost_per_token": 2.4e-7,
"supports_function_calling": true,
@@ -1206,7 +1468,6 @@
"litellm_provider": "amazon_nova",
"max_input_tokens": 128000,
"max_output_tokens": 10000,
- "max_tokens": 10000,
"mode": "chat",
"output_cost_per_token": 1.4e-7,
"supports_function_calling": true,
@@ -1218,7 +1479,6 @@
"litellm_provider": "amazon_nova",
"max_input_tokens": 1000000,
"max_output_tokens": 10000,
- "max_tokens": 10000,
"mode": "chat",
"output_cost_per_token": 0.0000125,
"supports_function_calling": true,
@@ -1232,7 +1492,6 @@
"litellm_provider": "amazon_nova",
"max_input_tokens": 300000,
"max_output_tokens": 10000,
- "max_tokens": 10000,
"mode": "chat",
"output_cost_per_token": 0.0000032,
"supports_function_calling": true,
@@ -1250,7 +1509,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_batches": 0.00000125,
@@ -1275,7 +1533,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_batches": 0.000005,
@@ -1297,7 +1554,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 300000,
"max_output_tokens": 10000,
- "max_tokens": 10000,
"mode": "chat",
"output_cost_per_token": 2.4e-7,
"output_cost_per_token_batches": 1.2e-7,
@@ -1316,7 +1572,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 10000,
- "max_tokens": 10000,
"mode": "chat",
"output_cost_per_token": 1.4e-7,
"output_cost_per_token_batches": 7e-8,
@@ -1335,7 +1590,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 10000,
- "max_tokens": 10000,
"mode": "chat",
"output_cost_per_token": 0.0000125,
"output_cost_per_token_batches": 0.00000625,
@@ -1359,7 +1613,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 300000,
"max_output_tokens": 10000,
- "max_tokens": 10000,
"mode": "chat",
"output_cost_per_token": 0.0000032,
"output_cost_per_token_batches": 0.0000016,
@@ -1378,7 +1631,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 42000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 6e-7
},
@@ -1387,7 +1639,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 42000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 2e-7
},
@@ -1396,7 +1647,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 42000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.0000015
},
@@ -1407,7 +1657,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 200000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000004,
"supports_assistant_prefill": true,
@@ -1423,7 +1672,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 200000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_function_calling": true,
@@ -1441,7 +1689,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 200000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_assistant_prefill": true,
@@ -1460,7 +1707,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 200000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000018,
"supports_assistant_prefill": true,
@@ -1480,7 +1726,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 200000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_assistant_prefill": true,
@@ -1498,7 +1743,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 200000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000075,
"supports_function_calling": true,
@@ -1516,7 +1760,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00005,
"search_context_cost_per_query": {
@@ -1544,7 +1787,12 @@
"bedrock_output_config_effort_ceiling": "xhigh",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 512,
- "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json",
+ "token_count_model": {
+ "model": "anthropic.claude-fable-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-east-1"
+ }
},
"anthropic.claude-fable-5-1": {
"cache_creation_input_token_cost": 0.0000125,
@@ -1554,7 +1802,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00005,
"search_context_cost_per_query": {
@@ -1594,7 +1841,6 @@
"supports_tool_search": true,
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000005,
"source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json",
@@ -1611,7 +1857,11 @@
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 4096,
"input_cost_per_token_batches": 5e-7,
- "output_cost_per_token_batches": 0.0000025
+ "output_cost_per_token_batches": 0.0000025,
+ "token_count_model": {
+ "model": "anthropic.claude-haiku-4-5-20251001-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"anthropic.claude-haiku-4-5@20251001": {
"cache_creation_input_token_cost": 0.00000125,
@@ -1622,7 +1872,6 @@
"supports_tool_search": true,
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000005,
"source": "https://aws.amazon.com/about-aws/whats-new/2025/10/claude-4-5-haiku-anthropic-amazon-bedrock",
@@ -1638,7 +1887,11 @@
"supports_native_streaming": true,
"supports_native_structured_output": true,
"supports_parallel_tool_use_config": true,
- "prompt_cache_min_tokens": 4096
+ "prompt_cache_min_tokens": 4096,
+ "token_count_model": {
+ "model": "anthropic.claude-haiku-4-5-20251001-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"anthropic.claude-haiku-5-5": {
"input_cost_per_token_above_100k_tokens": 5e-7,
@@ -1654,12 +1907,12 @@
"litellm_provider": "bedrock_converse",
"token_count_model": {
"model": "anthropic.claude-opus-5-5",
+ "litellm_provider": "bedrock_mantle",
"region": "us-east-1"
},
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 5e-7,
"search_context_cost_per_query": {
@@ -1696,7 +1949,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.0000024,
"supports_tool_choice": true
@@ -1705,7 +1957,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"supports_adaptive_thinking": true,
"thinking_always_on": true,
@@ -1743,7 +1994,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"thinking_always_on": true,
"supports_function_calling": true,
@@ -1758,11 +2008,11 @@
"cache_creation_input_token_cost": 0.00001875,
"cache_read_input_token_cost": 0.0000015,
"deprecation_date": "2027-01-08",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 0.000015,
"litellm_provider": "bedrock_converse",
"max_input_tokens": 200000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.000075,
"search_context_cost_per_query": {
@@ -1779,7 +2029,11 @@
"supports_response_schema": true,
"supports_tool_choice": true,
"supports_vision": true,
- "prompt_cache_min_tokens": 1024
+ "prompt_cache_min_tokens": 1024,
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-1-20250805-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"anthropic.claude-opus-4-20250514-v1:0": {
"cache_creation_input_token_cost": 0.00001875,
@@ -1788,7 +2042,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 200000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.000075,
"search_context_cost_per_query": {
@@ -1816,7 +2069,6 @@
"supports_tool_search": true,
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"search_context_cost_per_query": {
@@ -1838,7 +2090,11 @@
"bedrock_output_config_effort_ceiling": "high",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 4096,
- "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-5-20251101-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"anthropic.claude-opus-4-6-v1": {
"supports_adaptive_thinking": true,
@@ -1851,7 +2107,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"search_context_cost_per_query": {
@@ -1874,7 +2129,11 @@
"bedrock_output_config_effort_ceiling": "max",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 4096,
- "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-6-v1",
+ "litellm_provider": "bedrock"
+ }
},
"anthropic.claude-opus-4-7": {
"bedrock_converse_supports_strict_tools": false,
@@ -1887,7 +2146,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"search_context_cost_per_query": {
@@ -1912,7 +2170,12 @@
"bedrock_output_config_effort_ceiling": "xhigh",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 2048,
- "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-7",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-east-1"
+ }
},
"anthropic.claude-opus-4-8": {
"bedrock_converse_supports_strict_tools": false,
@@ -1926,7 +2189,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"search_context_cost_per_query": {
@@ -1952,7 +2214,12 @@
"bedrock_output_config_effort_ceiling": "xhigh",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 1024,
- "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-8",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-east-1"
+ }
},
"anthropic.claude-opus-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -1966,7 +2233,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"search_context_cost_per_query": {
@@ -1990,7 +2256,14 @@
"supports_output_config": true,
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 512,
- "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/us-east-1/index.json",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-east-1"
+ },
+ "input_cost_per_token_batches": 0.0000025,
+ "output_cost_per_token_batches": 0.0000125
},
"anthropic.claude-opus-5-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -2004,7 +2277,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00002,
"search_context_cost_per_query": {
@@ -2030,12 +2302,19 @@
"prompt_cache_min_tokens": 512,
"source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json",
"thinking_always_on": true,
- "supports_forced_tool_use": false
+ "supports_forced_tool_use": false,
+ "token_count_model": {
+ "model": "anthropic.claude-opus-5-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-east-1"
+ }
},
"anthropic.claude-sonnet-4-20250514-v1:0": {
"cache_creation_input_token_cost": 0.00000375,
"cache_read_input_token_cost": 3e-7,
"deprecation_date": "2026-10-14",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
+ "successor_model": "anthropic.claude-sonnet-5",
"input_cost_per_token": 0.000003,
"input_cost_per_token_above_200k_tokens": 0.000006,
"output_cost_per_token_above_200k_tokens": 0.0000225,
@@ -2044,7 +2323,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"search_context_cost_per_query": {
@@ -2063,7 +2341,11 @@
"supports_vision": true,
"bedrock_converse_supports_strict_tools": false,
"prompt_cache_min_tokens": 1024,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-20250514-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"anthropic.claude-sonnet-4-5-20250929-v1:0": {
"cache_creation_input_token_cost": 0.00000375,
@@ -2076,11 +2358,12 @@
"cache_creation_input_token_cost_above_200k_tokens": 0.0000075,
"cache_read_input_token_cost_above_200k_tokens": 6e-7,
"deprecation_date": "2027-04-08",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
+ "successor_model": "anthropic.claude-sonnet-5-5",
"litellm_provider": "bedrock_converse",
"supports_tool_search": true,
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"search_context_cost_per_query": {
@@ -2102,7 +2385,11 @@
"prompt_cache_min_tokens": 1024,
"input_cost_per_token_batches": 0.0000015,
"output_cost_per_token_batches": 0.0000075,
- "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-5-20250929-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"anthropic.claude-sonnet-4-6": {
"supports_adaptive_thinking": true,
@@ -2115,7 +2402,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"search_context_cost_per_query": {
@@ -2137,7 +2423,11 @@
"supports_output_config": true,
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 1024,
- "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-6",
+ "litellm_provider": "bedrock"
+ }
},
"anthropic.claude-sonnet-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -2149,7 +2439,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"search_context_cost_per_query": {
@@ -2177,7 +2466,12 @@
"bedrock_output_config_effort_ceiling": "xhigh",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 1024,
- "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-east-1"
+ }
},
"anthropic.claude-sonnet-5-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -2188,12 +2482,12 @@
"litellm_provider": "bedrock_converse",
"token_count_model": {
"model": "anthropic.claude-opus-5-5",
+ "litellm_provider": "bedrock_mantle",
"region": "us-east-1"
},
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"search_context_cost_per_query": {
@@ -2230,7 +2524,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.000024
},
@@ -2239,7 +2532,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.000024,
"supports_tool_choice": true
@@ -2249,7 +2541,6 @@
"litellm_provider": "anyscale",
"max_input_tokens": 16384,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 1.5e-7
},
@@ -2258,7 +2549,6 @@
"litellm_provider": "anyscale",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000001
},
@@ -2267,7 +2557,6 @@
"litellm_provider": "anyscale",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000001,
"source": "https://docs.anyscale.com/preview/endpoints/text-generation/supported-models/codellama-CodeLlama-70b-Instruct-hf"
@@ -2277,7 +2566,6 @@
"litellm_provider": "anyscale",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 1.5e-7,
"source": "https://docs.anyscale.com/preview/endpoints/text-generation/supported-models/google-gemma-7b-it"
@@ -2287,7 +2575,6 @@
"litellm_provider": "anyscale",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 2.5e-7
},
@@ -2296,7 +2583,6 @@
"litellm_provider": "anyscale",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000001
},
@@ -2305,7 +2591,6 @@
"litellm_provider": "anyscale",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 1.5e-7
},
@@ -2314,7 +2599,6 @@
"litellm_provider": "anyscale",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000001,
"source": "https://docs.anyscale.com/preview/endpoints/text-generation/supported-models/meta-llama-Meta-Llama-3-70B-Instruct"
@@ -2324,7 +2608,6 @@
"litellm_provider": "anyscale",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 1.5e-7,
"source": "https://docs.anyscale.com/preview/endpoints/text-generation/supported-models/meta-llama-Meta-Llama-3-8B-Instruct"
@@ -2334,7 +2617,6 @@
"litellm_provider": "anyscale",
"max_input_tokens": 16384,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 1.5e-7,
"source": "https://docs.anyscale.com/preview/endpoints/text-generation/supported-models/mistralai-Mistral-7B-Instruct-v0.1",
@@ -2345,7 +2627,6 @@
"litellm_provider": "anyscale",
"max_input_tokens": 65536,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 9e-7,
"source": "https://docs.anyscale.com/preview/endpoints/text-generation/supported-models/mistralai-Mixtral-8x22B-Instruct-v0.1",
@@ -2356,7 +2637,6 @@
"litellm_provider": "anyscale",
"max_input_tokens": 16384,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 1.5e-7,
"source": "https://docs.anyscale.com/preview/endpoints/text-generation/supported-models/mistralai-Mixtral-8x7B-Instruct-v0.1",
@@ -2368,7 +2648,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000003311,
"supports_function_calling": true,
@@ -2388,7 +2667,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000011,
"source": "https://aws.amazon.com/nova/pricing/",
@@ -2407,7 +2685,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 300000,
"max_output_tokens": 10000,
- "max_tokens": 10000,
"mode": "chat",
"output_cost_per_token": 2.52e-7,
"supports_function_calling": true,
@@ -2423,7 +2700,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 10000,
- "max_tokens": 10000,
"mode": "chat",
"output_cost_per_token": 1.48e-7,
"supports_function_calling": true,
@@ -2439,7 +2715,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 300000,
"max_output_tokens": 10000,
- "max_tokens": 10000,
"mode": "chat",
"output_cost_per_token": 0.00000336,
"output_cost_per_token_flex": 0.00000168,
@@ -2454,7 +2729,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"supports_adaptive_thinking": true,
"thinking_always_on": true,
@@ -2491,7 +2765,6 @@
"supports_tool_search": true,
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.0000055,
"source": "https://aws.amazon.com/about-aws/whats-new/2025/10/claude-4-5-haiku-anthropic-amazon-bedrock",
@@ -2508,7 +2781,11 @@
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 4096,
"input_cost_per_token_batches": 5.5e-7,
- "output_cost_per_token_batches": 0.00000275
+ "output_cost_per_token_batches": 0.00000275,
+ "token_count_model": {
+ "model": "anthropic.claude-haiku-4-5-20251001-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"apac.anthropic.claude-haiku-5-5": {
"input_cost_per_token_above_100k_tokens": 5.5e-7,
@@ -2521,7 +2798,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"supports_adaptive_thinking": true,
"supports_mid_conversation_system": true,
@@ -2556,7 +2832,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"thinking_always_on": true,
"supports_function_calling": true,
@@ -2579,7 +2854,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"supports_assistant_prefill": false,
"supports_computer_use": true,
@@ -2603,7 +2877,12 @@
"input_cost_per_token": 0.0000055,
"cache_creation_input_token_cost_above_1hr": 0.000011,
"cache_read_input_token_cost": 5.5e-7,
- "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-7",
+ "litellm_provider": "bedrock_mantle",
+ "region": "ap-northeast-1"
+ }
},
"apac.anthropic.claude-opus-4-8": {
"bedrock_converse_supports_strict_tools": false,
@@ -2613,7 +2892,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"supports_assistant_prefill": false,
"supports_computer_use": true,
@@ -2638,7 +2916,12 @@
"output_cost_per_token": 0.0000275,
"cache_read_input_token_cost": 5.5e-7,
"cache_creation_input_token_cost": 0.000006875,
- "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-8",
+ "litellm_provider": "bedrock_mantle",
+ "region": "ap-northeast-1"
+ }
},
"apac.anthropic.claude-opus-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -2648,7 +2931,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"supports_assistant_prefill": false,
"supports_computer_use": true,
@@ -2671,7 +2953,14 @@
"input_cost_per_token": 0.0000055,
"cache_read_input_token_cost": 5.5e-7,
"output_cost_per_token": 0.0000275,
- "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/ap-northeast-1/index.json",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "ap-southeast-4"
+ },
+ "input_cost_per_token_batches": 0.00000275,
+ "output_cost_per_token_batches": 0.00001375
},
"apac.anthropic.claude-opus-5-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -2681,7 +2970,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"supports_assistant_prefill": false,
"supports_computer_use": true,
@@ -2706,12 +2994,19 @@
"input_cost_per_token": 0.0000044,
"output_cost_per_token": 0.000022,
"cache_read_input_token_cost": 2.2e-7,
- "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-5-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "ap-southeast-4"
+ }
},
"apac.anthropic.claude-sonnet-4-20250514-v1:0": {
"cache_creation_input_token_cost": 0.00000375,
"cache_read_input_token_cost": 3e-7,
"deprecation_date": "2026-10-14",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
+ "successor_model": "apac.anthropic.claude-sonnet-5",
"input_cost_per_token": 0.000003,
"input_cost_per_token_above_200k_tokens": 0.000006,
"output_cost_per_token_above_200k_tokens": 0.0000225,
@@ -2720,7 +3015,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"search_context_cost_per_query": {
@@ -2739,7 +3033,11 @@
"supports_vision": true,
"bedrock_converse_supports_strict_tools": false,
"prompt_cache_min_tokens": 1024,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-20250514-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"apac.anthropic.claude-sonnet-4-6": {
"supports_adaptive_thinking": true,
@@ -2748,7 +3046,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"supports_assistant_prefill": false,
"supports_computer_use": true,
@@ -2769,7 +3066,11 @@
"cache_read_input_token_cost": 3.3e-7,
"cache_creation_input_token_cost": 0.000004125,
"input_cost_per_token": 0.0000033,
- "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-6",
+ "litellm_provider": "bedrock"
+ }
},
"apac.anthropic.claude-sonnet-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -2777,7 +3078,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"supports_adaptive_thinking": true,
"supports_mid_conversation_system": true,
@@ -2804,7 +3104,12 @@
"input_cost_per_token": 0.0000022,
"output_cost_per_token": 0.000011,
"cache_read_input_token_cost": 2.2e-7,
- "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "ap-southeast-4"
+ }
},
"apac.anthropic.claude-sonnet-5-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -2812,7 +3117,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"supports_adaptive_thinking": true,
"supports_mid_conversation_system": true,
@@ -2847,7 +3151,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"supports_adaptive_thinking": true,
"thinking_always_on": true,
@@ -2885,7 +3188,6 @@
"supports_tool_search": true,
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.0000055,
"supports_assistant_prefill": true,
@@ -2902,11 +3204,16 @@
"prompt_cache_min_tokens": 4096,
"input_cost_per_token_batches": 5.5e-7,
"output_cost_per_token_batches": 0.00000275,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-haiku-4-5-20251001-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"au.anthropic.claude-haiku-5-5": {
"token_count_model": {
"model": "au.anthropic.claude-opus-5-5",
+ "litellm_provider": "bedrock_mantle",
"region": "ap-southeast-4"
},
"input_cost_per_token_above_100k_tokens": 5.5e-7,
@@ -2923,7 +3230,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 5.5e-7,
"search_context_cost_per_query": {
@@ -2959,7 +3265,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"thinking_always_on": true,
"supports_function_calling": true,
@@ -2986,7 +3291,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000275,
"search_context_cost_per_query": {
@@ -3009,7 +3313,11 @@
"bedrock_output_config_effort_ceiling": "max",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 4096,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-6-v1",
+ "litellm_provider": "bedrock"
+ }
},
"au.anthropic.claude-opus-4-7": {
"bedrock_converse_supports_strict_tools": false,
@@ -3022,7 +3330,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000275,
"search_context_cost_per_query": {
@@ -3047,7 +3354,12 @@
"bedrock_output_config_effort_ceiling": "xhigh",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 2048,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-7",
+ "litellm_provider": "bedrock_mantle",
+ "region": "ap-southeast-4"
+ }
},
"au.anthropic.claude-opus-4-8": {
"bedrock_converse_supports_strict_tools": false,
@@ -3061,7 +3373,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000275,
"search_context_cost_per_query": {
@@ -3087,7 +3398,12 @@
"bedrock_output_config_effort_ceiling": "xhigh",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 1024,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-8",
+ "litellm_provider": "bedrock_mantle",
+ "region": "ap-southeast-4"
+ }
},
"au.anthropic.claude-opus-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -3101,7 +3417,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000275,
"search_context_cost_per_query": {
@@ -3125,7 +3440,14 @@
"supports_output_config": true,
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 512,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/ap-southeast-2/index.json",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "ap-southeast-4"
+ },
+ "input_cost_per_token_batches": 0.00000275,
+ "output_cost_per_token_batches": 0.00001375
},
"au.anthropic.claude-opus-5-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -3139,7 +3461,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000022,
"search_context_cost_per_query": {
@@ -3165,7 +3486,12 @@
"prompt_cache_min_tokens": 512,
"thinking_always_on": true,
"supports_forced_tool_use": false,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-5-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "ap-southeast-4"
+ }
},
"au.anthropic.claude-sonnet-4-5-20250929-v1:0": {
"cache_creation_input_token_cost": 0.000004125,
@@ -3178,11 +3504,12 @@
"cache_creation_input_token_cost_above_1hr_above_200k_tokens": 0.0000132,
"cache_read_input_token_cost_above_200k_tokens": 6.6e-7,
"deprecation_date": "2027-04-08",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
+ "successor_model": "au.anthropic.claude-sonnet-5-5",
"litellm_provider": "bedrock_converse",
"supports_tool_search": true,
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.0000165,
"search_context_cost_per_query": {
@@ -3204,7 +3531,11 @@
"prompt_cache_min_tokens": 1024,
"input_cost_per_token_batches": 0.00000165,
"output_cost_per_token_batches": 0.00000825,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-5-20250929-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"au.anthropic.claude-sonnet-4-6": {
"supports_adaptive_thinking": true,
@@ -3217,7 +3548,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.0000165,
"search_context_cost_per_query": {
@@ -3239,7 +3569,11 @@
"supports_output_config": true,
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 1024,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-6",
+ "litellm_provider": "bedrock"
+ }
},
"au.anthropic.claude-sonnet-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -3251,7 +3585,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000011,
"search_context_cost_per_query": {
@@ -3279,11 +3612,17 @@
"bedrock_output_config_effort_ceiling": "xhigh",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 1024,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "ap-southeast-4"
+ }
},
"au.anthropic.claude-sonnet-5-5": {
"token_count_model": {
"model": "au.anthropic.claude-opus-5-5",
+ "litellm_provider": "bedrock_mantle",
"region": "ap-southeast-4"
},
"bedrock_converse_supports_strict_tools": false,
@@ -3295,7 +3634,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000011,
"search_context_cost_per_query": {
@@ -3338,14 +3676,13 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000012,
"output_cost_per_token_above_272k_tokens": 0.000018,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://learn.microsoft.com/en-us/azure/ai-foundry/openai/concepts/models",
"supported_endpoints": [
@@ -3376,6 +3713,53 @@
"supports_web_search": true,
"supports_xhigh_reasoning_effort": true
},
+ "azure/apac/gpt-6.1-terra": {
+ "cache_creation_input_token_cost": 0.0000015,
+ "cache_creation_input_token_cost_above_272k_tokens": 0.000003,
+ "cache_read_input_token_cost": 6e-8,
+ "cache_read_input_token_cost_above_272k_tokens": 1.2e-7,
+ "input_cost_per_token": 0.0000012,
+ "input_cost_per_token_above_272k_tokens": 0.0000024,
+ "litellm_provider": "azure",
+ "max_input_tokens": 922000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000006,
+ "output_cost_per_token_above_272k_tokens": 0.000009,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
+ "source": "https://techcommunity.microsoft.com/blog/azure-ai-foundry-blog/gpt-6-1-terra-now-generally-available-in-microsoft-foundry-build-agents-that-see/4567769",
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/responses"
+ ],
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_max_reasoning_effort": true,
+ "supports_minimal_reasoning_effort": false,
+ "supports_native_streaming": true,
+ "supports_none_reasoning_effort": false,
+ "supports_parallel_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_web_search": true,
+ "supports_xhigh_reasoning_effort": true
+ },
"azure/chat-latest": {
"cache_read_input_token_cost": 5e-7,
"deprecation_date": "2026-12-02",
@@ -3383,7 +3767,6 @@
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00003,
"reasoning_effort_levels": [
@@ -3413,24 +3796,11 @@
"supports_vision": true,
"supports_web_search": true
},
- "azure/command-r-plus": {
- "deprecation_date": "2025-06-30",
- "input_cost_per_token": 0.000003,
- "litellm_provider": "azure",
- "max_input_tokens": 128000,
- "max_output_tokens": 4096,
- "max_tokens": 4096,
- "mode": "chat",
- "output_cost_per_token": 0.000015,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
- "supports_function_calling": true
- },
"azure/computer-use-preview": {
"input_cost_per_token": 0.000003,
"litellm_provider": "azure",
"max_input_tokens": 8192,
"max_output_tokens": 1024,
- "max_tokens": 1024,
"mode": "chat",
"output_cost_per_token": 0.000012,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
@@ -3454,9 +3824,10 @@
"supports_vision": true
},
"azure/container": {
- "code_interpreter_cost_per_session": 0.03,
+ "code_interpreter_cost_per_session": 0.033,
"litellm_provider": "azure",
- "mode": "chat"
+ "mode": "chat",
+ "source": "https://azure.microsoft.com/en-us/pricing/details/cognitive-services/openai-service/"
},
"azure/eu/computer-use-preview": {
"input_cost_per_token": 0.0000033,
@@ -3467,6 +3838,8 @@
},
"azure/eu/gpt-4.1": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.1",
"cache_read_input_token_cost": 5.5e-7,
"cache_read_input_token_cost_priority": 9.63e-7,
"input_cost_per_token": 0.0000022,
@@ -3477,10 +3850,17 @@
"output_cost_per_token": 0.0000088,
"output_cost_per_token_batches": 0.0000044,
"output_cost_per_token_priority": 0.0000154,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
"azure/eu/gpt-4.1-mini": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.4-mini",
"cache_read_input_token_cost": 1.1e-7,
"cache_read_input_token_cost_priority": 1.93e-7,
"input_cost_per_token": 4.4e-7,
@@ -3491,10 +3871,17 @@
"output_cost_per_token": 0.00000176,
"output_cost_per_token_batches": 8.8e-7,
"output_cost_per_token_priority": 0.00000308,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
"azure/eu/gpt-4.1-nano": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.4-nano",
"cache_read_input_token_cost": 2.8e-8,
"input_cost_per_token": 1.1e-7,
"input_cost_per_token_batches": 5.5e-8,
@@ -3504,14 +3891,36 @@
"output_cost_per_token_batches": 2.2e-7,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
+ "azure/eu/gpt-4o": {
+ "deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.1",
+ "cache_creation_input_token_cost": 0.00000138,
+ "cache_read_input_token_cost": 0.000001375,
+ "input_cost_per_token": 0.00000275,
+ "input_cost_per_token_batches": 0.000001375,
+ "litellm_provider": "azure",
+ "max_input_tokens": 128000,
+ "max_output_tokens": 16384,
+ "mode": "chat",
+ "output_cost_per_token": 0.000011,
+ "output_cost_per_token_batches": 0.0000055,
+ "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
"azure/eu/gpt-4o-2024-05-13": {
"deprecation_date": "2026-12-09",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.1",
"input_cost_per_token": 0.0000055,
"input_cost_per_token_batches": 0.00000275,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.0000165,
"output_cost_per_token_batches": 0.00000825,
@@ -3519,13 +3928,14 @@
},
"azure/eu/gpt-4o-2024-08-06": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.1",
"cache_read_input_token_cost": 0.000001375,
"input_cost_per_token": 0.00000275,
"input_cost_per_token_batches": 0.000001375,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.000011,
"output_cost_per_token_batches": 0.0000055,
@@ -3539,6 +3949,8 @@
},
"azure/eu/gpt-4o-2024-11-20": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.1",
"cache_creation_input_token_cost": 0.00000138,
"cache_read_input_token_cost": 0.000001375,
"input_cost_per_token": 0.00000275,
@@ -3546,7 +3958,6 @@
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.000011,
"output_cost_per_token_batches": 0.0000055,
@@ -3557,17 +3968,46 @@
"supports_tool_choice": true,
"supports_vision": true
},
+ "azure/eu/gpt-4o-mini": {
+ "cache_read_input_token_cost": 8.3e-8,
+ "deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "input_cost_per_token": 1.65e-7,
+ "input_cost_per_token_batches": 8.3e-8,
+ "litellm_provider": "azure",
+ "max_input_tokens": 128000,
+ "max_output_tokens": 16384,
+ "mode": "chat",
+ "output_cost_per_token": 6.6e-7,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
+ "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
"azure/eu/gpt-4o-mini-2024-07-18": {
"cache_read_input_token_cost": 8.3e-8,
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"input_cost_per_token": 1.65e-7,
"input_cost_per_token_batches": 8.3e-8,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 6.6e-7,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
"supports_parallel_function_calling": true,
@@ -3578,6 +4018,8 @@
},
"azure/eu/gpt-5": {
"deprecation_date": "2027-02-09",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.1",
"cache_read_input_token_cost": 1.375e-7,
"cache_read_input_token_cost_batches": 6.875e-8,
"cache_read_input_token_cost_priority": 2.75e-7,
@@ -3589,23 +4031,34 @@
"output_cost_per_token": 0.000011,
"output_cost_per_token_batches": 0.0000055,
"output_cost_per_token_priority": 0.000022,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
"azure/eu/gpt-5-2025-08-07": {
"cache_read_input_token_cost": 1.375e-7,
"cache_read_input_token_cost_priority": 2.75e-7,
"deprecation_date": "2027-02-09",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.1",
"input_cost_per_token": 0.000001375,
"input_cost_per_token_batches": 6.875e-7,
"input_cost_per_token_priority": 0.00000275,
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000011,
"output_cost_per_token_batches": 0.0000055,
"output_cost_per_token_priority": 0.000022,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
"/v1/chat/completions",
@@ -3633,6 +4086,8 @@
},
"azure/eu/gpt-5-mini": {
"deprecation_date": "2027-02-09",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.4-mini",
"cache_read_input_token_cost": 2.75e-8,
"cache_read_input_token_cost_batches": 1.375e-8,
"cache_read_input_token_cost_priority": 4.95e-8,
@@ -3644,23 +4099,34 @@
"output_cost_per_token": 0.0000022,
"output_cost_per_token_batches": 0.0000011,
"output_cost_per_token_priority": 0.00000396,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
"azure/eu/gpt-5-mini-2025-08-07": {
"cache_read_input_token_cost": 2.75e-8,
"cache_read_input_token_cost_priority": 4.95e-8,
"deprecation_date": "2027-02-09",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.4-mini",
"input_cost_per_token": 2.75e-7,
"input_cost_per_token_batches": 1.375e-7,
"input_cost_per_token_priority": 4.95e-7,
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000022,
"output_cost_per_token_batches": 0.0000011,
"output_cost_per_token_priority": 0.00000396,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
"/v1/chat/completions",
@@ -3688,6 +4154,8 @@
},
"azure/eu/gpt-5-nano": {
"deprecation_date": "2027-02-09",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.4-nano",
"cache_read_input_token_cost": 5.5e-9,
"cache_read_input_token_cost_batches": 2.75e-9,
"input_cost_per_token": 5.5e-8,
@@ -3696,20 +4164,31 @@
"mode": "chat",
"output_cost_per_token": 4.4e-7,
"output_cost_per_token_batches": 2.2e-7,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
"azure/eu/gpt-5-nano-2025-08-07": {
"cache_read_input_token_cost": 5.5e-9,
"deprecation_date": "2027-02-09",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.4-nano",
"input_cost_per_token": 5.5e-8,
"input_cost_per_token_batches": 2.75e-8,
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 4.4e-7,
"output_cost_per_token_batches": 2.2e-7,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
"/v1/chat/completions",
@@ -3737,6 +4216,8 @@
},
"azure/eu/gpt-5.1": {
"deprecation_date": "2027-05-15",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.2",
"cache_read_input_token_cost": 1.375e-7,
"cache_read_input_token_cost_batches": 6.875e-8,
"cache_read_input_token_cost_priority": 2.75e-7,
@@ -3744,7 +4225,6 @@
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000011,
"supported_endpoints": [
@@ -3776,16 +4256,22 @@
"input_cost_per_token_priority": 0.00000275,
"output_cost_per_token_batches": 0.0000055,
"output_cost_per_token_priority": 0.000022,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
"azure/eu/gpt-5.1-chat": {
"cache_read_input_token_cost": 1.375e-7,
"deprecation_date": "2026-06-29",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-chat-latest",
"input_cost_per_token": 0.000001375,
"litellm_provider": "azure",
"max_input_tokens": 111616,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.000011,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
@@ -3802,6 +4288,8 @@
},
"azure/eu/gpt-5.2": {
"deprecation_date": "2027-06-08",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.4",
"cache_read_input_token_cost": 1.925e-7,
"cache_read_input_token_cost_batches": 9.625e-8,
"cache_read_input_token_cost_priority": 3.85e-7,
@@ -3813,16 +4301,22 @@
"output_cost_per_token": 0.0000154,
"output_cost_per_token_batches": 0.0000077,
"output_cost_per_token_priority": 0.0000308,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
"azure/eu/gpt-5.2-chat": {
"cache_read_input_token_cost": 1.925e-7,
"deprecation_date": "2026-06-29",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-chat-latest",
"input_cost_per_token": 0.000001925,
"litellm_provider": "azure",
"max_input_tokens": 111616,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000154,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
@@ -3839,11 +4333,12 @@
"azure/eu/gpt-5.3-chat": {
"cache_read_input_token_cost": 1.925e-7,
"deprecation_date": "2026-06-29",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-chat-latest",
"input_cost_per_token": 0.000001925,
"litellm_provider": "azure",
"max_input_tokens": 111616,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000154,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
@@ -3859,6 +4354,8 @@
},
"azure/eu/gpt-5.4": {
"deprecation_date": "2027-09-02",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.5",
"cache_read_input_token_cost": 2.75e-7,
"cache_read_input_token_cost_above_272k_tokens": 5.5e-7,
"cache_read_input_token_cost_above_272k_tokens_batches": 2.75e-7,
@@ -3871,7 +4368,6 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"supported_endpoints": [
"/v1/chat/completions",
@@ -3912,6 +4408,8 @@
"cache_read_input_token_cost_above_272k_tokens": 5.5e-7,
"cache_read_input_token_cost_priority": 5.5e-7,
"deprecation_date": "2027-09-02",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.5",
"input_cost_per_token": 0.00000275,
"input_cost_per_token_priority": 0.0000055,
"output_cost_per_token": 0.0000165,
@@ -3919,7 +4417,6 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"supported_endpoints": [
"/v1/chat/completions",
@@ -3959,6 +4456,7 @@
},
"azure/eu/gpt-5.4-mini": {
"deprecation_date": "2027-09-21",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"cache_read_input_token_cost": 8.25e-8,
"cache_read_input_token_cost_batches": 4.125e-8,
"cache_read_input_token_cost_priority": 1.65e-7,
@@ -3970,10 +4468,16 @@
"output_cost_per_token": 0.00000495,
"output_cost_per_token_batches": 0.000002475,
"output_cost_per_token_priority": 0.0000099,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
"azure/eu/gpt-5.4-nano": {
"deprecation_date": "2027-09-21",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"cache_read_input_token_cost": 2.2e-8,
"cache_read_input_token_cost_batches": 1.1e-8,
"input_cost_per_token": 2.2e-7,
@@ -3982,10 +4486,17 @@
"mode": "chat",
"output_cost_per_token": 0.000001375,
"output_cost_per_token_batches": 6.875e-7,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
"azure/eu/gpt-5.5": {
"deprecation_date": "2027-10-26",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.6",
"cache_read_input_token_cost": 5.5e-7,
"cache_read_input_token_cost_above_272k_tokens": 0.0000011,
"cache_read_input_token_cost_above_272k_tokens_batches": 5.5e-7,
@@ -4002,14 +4513,13 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token_above_272k_tokens_batches": 0.00002475,
"output_cost_per_token_batches": 0.0000165,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
@@ -4054,12 +4564,11 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"supported_endpoints": [
"/v1/chat/completions",
@@ -4085,6 +4594,8 @@
"supports_vision": true,
"supports_web_search": true,
"deprecation_date": "2027-10-26",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.6",
"input_cost_per_token_above_272k_tokens_batches": 0.0000055,
"input_cost_per_token_batches": 0.00000275,
"output_cost_per_token_above_272k_tokens_batches": 0.00002475,
@@ -4093,6 +4604,8 @@
},
"azure/eu/gpt-5.5-2026-04-24": {
"deprecation_date": "2027-10-26",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.6",
"cache_read_input_token_cost": 5.5e-7,
"cache_read_input_token_cost_above_272k_tokens": 0.0000011,
"cache_read_input_token_cost_priority": 0.000001375,
@@ -4107,12 +4620,11 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"supported_endpoints": [
"/v1/chat/completions",
@@ -4162,16 +4674,15 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000022,
"output_cost_per_token_above_272k_tokens": 0.000033,
"output_cost_per_token_above_272k_tokens_priority": 0.000066,
"output_cost_per_token_priority": 0.000044,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"supported_endpoints": [
"/v1/chat/completions",
@@ -4210,6 +4721,8 @@
"cache_read_input_token_cost_above_272k_tokens_priority": 8.8e-8,
"cache_read_input_token_cost_priority": 4.4e-8,
"deprecation_date": "2028-01-11",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-6-luna",
"input_cost_per_token": 2.2e-7,
"input_cost_per_token_above_272k_tokens": 4.4e-7,
"input_cost_per_token_above_272k_tokens_priority": 8.8e-7,
@@ -4217,16 +4730,15 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00000132,
"output_cost_per_token_above_272k_tokens": 0.00000198,
"output_cost_per_token_above_272k_tokens_priority": 0.00000396,
"output_cost_per_token_priority": 0.00000264,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
@@ -4266,6 +4778,8 @@
"cache_read_input_token_cost_above_272k_tokens_priority": 0.00000176,
"cache_read_input_token_cost_priority": 8.8e-7,
"deprecation_date": "2028-01-11",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-6-sol",
"input_cost_per_token": 0.0000044,
"input_cost_per_token_above_272k_tokens": 0.0000088,
"input_cost_per_token_above_272k_tokens_priority": 0.0000176,
@@ -4273,16 +4787,15 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000022,
"output_cost_per_token_above_272k_tokens": 0.000033,
"output_cost_per_token_above_272k_tokens_priority": 0.000066,
"output_cost_per_token_priority": 0.000044,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
@@ -4322,6 +4835,8 @@
"cache_read_input_token_cost_above_272k_tokens_priority": 8.8e-7,
"cache_read_input_token_cost_priority": 4.4e-7,
"deprecation_date": "2028-01-11",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-6.1-terra",
"input_cost_per_token": 0.0000022,
"input_cost_per_token_above_272k_tokens": 0.0000044,
"input_cost_per_token_above_272k_tokens_priority": 0.0000088,
@@ -4329,16 +4844,15 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000132,
"output_cost_per_token_above_272k_tokens": 0.0000198,
"output_cost_per_token_above_272k_tokens_priority": 0.0000396,
"output_cost_per_token_priority": 0.0000264,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
@@ -4379,10 +4893,14 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00006,
"output_cost_per_token_above_272k_tokens": 0.00009,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://learn.microsoft.com/en-us/azure/foundry/foundry-models/concepts/models-sold-directly-by-azure",
"supported_endpoints": [
"/v1/chat/completions",
@@ -4400,7 +4918,7 @@
"supports_max_reasoning_effort": false,
"supports_minimal_reasoning_effort": false,
"supports_native_streaming": true,
- "supports_none_reasoning_effort": true,
+ "supports_none_reasoning_effort": false,
"supports_parallel_function_calling": true,
"supports_pdf_input": true,
"supports_prompt_caching": true,
@@ -4423,14 +4941,13 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 6e-7,
"output_cost_per_token_above_272k_tokens": 9e-7,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://azure.microsoft.com/en-us/blog/gpt-6-astra-sol-and-luna-for-production-agents-in-microsoft-foundry/",
"supported_endpoints": [
@@ -4472,14 +4989,13 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000012,
"output_cost_per_token_above_272k_tokens": 0.000018,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://azure.microsoft.com/en-us/blog/gpt-6-astra-sol-and-luna-for-production-agents-in-microsoft-foundry/",
"supported_endpoints": [
@@ -4521,14 +5037,13 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000012,
"output_cost_per_token_above_272k_tokens": 0.000018,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://learn.microsoft.com/en-us/azure/ai-foundry/openai/concepts/models",
"supported_endpoints": [
@@ -4559,15 +5074,81 @@
"supports_web_search": true,
"supports_xhigh_reasoning_effort": true
},
+ "azure/eu/gpt-6.1-terra": {
+ "cache_creation_input_token_cost": 0.0000015,
+ "cache_creation_input_token_cost_above_272k_tokens": 0.000003,
+ "cache_read_input_token_cost": 6e-8,
+ "cache_read_input_token_cost_above_272k_tokens": 1.2e-7,
+ "input_cost_per_token": 0.0000012,
+ "input_cost_per_token_above_272k_tokens": 0.0000024,
+ "litellm_provider": "azure",
+ "max_input_tokens": 922000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000006,
+ "output_cost_per_token_above_272k_tokens": 0.000009,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
+ "source": "https://techcommunity.microsoft.com/blog/azure-ai-foundry-blog/gpt-6-1-terra-now-generally-available-in-microsoft-foundry-build-agents-that-see/4567769",
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/responses"
+ ],
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_max_reasoning_effort": true,
+ "supports_minimal_reasoning_effort": false,
+ "supports_native_streaming": true,
+ "supports_none_reasoning_effort": false,
+ "supports_parallel_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_web_search": true,
+ "supports_xhigh_reasoning_effort": true
+ },
+ "azure/eu/o1": {
+ "cache_read_input_token_cost": 0.00000825,
+ "deprecation_date": "2026-11-19",
+ "successor_model": "azure/eu/gpt-5.6-sol",
+ "input_cost_per_token": 0.0000165,
+ "input_cost_per_token_batches": 0.00000825,
+ "litellm_provider": "azure",
+ "max_input_tokens": 200000,
+ "max_output_tokens": 100000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000066,
+ "output_cost_per_token_batches": 0.000033,
+ "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
"azure/eu/o1-2024-12-17": {
"cache_read_input_token_cost": 0.00000825,
"deprecation_date": "2026-11-19",
+ "successor_model": "azure/eu/gpt-5.6-sol",
"input_cost_per_token": 0.0000165,
"input_cost_per_token_batches": 0.00000825,
"litellm_provider": "azure",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.000066,
"output_cost_per_token_batches": 0.000033,
@@ -4595,7 +5176,6 @@
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.00000484,
"output_cost_per_token_batches": 0.00000242,
@@ -4605,38 +5185,48 @@
"supports_prompt_caching": true,
"supports_vision": false
},
- "azure/eu/o1-preview": {
- "cache_read_input_token_cost": 0.00000825,
- "deprecation_date": "2025-07-28",
- "input_cost_per_token": 0.0000165,
+ "azure/eu/o3": {
+ "deprecation_date": "2026-11-19",
+ "successor_model": "azure/eu/gpt-5.6-sol",
+ "cache_read_input_token_cost": 5.5e-7,
+ "input_cost_per_token": 0.0000022,
+ "input_cost_per_token_batches": 0.0000011,
"litellm_provider": "azure",
- "max_input_tokens": 128000,
- "max_output_tokens": 32768,
- "max_tokens": 32768,
+ "max_input_tokens": 200000,
+ "max_output_tokens": 100000,
"mode": "chat",
- "output_cost_per_token": 0.000066,
- "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
- "supported_endpoints": [
- "/v1/chat/completions"
- ],
- "supports_prompt_caching": true
+ "output_cost_per_token": 0.0000088,
+ "output_cost_per_token_batches": 0.0000044,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
+ "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
"azure/eu/o3-2025-04-16": {
"deprecation_date": "2026-11-19",
+ "successor_model": "azure/eu/gpt-5.6-sol",
"cache_read_input_token_cost": 5.5e-7,
"input_cost_per_token": 0.0000022,
"input_cost_per_token_batches": 0.0000011,
"litellm_provider": "azure",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.0000088,
"output_cost_per_token_batches": 0.0000044,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
"azure/eu/o3-deep-research": {
"deprecation_date": "2026-11-19",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.6-sol",
"cache_read_input_token_cost": 0.00000275,
"input_cost_per_token": 0.000011,
"litellm_provider": "azure",
@@ -4644,15 +5234,35 @@
"output_cost_per_token": 0.000044,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
+ "azure/eu/o3-mini": {
+ "cache_read_input_token_cost": 6.05e-7,
+ "deprecation_date": "2026-11-19",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.6-terra",
+ "input_cost_per_token": 0.00000121,
+ "input_cost_per_token_batches": 6.05e-7,
+ "litellm_provider": "azure",
+ "max_input_tokens": 200000,
+ "max_output_tokens": 100000,
+ "mode": "chat",
+ "output_cost_per_token": 0.00000484,
+ "output_cost_per_token_batches": 0.00000242,
+ "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": false
+ },
"azure/eu/o3-mini-2025-01-31": {
"cache_read_input_token_cost": 6.05e-7,
"deprecation_date": "2026-11-19",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.6-terra",
"input_cost_per_token": 0.00000121,
"input_cost_per_token_batches": 6.05e-7,
"litellm_provider": "azure",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.00000484,
"output_cost_per_token_batches": 0.00000242,
@@ -4662,29 +5272,55 @@
"supports_tool_choice": true,
"supports_vision": false
},
+ "azure/eu/o4-mini": {
+ "deprecation_date": "2026-11-19",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.6-terra",
+ "cache_read_input_token_cost": 3.03e-7,
+ "input_cost_per_token": 0.00000121,
+ "input_cost_per_token_batches": 6.05e-7,
+ "litellm_provider": "azure",
+ "max_input_tokens": 200000,
+ "max_output_tokens": 100000,
+ "mode": "chat",
+ "output_cost_per_token": 0.00000484,
+ "output_cost_per_token_batches": 0.00000242,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
+ "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
+ },
"azure/eu/o4-mini-2025-04-16": {
"deprecation_date": "2026-11-19",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/eu/gpt-5.6-terra",
"cache_read_input_token_cost": 3.03e-7,
"input_cost_per_token": 0.00000121,
"input_cost_per_token_batches": 6.05e-7,
"litellm_provider": "azure",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.00000484,
"output_cost_per_token_batches": 0.00000242,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
"azure/global-standard/gpt-4o-2024-08-06": {
"cache_read_input_token_cost": 0.00000125,
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"input_cost_per_token": 0.0000025,
"input_cost_per_token_batches": 0.00000125,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_batches": 0.000005,
@@ -4699,12 +5335,12 @@
"azure/global-standard/gpt-4o-2024-11-20": {
"cache_read_input_token_cost": 0.00000125,
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"input_cost_per_token": 0.0000025,
"input_cost_per_token_batches": 0.00000125,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_batches": 0.000005,
@@ -4717,13 +5353,18 @@
},
"azure/global-standard/gpt-4o-mini": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"input_cost_per_token": 1.5e-7,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 6e-7,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_response_schema": true,
@@ -4732,13 +5373,14 @@
},
"azure/global/gpt-4o-2024-08-06": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/global/gpt-5.1",
"cache_read_input_token_cost": 0.00000125,
"input_cost_per_token": 0.0000025,
"input_cost_per_token_batches": 0.00000125,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_batches": 0.000005,
@@ -4752,13 +5394,14 @@
},
"azure/global/gpt-4o-2024-11-20": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/global/gpt-5.1",
"cache_read_input_token_cost": 0.00000125,
"input_cost_per_token": 0.0000025,
"input_cost_per_token_batches": 0.00000125,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_batches": 0.000005,
@@ -4772,6 +5415,7 @@
},
"azure/global/gpt-5.1": {
"deprecation_date": "2027-05-15",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"cache_read_input_token_cost": 1.25e-7,
"cache_read_input_token_cost_batches": 6.25e-8,
"cache_read_input_token_cost_priority": 2.5e-7,
@@ -4779,7 +5423,6 @@
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"supported_endpoints": [
@@ -4811,6 +5454,11 @@
"input_cost_per_token_priority": 0.0000025,
"output_cost_per_token_batches": 0.000005,
"output_cost_per_token_priority": 0.00002,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
"azure/gpt-3.5-turbo": {
@@ -4818,7 +5466,6 @@
"litellm_provider": "azure",
"max_input_tokens": 4097,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"supports_function_calling": true,
@@ -4829,117 +5476,38 @@
"litellm_provider": "azure",
"max_input_tokens": 4097,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"supports_function_calling": true,
"supports_tool_choice": true
},
- "azure/gpt-35-turbo-16k": {
- "deprecation_date": "2025-04-30",
- "input_cost_per_token": 0.000003,
- "litellm_provider": "azure",
- "max_input_tokens": 16385,
- "max_output_tokens": 4096,
- "max_tokens": 4096,
- "mode": "chat",
- "output_cost_per_token": 0.000004,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/legacy-models",
- "supports_tool_choice": true
- },
- "azure/gpt-35-turbo-16k-0613": {
- "deprecation_date": "2025-04-30",
- "input_cost_per_token": 0.000003,
- "litellm_provider": "azure",
- "max_input_tokens": 16385,
- "max_output_tokens": 4096,
- "max_tokens": 4096,
- "mode": "chat",
- "output_cost_per_token": 0.000004,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/legacy-models",
- "supports_function_calling": true,
- "supports_tool_choice": true
- },
- "azure/gpt-4": {
- "deprecation_date": "2025-06-06",
- "input_cost_per_token": 0.00003,
- "litellm_provider": "azure",
- "max_input_tokens": 8192,
- "max_output_tokens": 4096,
- "max_tokens": 4096,
- "mode": "chat",
- "output_cost_per_token": 0.00006,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
- "supports_function_calling": true,
- "supports_tool_choice": true
- },
"azure/gpt-4-0125-preview": {
"input_cost_per_token": 0.00001,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.00003,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true
},
- "azure/gpt-4-0613": {
- "deprecation_date": "2025-06-06",
- "input_cost_per_token": 0.00003,
- "litellm_provider": "azure",
- "max_input_tokens": 8192,
- "max_output_tokens": 4096,
- "max_tokens": 4096,
- "mode": "chat",
- "output_cost_per_token": 0.00006,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/legacy-models",
- "supports_function_calling": true,
- "supports_tool_choice": true
- },
"azure/gpt-4-1106-preview": {
"input_cost_per_token": 0.00001,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.00003,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true
},
- "azure/gpt-4-32k": {
- "deprecation_date": "2025-06-06",
- "input_cost_per_token": 0.00006,
- "litellm_provider": "azure",
- "max_input_tokens": 32768,
- "max_output_tokens": 4096,
- "max_tokens": 4096,
- "mode": "chat",
- "output_cost_per_token": 0.00012,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/legacy-models",
- "supports_tool_choice": true
- },
- "azure/gpt-4-32k-0613": {
- "deprecation_date": "2025-06-06",
- "input_cost_per_token": 0.00006,
- "litellm_provider": "azure",
- "max_input_tokens": 32768,
- "max_output_tokens": 4096,
- "max_tokens": 4096,
- "mode": "chat",
- "output_cost_per_token": 0.00012,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/legacy-models",
- "supports_tool_choice": true
- },
"azure/gpt-4-turbo": {
"input_cost_per_token": 0.000011,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000033,
"source": "https://azure.microsoft.com/en-us/pricing/details/azure-openai/",
@@ -4952,7 +5520,6 @@
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000033,
"source": "https://azure.microsoft.com/en-us/pricing/details/azure-openai/",
@@ -4966,7 +5533,6 @@
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000033,
"source": "https://azure.microsoft.com/en-us/pricing/details/azure-openai/",
@@ -4975,6 +5541,8 @@
},
"azure/gpt-4.1": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.1",
"cache_read_input_token_cost": 5e-7,
"cache_read_input_token_cost_priority": 8.75e-7,
"input_cost_per_token": 0.000002,
@@ -4983,11 +5551,15 @@
"litellm_provider": "azure",
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000008,
"output_cost_per_token_batches": 0.000004,
"output_cost_per_token_priority": 0.000014,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
"/v1/chat/completions",
@@ -5013,6 +5585,8 @@
},
"azure/gpt-4.1-2025-04-14": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.1",
"cache_read_input_token_cost": 5e-7,
"cache_read_input_token_cost_priority": 8.75e-7,
"input_cost_per_token": 0.000002,
@@ -5021,11 +5595,15 @@
"litellm_provider": "azure",
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000008,
"output_cost_per_token_batches": 0.000004,
"output_cost_per_token_priority": 0.000014,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
"/v1/chat/completions",
@@ -5051,6 +5629,8 @@
},
"azure/gpt-4.1-mini": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.4-mini",
"cache_read_input_token_cost": 1e-7,
"cache_read_input_token_cost_priority": 1.75e-7,
"input_cost_per_token": 4e-7,
@@ -5059,11 +5639,15 @@
"litellm_provider": "azure",
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.0000016,
"output_cost_per_token_batches": 8e-7,
"output_cost_per_token_priority": 0.0000028,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
"/v1/chat/completions",
@@ -5089,6 +5673,8 @@
},
"azure/gpt-4.1-mini-2025-04-14": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.4-mini",
"cache_read_input_token_cost": 1e-7,
"cache_read_input_token_cost_priority": 1.75e-7,
"input_cost_per_token": 4e-7,
@@ -5097,11 +5683,15 @@
"litellm_provider": "azure",
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.0000016,
"output_cost_per_token_batches": 8e-7,
"output_cost_per_token_priority": 0.0000028,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
"/v1/chat/completions",
@@ -5127,13 +5717,14 @@
},
"azure/gpt-4.1-nano": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.4-nano",
"cache_read_input_token_cost": 2.5e-8,
"input_cost_per_token": 1e-7,
"input_cost_per_token_batches": 5e-8,
"litellm_provider": "azure",
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 4e-7,
"output_cost_per_token_batches": 2e-7,
@@ -5161,13 +5752,14 @@
},
"azure/gpt-4.1-nano-2025-04-14": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.4-nano",
"cache_read_input_token_cost": 2.5e-8,
"input_cost_per_token": 1e-7,
"input_cost_per_token_batches": 5e-8,
"litellm_provider": "azure",
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 4e-7,
"output_cost_per_token_batches": 2e-7,
@@ -5193,37 +5785,20 @@
"supports_tool_choice": true,
"supports_vision": true
},
- "azure/gpt-4.5-preview": {
- "cache_read_input_token_cost": 0.0000375,
- "deprecation_date": "2025-07-14",
- "input_cost_per_token": 0.000075,
- "input_cost_per_token_batches": 0.0000375,
- "litellm_provider": "azure",
- "max_input_tokens": 128000,
- "max_output_tokens": 16384,
- "max_tokens": 16384,
- "mode": "chat",
- "output_cost_per_token": 0.00015,
- "output_cost_per_token_batches": 0.000075,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/legacy-models",
- "supports_function_calling": true,
- "supports_parallel_function_calling": true,
- "supports_prompt_caching": true,
- "supports_response_schema": true,
- "supports_system_messages": true,
- "supports_tool_choice": true,
- "supports_vision": true
- },
"azure/gpt-4o": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.1",
"cache_read_input_token_cost": 0.00000125,
"input_cost_per_token": 0.0000025,
+ "input_cost_per_token_batches": 0.00000125,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00001,
+ "output_cost_per_token_batches": 0.000005,
+ "source": "https://azure.microsoft.com/en-us/pricing/details/cognitive-services/openai-service/",
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_prompt_caching": true,
@@ -5233,12 +5808,13 @@
},
"azure/gpt-4o-2024-05-13": {
"deprecation_date": "2026-12-09",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.1",
"input_cost_per_token": 0.000005,
"input_cost_per_token_batches": 0.0000025,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000015,
"output_cost_per_token_batches": 0.0000075,
@@ -5251,13 +5827,14 @@
},
"azure/gpt-4o-2024-08-06": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.1",
"cache_read_input_token_cost": 0.00000125,
"input_cost_per_token": 0.0000025,
"input_cost_per_token_batches": 0.00000125,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_batches": 0.000005,
@@ -5271,13 +5848,14 @@
},
"azure/gpt-4o-2024-11-20": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.1",
"cache_read_input_token_cost": 0.00000125,
"input_cost_per_token": 0.0000025,
"input_cost_per_token_batches": 0.00000125,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_batches": 0.000005,
@@ -5295,7 +5873,6 @@
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_audio_token": 0.00008,
"output_cost_per_token": 0.00001,
@@ -5310,6 +5887,7 @@
"text",
"audio"
],
+ "supports_audio_output": true,
"supports_function_calling": true,
"supports_native_streaming": true,
"supports_parallel_function_calling": true,
@@ -5322,14 +5900,22 @@
},
"azure/gpt-4o-mini": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"cache_read_input_token_cost": 7.5e-8,
"input_cost_per_token": 1.5e-7,
+ "input_cost_per_token_batches": 7.5e-8,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 6e-7,
+ "output_cost_per_token_batches": 3e-7,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
+ "source": "https://azure.microsoft.com/en-us/pricing/details/cognitive-services/openai-service/",
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_prompt_caching": true,
@@ -5340,15 +5926,20 @@
"azure/gpt-4o-mini-2024-07-18": {
"cache_read_input_token_cost": 7.5e-8,
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"input_cost_per_token": 1.5e-7,
"input_cost_per_token_batches": 7.5e-8,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 6e-7,
"output_cost_per_token_batches": 3e-7,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
"supports_parallel_function_calling": true,
@@ -5363,7 +5954,6 @@
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_audio_token": 0.00002,
"output_cost_per_token": 6e-7,
@@ -5379,6 +5969,7 @@
"text",
"audio"
],
+ "supports_audio_output": true,
"supports_function_calling": true,
"supports_native_streaming": true,
"supports_parallel_function_calling": true,
@@ -5391,6 +5982,8 @@
},
"azure/gpt-5": {
"deprecation_date": "2027-02-09",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.1",
"cache_read_input_token_cost": 1.25e-7,
"cache_read_input_token_cost_batches": 6.25e-8,
"cache_read_input_token_cost_priority": 2.5e-7,
@@ -5400,11 +5993,15 @@
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_batches": 0.000005,
"output_cost_per_token_priority": 0.00002,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
"/v1/chat/completions",
@@ -5433,17 +6030,23 @@
"cache_read_input_token_cost": 1.25e-7,
"cache_read_input_token_cost_priority": 2.5e-7,
"deprecation_date": "2027-02-09",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.1",
"input_cost_per_token": 0.00000125,
"input_cost_per_token_batches": 6.25e-7,
"input_cost_per_token_priority": 0.0000025,
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_batches": 0.000005,
"output_cost_per_token_priority": 0.00002,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
"/v1/chat/completions",
@@ -5472,11 +6075,12 @@
"azure/gpt-5-chat": {
"cache_read_input_token_cost": 1.25e-7,
"deprecation_date": "2026-06-29",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-chat-latest",
"input_cost_per_token": 0.00000125,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00001,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
@@ -5496,6 +6100,8 @@
},
"azure/gpt-5-mini": {
"deprecation_date": "2027-02-09",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.4-mini",
"cache_read_input_token_cost": 2.5e-8,
"cache_read_input_token_cost_batches": 1.25e-8,
"cache_read_input_token_cost_priority": 4.5e-8,
@@ -5505,11 +6111,15 @@
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000002,
"output_cost_per_token_batches": 0.000001,
"output_cost_per_token_priority": 0.0000036,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
"/v1/chat/completions",
@@ -5538,17 +6148,23 @@
"cache_read_input_token_cost": 2.5e-8,
"cache_read_input_token_cost_priority": 4.5e-8,
"deprecation_date": "2027-02-09",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.4-mini",
"input_cost_per_token": 2.5e-7,
"input_cost_per_token_batches": 1.25e-7,
"input_cost_per_token_priority": 4.5e-7,
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000002,
"output_cost_per_token_batches": 0.000001,
"output_cost_per_token_priority": 0.0000036,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
"/v1/chat/completions",
@@ -5576,6 +6192,8 @@
},
"azure/gpt-5-nano": {
"deprecation_date": "2027-02-09",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.4-nano",
"cache_read_input_token_cost": 5e-9,
"cache_read_input_token_cost_batches": 2.5e-9,
"input_cost_per_token": 5e-8,
@@ -5583,10 +6201,14 @@
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 4e-7,
"output_cost_per_token_batches": 2e-7,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
"/v1/chat/completions",
@@ -5614,15 +6236,21 @@
"azure/gpt-5-nano-2025-08-07": {
"cache_read_input_token_cost": 5e-9,
"deprecation_date": "2027-02-09",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.4-nano",
"input_cost_per_token": 5e-8,
"input_cost_per_token_batches": 2.5e-8,
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 4e-7,
"output_cost_per_token_batches": 2e-7,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
"/v1/chat/completions",
@@ -5650,6 +6278,8 @@
},
"azure/gpt-5.1": {
"deprecation_date": "2027-05-15",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.2",
"cache_read_input_token_cost": 1.25e-7,
"cache_read_input_token_cost_batches": 6.25e-8,
"cache_read_input_token_cost_priority": 2.5e-7,
@@ -5657,7 +6287,6 @@
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"supported_endpoints": [
@@ -5689,18 +6318,24 @@
"input_cost_per_token_priority": 0.0000025,
"output_cost_per_token_batches": 0.000005,
"output_cost_per_token_priority": 0.00002,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
"azure/gpt-5.1-2025-11-13": {
"cache_read_input_token_cost": 1.25e-7,
"cache_read_input_token_cost_priority": 2.5e-7,
"deprecation_date": "2027-05-15",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.2",
"input_cost_per_token": 0.00000125,
"input_cost_per_token_priority": 0.0000025,
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_priority": 0.00002,
@@ -5730,6 +6365,11 @@
"default_reasoning_effort": "none",
"input_cost_per_token_batches": 6.25e-7,
"output_cost_per_token_batches": 0.000005,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_minimal_reasoning_effort": true,
"cache_read_input_token_cost_batches": 6.25e-8
@@ -5737,11 +6377,12 @@
"azure/gpt-5.1-chat": {
"cache_read_input_token_cost": 1.25e-7,
"deprecation_date": "2026-06-29",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-chat-latest",
"input_cost_per_token": 0.00000125,
"litellm_provider": "azure",
"max_input_tokens": 111616,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00001,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
@@ -5758,6 +6399,8 @@
},
"azure/gpt-5.2": {
"deprecation_date": "2027-06-08",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.4",
"cache_read_input_token_cost": 1.75e-7,
"cache_read_input_token_cost_batches": 8.75e-8,
"cache_read_input_token_cost_priority": 3.5e-7,
@@ -5767,11 +6410,15 @@
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000014,
"output_cost_per_token_batches": 0.000007,
"output_cost_per_token_priority": 0.000028,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
"/v1/chat/completions",
@@ -5801,17 +6448,23 @@
"cache_read_input_token_cost": 1.75e-7,
"cache_read_input_token_cost_priority": 3.5e-7,
"deprecation_date": "2027-06-08",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.4",
"input_cost_per_token": 0.00000175,
"input_cost_per_token_batches": 8.75e-7,
"input_cost_per_token_priority": 0.0000035,
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000014,
"output_cost_per_token_batches": 0.000007,
"output_cost_per_token_priority": 0.000028,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
"/v1/chat/completions",
@@ -5841,11 +6494,12 @@
"azure/gpt-5.2-chat": {
"cache_read_input_token_cost": 1.75e-7,
"deprecation_date": "2026-06-29",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-chat-latest",
"input_cost_per_token": 0.00000175,
"litellm_provider": "azure",
"max_input_tokens": 111616,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.000014,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
@@ -5862,11 +6516,12 @@
"azure/gpt-5.3-chat": {
"cache_read_input_token_cost": 1.75e-7,
"deprecation_date": "2026-06-29",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-chat-latest",
"input_cost_per_token": 0.00000175,
"litellm_provider": "azure",
"max_input_tokens": 111616,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.000014,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
@@ -5882,6 +6537,8 @@
},
"azure/gpt-5.4": {
"deprecation_date": "2027-09-02",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.5",
"cache_read_input_token_cost": 2.5e-7,
"cache_read_input_token_cost_above_272k_tokens": 5e-7,
"cache_read_input_token_cost_above_272k_tokens_batches": 2.5e-7,
@@ -5896,7 +6553,6 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"output_cost_per_token_above_272k_tokens": 0.0000225,
@@ -5945,6 +6601,8 @@
"cache_read_input_token_cost_priority": 5e-7,
"cache_read_input_token_cost_above_272k_tokens_priority": 0.000001,
"deprecation_date": "2027-09-02",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.5",
"input_cost_per_token": 0.0000025,
"input_cost_per_token_above_272k_tokens": 0.000005,
"input_cost_per_token_priority": 0.000005,
@@ -5952,7 +6610,6 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"output_cost_per_token_above_272k_tokens": 0.0000225,
@@ -5998,6 +6655,7 @@
},
"azure/gpt-5.4-mini": {
"deprecation_date": "2027-09-21",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"cache_read_input_token_cost": 7.5e-8,
"cache_read_input_token_cost_batches": 3.75e-8,
"cache_read_input_token_cost_flex": 3.75e-8,
@@ -6006,13 +6664,12 @@
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000045,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"supported_endpoints": [
"/v1/chat/completions",
@@ -6053,17 +6710,17 @@
"cache_read_input_token_cost_flex": 3.75e-8,
"cache_read_input_token_cost_priority": 1.5e-7,
"deprecation_date": "2027-09-21",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"input_cost_per_token": 7.5e-7,
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000045,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"supported_endpoints": [
"/v1/chat/completions",
@@ -6102,6 +6759,7 @@
},
"azure/gpt-5.4-nano": {
"deprecation_date": "2027-09-21",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"cache_read_input_token_cost": 2e-8,
"cache_read_input_token_cost_batches": 1e-8,
"cache_read_input_token_cost_flex": 1e-8,
@@ -6109,13 +6767,12 @@
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00000125,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"supported_endpoints": [
"/v1/chat/completions",
@@ -6153,17 +6810,17 @@
"cache_read_input_token_cost": 2e-8,
"cache_read_input_token_cost_flex": 1e-8,
"deprecation_date": "2027-09-21",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"input_cost_per_token": 2e-7,
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00000125,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"supported_endpoints": [
"/v1/chat/completions",
@@ -6200,6 +6857,8 @@
},
"azure/gpt-5.5": {
"deprecation_date": "2027-10-26",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.6",
"cache_read_input_token_cost": 5e-7,
"cache_read_input_token_cost_above_272k_tokens": 0.000001,
"cache_read_input_token_cost_above_272k_tokens_batches": 5e-7,
@@ -6218,7 +6877,6 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00003,
"output_cost_per_token_above_272k_tokens": 0.000045,
@@ -6227,9 +6885,9 @@
"output_cost_per_token_above_272k_tokens_priority": 0.00009,
"output_cost_per_token_batches": 0.000015,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
@@ -6274,16 +6932,15 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00003,
"output_cost_per_token_above_272k_tokens": 0.000045,
"output_cost_per_token_priority": 0.000075,
"output_cost_per_token_above_272k_tokens_priority": 0.00009,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"supported_endpoints": [
"/v1/chat/completions",
@@ -6309,6 +6966,8 @@
"supports_vision": true,
"supports_web_search": true,
"deprecation_date": "2027-10-26",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.6",
"input_cost_per_token_above_272k_tokens_batches": 0.000005,
"input_cost_per_token_above_272k_tokens_flex": 0.000005,
"input_cost_per_token_batches": 0.0000025,
@@ -6319,6 +6978,8 @@
},
"azure/gpt-5.5-2026-04-24": {
"deprecation_date": "2027-10-26",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.6",
"cache_read_input_token_cost": 5e-7,
"cache_read_input_token_cost_above_272k_tokens": 0.000001,
"cache_read_input_token_cost_priority": 0.00000125,
@@ -6334,7 +6995,6 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00003,
"output_cost_per_token_batches": 0.000015,
@@ -6342,9 +7002,9 @@
"output_cost_per_token_priority": 0.000075,
"output_cost_per_token_above_272k_tokens_priority": 0.00009,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"supported_endpoints": [
"/v1/chat/completions",
@@ -6394,16 +7054,15 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00002,
"output_cost_per_token_above_272k_tokens": 0.00003,
"output_cost_per_token_priority": 0.00004,
"output_cost_per_token_above_272k_tokens_priority": 0.00006,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"supported_endpoints": [
"/v1/chat/completions",
@@ -6446,6 +7105,8 @@
"cache_read_input_token_cost_above_272k_tokens_priority": 8e-8,
"cache_read_input_token_cost_flex": 1e-8,
"deprecation_date": "2028-01-11",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-6-luna",
"input_cost_per_token": 2e-7,
"input_cost_per_token_above_272k_tokens": 4e-7,
"input_cost_per_token_above_272k_tokens_flex": 2e-7,
@@ -6455,7 +7116,6 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"output_cost_per_token_above_272k_tokens": 0.0000018,
@@ -6464,9 +7124,9 @@
"output_cost_per_token_above_272k_tokens_priority": 0.0000036,
"output_cost_per_token_flex": 6e-7,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
@@ -6510,6 +7170,8 @@
"cache_read_input_token_cost_above_272k_tokens_priority": 8e-8,
"cache_read_input_token_cost_flex": 1e-8,
"deprecation_date": "2028-01-11",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-6-luna",
"input_cost_per_token": 2e-7,
"input_cost_per_token_above_272k_tokens": 4e-7,
"input_cost_per_token_above_272k_tokens_flex": 2e-7,
@@ -6519,7 +7181,6 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"output_cost_per_token_above_272k_tokens": 0.0000018,
@@ -6528,9 +7189,9 @@
"output_cost_per_token_above_272k_tokens_priority": 0.0000036,
"output_cost_per_token_flex": 6e-7,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"supported_endpoints": [
"/v1/chat/completions",
@@ -6574,6 +7235,8 @@
"cache_read_input_token_cost_above_272k_tokens_priority": 0.0000016,
"cache_read_input_token_cost_flex": 2e-7,
"deprecation_date": "2028-01-11",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-6-sol",
"input_cost_per_token": 0.000004,
"input_cost_per_token_above_272k_tokens": 0.000008,
"input_cost_per_token_above_272k_tokens_flex": 0.000004,
@@ -6583,7 +7246,6 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00002,
"output_cost_per_token_above_272k_tokens": 0.00003,
@@ -6592,9 +7254,9 @@
"output_cost_per_token_above_272k_tokens_priority": 0.00006,
"output_cost_per_token_flex": 0.00001,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
@@ -6638,6 +7300,8 @@
"cache_read_input_token_cost_above_272k_tokens_priority": 0.0000016,
"cache_read_input_token_cost_flex": 2e-7,
"deprecation_date": "2028-01-11",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-6-sol",
"input_cost_per_token": 0.000004,
"input_cost_per_token_above_272k_tokens": 0.000008,
"input_cost_per_token_above_272k_tokens_flex": 0.000004,
@@ -6647,7 +7311,6 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00002,
"output_cost_per_token_above_272k_tokens": 0.00003,
@@ -6656,9 +7319,9 @@
"output_cost_per_token_above_272k_tokens_priority": 0.00006,
"output_cost_per_token_flex": 0.00001,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
@@ -6702,6 +7365,8 @@
"cache_read_input_token_cost_above_272k_tokens_priority": 8e-7,
"cache_read_input_token_cost_flex": 1e-7,
"deprecation_date": "2028-01-11",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-6.1-terra",
"input_cost_per_token": 0.000002,
"input_cost_per_token_above_272k_tokens": 0.000004,
"input_cost_per_token_above_272k_tokens_flex": 0.000002,
@@ -6711,7 +7376,6 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000012,
"output_cost_per_token_above_272k_tokens": 0.000018,
@@ -6720,9 +7384,9 @@
"output_cost_per_token_above_272k_tokens_priority": 0.000036,
"output_cost_per_token_flex": 0.000006,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
@@ -6766,6 +7430,8 @@
"cache_read_input_token_cost_above_272k_tokens_priority": 8e-7,
"cache_read_input_token_cost_flex": 1e-7,
"deprecation_date": "2028-01-11",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-6.1-terra",
"input_cost_per_token": 0.000002,
"input_cost_per_token_above_272k_tokens": 0.000004,
"input_cost_per_token_above_272k_tokens_flex": 0.000002,
@@ -6775,7 +7441,6 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000012,
"output_cost_per_token_above_272k_tokens": 0.000018,
@@ -6784,9 +7449,9 @@
"output_cost_per_token_above_272k_tokens_priority": 0.000036,
"output_cost_per_token_flex": 0.000006,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
@@ -6827,16 +7492,15 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00005,
"output_cost_per_token_above_272k_tokens": 0.000075,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
- "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
+ "source": "https://azure.microsoft.com/en-us/pricing/details/cognitive-services/openai-service/",
"supported_endpoints": [
"/v1/chat/completions",
"/v1/responses"
@@ -6853,7 +7517,7 @@
"supports_max_reasoning_effort": false,
"supports_minimal_reasoning_effort": false,
"supports_native_streaming": true,
- "supports_none_reasoning_effort": true,
+ "supports_none_reasoning_effort": false,
"supports_parallel_function_calling": true,
"supports_pdf_input": true,
"supports_prompt_caching": true,
@@ -6863,7 +7527,11 @@
"supports_tool_choice": true,
"supports_vision": true,
"supports_web_search": true,
- "supports_xhigh_reasoning_effort": true
+ "supports_xhigh_reasoning_effort": true,
+ "cache_creation_input_token_cost_above_272k_tokens_flex": 0.0000125,
+ "cache_read_input_token_cost_above_272k_tokens_flex": 0.000001,
+ "input_cost_per_token_above_272k_tokens_flex": 0.00001,
+ "output_cost_per_token_above_272k_tokens_flex": 0.0000375
},
"azure/gpt-6-astra-2026-09-03": {
"cache_creation_input_token_cost": 0.0000125,
@@ -6876,16 +7544,15 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00005,
"output_cost_per_token_above_272k_tokens": 0.000075,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
- "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
+ "source": "https://azure.microsoft.com/en-us/pricing/details/cognitive-services/openai-service/",
"supported_endpoints": [
"/v1/chat/completions",
"/v1/responses"
@@ -6902,7 +7569,7 @@
"supports_max_reasoning_effort": false,
"supports_minimal_reasoning_effort": false,
"supports_native_streaming": true,
- "supports_none_reasoning_effort": true,
+ "supports_none_reasoning_effort": false,
"supports_parallel_function_calling": true,
"supports_pdf_input": true,
"supports_prompt_caching": true,
@@ -6912,7 +7579,11 @@
"supports_tool_choice": true,
"supports_vision": true,
"supports_web_search": true,
- "supports_xhigh_reasoning_effort": true
+ "supports_xhigh_reasoning_effort": true,
+ "cache_creation_input_token_cost_above_272k_tokens_flex": 0.0000125,
+ "cache_read_input_token_cost_above_272k_tokens_flex": 0.000001,
+ "input_cost_per_token_above_272k_tokens_flex": 0.00001,
+ "output_cost_per_token_above_272k_tokens_flex": 0.0000375
},
"azure/gpt-6-luna": {
"cache_creation_input_token_cost": 1.25e-7,
@@ -6925,14 +7596,13 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 5e-7,
"output_cost_per_token_above_272k_tokens": 7.5e-7,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://azure.microsoft.com/en-us/blog/gpt-6-astra-sol-and-luna-for-production-agents-in-microsoft-foundry/",
"supported_endpoints": [
@@ -6974,14 +7644,13 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 5e-7,
"output_cost_per_token_above_272k_tokens": 7.5e-7,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://azure.microsoft.com/en-us/blog/gpt-6-astra-sol-and-luna-for-production-agents-in-microsoft-foundry/",
"supported_endpoints": [
@@ -7029,16 +7698,15 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_above_272k_tokens": 0.000015,
"output_cost_per_token_above_272k_tokens_priority": 0.00003,
"output_cost_per_token_priority": 0.00002,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://azure.microsoft.com/en-us/blog/gpt-6-astra-sol-and-luna-for-production-agents-in-microsoft-foundry/",
"supported_endpoints": [
@@ -7086,16 +7754,15 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_above_272k_tokens": 0.000015,
"output_cost_per_token_above_272k_tokens_priority": 0.00003,
"output_cost_per_token_priority": 0.00002,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://azure.microsoft.com/en-us/blog/gpt-6-astra-sol-and-luna-for-production-agents-in-microsoft-foundry/",
"supported_endpoints": [
@@ -7137,14 +7804,13 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_above_272k_tokens": 0.000015,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://learn.microsoft.com/en-us/azure/ai-foundry/openai/concepts/models",
"supported_endpoints": [
@@ -7186,14 +7852,13 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_above_272k_tokens": 0.000015,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://learn.microsoft.com/en-us/azure/ai-foundry/openai/concepts/models",
"supported_endpoints": [
@@ -7224,14 +7889,61 @@
"supports_web_search": true,
"supports_xhigh_reasoning_effort": true
},
+ "azure/gpt-6.1-terra": {
+ "cache_creation_input_token_cost": 0.00000125,
+ "cache_creation_input_token_cost_above_272k_tokens": 0.0000025,
+ "cache_read_input_token_cost": 5e-8,
+ "cache_read_input_token_cost_above_272k_tokens": 1e-7,
+ "input_cost_per_token": 0.000001,
+ "input_cost_per_token_above_272k_tokens": 0.000002,
+ "litellm_provider": "azure",
+ "max_input_tokens": 922000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000005,
+ "output_cost_per_token_above_272k_tokens": 0.0000075,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
+ "source": "https://techcommunity.microsoft.com/blog/azure-ai-foundry-blog/gpt-6-1-terra-now-generally-available-in-microsoft-foundry-build-agents-that-see/4567769",
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/responses"
+ ],
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_max_reasoning_effort": true,
+ "supports_minimal_reasoning_effort": false,
+ "supports_native_streaming": true,
+ "supports_none_reasoning_effort": false,
+ "supports_parallel_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_web_search": true,
+ "supports_xhigh_reasoning_effort": true
+ },
"azure/gpt-audio": {
"deprecation_date": "2027-03-02",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"input_cost_per_audio_token": 0.00004,
"input_cost_per_token": 0.0000025,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_audio_token": 0.00008,
"output_cost_per_token": 0.00001,
@@ -7246,6 +7958,7 @@
"text",
"audio"
],
+ "supports_audio_output": true,
"supports_function_calling": true,
"supports_native_streaming": true,
"supports_parallel_function_calling": true,
@@ -7259,12 +7972,12 @@
},
"azure/gpt-audio-1.5": {
"deprecation_date": "2027-08-24",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"input_cost_per_audio_token": 0.000032,
"input_cost_per_token": 0.0000025,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_audio_token": 0.000064,
"output_cost_per_token": 0.00001,
@@ -7279,6 +7992,7 @@
"text",
"audio"
],
+ "supports_audio_output": true,
"supports_function_calling": true,
"supports_native_streaming": true,
"supports_parallel_function_calling": true,
@@ -7292,12 +8006,12 @@
},
"azure/gpt-audio-1.5-2026-02-23": {
"deprecation_date": "2027-08-24",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"input_cost_per_audio_token": 0.000032,
"input_cost_per_token": 0.0000025,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_audio_token": 0.000064,
"output_cost_per_token": 0.00001,
@@ -7313,6 +8027,8 @@
"text",
"audio"
],
+ "supports_audio_input": true,
+ "supports_audio_output": true,
"supports_function_calling": true,
"supports_native_streaming": true,
"supports_parallel_function_calling": true,
@@ -7325,12 +8041,12 @@
},
"azure/gpt-audio-2025-08-28": {
"deprecation_date": "2027-03-02",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"input_cost_per_audio_token": 0.00004,
"input_cost_per_token": 0.0000025,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_audio_token": 0.00008,
"output_cost_per_token": 0.00001,
@@ -7345,6 +8061,7 @@
"text",
"audio"
],
+ "supports_audio_output": true,
"supports_function_calling": true,
"supports_native_streaming": true,
"supports_parallel_function_calling": true,
@@ -7357,12 +8074,12 @@
},
"azure/gpt-audio-mini": {
"deprecation_date": "2027-06-15",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"input_cost_per_audio_token": 0.00001,
"input_cost_per_token": 6e-7,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_audio_token": 0.00002,
"output_cost_per_token": 0.0000024,
@@ -7377,6 +8094,7 @@
"text",
"audio"
],
+ "supports_audio_output": true,
"supports_function_calling": true,
"supports_native_streaming": true,
"supports_parallel_function_calling": true,
@@ -7389,12 +8107,12 @@
},
"azure/gpt-audio-mini-2025-10-06": {
"deprecation_date": "2027-04-06",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"input_cost_per_audio_token": 0.00001,
"input_cost_per_token": 6e-7,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_audio_token": 0.00002,
"output_cost_per_token": 0.0000024,
@@ -7409,6 +8127,8 @@
"text",
"audio"
],
+ "supports_audio_input": true,
+ "supports_audio_output": true,
"supports_function_calling": true,
"supports_native_streaming": true,
"supports_parallel_function_calling": true,
@@ -7422,11 +8142,11 @@
"azure/gpt-chat-latest": {
"cache_read_input_token_cost": 5e-7,
"deprecation_date": "2027-05-18",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"input_cost_per_token": 0.000005,
"litellm_provider": "azure",
- "max_input_tokens": 272000,
+ "max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00003,
"reasoning_effort_levels": [
@@ -7460,7 +8180,7 @@
"input_cost_per_token": 0.000008,
"litellm_provider": "azure",
"max_input_tokens": 32000,
- "max_tokens": 32000,
+ "max_output_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.000024,
"supports_function_calling": true
@@ -7469,7 +8189,7 @@
"input_cost_per_token": 0.000008,
"litellm_provider": "azure",
"max_input_tokens": 32000,
- "max_tokens": 32000,
+ "max_output_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.000024,
"supports_function_calling": true
@@ -7477,11 +8197,11 @@
"azure/model-router": {
"comment": "The flat $0.14 per M input tokens is the router's own fee, the routed model is priced on top of it",
"deprecation_date": "2027-05-20",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"input_cost_per_token": 1.4e-7,
"litellm_provider": "azure",
"max_input_tokens": 200000,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://azure.microsoft.com/en-us/pricing/details/ai-foundry-models/model-router/",
@@ -7489,12 +8209,12 @@
},
"azure/o1": {
"deprecation_date": "2026-11-19",
+ "successor_model": "azure/gpt-5.6-sol",
"cache_read_input_token_cost": 0.0000075,
"input_cost_per_token": 0.000015,
"litellm_provider": "azure",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.00006,
"supports_function_calling": true,
@@ -7507,12 +8227,12 @@
"azure/o1-2024-12-17": {
"cache_read_input_token_cost": 0.0000075,
"deprecation_date": "2026-11-19",
+ "successor_model": "azure/gpt-5.6-sol",
"input_cost_per_token": 0.000015,
"input_cost_per_token_batches": 0.0000075,
"litellm_provider": "azure",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.00006,
"output_cost_per_token_batches": 0.00003,
@@ -7531,7 +8251,6 @@
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"output_cost_per_token_batches": 0.0000022,
@@ -7549,7 +8268,6 @@
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"output_cost_per_token_batches": 0.0000022,
@@ -7562,14 +8280,22 @@
},
"azure/o3": {
"deprecation_date": "2026-11-19",
+ "successor_model": "azure/gpt-5.6-sol",
"cache_read_input_token_cost": 5e-7,
"input_cost_per_token": 0.000002,
+ "input_cost_per_token_batches": 0.000001,
"litellm_provider": "azure",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.000008,
+ "output_cost_per_token_batches": 0.000004,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
+ "source": "https://azure.microsoft.com/en-us/pricing/details/cognitive-services/openai-service/",
"supported_endpoints": [
"/v1/chat/completions",
"/v1/batch",
@@ -7592,16 +8318,21 @@
},
"azure/o3-2025-04-16": {
"deprecation_date": "2026-11-19",
+ "successor_model": "azure/gpt-5.6-sol",
"cache_read_input_token_cost": 5e-7,
"input_cost_per_token": 0.000002,
"input_cost_per_token_batches": 0.000001,
"litellm_provider": "azure",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.000008,
"output_cost_per_token_batches": 0.000004,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
"/v1/chat/completions",
@@ -7625,14 +8356,18 @@
},
"azure/o3-mini": {
"deprecation_date": "2026-11-19",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.6-terra",
"cache_read_input_token_cost": 5.5e-7,
"input_cost_per_token": 0.0000011,
+ "input_cost_per_token_batches": 5.5e-7,
"litellm_provider": "azure",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.0000044,
+ "output_cost_per_token_batches": 0.0000022,
+ "source": "https://azure.microsoft.com/en-us/pricing/details/cognitive-services/openai-service/",
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
@@ -7642,12 +8377,13 @@
"azure/o3-mini-2025-01-31": {
"cache_read_input_token_cost": 5.5e-7,
"deprecation_date": "2026-11-19",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.6-terra",
"input_cost_per_token": 0.0000011,
"input_cost_per_token_batches": 5.5e-7,
"litellm_provider": "azure",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"output_cost_per_token_batches": 0.0000022,
@@ -7659,14 +8395,23 @@
},
"azure/o4-mini": {
"deprecation_date": "2026-11-19",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.6-terra",
"cache_read_input_token_cost": 2.75e-7,
"input_cost_per_token": 0.0000011,
+ "input_cost_per_token_batches": 5.5e-7,
"litellm_provider": "azure",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.0000044,
+ "output_cost_per_token_batches": 0.0000022,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
+ "source": "https://azure.microsoft.com/en-us/pricing/details/cognitive-services/openai-service/",
"supported_endpoints": [
"/v1/chat/completions",
"/v1/batch",
@@ -7690,15 +8435,21 @@
"azure/o4-mini-2025-04-16": {
"cache_read_input_token_cost": 2.75e-7,
"deprecation_date": "2026-11-19",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/gpt-5.6-terra",
"input_cost_per_token": 0.0000011,
"input_cost_per_token_batches": 5.5e-7,
"litellm_provider": "azure",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"output_cost_per_token_batches": 0.0000022,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
"supports_parallel_function_calling": false,
@@ -7715,7 +8466,6 @@
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001375,
"supported_endpoints": [
@@ -7749,7 +8499,6 @@
"litellm_provider": "azure",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.00000605,
"supports_prompt_caching": true,
@@ -7767,6 +8516,8 @@
},
"azure/us/gpt-4.1": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.1",
"cache_read_input_token_cost": 5.5e-7,
"cache_read_input_token_cost_priority": 9.63e-7,
"input_cost_per_token": 0.0000022,
@@ -7777,10 +8528,17 @@
"output_cost_per_token": 0.0000088,
"output_cost_per_token_batches": 0.0000044,
"output_cost_per_token_priority": 0.0000154,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
"azure/us/gpt-4.1-2025-04-14": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.1",
"cache_read_input_token_cost": 5.5e-7,
"cache_read_input_token_cost_priority": 9.63e-7,
"input_cost_per_token": 0.0000022,
@@ -7789,11 +8547,15 @@
"litellm_provider": "azure",
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.0000088,
"output_cost_per_token_batches": 0.0000044,
"output_cost_per_token_priority": 0.0000154,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
"/v1/chat/completions",
@@ -7819,6 +8581,8 @@
},
"azure/us/gpt-4.1-mini": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.4-mini",
"cache_read_input_token_cost": 1.1e-7,
"cache_read_input_token_cost_priority": 1.93e-7,
"input_cost_per_token": 4.4e-7,
@@ -7829,10 +8593,17 @@
"output_cost_per_token": 0.00000176,
"output_cost_per_token_batches": 8.8e-7,
"output_cost_per_token_priority": 0.00000308,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
"azure/us/gpt-4.1-mini-2025-04-14": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.4-mini",
"cache_read_input_token_cost": 1.1e-7,
"cache_read_input_token_cost_priority": 1.93e-7,
"input_cost_per_token": 4.4e-7,
@@ -7841,11 +8612,15 @@
"litellm_provider": "azure",
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.00000176,
"output_cost_per_token_batches": 8.8e-7,
"output_cost_per_token_priority": 0.00000308,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
"/v1/chat/completions",
@@ -7871,6 +8646,8 @@
},
"azure/us/gpt-4.1-nano": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.4-nano",
"cache_read_input_token_cost": 2.8e-8,
"input_cost_per_token": 1.1e-7,
"input_cost_per_token_batches": 5.5e-8,
@@ -7882,13 +8659,14 @@
},
"azure/us/gpt-4.1-nano-2025-04-14": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.4-nano",
"cache_read_input_token_cost": 2.8e-8,
"input_cost_per_token": 1.1e-7,
"input_cost_per_token_batches": 5.5e-8,
"litellm_provider": "azure",
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 4.4e-7,
"output_cost_per_token_batches": 2.2e-7,
@@ -7914,14 +8692,36 @@
"supports_tool_choice": true,
"supports_vision": true
},
+ "azure/us/gpt-4o": {
+ "deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.1",
+ "cache_creation_input_token_cost": 0.00000138,
+ "cache_read_input_token_cost": 0.000001375,
+ "input_cost_per_token": 0.00000275,
+ "input_cost_per_token_batches": 0.000001375,
+ "litellm_provider": "azure",
+ "max_input_tokens": 128000,
+ "max_output_tokens": 16384,
+ "mode": "chat",
+ "output_cost_per_token": 0.000011,
+ "output_cost_per_token_batches": 0.0000055,
+ "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
"azure/us/gpt-4o-2024-05-13": {
"deprecation_date": "2026-12-09",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.1",
"input_cost_per_token": 0.0000055,
"input_cost_per_token_batches": 0.00000275,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.0000165,
"output_cost_per_token_batches": 0.00000825,
@@ -7929,13 +8729,14 @@
},
"azure/us/gpt-4o-2024-08-06": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.1",
"cache_read_input_token_cost": 0.000001375,
"input_cost_per_token": 0.00000275,
"input_cost_per_token_batches": 0.000001375,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.000011,
"output_cost_per_token_batches": 0.0000055,
@@ -7949,6 +8750,8 @@
},
"azure/us/gpt-4o-2024-11-20": {
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.1",
"cache_creation_input_token_cost": 0.00000138,
"cache_read_input_token_cost": 0.000001375,
"input_cost_per_token": 0.00000275,
@@ -7956,7 +8759,6 @@
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.000011,
"output_cost_per_token_batches": 0.0000055,
@@ -7967,17 +8769,46 @@
"supports_tool_choice": true,
"supports_vision": true
},
+ "azure/us/gpt-4o-mini": {
+ "cache_read_input_token_cost": 8.3e-8,
+ "deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "input_cost_per_token": 1.65e-7,
+ "input_cost_per_token_batches": 8.3e-8,
+ "litellm_provider": "azure",
+ "max_input_tokens": 128000,
+ "max_output_tokens": 16384,
+ "mode": "chat",
+ "output_cost_per_token": 6.6e-7,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
+ "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
"azure/us/gpt-4o-mini-2024-07-18": {
"cache_read_input_token_cost": 8.3e-8,
"deprecation_date": "2027-04-14",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"input_cost_per_token": 1.65e-7,
"input_cost_per_token_batches": 8.3e-8,
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 6.6e-7,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
"supports_parallel_function_calling": true,
@@ -7988,6 +8819,8 @@
},
"azure/us/gpt-5": {
"deprecation_date": "2027-02-09",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.1",
"cache_read_input_token_cost": 1.375e-7,
"cache_read_input_token_cost_batches": 6.875e-8,
"cache_read_input_token_cost_priority": 2.75e-7,
@@ -7999,23 +8832,34 @@
"output_cost_per_token": 0.000011,
"output_cost_per_token_batches": 0.0000055,
"output_cost_per_token_priority": 0.000022,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
"azure/us/gpt-5-2025-08-07": {
"cache_read_input_token_cost": 1.375e-7,
"cache_read_input_token_cost_priority": 2.75e-7,
"deprecation_date": "2027-02-09",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.1",
"input_cost_per_token": 0.000001375,
"input_cost_per_token_batches": 6.875e-7,
"input_cost_per_token_priority": 0.00000275,
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000011,
"output_cost_per_token_batches": 0.0000055,
"output_cost_per_token_priority": 0.000022,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
"/v1/chat/completions",
@@ -8043,6 +8887,8 @@
},
"azure/us/gpt-5-mini": {
"deprecation_date": "2027-02-09",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.4-mini",
"cache_read_input_token_cost": 2.75e-8,
"cache_read_input_token_cost_batches": 1.375e-8,
"cache_read_input_token_cost_priority": 4.95e-8,
@@ -8054,23 +8900,34 @@
"output_cost_per_token": 0.0000022,
"output_cost_per_token_batches": 0.0000011,
"output_cost_per_token_priority": 0.00000396,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
"azure/us/gpt-5-mini-2025-08-07": {
"cache_read_input_token_cost": 2.75e-8,
"cache_read_input_token_cost_priority": 4.95e-8,
"deprecation_date": "2027-02-09",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.4-mini",
"input_cost_per_token": 2.75e-7,
"input_cost_per_token_batches": 1.375e-7,
"input_cost_per_token_priority": 4.95e-7,
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000022,
"output_cost_per_token_batches": 0.0000011,
"output_cost_per_token_priority": 0.00000396,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
"/v1/chat/completions",
@@ -8098,6 +8955,8 @@
},
"azure/us/gpt-5-nano": {
"deprecation_date": "2027-02-09",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.4-nano",
"cache_read_input_token_cost": 5.5e-9,
"cache_read_input_token_cost_batches": 2.75e-9,
"input_cost_per_token": 5.5e-8,
@@ -8106,20 +8965,31 @@
"mode": "chat",
"output_cost_per_token": 4.4e-7,
"output_cost_per_token_batches": 2.2e-7,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
"azure/us/gpt-5-nano-2025-08-07": {
"cache_read_input_token_cost": 5.5e-9,
"deprecation_date": "2027-02-09",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.4-nano",
"input_cost_per_token": 5.5e-8,
"input_cost_per_token_batches": 2.75e-8,
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 4.4e-7,
"output_cost_per_token_batches": 2.2e-7,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
"/v1/chat/completions",
@@ -8147,6 +9017,8 @@
},
"azure/us/gpt-5.1": {
"deprecation_date": "2027-05-15",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.2",
"cache_read_input_token_cost": 1.375e-7,
"cache_read_input_token_cost_batches": 6.875e-8,
"cache_read_input_token_cost_priority": 2.75e-7,
@@ -8154,7 +9026,6 @@
"litellm_provider": "azure",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000011,
"supported_endpoints": [
@@ -8186,16 +9057,22 @@
"input_cost_per_token_priority": 0.00000275,
"output_cost_per_token_batches": 0.0000055,
"output_cost_per_token_priority": 0.000022,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
"azure/us/gpt-5.1-chat": {
"cache_read_input_token_cost": 1.375e-7,
"deprecation_date": "2026-06-29",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-chat-latest",
"input_cost_per_token": 0.000001375,
"litellm_provider": "azure",
"max_input_tokens": 111616,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.000011,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
@@ -8212,6 +9089,8 @@
},
"azure/us/gpt-5.2": {
"deprecation_date": "2027-06-08",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.4",
"cache_read_input_token_cost": 1.925e-7,
"cache_read_input_token_cost_batches": 9.625e-8,
"cache_read_input_token_cost_priority": 3.85e-7,
@@ -8223,16 +9102,22 @@
"output_cost_per_token": 0.0000154,
"output_cost_per_token_batches": 0.0000077,
"output_cost_per_token_priority": 0.0000308,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
"azure/us/gpt-5.2-chat": {
"cache_read_input_token_cost": 1.925e-7,
"deprecation_date": "2026-06-29",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-chat-latest",
"input_cost_per_token": 0.000001925,
"litellm_provider": "azure",
"max_input_tokens": 111616,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000154,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
@@ -8249,11 +9134,12 @@
"azure/us/gpt-5.3-chat": {
"cache_read_input_token_cost": 1.925e-7,
"deprecation_date": "2026-06-29",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-chat-latest",
"input_cost_per_token": 0.000001925,
"litellm_provider": "azure",
"max_input_tokens": 111616,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000154,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
@@ -8269,6 +9155,8 @@
},
"azure/us/gpt-5.4": {
"deprecation_date": "2027-09-02",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.5",
"cache_read_input_token_cost": 2.75e-7,
"cache_read_input_token_cost_above_272k_tokens": 5.5e-7,
"cache_read_input_token_cost_above_272k_tokens_batches": 2.75e-7,
@@ -8281,7 +9169,6 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"supported_endpoints": [
"/v1/chat/completions",
@@ -8322,6 +9209,8 @@
"cache_read_input_token_cost_above_272k_tokens": 5.5e-7,
"cache_read_input_token_cost_priority": 5.5e-7,
"deprecation_date": "2027-09-02",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.5",
"input_cost_per_token": 0.00000275,
"input_cost_per_token_priority": 0.0000055,
"output_cost_per_token": 0.0000165,
@@ -8329,7 +9218,6 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"supported_endpoints": [
"/v1/chat/completions",
@@ -8369,6 +9257,7 @@
},
"azure/us/gpt-5.4-mini": {
"deprecation_date": "2027-09-21",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"cache_read_input_token_cost": 8.25e-8,
"cache_read_input_token_cost_batches": 4.125e-8,
"cache_read_input_token_cost_priority": 1.65e-7,
@@ -8380,10 +9269,16 @@
"output_cost_per_token": 0.00000495,
"output_cost_per_token_batches": 0.000002475,
"output_cost_per_token_priority": 0.0000099,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
"azure/us/gpt-5.4-nano": {
"deprecation_date": "2027-09-21",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"cache_read_input_token_cost": 2.2e-8,
"cache_read_input_token_cost_batches": 1.1e-8,
"input_cost_per_token": 2.2e-7,
@@ -8392,10 +9287,17 @@
"mode": "chat",
"output_cost_per_token": 0.000001375,
"output_cost_per_token_batches": 6.875e-7,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
"azure/us/gpt-5.5": {
"deprecation_date": "2027-10-26",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.6",
"cache_read_input_token_cost": 5.5e-7,
"cache_read_input_token_cost_above_272k_tokens": 0.0000011,
"cache_read_input_token_cost_above_272k_tokens_batches": 5.5e-7,
@@ -8412,14 +9314,13 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token_above_272k_tokens_batches": 0.00002475,
"output_cost_per_token_batches": 0.0000165,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
@@ -8464,12 +9365,11 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"supported_endpoints": [
"/v1/chat/completions",
@@ -8495,6 +9395,8 @@
"supports_vision": true,
"supports_web_search": true,
"deprecation_date": "2027-10-26",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.6",
"input_cost_per_token_above_272k_tokens_batches": 0.0000055,
"input_cost_per_token_batches": 0.00000275,
"output_cost_per_token_above_272k_tokens_batches": 0.00002475,
@@ -8503,6 +9405,8 @@
},
"azure/us/gpt-5.5-2026-04-24": {
"deprecation_date": "2027-10-26",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.6",
"cache_read_input_token_cost": 5.5e-7,
"cache_read_input_token_cost_above_272k_tokens": 0.0000011,
"cache_read_input_token_cost_priority": 0.000001375,
@@ -8517,12 +9421,11 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"supported_endpoints": [
"/v1/chat/completions",
@@ -8572,16 +9475,15 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000022,
"output_cost_per_token_above_272k_tokens": 0.000033,
"output_cost_per_token_above_272k_tokens_priority": 0.000066,
"output_cost_per_token_priority": 0.000044,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"supported_endpoints": [
"/v1/chat/completions",
@@ -8620,6 +9522,8 @@
"cache_read_input_token_cost_above_272k_tokens_priority": 8.8e-8,
"cache_read_input_token_cost_priority": 4.4e-8,
"deprecation_date": "2028-01-11",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-6-luna",
"input_cost_per_token": 2.2e-7,
"input_cost_per_token_above_272k_tokens": 4.4e-7,
"input_cost_per_token_above_272k_tokens_priority": 8.8e-7,
@@ -8627,16 +9531,15 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00000132,
"output_cost_per_token_above_272k_tokens": 0.00000198,
"output_cost_per_token_above_272k_tokens_priority": 0.00000396,
"output_cost_per_token_priority": 0.00000264,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
@@ -8676,6 +9579,8 @@
"cache_read_input_token_cost_above_272k_tokens_priority": 0.00000176,
"cache_read_input_token_cost_priority": 8.8e-7,
"deprecation_date": "2028-01-11",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-6-sol",
"input_cost_per_token": 0.0000044,
"input_cost_per_token_above_272k_tokens": 0.0000088,
"input_cost_per_token_above_272k_tokens_priority": 0.0000176,
@@ -8683,16 +9588,15 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000022,
"output_cost_per_token_above_272k_tokens": 0.000033,
"output_cost_per_token_above_272k_tokens_priority": 0.000066,
"output_cost_per_token_priority": 0.000044,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
@@ -8732,6 +9636,8 @@
"cache_read_input_token_cost_above_272k_tokens_priority": 8.8e-7,
"cache_read_input_token_cost_priority": 4.4e-7,
"deprecation_date": "2028-01-11",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-6.1-terra",
"input_cost_per_token": 0.0000022,
"input_cost_per_token_above_272k_tokens": 0.0000044,
"input_cost_per_token_above_272k_tokens_priority": 0.0000088,
@@ -8739,16 +9645,15 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000132,
"output_cost_per_token_above_272k_tokens": 0.0000198,
"output_cost_per_token_above_272k_tokens_priority": 0.0000396,
"output_cost_per_token_priority": 0.0000264,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
@@ -8789,14 +9694,13 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000055,
"output_cost_per_token_above_272k_tokens": 0.0000825,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
@@ -8815,7 +9719,7 @@
"supports_max_reasoning_effort": false,
"supports_minimal_reasoning_effort": false,
"supports_native_streaming": true,
- "supports_none_reasoning_effort": true,
+ "supports_none_reasoning_effort": false,
"supports_parallel_function_calling": true,
"supports_pdf_input": true,
"supports_prompt_caching": true,
@@ -8838,14 +9742,13 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 5.5e-7,
"output_cost_per_token_above_272k_tokens": 8.25e-7,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://azure.microsoft.com/en-us/blog/gpt-6-astra-sol-and-luna-for-production-agents-in-microsoft-foundry/",
"supported_endpoints": [
@@ -8893,16 +9796,15 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000011,
"output_cost_per_token_above_272k_tokens": 0.0000165,
"output_cost_per_token_above_272k_tokens_priority": 0.000033,
"output_cost_per_token_priority": 0.000022,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://azure.microsoft.com/en-us/blog/gpt-6-astra-sol-and-luna-for-production-agents-in-microsoft-foundry/",
"supported_endpoints": [
@@ -8944,14 +9846,13 @@
"litellm_provider": "azure",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000011,
"output_cost_per_token_above_272k_tokens": 0.0000165,
"search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
},
"source": "https://learn.microsoft.com/en-us/azure/ai-foundry/openai/concepts/models",
"supported_endpoints": [
@@ -8982,14 +9883,61 @@
"supports_web_search": true,
"supports_xhigh_reasoning_effort": true
},
+ "azure/us/gpt-6.1-terra": {
+ "cache_creation_input_token_cost": 0.000001375,
+ "cache_creation_input_token_cost_above_272k_tokens": 0.00000275,
+ "cache_read_input_token_cost": 5.5e-8,
+ "cache_read_input_token_cost_above_272k_tokens": 1.1e-7,
+ "input_cost_per_token": 0.0000011,
+ "input_cost_per_token_above_272k_tokens": 0.0000022,
+ "litellm_provider": "azure",
+ "max_input_tokens": 922000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000055,
+ "output_cost_per_token_above_272k_tokens": 0.00000825,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
+ "source": "https://techcommunity.microsoft.com/blog/azure-ai-foundry-blog/gpt-6-1-terra-now-generally-available-in-microsoft-foundry-build-agents-that-see/4567769",
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/responses"
+ ],
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_max_reasoning_effort": true,
+ "supports_minimal_reasoning_effort": false,
+ "supports_native_streaming": true,
+ "supports_none_reasoning_effort": false,
+ "supports_parallel_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_web_search": true,
+ "supports_xhigh_reasoning_effort": true
+ },
"azure/us/gpt-chat-latest": {
"cache_read_input_token_cost": 5.5e-7,
"deprecation_date": "2027-05-18",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
"input_cost_per_token": 0.0000055,
"litellm_provider": "azure",
- "max_input_tokens": 272000,
+ "max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000033,
"reasoning_effort_levels": [
@@ -9019,15 +9967,34 @@
"supports_vision": true,
"supports_web_search": true
},
+ "azure/us/o1": {
+ "cache_read_input_token_cost": 0.00000825,
+ "deprecation_date": "2026-11-19",
+ "successor_model": "azure/us/gpt-5.6-sol",
+ "input_cost_per_token": 0.0000165,
+ "input_cost_per_token_batches": 0.00000825,
+ "litellm_provider": "azure",
+ "max_input_tokens": 200000,
+ "max_output_tokens": 100000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000066,
+ "output_cost_per_token_batches": 0.000033,
+ "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
"azure/us/o1-2024-12-17": {
"cache_read_input_token_cost": 0.00000825,
"deprecation_date": "2026-11-19",
+ "successor_model": "azure/us/gpt-5.6-sol",
"input_cost_per_token": 0.0000165,
"input_cost_per_token_batches": 0.00000825,
"litellm_provider": "azure",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.000066,
"output_cost_per_token_batches": 0.000033,
@@ -9055,7 +10022,6 @@
"litellm_provider": "azure",
"max_input_tokens": 128000,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.00000484,
"output_cost_per_token_batches": 0.00000242,
@@ -9065,34 +10031,61 @@
"supports_prompt_caching": true,
"supports_vision": false
},
- "azure/us/o1-preview": {
- "cache_read_input_token_cost": 0.00000825,
- "deprecation_date": "2025-07-28",
- "input_cost_per_token": 0.0000165,
+ "azure/us/o3": {
+ "deprecation_date": "2026-11-19",
+ "successor_model": "azure/us/gpt-5.6-sol",
+ "cache_read_input_token_cost": 5.5e-7,
+ "input_cost_per_token": 0.0000022,
+ "input_cost_per_token_batches": 0.0000011,
"litellm_provider": "azure",
- "max_input_tokens": 128000,
- "max_output_tokens": 32768,
- "max_tokens": 32768,
+ "max_input_tokens": 200000,
+ "max_output_tokens": 100000,
"mode": "chat",
- "output_cost_per_token": 0.000066,
+ "output_cost_per_token": 0.0000088,
+ "output_cost_per_token_batches": 0.0000044,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
- "/v1/chat/completions"
+ "/v1/chat/completions",
+ "/v1/batch",
+ "/v1/responses"
],
- "supports_prompt_caching": true
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": false,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
},
"azure/us/o3-2025-04-16": {
"deprecation_date": "2026-11-19",
+ "successor_model": "azure/us/gpt-5.6-sol",
"cache_read_input_token_cost": 5.5e-7,
"input_cost_per_token": 0.0000022,
"input_cost_per_token_batches": 0.0000011,
"litellm_provider": "azure",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.0000088,
"output_cost_per_token_batches": 0.0000044,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supported_endpoints": [
"/v1/chat/completions",
@@ -9116,6 +10109,8 @@
},
"azure/us/o3-deep-research": {
"deprecation_date": "2026-11-19",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.6-sol",
"cache_read_input_token_cost": 0.00000275,
"input_cost_per_token": 0.000011,
"litellm_provider": "azure",
@@ -9123,15 +10118,35 @@
"output_cost_per_token": 0.000044,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
},
+ "azure/us/o3-mini": {
+ "cache_read_input_token_cost": 6.05e-7,
+ "deprecation_date": "2026-11-19",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.6-terra",
+ "input_cost_per_token": 0.00000121,
+ "input_cost_per_token_batches": 6.05e-7,
+ "litellm_provider": "azure",
+ "max_input_tokens": 200000,
+ "max_output_tokens": 100000,
+ "mode": "chat",
+ "output_cost_per_token": 0.00000484,
+ "output_cost_per_token_batches": 0.00000242,
+ "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": false
+ },
"azure/us/o3-mini-2025-01-31": {
"cache_read_input_token_cost": 6.05e-7,
"deprecation_date": "2026-11-19",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.6-terra",
"input_cost_per_token": 0.00000121,
"input_cost_per_token_batches": 6.05e-7,
"litellm_provider": "azure",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.00000484,
"output_cost_per_token_batches": 0.00000242,
@@ -9141,18 +10156,51 @@
"supports_tool_choice": true,
"supports_vision": false
},
+ "azure/us/o4-mini": {
+ "cache_read_input_token_cost": 3.03e-7,
+ "deprecation_date": "2026-11-19",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.6-terra",
+ "input_cost_per_token": 0.00000121,
+ "input_cost_per_token_batches": 6.05e-7,
+ "litellm_provider": "azure",
+ "max_input_tokens": 200000,
+ "max_output_tokens": 100000,
+ "mode": "chat",
+ "output_cost_per_token": 0.00000484,
+ "output_cost_per_token_batches": 0.00000242,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
+ "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": false,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
"azure/us/o4-mini-2025-04-16": {
"cache_read_input_token_cost": 3.03e-7,
"deprecation_date": "2026-11-19",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule",
+ "successor_model": "azure/us/gpt-5.6-terra",
"input_cost_per_token": 0.00000121,
"input_cost_per_token_batches": 6.05e-7,
"litellm_provider": "azure",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.00000484,
"output_cost_per_token_batches": 0.00000242,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
"supports_parallel_function_calling": false,
@@ -9163,11 +10211,12 @@
"supports_vision": true
},
"azure_ai/Codestral-2501": {
+ "deprecation_date": "2027-02-15",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"input_cost_per_token": 3e-7,
"litellm_provider": "azure_ai",
"max_input_tokens": 256000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 9e-7,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
@@ -9180,34 +10229,38 @@
"supported_output_modalities": [
"text"
],
- "supports_native_streaming": true
+ "supports_native_streaming": true,
+ "supports_pdf_input": false
},
"azure_ai/Cohere-command-a-plus-05-2026": {
"deprecation_date": "2026-10-16",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "coherelabs-command-a-plus-05-2026-fp81",
"input_cost_per_token": 8e-7,
"litellm_provider": "azure_ai",
"max_input_tokens": 128000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.0000032,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_reasoning": true,
"supports_tool_choice": true
},
"azure_ai/DeepSeek-V4-Flash-0731": {
"cache_read_input_token_cost": 1.4e-8,
"deprecation_date": "2026-12-03",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"input_cost_per_token": 4.4e-7,
"litellm_provider": "azure_ai",
"max_input_tokens": 1000000,
"max_output_tokens": 384000,
- "max_tokens": 384000,
"mode": "chat",
"output_cost_per_token": 0.00000132,
"source": "https://learn.microsoft.com/en-us/azure/foundry/foundry-models/concepts/models-sold-directly-by-azure",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true
@@ -9219,11 +10272,11 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 163840,
"max_output_tokens": 163840,
- "max_tokens": 163840,
"mode": "chat",
"output_cost_per_token": 0.00000185,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true
@@ -9234,11 +10287,11 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 1000000,
"max_output_tokens": 384000,
- "max_tokens": 384000,
"mode": "chat",
"output_cost_per_token": 3.1e-7,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true
@@ -9249,11 +10302,11 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 1000000,
"max_output_tokens": 384000,
- "max_tokens": 384000,
"mode": "chat",
"output_cost_per_token": 0.000003828,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true
@@ -9264,43 +10317,45 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 1000000,
"max_output_tokens": 384000,
- "max_tokens": 384000,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true
},
"azure_ai/FW-GLM-5": {
"deprecation_date": "2027-07-01",
+ "successor_model": "azure_ai/FW-GLM-5.2",
"cache_read_input_token_cost": 2.2e-7,
"input_cost_per_token": 0.0000011,
"litellm_provider": "azure_ai",
"max_input_tokens": 200000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00000352,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true
},
"azure_ai/FW-GLM-5.1": {
"deprecation_date": "2027-07-01",
+ "successor_model": "azure_ai/FW-GLM-5.2",
"cache_read_input_token_cost": 2.86e-7,
"input_cost_per_token": 0.00000154,
"litellm_provider": "azure_ai",
"max_input_tokens": 202800,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.00000484,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true
@@ -9311,11 +10366,11 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.00000484,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true
@@ -9326,11 +10381,11 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.00000726,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true
@@ -9341,11 +10396,11 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000055,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true
@@ -9356,11 +10411,11 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 6.25e-7,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true
@@ -9372,12 +10427,12 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 6.6e-7,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
"supports_parallel_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
@@ -9389,7 +10444,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
- "max_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.00000446,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
@@ -9400,6 +10454,7 @@
"text"
],
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true
@@ -9411,7 +10466,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000033,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
@@ -9423,6 +10477,7 @@
"text"
],
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true,
@@ -9434,7 +10489,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
@@ -9446,6 +10500,7 @@
"text"
],
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true,
@@ -9457,7 +10512,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
@@ -9469,6 +10523,7 @@
"text"
],
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true,
@@ -9480,7 +10535,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000015,
"reasoning_effort_levels": [
@@ -9497,6 +10551,7 @@
"text"
],
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true,
@@ -9509,11 +10564,11 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.00000132,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true
@@ -9524,7 +10579,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 512000,
"max_output_tokens": 512000,
- "max_tokens": 512000,
"mode": "chat",
"output_cost_per_token": 0.00000132,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
@@ -9536,6 +10590,7 @@
"text"
],
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true,
@@ -9547,7 +10602,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.00000264,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
@@ -9558,6 +10612,7 @@
"text"
],
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true
@@ -9577,46 +10632,80 @@
"text"
],
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true,
"supports_vision": false
},
"azure_ai/Llama-3.3-70B-Instruct": {
+ "deprecation_date": "2027-01-31",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"input_cost_per_token": 7.1e-7,
"litellm_provider": "azure_ai",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 7.1e-7,
"source": "https://learn.microsoft.com/en-us/azure/foundry/foundry-models/concepts/models-sold-directly-by-azure",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_tool_choice": true
},
"azure_ai/Llama-4-Maverick-17B-128E-Instruct-FP8": {
+ "deprecation_date": "2026-11-19",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"input_cost_per_token": 2.5e-7,
"litellm_provider": "azure_ai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.000001,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_tool_choice": true,
"supports_vision": true
},
"azure_ai/Llama-4-Scout-17B-16E-Instruct": {
+ "deprecation_date": "2027-01-31",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"input_cost_per_token": 2e-7,
"litellm_provider": "azure_ai",
"max_input_tokens": 10000000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 7.8e-7,
"source": "https://azure.microsoft.com/en-us/blog/introducing-the-llama-4-herd-in-azure-ai-foundry-and-azure-databricks/",
"supports_function_calling": true,
+ "supports_pdf_input": false,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
+ "azure_ai/MAI-Code-1.1-Flash": {
+ "cache_read_input_token_cost": 2e-8,
+ "deprecation_date": "2026-12-09",
+ "input_cost_per_token": 2e-7,
+ "litellm_provider": "azure_ai",
+ "max_input_tokens": 256000,
+ "max_output_tokens": 64000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000012,
+ "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/responses"
+ ],
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
"supports_tool_choice": true,
"supports_vision": true
},
@@ -9626,25 +10715,26 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 256000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.0000035,
"source": "https://azure.microsoft.com/en-us/pricing/details/ai-foundry-models/microsoft/",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true
},
"azure_ai/MAI-DS-R1": {
"deprecation_date": "2026-02-27",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
"input_cost_per_token": 0.00000135,
"litellm_provider": "azure_ai",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000054,
"source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
+ "supports_pdf_input": false,
"supports_reasoning": true,
"supports_tool_choice": true
},
@@ -9654,7 +10744,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 256000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000008,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
@@ -9668,222 +10757,97 @@
"text"
],
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true
},
- "azure_ai/Meta-Llama-3-70B-Instruct": {
- "deprecation_date": "2025-06-30",
- "input_cost_per_token": 0.0000011,
- "litellm_provider": "azure_ai",
- "max_input_tokens": 8192,
- "max_output_tokens": 2048,
- "max_tokens": 2048,
- "mode": "chat",
- "output_cost_per_token": 3.7e-7,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
- "supports_tool_choice": true
- },
- "azure_ai/Meta-Llama-3.1-70B-Instruct": {
- "deprecation_date": "2025-06-30",
- "input_cost_per_token": 0.00000268,
- "litellm_provider": "azure_ai",
- "max_input_tokens": 128000,
- "max_output_tokens": 2048,
- "max_tokens": 2048,
- "mode": "chat",
- "output_cost_per_token": 0.00000354,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
- "supports_tool_choice": true
- },
- "azure_ai/Phi-3-medium-128k-instruct": {
- "deprecation_date": "2025-08-30",
- "input_cost_per_token": 1.7e-7,
- "litellm_provider": "azure_ai",
- "max_input_tokens": 128000,
- "max_output_tokens": 4096,
- "max_tokens": 4096,
- "mode": "chat",
- "output_cost_per_token": 6.8e-7,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
- "supports_tool_choice": true,
- "supports_vision": false
- },
- "azure_ai/Phi-3-medium-4k-instruct": {
- "deprecation_date": "2025-08-30",
- "input_cost_per_token": 1.7e-7,
- "litellm_provider": "azure_ai",
- "max_input_tokens": 4096,
- "max_output_tokens": 4096,
- "max_tokens": 4096,
- "mode": "chat",
- "output_cost_per_token": 6.8e-7,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
- "supports_tool_choice": true,
- "supports_vision": false
- },
- "azure_ai/Phi-3-mini-128k-instruct": {
- "deprecation_date": "2025-08-30",
- "input_cost_per_token": 1.3e-7,
- "litellm_provider": "azure_ai",
- "max_input_tokens": 128000,
- "max_output_tokens": 4096,
- "max_tokens": 4096,
- "mode": "chat",
- "output_cost_per_token": 5.2e-7,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
- "supports_tool_choice": true,
- "supports_vision": false
- },
- "azure_ai/Phi-3-mini-4k-instruct": {
- "deprecation_date": "2025-08-30",
- "input_cost_per_token": 1.3e-7,
- "litellm_provider": "azure_ai",
- "max_input_tokens": 4096,
- "max_output_tokens": 4096,
- "max_tokens": 4096,
- "mode": "chat",
- "output_cost_per_token": 5.2e-7,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
- "supports_tool_choice": true,
- "supports_vision": false
- },
- "azure_ai/Phi-3-small-128k-instruct": {
- "deprecation_date": "2025-08-30",
- "input_cost_per_token": 1.5e-7,
- "litellm_provider": "azure_ai",
- "max_input_tokens": 128000,
- "max_output_tokens": 4096,
- "max_tokens": 4096,
- "mode": "chat",
- "output_cost_per_token": 6e-7,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
- "supports_tool_choice": true,
- "supports_vision": false
- },
- "azure_ai/Phi-3-small-8k-instruct": {
- "deprecation_date": "2025-08-30",
- "input_cost_per_token": 1.5e-7,
- "litellm_provider": "azure_ai",
- "max_input_tokens": 8192,
- "max_output_tokens": 4096,
- "max_tokens": 4096,
- "mode": "chat",
- "output_cost_per_token": 6e-7,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
- "supports_tool_choice": true,
- "supports_vision": false
- },
- "azure_ai/Phi-3.5-MoE-instruct": {
- "deprecation_date": "2025-08-30",
- "input_cost_per_token": 1.6e-7,
- "litellm_provider": "azure_ai",
- "max_input_tokens": 128000,
- "max_output_tokens": 4096,
- "max_tokens": 4096,
- "mode": "chat",
- "output_cost_per_token": 6.4e-7,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
- "supports_tool_choice": true,
- "supports_vision": false
- },
- "azure_ai/Phi-3.5-mini-instruct": {
- "deprecation_date": "2025-08-30",
- "input_cost_per_token": 1.3e-7,
- "litellm_provider": "azure_ai",
- "max_input_tokens": 128000,
- "max_output_tokens": 4096,
- "max_tokens": 4096,
- "mode": "chat",
- "output_cost_per_token": 5.2e-7,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
- "supports_tool_choice": true,
- "supports_vision": false
- },
- "azure_ai/Phi-3.5-vision-instruct": {
- "deprecation_date": "2025-08-30",
- "input_cost_per_token": 1.3e-7,
- "litellm_provider": "azure_ai",
- "max_input_tokens": 128000,
- "max_output_tokens": 4096,
- "max_tokens": 4096,
- "mode": "chat",
- "output_cost_per_token": 5.2e-7,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
- "supports_tool_choice": true,
- "supports_vision": true
- },
"azure_ai/Phi-4": {
+ "deprecation_date": "2027-01-17",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "microsoft--phi-4",
"input_cost_per_token": 1.25e-7,
"litellm_provider": "azure_ai",
"max_input_tokens": 16384,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 5e-7,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_tool_choice": true,
"supports_vision": false
},
"azure_ai/Phi-4-mini-instruct": {
+ "deprecation_date": "2027-01-17",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "microsoft--phi-4",
"input_cost_per_token": 7.5e-8,
"litellm_provider": "azure_ai",
"max_input_tokens": 131072,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 3e-7,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
- "supports_function_calling": true
+ "supports_function_calling": true,
+ "supports_pdf_input": false
},
"azure_ai/Phi-4-mini-reasoning": {
+ "deprecation_date": "2027-01-17",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "microsoft--phi-4",
"input_cost_per_token": 7.5e-8,
"litellm_provider": "azure_ai",
"max_input_tokens": 131072,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 3e-7,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
- "supports_function_calling": true
+ "supports_function_calling": true,
+ "supports_pdf_input": false
},
"azure_ai/Phi-4-multimodal-instruct": {
+ "deprecation_date": "2027-01-17",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "microsoft--phi-4",
"input_cost_per_audio_token": 0.000004,
"input_cost_per_token": 8e-8,
"litellm_provider": "azure_ai",
"max_input_tokens": 131072,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 3.2e-7,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_audio_input": true,
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_vision": true
},
"azure_ai/Phi-4-reasoning": {
+ "deprecation_date": "2027-01-17",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "microsoft--phi-4",
"input_cost_per_token": 1.25e-7,
"litellm_provider": "azure_ai",
"max_input_tokens": 32768,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 5e-7,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_tool_choice": true,
"supports_reasoning": true
},
"azure_ai/claude-fable-5": {
"deprecation_date": "2027-12-05",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"supports_mid_conversation_system": true,
"input_cost_per_token": 0.00001,
"output_cost_per_token": 0.00005,
"litellm_provider": "azure_ai",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
@@ -9906,7 +10870,7 @@
"supports_tool_choice": true,
"supports_vision": true,
"supports_xhigh_reasoning_effort": true,
- "supports_max_reasoning_effort": true,
+ "supports_max_reasoning_effort": false,
"prompt_cache_min_tokens": 512
},
"azure_ai/claude-fable-5-1": {
@@ -9916,7 +10880,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
@@ -9941,12 +10904,15 @@
"supports_tool_choice": true,
"supports_vision": true,
"supports_xhigh_reasoning_effort": true,
- "supports_max_reasoning_effort": true,
+ "supports_max_reasoning_effort": false,
"prompt_cache_min_tokens": 512,
- "deprecation_date": "2027-12-05"
+ "deprecation_date": "2027-12-05",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement"
},
"azure_ai/claude-haiku-4-5": {
"deprecation_date": "2026-11-15",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "azure_ai/claude-haiku-5-5",
"cache_creation_input_token_cost": 0.00000125,
"cache_creation_input_token_cost_above_1hr": 0.000002,
"cache_read_input_token_cost": 1e-7,
@@ -9954,7 +10920,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000005,
"supports_assistant_prefill": true,
@@ -9984,7 +10949,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 5e-7,
"search_context_cost_per_query": {
@@ -10010,8 +10974,40 @@
"prompt_cache_min_tokens": 512,
"source": "https://platform.claude.com/docs/en/models/haiku-5-5/migration-guide"
},
+ "azure_ai/claude-mythos-5-1": {
+ "input_cost_per_token": 0.00001,
+ "output_cost_per_token": 0.00005,
+ "cache_creation_input_token_cost": 0.0000125,
+ "cache_creation_input_token_cost_above_1hr": 0.00002,
+ "cache_read_input_token_cost": 2.5e-7,
+ "litellm_provider": "azure_ai",
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "supports_adaptive_thinking": true,
+ "thinking_always_on": true,
+ "supports_mid_conversation_system": true,
+ "supports_assistant_prefill": false,
+ "supports_computer_use": true,
+ "supports_forced_tool_use": false,
+ "supports_function_calling": true,
+ "supports_native_structured_output": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_sampling_params": false,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_xhigh_reasoning_effort": true,
+ "supports_max_reasoning_effort": false,
+ "prompt_cache_min_tokens": 512,
+ "source": "https://learn.microsoft.com/en-us/azure/foundry/foundry-models/concepts/claude-models"
+ },
"azure_ai/claude-opus-4-5": {
"deprecation_date": "2026-11-24",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "azure_ai/claude-opus-5-5",
"cache_creation_input_token_cost": 0.00000625,
"cache_creation_input_token_cost_above_1hr": 0.00001,
"cache_read_input_token_cost": 5e-7,
@@ -10019,7 +11015,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"supports_assistant_prefill": true,
@@ -10037,6 +11032,7 @@
},
"azure_ai/claude-opus-4-6": {
"deprecation_date": "2027-02-02",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"supports_adaptive_thinking": true,
"supports_legacy_thinking": true,
"input_cost_per_token": 0.000005,
@@ -10044,7 +11040,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
@@ -10069,13 +11064,13 @@
},
"azure_ai/claude-opus-4-7": {
"deprecation_date": "2027-04-06",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"supports_adaptive_thinking": true,
"input_cost_per_token": 0.000005,
"output_cost_per_token": 0.000025,
"litellm_provider": "azure_ai",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
@@ -10101,6 +11096,7 @@
},
"azure_ai/claude-opus-4-8": {
"deprecation_date": "2027-09-01",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"supports_mid_conversation_system": true,
"supports_adaptive_thinking": true,
"input_cost_per_token": 0.000005,
@@ -10108,7 +11104,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
@@ -10134,6 +11129,7 @@
},
"azure_ai/claude-opus-5": {
"deprecation_date": "2027-07-08",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"supports_mid_conversation_system": true,
"supports_adaptive_thinking": true,
"input_cost_per_token": 0.000005,
@@ -10141,7 +11137,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
@@ -10172,7 +11167,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
@@ -10207,11 +11201,11 @@
"cache_creation_input_token_cost_above_1hr": 0.000016,
"cache_read_input_token_cost": 4e-7,
"deprecation_date": "2027-10-01",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"input_cost_per_token": 0.000008,
"litellm_provider": "azure_ai",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00004,
"prompt_cache_min_tokens": 512,
@@ -10241,6 +11235,8 @@
},
"azure_ai/claude-sonnet-4-5": {
"deprecation_date": "2026-11-30",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "azure_ai/claude-sonnet-5-5",
"cache_creation_input_token_cost": 0.00000375,
"cache_creation_input_token_cost_above_1hr": 0.000006,
"cache_read_input_token_cost": 3e-7,
@@ -10248,7 +11244,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_assistant_prefill": true,
@@ -10265,6 +11260,7 @@
},
"azure_ai/claude-sonnet-4-6": {
"deprecation_date": "2027-02-10",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"supports_adaptive_thinking": true,
"supports_legacy_thinking": true,
"cache_creation_input_token_cost": 0.00000375,
@@ -10274,7 +11270,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_assistant_prefill": false,
@@ -10293,6 +11288,7 @@
},
"azure_ai/claude-sonnet-5": {
"deprecation_date": "2027-06-30",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"supports_mid_conversation_system": true,
"cache_creation_input_token_cost": 0.0000025,
"cache_creation_input_token_cost_above_1hr": 0.000004,
@@ -10301,7 +11297,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"search_context_cost_per_query": {
@@ -10328,13 +11323,12 @@
"supports_mid_conversation_system": true,
"cache_creation_input_token_cost": 0.0000025,
"cache_creation_input_token_cost_above_1hr": 0.000004,
- "cache_read_input_token_cost": 2e-7,
+ "cache_read_input_token_cost": 1e-7,
"deprecation_date": "2027-09-29",
"input_cost_per_token": 0.000002,
"litellm_provider": "azure_ai",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"search_context_cost_per_query": {
@@ -10361,94 +11355,102 @@
"source": "https://management.azure.com/subscriptions/c873328e-b572-4770-8dff-aaeb6f1f0e79/providers/Microsoft.CognitiveServices/locations/eastus2/models?api-version=2024-10-01"
},
"azure_ai/cohere-command-a": {
+ "deprecation_date": "2027-02-15",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "coherelabs-command-a-plus-05-2026-fp81",
"input_cost_per_token": 0.0000025,
"litellm_provider": "azure_ai",
"max_input_tokens": 131072,
"max_output_tokens": 8182,
- "max_tokens": 8182,
"mode": "chat",
"output_cost_per_token": 0.00001,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_tool_choice": true
},
"azure_ai/deepseek-r1": {
"deprecation_date": "2026-08-13",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "azure_ai/deepseek-v4-pro",
"input_cost_per_token": 0.00000135,
"output_cost_per_token": 0.0000054,
"litellm_provider": "azure_ai",
"mode": "chat",
- "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
- },
- "azure_ai/deepseek-v3": {
- "deprecation_date": "2025-08-31",
- "input_cost_per_token": 0.00000114,
- "litellm_provider": "azure_ai",
- "max_input_tokens": 128000,
- "max_output_tokens": 8192,
- "max_tokens": 8192,
- "mode": "chat",
- "output_cost_per_token": 0.00000456,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
- "supports_tool_choice": true
+ "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
+ "supports_pdf_input": false
},
"azure_ai/deepseek-v3-0324": {
"deprecation_date": "2026-07-13",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "azure_ai/deepseek-v4-flash",
"input_cost_per_token": 0.00000114,
"output_cost_per_token": 0.00000456,
"litellm_provider": "azure_ai",
"mode": "chat",
- "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
+ "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
+ "supports_pdf_input": false
},
"azure_ai/deepseek-v3.1": {
"deprecation_date": "2026-07-13",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "azure_ai/deepseek-v4-flash",
"input_cost_per_token": 0.00000123,
"output_cost_per_token": 0.00000494,
"litellm_provider": "azure_ai",
"mode": "chat",
- "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
+ "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
+ "supports_pdf_input": false
},
"azure_ai/deepseek-v3.2": {
+ "deprecation_date": "2027-11-01",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "azure_ai/deepseek-v4.1-flash",
"input_cost_per_token": 5.8e-7,
"litellm_provider": "azure_ai",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00000168,
"source": "https://learn.microsoft.com/en-us/azure/foundry/foundry-models/concepts/models-sold-directly-by-azure",
"supports_assistant_prefill": true,
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true
},
"azure_ai/deepseek-v3.2-speciale": {
+ "deprecation_date": "2027-11-01",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "azure_ai/deepseek-v4-pro",
"input_cost_per_token": 5.8e-7,
"litellm_provider": "azure_ai",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00000168,
"source": "https://learn.microsoft.com/en-us/azure/foundry/foundry-models/concepts/models-sold-directly-by-azure",
"supports_assistant_prefill": true,
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true
},
"azure_ai/deepseek-v4-flash": {
"deprecation_date": "2028-02-20",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "azure_ai/DeepSeek-V4-Flash-0731",
"input_cost_per_token": 1.9e-7,
"litellm_provider": "azure_ai",
"max_input_tokens": 1000000,
"max_output_tokens": 384000,
- "max_tokens": 384000,
"mode": "chat",
"output_cost_per_token": 5.1e-7,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_reasoning": true,
"supports_tool_choice": true,
"cache_read_input_token_cost": 2.8e-8,
@@ -10456,15 +11458,16 @@
},
"azure_ai/deepseek-v4-pro": {
"deprecation_date": "2028-02-20",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"input_cost_per_token": 0.00000174,
"litellm_provider": "azure_ai",
"max_input_tokens": 1000000,
"max_output_tokens": 384000,
- "max_tokens": 384000,
"mode": "chat",
"output_cost_per_token": 0.00000348,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_reasoning": true,
"supports_tool_choice": true,
"cache_read_input_token_cost": 1.45e-7,
@@ -10476,18 +11479,21 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 1000000,
"max_output_tokens": 384000,
- "max_tokens": 384000,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true,
"deprecation_date": "2026-12-15",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"source": "https://techcommunity.microsoft.com/blog/azure-ai-foundry-blog/deepseek-v4-1-flash-is-coming-to-microsoft-foundry/4556431"
},
"azure_ai/gpt-5.4": {
"deprecation_date": "2027-09-02",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "azure_ai/gpt-5.5",
"cache_read_input_token_cost": 2.5e-7,
"cache_read_input_token_cost_above_272k_tokens": 5e-7,
"cache_read_input_token_cost_priority": 5e-7,
@@ -10499,7 +11505,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"output_cost_per_token_above_272k_tokens": 0.0000225,
@@ -10536,6 +11541,8 @@
},
"azure_ai/gpt-5.4-2026-03-05": {
"deprecation_date": "2027-09-02",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "azure_ai/gpt-5.5",
"cache_read_input_token_cost": 2.5e-7,
"cache_read_input_token_cost_above_272k_tokens": 5e-7,
"cache_read_input_token_cost_priority": 5e-7,
@@ -10547,7 +11554,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"output_cost_per_token_above_272k_tokens": 0.0000225,
@@ -10584,6 +11590,7 @@
},
"azure_ai/gpt-5.4-mini": {
"deprecation_date": "2027-09-21",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"cache_read_input_token_cost": 7.5e-8,
"cache_read_input_token_cost_priority": 1.5e-7,
"input_cost_per_token": 7.5e-7,
@@ -10591,7 +11598,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000045,
"output_cost_per_token_priority": 0.000009,
@@ -10626,6 +11632,7 @@
},
"azure_ai/gpt-5.4-mini-2026-03-17": {
"deprecation_date": "2027-09-21",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"cache_read_input_token_cost": 7.5e-8,
"cache_read_input_token_cost_priority": 1.5e-7,
"input_cost_per_token": 7.5e-7,
@@ -10633,7 +11640,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000045,
"output_cost_per_token_priority": 0.000009,
@@ -10668,6 +11674,7 @@
},
"azure_ai/gpt-5.4-nano": {
"deprecation_date": "2027-09-21",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"cache_read_input_token_cost": 2e-8,
"cache_read_input_token_cost_priority": 4e-8,
"input_cost_per_token": 2e-7,
@@ -10675,7 +11682,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00000125,
"output_cost_per_token_priority": 0.0000025,
@@ -10710,6 +11716,7 @@
},
"azure_ai/gpt-5.4-nano-2026-03-17": {
"deprecation_date": "2027-09-21",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"cache_read_input_token_cost": 2e-8,
"cache_read_input_token_cost_priority": 4e-8,
"input_cost_per_token": 2e-7,
@@ -10717,7 +11724,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00000125,
"output_cost_per_token_priority": 0.0000025,
@@ -10752,6 +11758,7 @@
},
"azure_ai/gpt-5.5": {
"deprecation_date": "2027-10-26",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"cache_read_input_token_cost": 5e-7,
"cache_read_input_token_cost_above_272k_tokens": 0.000001,
"cache_read_input_token_cost_priority": 0.000001,
@@ -10763,7 +11770,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00003,
"output_cost_per_token_above_272k_tokens": 0.000045,
@@ -10809,7 +11815,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00003,
"output_cost_per_token_above_272k_tokens": 0.000045,
@@ -10845,6 +11850,7 @@
},
"azure_ai/gpt-5.5-2026-04-24": {
"deprecation_date": "2027-10-26",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"cache_read_input_token_cost": 5e-7,
"cache_read_input_token_cost_above_272k_tokens": 0.000001,
"cache_read_input_token_cost_priority": 0.000001,
@@ -10856,7 +11862,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00003,
"output_cost_per_token_above_272k_tokens": 0.000045,
@@ -10900,7 +11905,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00005,
"output_cost_per_token_above_272k_tokens": 0.000075,
@@ -10926,7 +11930,7 @@
"supports_max_reasoning_effort": false,
"supports_minimal_reasoning_effort": false,
"supports_native_streaming": true,
- "supports_none_reasoning_effort": true,
+ "supports_none_reasoning_effort": false,
"supports_parallel_function_calling": true,
"supports_pdf_input": true,
"supports_prompt_cache_breakpoint": true,
@@ -10949,7 +11953,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 5e-7,
"output_cost_per_token_above_272k_tokens": 7.5e-7,
@@ -10998,7 +12001,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_above_272k_tokens": 0.000015,
@@ -11047,7 +12049,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_above_272k_tokens": 0.000015,
@@ -11086,14 +12087,62 @@
"supports_web_search": true,
"supports_xhigh_reasoning_effort": true
},
+ "azure_ai/gpt-6.1-terra": {
+ "cache_creation_input_token_cost": 0.00000125,
+ "cache_creation_input_token_cost_above_272k_tokens": 0.0000025,
+ "cache_read_input_token_cost": 5e-8,
+ "cache_read_input_token_cost_above_272k_tokens": 1e-7,
+ "input_cost_per_token": 0.000001,
+ "input_cost_per_token_above_272k_tokens": 0.000002,
+ "litellm_provider": "azure_ai",
+ "max_input_tokens": 922000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000005,
+ "output_cost_per_token_above_272k_tokens": 0.0000075,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.014,
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014
+ },
+ "source": "https://techcommunity.microsoft.com/blog/azure-ai-foundry-blog/gpt-6-1-terra-now-generally-available-in-microsoft-foundry-build-agents-that-see/4567769",
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/responses"
+ ],
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_max_reasoning_effort": true,
+ "supports_minimal_reasoning_effort": false,
+ "supports_native_streaming": true,
+ "supports_none_reasoning_effort": false,
+ "supports_parallel_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_cache_breakpoint": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_web_search": true,
+ "supports_xhigh_reasoning_effort": true
+ },
"azure_ai/gpt-chat-latest": {
"cache_read_input_token_cost": 5e-7,
"deprecation_date": "2027-05-18",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"input_cost_per_token": 0.000005,
"litellm_provider": "azure_ai",
- "max_input_tokens": 272000,
+ "max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00003,
"source": "https://azure.microsoft.com/en-us/pricing/details/cognitive-services/openai-service/",
@@ -11121,73 +12170,92 @@
"supports_web_search": true
},
"azure_ai/gpt-oss-120b": {
+ "deprecation_date": "2027-09-15",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"input_cost_per_token": 1.5e-7,
"output_cost_per_token": 6e-7,
"litellm_provider": "azure_ai",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
"supports_parallel_function_calling": true,
+ "supports_pdf_input": false,
"supports_response_schema": true,
"supports_tool_choice": true
},
"azure_ai/grok-3": {
"deprecation_date": "2026-05-01",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "azure_ai/grok-4",
"input_cost_per_token": 0.000003,
"output_cost_per_token": 0.000015,
"litellm_provider": "azure_ai",
"mode": "chat",
- "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
+ "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
+ "supports_pdf_input": false
},
"azure_ai/grok-3-mini": {
"deprecation_date": "2026-05-01",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "azure_ai/grok-4-1-fast-reasoning",
"input_cost_per_token": 2.5e-7,
"output_cost_per_token": 0.00000127,
"litellm_provider": "azure_ai",
"mode": "chat",
- "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
+ "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
+ "supports_pdf_input": false
},
"azure_ai/grok-4": {
+ "deprecation_date": "2027-01-31",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "azure_ai/grok-4.3",
"input_cost_per_token": 0.000003,
"litellm_provider": "azure_ai",
"max_input_tokens": 262000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000015,
"source": "https://learn.microsoft.com/en-us/azure/foundry/foundry-models/concepts/models-sold-directly-by-azure",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_response_schema": true,
"supports_tool_choice": true,
"supports_web_search": true
},
"azure_ai/grok-4-1-fast-non-reasoning": {
+ "deprecation_date": "2027-05-19",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"input_cost_per_token": 2e-7,
"output_cost_per_token": 5e-7,
"litellm_provider": "azure_ai",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_response_schema": true,
"supports_tool_choice": true,
"supports_web_search": true
},
"azure_ai/grok-4-1-fast-reasoning": {
+ "deprecation_date": "2027-05-19",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"input_cost_per_token": 2e-7,
"output_cost_per_token": 5e-7,
"litellm_provider": "azure_ai",
+ "token_count_framing": 149,
+ "token_count_tool_framing": 302,
+ "token_count_responses_framing": 145,
+ "token_count_responses_tool_framing": 100,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
@@ -11196,15 +12264,16 @@
"azure_ai/grok-4-20-non-reasoning": {
"cache_read_input_token_cost": 0.00000125,
"deprecation_date": "2027-04-06",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"input_cost_per_token": 0.00000125,
"litellm_provider": "azure_ai",
"max_input_tokens": 262000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_response_schema": true,
"supports_tool_choice": true,
@@ -11214,15 +12283,16 @@
"azure_ai/grok-4-20-reasoning": {
"cache_read_input_token_cost": 0.00000125,
"deprecation_date": "2027-04-06",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"input_cost_per_token": 0.00000125,
"litellm_provider": "azure_ai",
"max_input_tokens": 262000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_response_schema": true,
"supports_tool_choice": true,
@@ -11232,19 +12302,25 @@
},
"azure_ai/grok-4-fast-non-reasoning": {
"deprecation_date": "2026-05-01",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "azure_ai/grok-4-1-fast-non-reasoning",
"input_cost_per_token": 2e-7,
"output_cost_per_token": 5e-7,
"litellm_provider": "azure_ai",
"mode": "chat",
- "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
+ "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
+ "supports_pdf_input": false
},
"azure_ai/grok-4-fast-reasoning": {
"deprecation_date": "2026-05-01",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "azure_ai/grok-4-1-fast-reasoning",
"input_cost_per_token": 2e-7,
"output_cost_per_token": 5e-7,
"litellm_provider": "azure_ai",
"mode": "chat",
- "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'"
+ "source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
+ "supports_pdf_input": false
},
"azure_ai/grok-4.3": {
"cache_read_input_token_cost": 2e-7,
@@ -11254,12 +12330,12 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 200000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_above_200k_tokens": 0.000005,
"source": "https://learn.microsoft.com/en-us/azure/foundry/foundry-models/concepts/models-sold-directly-by-azure",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
@@ -11275,12 +12351,12 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 200000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000006,
"output_cost_per_token_above_200k_tokens": 0.000012,
"source": "https://azure.microsoft.com/en-us/pricing/details/ai-foundry-models/grok/",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
@@ -11297,12 +12373,12 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 500000,
"max_output_tokens": 500000,
- "max_tokens": 500000,
"mode": "chat",
"output_cost_per_token": 0.000006,
"output_cost_per_token_above_200k_tokens": 0.000012,
"source": "https://docs.x.ai/developers/models/grok-4.7",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
@@ -11311,49 +12387,41 @@
"supports_web_search": true
},
"azure_ai/grok-code-fast-1": {
+ "deprecation_date": "2027-01-31",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"input_cost_per_token": 2e-7,
"litellm_provider": "azure_ai",
"max_input_tokens": 256000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"source": "https://learn.microsoft.com/en-us/azure/foundry/foundry-models/concepts/models-sold-directly-by-azure",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_response_schema": true,
"supports_tool_choice": true,
"supports_web_search": true
},
"azure_ai/jais-30b-chat": {
"deprecation_date": "2026-01-30",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
"input_cost_per_token": 0.0032,
"litellm_provider": "azure_ai",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00971,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models"
- },
- "azure_ai/jamba-instruct": {
- "deprecation_date": "2025-03-01",
- "input_cost_per_token": 5e-7,
- "litellm_provider": "azure_ai",
- "max_input_tokens": 70000,
- "max_output_tokens": 4096,
- "max_tokens": 4096,
- "mode": "chat",
- "output_cost_per_token": 7e-7,
"source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
- "supports_tool_choice": true
+ "supports_pdf_input": false
},
"azure_ai/kimi-k2-thinking": {
"deprecation_date": "2026-03-29",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
+ "successor_model": "azure_ai/kimi-k2.5",
"input_cost_per_token": 6e-7,
"litellm_provider": "azure_ai",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://azure.microsoft.com/en-us/pricing/details/ai-foundry-models/kimi/",
@@ -11364,6 +12432,7 @@
"text"
],
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": false,
"supports_reasoning": true,
"supports_tool_choice": true,
@@ -11372,15 +12441,16 @@
},
"azure_ai/kimi-k2.5": {
"deprecation_date": "2027-01-26",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"input_cost_per_token": 6e-7,
"litellm_provider": "azure_ai",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.000003,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_tool_choice": true,
"supports_video_input": true,
"supports_vision": true,
@@ -11389,11 +12459,11 @@
},
"azure_ai/kimi-k2.6": {
"deprecation_date": "2027-04-16",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"input_cost_per_token": 9.5e-7,
"litellm_provider": "azure_ai",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.000004,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
@@ -11405,6 +12475,7 @@
"text"
],
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_reasoning": true,
"supports_tool_choice": true,
"supports_vision": true,
@@ -11414,11 +12485,11 @@
"azure_ai/kimi-k2.7-code": {
"cache_read_input_token_cost": 1.9e-7,
"deprecation_date": "2027-04-16",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"input_cost_per_token": 9.5e-7,
"litellm_provider": "azure_ai",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.000004,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
@@ -11430,6 +12501,7 @@
"text"
],
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true,
@@ -11437,41 +12509,17 @@
},
"azure_ai/ministral-3b": {
"deprecation_date": "2026-12-09",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "ministral-ministral-4b-instruct",
"input_cost_per_token": 4e-8,
"litellm_provider": "azure_ai",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 4e-8,
"source": "https://marketplace.microsoft.com/en/marketplace/apps/000-000.ministral-3b-2410-offer?tab=Overview",
"supports_function_calling": true,
- "supports_tool_choice": true
- },
- "azure_ai/mistral-large": {
- "deprecation_date": "2025-04-15",
- "input_cost_per_token": 0.000004,
- "litellm_provider": "azure_ai",
- "max_input_tokens": 32000,
- "max_output_tokens": 8191,
- "max_tokens": 8191,
- "mode": "chat",
- "output_cost_per_token": 0.000012,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
- "supports_function_calling": true,
- "supports_tool_choice": true
- },
- "azure_ai/mistral-large-2407": {
- "deprecation_date": "2025-05-13",
- "input_cost_per_token": 0.000002,
- "litellm_provider": "azure_ai",
- "max_input_tokens": 128000,
- "max_output_tokens": 4096,
- "max_tokens": 4096,
- "mode": "chat",
- "output_cost_per_token": 0.000006,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
- "supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_tool_choice": true
},
"azure_ai/mistral-large-3": {
@@ -11479,11 +12527,11 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 256000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_tool_choice": true,
"supports_vision": true
},
@@ -11492,24 +12540,26 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000006,
"source": "https://marketplace.microsoft.com/en/marketplace/apps/000-000.mistral-ai-large-2407-offer?tab=Overview",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_tool_choice": true
},
"azure_ai/mistral-medium-2505": {
"deprecation_date": "2026-12-09",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "azure_ai/mistral-medium-3-5",
"input_cost_per_token": 4e-7,
"litellm_provider": "azure_ai",
"max_input_tokens": 131072,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.000002,
"supports_assistant_prefill": true,
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_tool_choice": true
},
"azure_ai/mistral-medium-3-5": {
@@ -11517,7 +12567,6 @@
"litellm_provider": "azure_ai",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000075,
"source": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'",
@@ -11528,84 +12577,79 @@
"supported_output_modalities": [
"text"
],
+ "supports_pdf_input": false,
"supports_response_schema": true,
"supports_vision": true
},
"azure_ai/mistral-nemo": {
"deprecation_date": "2026-01-30",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
+ "successor_model": "azure_ai/mistral-small-2503",
"input_cost_per_token": 1.5e-7,
"litellm_provider": "azure_ai",
"max_input_tokens": 131072,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 1.5e-7,
"source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
- "supports_function_calling": true
- },
- "azure_ai/mistral-small": {
- "deprecation_date": "2025-07-31",
- "input_cost_per_token": 0.000001,
- "litellm_provider": "azure_ai",
- "max_input_tokens": 32000,
- "max_output_tokens": 8191,
- "max_tokens": 8191,
- "mode": "chat",
- "output_cost_per_token": 0.000003,
- "source": "https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/retired-models",
"supports_function_calling": true,
- "supports_tool_choice": true
+ "supports_pdf_input": false
},
"azure_ai/mistral-small-2503": {
- "deprecation_date": "2026-12-09",
+ "deprecation_date": "2027-02-15",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
+ "successor_model": "mistralai-mistral-small-4-119b-2603",
"input_cost_per_token": 1e-7,
"litellm_provider": "azure_ai",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 3e-7,
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_tool_choice": true,
"supports_vision": true
},
"azure_ai/model-router": {
"deprecation_date": "2027-05-20",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"input_cost_per_token": 1.4e-7,
"output_cost_per_token": 0,
"litellm_provider": "azure_ai",
"max_input_tokens": 200000,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"source": "https://azure.microsoft.com/en-us/pricing/details/ai-foundry-models/aoai/",
"comment": "Catalog-name twin of azure_ai/model_router: the flat $0.14 per M input tokens is the router's own fee, the routed model is priced on top of it"
},
"azure_ai/model_router": {
"deprecation_date": "2027-05-20",
+ "deprecation_source": "https://learn.microsoft.com/en-us/azure/foundry/concepts/model-lifecycle-retirement",
"input_cost_per_token": 1.4e-7,
"output_cost_per_token": 0,
"litellm_provider": "azure_ai",
"max_input_tokens": 200000,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"source": "https://azure.microsoft.com/en-us/pricing/details/ai-foundry-models/aoai/",
"comment": "Flat cost of $0.14 per M input tokens for Azure AI Foundry Model Router infrastructure. Use pattern: azure_ai/model_router/ where deployment-name is your Azure deployment (e.g., azure-model-router)"
},
"baseten/MiniMaxAI/MiniMax-M2.5": {
+ "deprecation_date": "2026-10-16",
"input_cost_per_token": 3e-7,
"litellm_provider": "baseten",
"mode": "chat",
"output_cost_per_token": 0.0000012
},
"baseten/deepseek-ai/DeepSeek-V3-0324": {
+ "deprecation_date": "2026-10-16",
"input_cost_per_token": 7.7e-7,
"litellm_provider": "baseten",
"mode": "chat",
"output_cost_per_token": 7.7e-7
},
"baseten/deepseek-ai/DeepSeek-V3.1": {
+ "deprecation_date": "2026-10-16",
"input_cost_per_token": 5e-7,
"litellm_provider": "baseten",
"mode": "chat",
@@ -11617,7 +12661,6 @@
"litellm_provider": "baseten",
"max_input_tokens": 1048576,
"max_output_tokens": 384000,
- "max_tokens": 384000,
"mode": "chat",
"output_cost_per_token": 2.6e-7,
"source": "https://inference.baseten.co/v1/models",
@@ -11629,12 +12672,12 @@
"supports_vision": false
},
"baseten/deepseek-ai/DeepSeek-V4-Pro": {
+ "deprecation_date": "2026-10-16",
"cache_read_input_token_cost": 1.45e-7,
"input_cost_per_token": 0.00000174,
"litellm_provider": "baseten",
"max_input_tokens": 1048576,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.00000348,
"source": "https://inference.baseten.co/v1/models",
@@ -11651,7 +12694,6 @@
"litellm_provider": "baseten",
"max_input_tokens": 1048576,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.00000396,
"source": "https://inference.baseten.co/v1/models",
@@ -11668,7 +12710,6 @@
"litellm_provider": "baseten",
"max_input_tokens": 1048576,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://inference.baseten.co/v1/models",
@@ -11685,7 +12726,6 @@
"litellm_provider": "baseten",
"max_input_tokens": 1048576,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://inference.baseten.co/v1/models",
@@ -11702,7 +12742,6 @@
"litellm_provider": "baseten",
"max_input_tokens": 1048576,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000024,
"source": "https://inference.baseten.co/v1/models",
@@ -11719,7 +12758,6 @@
"litellm_provider": "baseten",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000024,
"source": "https://inference.baseten.co/v1/models",
@@ -11736,7 +12774,6 @@
"litellm_provider": "baseten",
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
- "max_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.00000425,
"source": "https://inference.baseten.co/v1/models",
@@ -11749,30 +12786,33 @@
"supports_vision": true
},
"baseten/moonshotai/Kimi-K2-Instruct-0905": {
+ "deprecation_date": "2026-10-16",
"input_cost_per_token": 6e-7,
"litellm_provider": "baseten",
"mode": "chat",
"output_cost_per_token": 0.0000025
},
"baseten/moonshotai/Kimi-K2-Thinking": {
+ "deprecation_date": "2026-10-16",
"input_cost_per_token": 6e-7,
"litellm_provider": "baseten",
"mode": "chat",
"output_cost_per_token": 0.0000025
},
"baseten/moonshotai/Kimi-K2.5": {
+ "deprecation_date": "2026-10-16",
"input_cost_per_token": 6e-7,
"litellm_provider": "baseten",
"mode": "chat",
"output_cost_per_token": 0.000003
},
"baseten/moonshotai/Kimi-K2.6": {
+ "deprecation_date": "2026-10-16",
"cache_read_input_token_cost": 1.6e-7,
"input_cost_per_token": 9.5e-7,
"litellm_provider": "baseten",
"max_input_tokens": 262000,
"max_output_tokens": 262000,
- "max_tokens": 262000,
"mode": "chat",
"output_cost_per_token": 0.000004,
"source": "https://inference.baseten.co/v1/models",
@@ -11784,12 +12824,12 @@
"supports_vision": true
},
"baseten/moonshotai/Kimi-K2.7-Code": {
+ "deprecation_date": "2026-10-16",
"cache_read_input_token_cost": 1.6e-7,
"input_cost_per_token": 9.5e-7,
"litellm_provider": "baseten",
"max_input_tokens": 262000,
"max_output_tokens": 262000,
- "max_tokens": 262000,
"mode": "chat",
"output_cost_per_token": 0.000004,
"source": "https://inference.baseten.co/v1/models",
@@ -11806,7 +12846,6 @@
"litellm_provider": "baseten",
"max_input_tokens": 1048576,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.000015,
"source": "https://inference.baseten.co/v1/models",
@@ -11823,7 +12862,6 @@
"litellm_provider": "baseten",
"max_input_tokens": 202800,
"max_output_tokens": 202800,
- "max_tokens": 202800,
"mode": "chat",
"output_cost_per_token": 0.0000024,
"source": "https://inference.baseten.co/v1/models",
@@ -11840,7 +12878,6 @@
"litellm_provider": "baseten",
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
- "max_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 5e-7,
"source": "https://inference.baseten.co/v1/models",
@@ -11852,6 +12889,7 @@
"supports_vision": true
},
"baseten/nvidia/Nemotron-120B-A12B": {
+ "deprecation_date": "2026-10-16",
"input_cost_per_token": 3e-7,
"litellm_provider": "baseten",
"mode": "chat",
@@ -11863,7 +12901,6 @@
"litellm_provider": "baseten",
"max_input_tokens": 128072,
"max_output_tokens": 128072,
- "max_tokens": 128072,
"mode": "chat",
"output_cost_per_token": 5e-7,
"source": "https://inference.baseten.co/v1/models",
@@ -11875,14 +12912,13 @@
"supports_vision": false
},
"baseten/reflection/Beam-1.0": {
- "cache_read_input_token_cost": 1.3e-7,
- "input_cost_per_token": 0.0000013,
+ "cache_read_input_token_cost": 4e-8,
+ "input_cost_per_token": 4e-7,
"litellm_provider": "baseten",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
- "output_cost_per_token": 0.0000043,
+ "output_cost_per_token": 0.0000012,
"source": "https://inference.baseten.co/v1/models",
"supports_function_calling": true,
"supports_prompt_caching": true,
@@ -11891,12 +12927,12 @@
"supports_tool_choice": true
},
"baseten/thinkingmachines/inkling": {
+ "deprecation_date": "2026-10-16",
"cache_read_input_token_cost": 1.7e-7,
"input_cost_per_token": 0.000001,
"litellm_provider": "baseten",
"max_input_tokens": 1048576,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.00000405,
"source": "https://inference.baseten.co/v1/models",
@@ -11908,12 +12944,12 @@
"supports_vision": true
},
"baseten/thinkingmachines/inkling-small": {
+ "deprecation_date": "2026-10-16",
"cache_read_input_token_cost": 1e-7,
"input_cost_per_token": 5e-7,
"litellm_provider": "baseten",
"max_input_tokens": 1048576,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://inference.baseten.co/v1/models",
@@ -11925,18 +12961,19 @@
"supports_vision": true
},
"baseten/zai-org/GLM-4.6": {
+ "deprecation_date": "2026-10-16",
"input_cost_per_token": 6e-7,
"litellm_provider": "baseten",
"mode": "chat",
"output_cost_per_token": 0.0000022
},
"baseten/zai-org/GLM-4.7": {
+ "deprecation_date": "2026-10-16",
"cache_read_input_token_cost": 1.2e-7,
"input_cost_per_token": 6e-7,
"litellm_provider": "baseten",
"max_input_tokens": 200000,
"max_output_tokens": 200000,
- "max_tokens": 200000,
"mode": "chat",
"output_cost_per_token": 0.0000022,
"source": "https://inference.baseten.co/v1/models",
@@ -11948,6 +12985,7 @@
"supports_vision": false
},
"baseten/zai-org/GLM-5": {
+ "deprecation_date": "2026-10-16",
"input_cost_per_token": 9.5e-7,
"litellm_provider": "baseten",
"mode": "chat",
@@ -11959,7 +12997,6 @@
"litellm_provider": "baseten",
"max_input_tokens": 1048576,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://inference.baseten.co/v1/models",
@@ -11976,7 +13013,6 @@
"litellm_provider": "baseten",
"max_input_tokens": 1048576,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000066,
"source": "https://inference.baseten.co/v1/models",
@@ -11993,7 +13029,6 @@
"litellm_provider": "baseten",
"max_input_tokens": 1048576,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://inference.baseten.co/v1/models",
@@ -12017,7 +13052,6 @@
"litellm_provider": "baseten",
"max_input_tokens": 1048576,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000066,
"source": "https://inference.baseten.co/v1/models",
@@ -12041,7 +13075,6 @@
"litellm_provider": "baseten",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 5e-7,
"source": "https://inference.baseten.co/v1/models",
@@ -12058,7 +13091,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"supports_tool_choice": true
},
@@ -12068,7 +13100,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"supports_tool_choice": true
},
@@ -12078,7 +13109,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"supports_tool_choice": true
},
@@ -12088,7 +13118,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"supports_tool_choice": true
},
@@ -12098,7 +13127,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"supports_tool_choice": true
},
@@ -12108,7 +13136,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat"
},
"bedrock/ap-northeast-1/1-month-commitment/anthropic.claude-v2:1": {
@@ -12117,7 +13144,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"supports_tool_choice": true
},
@@ -12127,7 +13153,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"supports_tool_choice": true
},
@@ -12137,7 +13162,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat"
},
"bedrock/ap-northeast-1/6-month-commitment/anthropic.claude-v2:1": {
@@ -12146,7 +13170,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"supports_tool_choice": true
},
@@ -12155,7 +13178,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.00000755,
"supports_tool_choice": true
@@ -12165,7 +13187,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.000024,
"supports_tool_choice": true
@@ -12175,21 +13196,23 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.000024,
"supports_tool_choice": true
},
"bedrock/ap-northeast-1/deepseek.v3.2": {
"input_cost_per_token": 7.4e-7,
+ "input_cost_per_token_batches": 3.7e-7,
"input_cost_per_token_flex": 3.7e-7,
+ "input_cost_per_token_priority": 0.000001295,
"litellm_provider": "bedrock",
- "max_input_tokens": 163840,
+ "max_input_tokens": 156000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.00000222,
+ "output_cost_per_token_batches": 0.00000111,
"output_cost_per_token_flex": 0.00000111,
+ "output_cost_per_token_priority": 0.000003885,
"supports_function_calling": true,
"supports_reasoning": true,
"supports_native_structured_output": true,
@@ -12197,36 +13220,41 @@
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-deepseek-deepseek-v3-2.html"
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-deepseek-deepseek-v3-2.md"
},
"bedrock/ap-northeast-1/minimax.minimax-m2.1": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 3.6e-7,
+ "input_cost_per_token_batches": 1.8e-7,
"input_cost_per_token_flex": 1.8e-7,
+ "input_cost_per_token_priority": 6.3e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000144,
+ "output_cost_per_token_batches": 7.2e-7,
"output_cost_per_token_flex": 7.2e-7,
+ "output_cost_per_token_priority": 0.00000252,
"supports_function_calling": true,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-1.html"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json"
},
"bedrock/ap-northeast-1/minimax.minimax-m2.5": {
"input_cost_per_token": 3.6e-7,
+ "input_cost_per_token_batches": 1.8e-7,
"input_cost_per_token_flex": 1.8e-7,
+ "input_cost_per_token_priority": 6.3e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-5.html",
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json",
"supports_function_calling": true,
"supports_reasoning": true,
"supports_system_messages": true,
@@ -12235,16 +13263,58 @@
"supports_response_schema": true,
"supports_vision": false,
"output_cost_per_token": 0.00000144,
- "output_cost_per_token_flex": 7.2e-7
+ "output_cost_per_token_batches": 7.2e-7,
+ "output_cost_per_token_flex": 7.2e-7,
+ "output_cost_per_token_priority": 0.00000252
+ },
+ "bedrock/ap-northeast-1/mistral.voxtral-mini-3b-2507": {
+ "deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
+ "input_cost_per_token": 5e-8,
+ "input_cost_per_token_batches": 3e-8,
+ "input_cost_per_token_flex": 3e-8,
+ "input_cost_per_token_priority": 9e-8,
+ "litellm_provider": "bedrock",
+ "max_input_tokens": 32768,
+ "max_output_tokens": 8192,
+ "mode": "chat",
+ "output_cost_per_token": 5e-8,
+ "output_cost_per_token_batches": 3e-8,
+ "output_cost_per_token_flex": 3e-8,
+ "output_cost_per_token_priority": 9e-8,
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/ap-northeast-1/index.json",
+ "supports_audio_input": true,
+ "supports_system_messages": true,
+ "supports_native_structured_output": true
+ },
+ "bedrock/ap-northeast-1/mistral.voxtral-small-24b-2507": {
+ "deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
+ "input_cost_per_token": 1.2e-7,
+ "input_cost_per_token_batches": 6e-8,
+ "input_cost_per_token_flex": 6e-8,
+ "input_cost_per_token_priority": 2.1e-7,
+ "litellm_provider": "bedrock",
+ "max_input_tokens": 32768,
+ "max_output_tokens": 8192,
+ "mode": "chat",
+ "output_cost_per_token": 3.6e-7,
+ "output_cost_per_token_batches": 1.8e-7,
+ "output_cost_per_token_flex": 1.8e-7,
+ "output_cost_per_token_priority": 6.3e-7,
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/ap-northeast-1/index.json",
+ "supports_audio_input": true,
+ "supports_system_messages": true,
+ "supports_native_structured_output": true
},
"bedrock/ap-northeast-1/moonshotai.kimi-k2-thinking": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-moonshot-ai-kimi-k2-thinking.html",
"input_cost_per_token": 7.3e-7,
"input_cost_per_token_flex": 3.6e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 0.00000303,
"output_cost_per_token_flex": 0.00000152,
@@ -12254,21 +13324,24 @@
},
"bedrock/ap-northeast-1/moonshotai.kimi-k2.5": {
"input_cost_per_token": 7.2e-7,
+ "input_cost_per_token_batches": 3.6e-7,
"input_cost_per_token_flex": 3.6e-7,
+ "input_cost_per_token_priority": 0.00000126,
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 0.0000036,
+ "output_cost_per_token_batches": 0.0000018,
"output_cost_per_token_flex": 0.0000018,
+ "output_cost_per_token_priority": 0.0000063,
"supports_function_calling": true,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_vision": true,
"supports_audio_input": false,
"supports_response_schema": true,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-moonshot-ai-kimi-k2-5.html"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json"
},
"bedrock/ap-northeast-1/qwen.qwen3-coder-next": {
"input_cost_per_token": 6e-7,
@@ -12276,27 +13349,29 @@
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00000144,
"output_cost_per_token_flex": 7.2e-7,
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-coder-next.html",
+ "supports_audio_input": false,
"supports_function_calling": true,
+ "supports_response_schema": true,
"supports_system_messages": true,
"supports_tool_choice": true,
- "supports_audio_input": false,
- "supports_response_schema": true,
- "supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-coder-next.html"
+ "supports_vision": false
},
"bedrock/ap-northeast-1/qwen.qwen3-next-80b-a3b": {
"input_cost_per_token": 1.8e-7,
+ "input_cost_per_token_flex": 9e-8,
+ "input_cost_per_token_priority": 3.2e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000145,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-next-80b-a3b.html",
+ "output_cost_per_token_flex": 7.2e-7,
+ "output_cost_per_token_priority": 0.00000254,
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json",
"supports_function_calling": true,
"supports_native_structured_output": true,
"supports_system_messages": true,
@@ -12306,14 +13381,17 @@
},
"bedrock/ap-south-1/deepseek.v3.2": {
"input_cost_per_token": 7.4e-7,
+ "input_cost_per_token_batches": 3.7e-7,
"input_cost_per_token_flex": 3.7e-7,
+ "input_cost_per_token_priority": 0.000001295,
"litellm_provider": "bedrock",
- "max_input_tokens": 163840,
+ "max_input_tokens": 156000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.00000222,
+ "output_cost_per_token_batches": 0.00000111,
"output_cost_per_token_flex": 0.00000111,
+ "output_cost_per_token_priority": 0.000003885,
"supports_function_calling": true,
"supports_reasoning": true,
"supports_native_structured_output": true,
@@ -12321,58 +13399,63 @@
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-deepseek-deepseek-v3-2.html"
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-deepseek-deepseek-v3-2.md"
},
"bedrock/ap-south-1/meta.llama3-70b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-70b-instruct.md",
"input_cost_per_token": 0.00000318,
"litellm_provider": "bedrock",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000042,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-70b-instruct.md"
},
"bedrock/ap-south-1/meta.llama3-8b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-8b-instruct.md",
"input_cost_per_token": 3.6e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 7.2e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-8b-instruct.md"
},
"bedrock/ap-south-1/minimax.minimax-m2.1": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 3.6e-7,
+ "input_cost_per_token_batches": 1.8e-7,
"input_cost_per_token_flex": 1.8e-7,
+ "input_cost_per_token_priority": 6.3e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000144,
+ "output_cost_per_token_batches": 7.2e-7,
"output_cost_per_token_flex": 7.2e-7,
+ "output_cost_per_token_priority": 0.00000252,
"supports_function_calling": true,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-1.html"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json"
},
"bedrock/ap-south-1/minimax.minimax-m2.5": {
"input_cost_per_token": 3.6e-7,
+ "input_cost_per_token_batches": 1.8e-7,
"input_cost_per_token_flex": 1.8e-7,
+ "input_cost_per_token_priority": 6.3e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-5.html",
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json",
"supports_function_calling": true,
"supports_reasoning": true,
"supports_system_messages": true,
@@ -12381,16 +13464,18 @@
"supports_response_schema": true,
"supports_vision": false,
"output_cost_per_token": 0.00000144,
- "output_cost_per_token_flex": 7.2e-7
+ "output_cost_per_token_batches": 7.2e-7,
+ "output_cost_per_token_flex": 7.2e-7,
+ "output_cost_per_token_priority": 0.00000252
},
"bedrock/ap-south-1/moonshotai.kimi-k2-thinking": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-moonshot-ai-kimi-k2-thinking.html",
"input_cost_per_token": 7.1e-7,
"input_cost_per_token_flex": 3.6e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 0.00000294,
"output_cost_per_token_flex": 0.00000147,
@@ -12400,21 +13485,24 @@
},
"bedrock/ap-south-1/moonshotai.kimi-k2.5": {
"input_cost_per_token": 7.2e-7,
+ "input_cost_per_token_batches": 3.6e-7,
"input_cost_per_token_flex": 3.6e-7,
+ "input_cost_per_token_priority": 0.00000126,
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 0.0000036,
+ "output_cost_per_token_batches": 0.0000018,
"output_cost_per_token_flex": 0.0000018,
+ "output_cost_per_token_priority": 0.0000063,
"supports_function_calling": true,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_vision": true,
"supports_audio_input": false,
"supports_response_schema": true,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-moonshot-ai-kimi-k2-5.html"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json"
},
"bedrock/ap-south-1/qwen.qwen3-coder-next": {
"input_cost_per_token": 6e-7,
@@ -12422,27 +13510,31 @@
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00000144,
"output_cost_per_token_flex": 7.2e-7,
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-coder-next.html",
+ "supports_audio_input": false,
"supports_function_calling": true,
+ "supports_response_schema": true,
"supports_system_messages": true,
"supports_tool_choice": true,
- "supports_audio_input": false,
- "supports_response_schema": true,
- "supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-coder-next.html"
+ "supports_vision": false
},
"bedrock/ap-south-1/qwen.qwen3-next-80b-a3b": {
"input_cost_per_token": 1.8e-7,
+ "input_cost_per_token_batches": 9e-8,
+ "input_cost_per_token_flex": 9e-8,
+ "input_cost_per_token_priority": 3.2e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000141,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-next-80b-a3b.html",
+ "output_cost_per_token_batches": 7.1e-7,
+ "output_cost_per_token_flex": 7.1e-7,
+ "output_cost_per_token_priority": 0.00000247,
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json",
"supports_function_calling": true,
"supports_native_structured_output": true,
"supports_system_messages": true,
@@ -12452,13 +13544,14 @@
},
"bedrock/ap-southeast-2/minimax.minimax-m2.5": {
"input_cost_per_token": 3.1e-7,
+ "input_cost_per_token_batches": 1.55e-7,
"input_cost_per_token_flex": 1.55e-7,
+ "input_cost_per_token_priority": 5.425e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-5.html",
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json",
"supports_function_calling": true,
"supports_reasoning": true,
"supports_system_messages": true,
@@ -12467,14 +13560,55 @@
"supports_response_schema": true,
"supports_vision": false,
"output_cost_per_token": 0.00000124,
- "output_cost_per_token_flex": 6.2e-7
+ "output_cost_per_token_batches": 6.2e-7,
+ "output_cost_per_token_flex": 6.2e-7,
+ "output_cost_per_token_priority": 0.00000217
+ },
+ "bedrock/ap-southeast-2/mistral.voxtral-mini-3b-2507": {
+ "deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
+ "input_cost_per_token": 4.12e-8,
+ "input_cost_per_token_batches": 2.06e-8,
+ "input_cost_per_token_flex": 2.06e-8,
+ "input_cost_per_token_priority": 7.21e-8,
+ "litellm_provider": "bedrock",
+ "max_input_tokens": 32768,
+ "max_output_tokens": 8192,
+ "mode": "chat",
+ "output_cost_per_token": 4.12e-8,
+ "output_cost_per_token_batches": 2.06e-8,
+ "output_cost_per_token_flex": 2.06e-8,
+ "output_cost_per_token_priority": 7.21e-8,
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/ap-southeast-2/index.json",
+ "supports_audio_input": true,
+ "supports_system_messages": true,
+ "supports_native_structured_output": true
+ },
+ "bedrock/ap-southeast-2/mistral.voxtral-small-24b-2507": {
+ "deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
+ "input_cost_per_token": 1.03e-7,
+ "input_cost_per_token_batches": 5.15e-8,
+ "input_cost_per_token_flex": 5.15e-8,
+ "input_cost_per_token_priority": 1.8025e-7,
+ "litellm_provider": "bedrock",
+ "max_input_tokens": 32768,
+ "max_output_tokens": 8192,
+ "mode": "chat",
+ "output_cost_per_token": 3.09e-7,
+ "output_cost_per_token_batches": 1.545e-7,
+ "output_cost_per_token_flex": 1.545e-7,
+ "output_cost_per_token_priority": 5.4075e-7,
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/ap-southeast-2/index.json",
+ "supports_audio_input": true,
+ "supports_system_messages": true,
+ "supports_native_structured_output": true
},
"bedrock/ap-southeast-2/qwen.qwen3-next-80b-a3b": {
"input_cost_per_token": 1.545e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000001236,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-next-80b-a3b.html",
@@ -12489,39 +13623,38 @@
"input_cost_per_token": 7.4e-7,
"input_cost_per_token_flex": 3.7e-7,
"litellm_provider": "bedrock",
- "max_input_tokens": 163840,
+ "max_input_tokens": 156000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.00000222,
"output_cost_per_token_flex": 0.00000111,
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-deepseek-deepseek-v3-2.md",
+ "supports_audio_input": false,
"supports_function_calling": true,
- "supports_reasoning": true,
"supports_native_structured_output": true,
- "supports_tool_choice": true,
- "supports_audio_input": false,
+ "supports_reasoning": true,
"supports_response_schema": true,
- "supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-deepseek-deepseek-v3-2.html"
+ "supports_tool_choice": true,
+ "supports_vision": false
},
"bedrock/ap-southeast-3/minimax.minimax-m2.1": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-1.html",
"input_cost_per_token": 3.6e-7,
"input_cost_per_token_flex": 1.8e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000144,
"output_cost_per_token_flex": 7.2e-7,
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-1.html",
+ "supports_audio_input": false,
"supports_function_calling": true,
+ "supports_response_schema": true,
"supports_system_messages": true,
"supports_tool_choice": true,
- "supports_audio_input": false,
- "supports_response_schema": true,
- "supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-1.html"
+ "supports_vision": false
},
"bedrock/ap-southeast-3/minimax.minimax-m2.5": {
"input_cost_per_token": 3.6e-7,
@@ -12529,18 +13662,17 @@
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
+ "output_cost_per_token": 0.00000144,
+ "output_cost_per_token_flex": 7.2e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-5.html",
+ "supports_audio_input": false,
"supports_function_calling": true,
"supports_reasoning": true,
+ "supports_response_schema": true,
"supports_system_messages": true,
"supports_tool_choice": true,
- "supports_audio_input": false,
- "supports_response_schema": true,
- "supports_vision": false,
- "output_cost_per_token": 0.00000144,
- "output_cost_per_token_flex": 7.2e-7
+ "supports_vision": false
},
"bedrock/ap-southeast-3/moonshotai.kimi-k2.5": {
"input_cost_per_token": 7.2e-7,
@@ -12548,17 +13680,16 @@
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 0.0000036,
"output_cost_per_token_flex": 0.0000018,
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-moonshot-ai-kimi-k2-5.html",
+ "supports_audio_input": false,
"supports_function_calling": true,
+ "supports_response_schema": true,
"supports_system_messages": true,
"supports_tool_choice": true,
- "supports_vision": true,
- "supports_audio_input": false,
- "supports_response_schema": true,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-moonshot-ai-kimi-k2-5.html"
+ "supports_vision": true
},
"bedrock/ap-southeast-3/qwen.qwen3-coder-next": {
"input_cost_per_token": 6e-7,
@@ -12566,95 +13697,676 @@
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00000144,
"output_cost_per_token_flex": 7.2e-7,
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-coder-next.html",
+ "supports_audio_input": false,
"supports_function_calling": true,
+ "supports_response_schema": true,
"supports_system_messages": true,
"supports_tool_choice": true,
- "supports_audio_input": false,
- "supports_response_schema": true,
- "supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-coder-next.html"
+ "supports_vision": false
},
"bedrock/ca-central-1/meta.llama3-70b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-70b-instruct.md",
"input_cost_per_token": 0.00000305,
"litellm_provider": "bedrock",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000403,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-70b-instruct.md"
},
"bedrock/ca-central-1/meta.llama3-8b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-8b-instruct.md",
"input_cost_per_token": 3.5e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 6.9e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-8b-instruct.md"
},
- "bedrock/eu-central-1/1-month-commitment/anthropic.claude-instant-v1": {
- "cost_per_second": 0.01635,
- "input_cost_per_second": 0.01635,
+ "bedrock/claude_platform/claude-fable-5": {
+ "supports_web_search": true,
+ "supports_anthropic_compaction": true,
+ "cache_creation_input_token_cost": 0.0000125,
+ "cache_creation_input_token_cost_above_1hr": 0.00002,
+ "cache_creation_input_token_cost_batches": 0.00000625,
+ "cache_read_input_token_cost": 0.000001,
+ "cache_read_input_token_cost_batches": 5e-7,
+ "input_cost_per_token": 0.00001,
+ "input_cost_per_token_batches": 0.000005,
"litellm_provider": "bedrock",
- "max_input_tokens": 100000,
- "max_output_tokens": 8191,
- "max_tokens": 8191,
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
"mode": "chat",
- "supports_tool_choice": true
- },
- "bedrock/eu-central-1/1-month-commitment/anthropic.claude-v1": {
- "cost_per_second": 0.0415,
- "input_cost_per_second": 0.0415,
- "litellm_provider": "bedrock",
- "max_input_tokens": 100000,
- "max_output_tokens": 8191,
- "max_tokens": 8191,
- "mode": "chat"
+ "output_cost_per_token": 0.00005,
+ "output_cost_per_token_batches": 0.000025,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "supports_adaptive_thinking": true,
+ "thinking_always_on": true,
+ "supports_mid_conversation_system": true,
+ "supports_assistant_prefill": false,
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_sampling_params": false,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_xhigh_reasoning_effort": true,
+ "supports_max_reasoning_effort": true,
+ "provider_specific_entry": {
+ "us": 1.1
+ },
+ "supports_output_config": true,
+ "prompt_cache_min_tokens": 512,
+ "supports_native_structured_output": true,
+ "source": "https://platform.claude.com/docs/en/about-claude/pricing#claude-platform-on-aws-pricing"
},
- "bedrock/eu-central-1/1-month-commitment/anthropic.claude-v2:1": {
- "cost_per_second": 0.0415,
- "input_cost_per_second": 0.0415,
+ "bedrock/claude_platform/claude-fable-5-1": {
+ "supports_web_search": true,
+ "supports_anthropic_compaction": true,
+ "cache_creation_input_token_cost": 0.0000125,
+ "cache_creation_input_token_cost_above_1hr": 0.00002,
+ "cache_creation_input_token_cost_batches": 0.00000625,
+ "cache_read_input_token_cost": 2.5e-7,
+ "cache_read_input_token_cost_batches": 1.25e-7,
+ "input_cost_per_token": 0.00001,
+ "input_cost_per_token_batches": 0.000005,
"litellm_provider": "bedrock",
- "max_input_tokens": 100000,
- "max_output_tokens": 8191,
- "max_tokens": 8191,
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
"mode": "chat",
- "supports_tool_choice": true
+ "output_cost_per_token": 0.00005,
+ "output_cost_per_token_batches": 0.000025,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "supports_adaptive_thinking": true,
+ "thinking_always_on": true,
+ "supports_mid_conversation_system": true,
+ "supports_assistant_prefill": false,
+ "supports_computer_use": true,
+ "supports_forced_tool_use": false,
+ "supports_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_sampling_params": false,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_xhigh_reasoning_effort": true,
+ "supports_max_reasoning_effort": true,
+ "provider_specific_entry": {
+ "us": 1.1
+ },
+ "supports_output_config": true,
+ "prompt_cache_min_tokens": 512,
+ "supports_native_structured_output": true,
+ "source": "https://platform.claude.com/docs/en/about-claude/pricing#claude-platform-on-aws-pricing"
},
- "bedrock/eu-central-1/6-month-commitment/anthropic.claude-instant-v1": {
- "cost_per_second": 0.009083,
- "input_cost_per_second": 0.009083,
+ "bedrock/claude_platform/claude-haiku-4-5": {
+ "cache_creation_input_token_cost": 0.00000125,
+ "cache_creation_input_token_cost_above_1hr": 0.000002,
+ "cache_creation_input_token_cost_batches": 6.25e-7,
+ "cache_read_input_token_cost": 1e-7,
+ "cache_read_input_token_cost_batches": 5e-8,
+ "input_cost_per_token": 0.000001,
+ "input_cost_per_token_batches": 5e-7,
"litellm_provider": "bedrock",
- "max_input_tokens": 100000,
- "max_output_tokens": 8191,
- "max_tokens": 8191,
+ "max_input_tokens": 200000,
+ "max_output_tokens": 64000,
"mode": "chat",
- "supports_tool_choice": true
- },
- "bedrock/eu-central-1/6-month-commitment/anthropic.claude-v1": {
- "cost_per_second": 0.02305,
- "input_cost_per_second": 0.02305,
- "litellm_provider": "bedrock",
- "max_input_tokens": 100000,
- "max_output_tokens": 8191,
- "max_tokens": 8191,
- "mode": "chat"
+ "output_cost_per_token": 0.000005,
+ "output_cost_per_token_batches": 0.0000025,
+ "supports_assistant_prefill": true,
+ "supports_function_calling": true,
+ "supports_native_structured_output": true,
+ "supports_computer_use": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "prompt_cache_min_tokens": 4096,
+ "source": "https://platform.claude.com/docs/en/about-claude/pricing#claude-platform-on-aws-pricing"
},
- "bedrock/eu-central-1/6-month-commitment/anthropic.claude-v2:1": {
- "cost_per_second": 0.02305,
- "input_cost_per_second": 0.02305,
+ "bedrock/claude_platform/claude-haiku-5-5": {
+ "input_cost_per_token_above_100k_tokens_batches": 2.5e-7,
+ "output_cost_per_token_above_100k_tokens_batches": 0.00000125,
+ "cache_creation_input_token_cost_above_100k_tokens_batches": 3.125e-7,
+ "cache_read_input_token_cost_above_100k_tokens_batches": 2.5e-8,
+ "supports_anthropic_compaction": true,
+ "cache_creation_input_token_cost": 1.25e-7,
+ "cache_creation_input_token_cost_above_1hr": 2e-7,
+ "cache_creation_input_token_cost_batches": 6.25e-8,
+ "cache_read_input_token_cost": 1e-8,
+ "cache_read_input_token_cost_batches": 5e-9,
+ "input_cost_per_token": 1e-7,
+ "input_cost_per_token_batches": 5e-8,
"litellm_provider": "bedrock",
- "max_input_tokens": 100000,
- "max_output_tokens": 8191,
- "max_tokens": 8191,
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 5e-7,
+ "output_cost_per_token_batches": 2.5e-7,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "supports_adaptive_thinking": true,
+ "supports_mid_conversation_system": true,
+ "supports_assistant_prefill": false,
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_native_structured_output": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_sampling_params": false,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_xhigh_reasoning_effort": true,
+ "supports_max_reasoning_effort": true,
+ "provider_specific_entry": {
+ "us": 1.1
+ },
+ "supports_output_config": true,
+ "supports_forced_tool_use": true,
+ "thinking_always_on": false,
+ "prompt_cache_min_tokens": 512,
+ "source": "https://platform.claude.com/docs/en/about-claude/pricing#claude-platform-on-aws-pricing",
+ "supports_web_search": true,
+ "input_cost_per_token_above_100k_tokens": 5e-7,
+ "output_cost_per_token_above_100k_tokens": 0.0000025,
+ "cache_creation_input_token_cost_above_100k_tokens": 6.25e-7,
+ "cache_creation_input_token_cost_above_1hr_above_100k_tokens": 0.000001,
+ "cache_read_input_token_cost_above_100k_tokens": 5e-8
+ },
+ "bedrock/claude_platform/claude-opus-4-5": {
+ "cache_creation_input_token_cost": 0.00000625,
+ "cache_creation_input_token_cost_above_1hr": 0.00001,
+ "cache_creation_input_token_cost_batches": 0.000003125,
+ "cache_read_input_token_cost": 5e-7,
+ "cache_read_input_token_cost_batches": 2.5e-7,
+ "input_cost_per_token": 0.000005,
+ "input_cost_per_token_batches": 0.0000025,
+ "litellm_provider": "bedrock",
+ "max_input_tokens": 200000,
+ "max_output_tokens": 64000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000025,
+ "output_cost_per_token_batches": 0.0000125,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "supports_assistant_prefill": true,
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_thinking_cache_preservation": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_native_structured_output": true,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_output_config": true,
+ "prompt_cache_min_tokens": 4096,
+ "source": "https://platform.claude.com/docs/en/about-claude/pricing#claude-platform-on-aws-pricing"
+ },
+ "bedrock/claude_platform/claude-opus-4-6": {
+ "supports_web_search": true,
+ "supports_anthropic_compaction": true,
+ "cache_creation_input_token_cost": 0.00000625,
+ "cache_creation_input_token_cost_above_1hr": 0.00001,
+ "cache_creation_input_token_cost_batches": 0.000003125,
+ "cache_read_input_token_cost": 5e-7,
+ "cache_read_input_token_cost_batches": 2.5e-7,
+ "input_cost_per_token": 0.000005,
+ "input_cost_per_token_batches": 0.0000025,
+ "litellm_provider": "bedrock",
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000025,
+ "output_cost_per_token_batches": 0.0000125,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "supports_adaptive_thinking": true,
+ "supports_legacy_thinking": true,
+ "supports_assistant_prefill": false,
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_thinking_cache_preservation": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_native_structured_output": true,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "provider_specific_entry": {
+ "us": 1.1
+ },
+ "supports_output_config": true,
+ "supports_max_reasoning_effort": true,
+ "prompt_cache_min_tokens": 4096,
+ "source": "https://platform.claude.com/docs/en/about-claude/pricing#claude-platform-on-aws-pricing"
+ },
+ "bedrock/claude_platform/claude-opus-4-7": {
+ "supports_web_search": true,
+ "supports_anthropic_compaction": true,
+ "cache_creation_input_token_cost": 0.00000625,
+ "cache_creation_input_token_cost_above_1hr": 0.00001,
+ "cache_creation_input_token_cost_batches": 0.000003125,
+ "cache_read_input_token_cost": 5e-7,
+ "cache_read_input_token_cost_batches": 2.5e-7,
+ "input_cost_per_token": 0.000005,
+ "input_cost_per_token_batches": 0.0000025,
+ "litellm_provider": "bedrock",
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000025,
+ "output_cost_per_token_batches": 0.0000125,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "supports_adaptive_thinking": true,
+ "supports_assistant_prefill": false,
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_thinking_cache_preservation": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_native_structured_output": true,
+ "supports_sampling_params": false,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_xhigh_reasoning_effort": true,
+ "supports_max_reasoning_effort": true,
+ "provider_specific_entry": {
+ "us": 1.1
+ },
+ "supports_output_config": true,
+ "prompt_cache_min_tokens": 2048,
+ "source": "https://platform.claude.com/docs/en/about-claude/pricing#claude-platform-on-aws-pricing"
+ },
+ "bedrock/claude_platform/claude-opus-4-8": {
+ "supports_web_search": true,
+ "supports_anthropic_compaction": true,
+ "cache_creation_input_token_cost": 0.00000625,
+ "cache_creation_input_token_cost_above_1hr": 0.00001,
+ "cache_creation_input_token_cost_batches": 0.000003125,
+ "cache_read_input_token_cost": 5e-7,
+ "cache_read_input_token_cost_batches": 2.5e-7,
+ "input_cost_per_token": 0.000005,
+ "input_cost_per_token_batches": 0.0000025,
+ "litellm_provider": "bedrock",
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000025,
+ "output_cost_per_token_batches": 0.0000125,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "supports_adaptive_thinking": true,
+ "supports_mid_conversation_system": true,
+ "supports_assistant_prefill": false,
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_thinking_cache_preservation": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_native_structured_output": true,
+ "supports_sampling_params": false,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_xhigh_reasoning_effort": true,
+ "supports_max_reasoning_effort": true,
+ "provider_specific_entry": {
+ "us": 1.1
+ },
+ "supports_output_config": true,
+ "prompt_cache_min_tokens": 1024,
+ "source": "https://platform.claude.com/docs/en/about-claude/pricing#claude-platform-on-aws-pricing"
+ },
+ "bedrock/claude_platform/claude-opus-5": {
+ "supports_web_search": true,
+ "supports_anthropic_compaction": true,
+ "cache_creation_input_token_cost": 0.00000625,
+ "cache_creation_input_token_cost_above_1hr": 0.00001,
+ "cache_creation_input_token_cost_batches": 0.000003125,
+ "cache_read_input_token_cost": 5e-7,
+ "cache_read_input_token_cost_batches": 2.5e-7,
+ "input_cost_per_token": 0.000005,
+ "input_cost_per_token_batches": 0.0000025,
+ "litellm_provider": "bedrock",
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000025,
+ "output_cost_per_token_batches": 0.0000125,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "supports_adaptive_thinking": true,
+ "supports_mid_conversation_system": true,
+ "supports_assistant_prefill": false,
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_thinking_cache_preservation": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_native_structured_output": true,
+ "supports_sampling_params": false,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_xhigh_reasoning_effort": true,
+ "supports_max_reasoning_effort": true,
+ "provider_specific_entry": {
+ "us": 1.1
+ },
+ "supports_output_config": true,
+ "prompt_cache_min_tokens": 512,
+ "source": "https://platform.claude.com/docs/en/about-claude/pricing#claude-platform-on-aws-pricing"
+ },
+ "bedrock/claude_platform/claude-opus-5-5": {
+ "supports_web_search": true,
+ "supports_anthropic_compaction": true,
+ "cache_creation_input_token_cost": 0.000005,
+ "cache_creation_input_token_cost_above_1hr": 0.000008,
+ "cache_creation_input_token_cost_batches": 0.0000025,
+ "cache_read_input_token_cost": 2e-7,
+ "cache_read_input_token_cost_batches": 1e-7,
+ "input_cost_per_token": 0.000004,
+ "input_cost_per_token_batches": 0.000002,
+ "litellm_provider": "bedrock",
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.00002,
+ "output_cost_per_token_batches": 0.00001,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "supports_adaptive_thinking": true,
+ "thinking_always_on": true,
+ "supports_mid_conversation_system": true,
+ "supports_assistant_prefill": false,
+ "supports_computer_use": true,
+ "supports_forced_tool_use": false,
+ "supports_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_native_structured_output": true,
+ "supports_sampling_params": false,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_xhigh_reasoning_effort": true,
+ "supports_max_reasoning_effort": true,
+ "provider_specific_entry": {
+ "us": 1.1
+ },
+ "supports_output_config": true,
+ "prompt_cache_min_tokens": 512,
+ "source": "https://platform.claude.com/docs/en/about-claude/pricing#claude-platform-on-aws-pricing"
+ },
+ "bedrock/claude_platform/claude-sonnet-4-5": {
+ "cache_creation_input_token_cost": 0.00000375,
+ "cache_creation_input_token_cost_above_1hr": 0.000006,
+ "cache_read_input_token_cost": 3e-7,
+ "input_cost_per_token": 0.000003,
+ "cache_creation_input_token_cost_batches": 0.000001875,
+ "cache_read_input_token_cost_batches": 1.5e-7,
+ "deprecation_date": "2026-11-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
+ "successor_model": "bedrock/claude_platform/claude-sonnet-5-5",
+ "input_cost_per_token_batches": 0.0000015,
+ "litellm_provider": "bedrock",
+ "max_input_tokens": 200000,
+ "max_output_tokens": 64000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000015,
+ "output_cost_per_token_batches": 0.0000075,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "supports_assistant_prefill": true,
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_native_structured_output": true,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "prompt_cache_min_tokens": 1024,
+ "source": "https://platform.claude.com/docs/en/about-claude/pricing#claude-platform-on-aws-pricing"
+ },
+ "bedrock/claude_platform/claude-sonnet-4-6": {
+ "supports_web_search": true,
+ "supports_anthropic_compaction": true,
+ "cache_creation_input_token_cost": 0.00000375,
+ "cache_creation_input_token_cost_above_1hr": 0.000006,
+ "cache_creation_input_token_cost_batches": 0.000001875,
+ "cache_read_input_token_cost": 3e-7,
+ "cache_read_input_token_cost_batches": 1.5e-7,
+ "input_cost_per_token": 0.000003,
+ "input_cost_per_token_batches": 0.0000015,
+ "litellm_provider": "bedrock",
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000015,
+ "output_cost_per_token_batches": 0.0000075,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "supports_adaptive_thinking": true,
+ "supports_legacy_thinking": true,
+ "supports_assistant_prefill": false,
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_thinking_cache_preservation": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_native_structured_output": true,
+ "supports_max_reasoning_effort": true,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_output_config": true,
+ "prompt_cache_min_tokens": 1024,
+ "provider_specific_entry": {
+ "us": 1.1
+ },
+ "source": "https://platform.claude.com/docs/en/about-claude/pricing#claude-platform-on-aws-pricing"
+ },
+ "bedrock/claude_platform/claude-sonnet-5": {
+ "supports_web_search": true,
+ "supports_anthropic_compaction": true,
+ "cache_creation_input_token_cost": 0.0000025,
+ "cache_creation_input_token_cost_above_1hr": 0.000004,
+ "cache_creation_input_token_cost_batches": 0.00000125,
+ "cache_read_input_token_cost": 2e-7,
+ "cache_read_input_token_cost_batches": 1e-7,
+ "input_cost_per_token": 0.000002,
+ "input_cost_per_token_batches": 0.000001,
+ "litellm_provider": "bedrock",
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.00001,
+ "output_cost_per_token_batches": 0.000005,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "supports_adaptive_thinking": true,
+ "supports_mid_conversation_system": true,
+ "supports_assistant_prefill": false,
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_native_structured_output": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_thinking_cache_preservation": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_sampling_params": false,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_xhigh_reasoning_effort": true,
+ "supports_max_reasoning_effort": true,
+ "provider_specific_entry": {
+ "us": 1.1
+ },
+ "supports_output_config": true,
+ "prompt_cache_min_tokens": 1024,
+ "source": "https://platform.claude.com/docs/en/about-claude/pricing#claude-platform-on-aws-pricing"
+ },
+ "bedrock/claude_platform/claude-sonnet-5-5": {
+ "supports_anthropic_compaction": true,
+ "cache_creation_input_token_cost": 0.0000025,
+ "cache_creation_input_token_cost_above_1hr": 0.000004,
+ "cache_creation_input_token_cost_batches": 0.00000125,
+ "cache_read_input_token_cost": 1e-7,
+ "cache_read_input_token_cost_batches": 5e-8,
+ "input_cost_per_token": 0.000002,
+ "input_cost_per_token_batches": 0.000001,
+ "litellm_provider": "bedrock",
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.00001,
+ "output_cost_per_token_batches": 0.000005,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "supports_adaptive_thinking": true,
+ "supports_mid_conversation_system": true,
+ "supports_assistant_prefill": false,
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_native_structured_output": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_sampling_params": false,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_xhigh_reasoning_effort": true,
+ "supports_max_reasoning_effort": true,
+ "provider_specific_entry": {
+ "us": 1.1
+ },
+ "supports_output_config": true,
+ "supports_forced_tool_use": false,
+ "thinking_always_on": true,
+ "prompt_cache_min_tokens": 512,
+ "source": "https://platform.claude.com/docs/en/about-claude/pricing#claude-platform-on-aws-pricing",
+ "supports_web_search": true
+ },
+ "bedrock/eu-central-1/1-month-commitment/anthropic.claude-instant-v1": {
+ "cost_per_second": 0.01635,
+ "input_cost_per_second": 0.01635,
+ "litellm_provider": "bedrock",
+ "max_input_tokens": 100000,
+ "max_output_tokens": 8191,
+ "mode": "chat",
+ "supports_tool_choice": true
+ },
+ "bedrock/eu-central-1/1-month-commitment/anthropic.claude-v1": {
+ "cost_per_second": 0.0415,
+ "input_cost_per_second": 0.0415,
+ "litellm_provider": "bedrock",
+ "max_input_tokens": 100000,
+ "max_output_tokens": 8191,
+ "mode": "chat"
+ },
+ "bedrock/eu-central-1/1-month-commitment/anthropic.claude-v2:1": {
+ "cost_per_second": 0.0415,
+ "input_cost_per_second": 0.0415,
+ "litellm_provider": "bedrock",
+ "max_input_tokens": 100000,
+ "max_output_tokens": 8191,
+ "mode": "chat",
+ "supports_tool_choice": true
+ },
+ "bedrock/eu-central-1/6-month-commitment/anthropic.claude-instant-v1": {
+ "cost_per_second": 0.009083,
+ "input_cost_per_second": 0.009083,
+ "litellm_provider": "bedrock",
+ "max_input_tokens": 100000,
+ "max_output_tokens": 8191,
+ "mode": "chat",
+ "supports_tool_choice": true
+ },
+ "bedrock/eu-central-1/6-month-commitment/anthropic.claude-v1": {
+ "cost_per_second": 0.02305,
+ "input_cost_per_second": 0.02305,
+ "litellm_provider": "bedrock",
+ "max_input_tokens": 100000,
+ "max_output_tokens": 8191,
+ "mode": "chat"
+ },
+ "bedrock/eu-central-1/6-month-commitment/anthropic.claude-v2:1": {
+ "cost_per_second": 0.02305,
+ "input_cost_per_second": 0.02305,
+ "litellm_provider": "bedrock",
+ "max_input_tokens": 100000,
+ "max_output_tokens": 8191,
"mode": "chat",
"supports_tool_choice": true
},
@@ -12663,7 +14375,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.00000838,
"supports_tool_choice": true
@@ -12673,7 +14384,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.000024
},
@@ -12682,39 +14392,43 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.000024,
"supports_tool_choice": true
},
"bedrock/eu-central-1/minimax.minimax-m2.1": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 3.6e-7,
+ "input_cost_per_token_batches": 1.8e-7,
"input_cost_per_token_flex": 1.8e-7,
+ "input_cost_per_token_priority": 6.3e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000144,
+ "output_cost_per_token_batches": 7.2e-7,
"output_cost_per_token_flex": 7.2e-7,
+ "output_cost_per_token_priority": 0.00000252,
"supports_function_calling": true,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-1.html"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json"
},
"bedrock/eu-central-1/minimax.minimax-m2.5": {
"input_cost_per_token": 3.6e-7,
+ "input_cost_per_token_batches": 1.8e-7,
"input_cost_per_token_flex": 1.8e-7,
+ "input_cost_per_token_priority": 6.3e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-5.html",
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json",
"supports_function_calling": true,
"supports_reasoning": true,
"supports_system_messages": true,
@@ -12723,7 +14437,9 @@
"supports_response_schema": true,
"supports_vision": false,
"output_cost_per_token": 0.00000144,
- "output_cost_per_token_flex": 7.2e-7
+ "output_cost_per_token_batches": 7.2e-7,
+ "output_cost_per_token_flex": 7.2e-7,
+ "output_cost_per_token_priority": 0.00000252
},
"bedrock/eu-central-1/qwen.qwen3-coder-next": {
"input_cost_per_token": 6e-7,
@@ -12731,28 +14447,30 @@
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00000144,
"output_cost_per_token_flex": 7.2e-7,
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-coder-next.html",
+ "supports_audio_input": false,
"supports_function_calling": true,
+ "supports_response_schema": true,
"supports_system_messages": true,
"supports_tool_choice": true,
- "supports_audio_input": false,
- "supports_response_schema": true,
- "supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-coder-next.html"
+ "supports_vision": false
},
"bedrock/eu-north-1/deepseek.v3.2": {
"input_cost_per_token": 7.4e-7,
+ "input_cost_per_token_batches": 3.7e-7,
"input_cost_per_token_flex": 3.7e-7,
+ "input_cost_per_token_priority": 0.000001295,
"litellm_provider": "bedrock",
- "max_input_tokens": 163840,
+ "max_input_tokens": 156000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.00000222,
+ "output_cost_per_token_batches": 0.00000111,
"output_cost_per_token_flex": 0.00000111,
+ "output_cost_per_token_priority": 0.000003885,
"supports_function_calling": true,
"supports_reasoning": true,
"supports_native_structured_output": true,
@@ -12760,36 +14478,41 @@
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-deepseek-deepseek-v3-2.html"
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-deepseek-deepseek-v3-2.md"
},
"bedrock/eu-north-1/minimax.minimax-m2.1": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 3.6e-7,
+ "input_cost_per_token_batches": 1.8e-7,
"input_cost_per_token_flex": 1.8e-7,
+ "input_cost_per_token_priority": 6.3e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000144,
+ "output_cost_per_token_batches": 7.2e-7,
"output_cost_per_token_flex": 7.2e-7,
+ "output_cost_per_token_priority": 0.00000252,
"supports_function_calling": true,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-1.html"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json"
},
"bedrock/eu-north-1/minimax.minimax-m2.5": {
"input_cost_per_token": 3.6e-7,
+ "input_cost_per_token_batches": 1.8e-7,
"input_cost_per_token_flex": 1.8e-7,
+ "input_cost_per_token_priority": 6.3e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-5.html",
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json",
"supports_function_calling": true,
"supports_reasoning": true,
"supports_system_messages": true,
@@ -12798,44 +14521,49 @@
"supports_response_schema": true,
"supports_vision": false,
"output_cost_per_token": 0.00000144,
- "output_cost_per_token_flex": 7.2e-7
+ "output_cost_per_token_batches": 7.2e-7,
+ "output_cost_per_token_flex": 7.2e-7,
+ "output_cost_per_token_priority": 0.00000252
},
"bedrock/eu-north-1/moonshotai.kimi-k2.5": {
"input_cost_per_token": 7.2e-7,
+ "input_cost_per_token_batches": 3.6e-7,
"input_cost_per_token_flex": 3.6e-7,
+ "input_cost_per_token_priority": 0.00000126,
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 0.0000036,
+ "output_cost_per_token_batches": 0.0000018,
"output_cost_per_token_flex": 0.0000018,
+ "output_cost_per_token_priority": 0.0000063,
"supports_function_calling": true,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_vision": true,
"supports_audio_input": false,
"supports_response_schema": true,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-moonshot-ai-kimi-k2-5.html"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json"
},
"bedrock/eu-south-1/minimax.minimax-m2.1": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-1.html",
"input_cost_per_token": 3.6e-7,
"input_cost_per_token_flex": 1.8e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000144,
"output_cost_per_token_flex": 7.2e-7,
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-1.html",
+ "supports_audio_input": false,
"supports_function_calling": true,
+ "supports_response_schema": true,
"supports_system_messages": true,
"supports_tool_choice": true,
- "supports_audio_input": false,
- "supports_response_schema": true,
- "supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-1.html"
+ "supports_vision": false
},
"bedrock/eu-south-1/minimax.minimax-m2.5": {
"input_cost_per_token": 3.6e-7,
@@ -12843,18 +14571,17 @@
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
+ "output_cost_per_token": 0.00000144,
+ "output_cost_per_token_flex": 7.2e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-5.html",
+ "supports_audio_input": false,
"supports_function_calling": true,
"supports_reasoning": true,
+ "supports_response_schema": true,
"supports_system_messages": true,
"supports_tool_choice": true,
- "supports_audio_input": false,
- "supports_response_schema": true,
- "supports_vision": false,
- "output_cost_per_token": 0.00000144,
- "output_cost_per_token_flex": 7.2e-7
+ "supports_vision": false
},
"bedrock/eu-south-1/qwen.qwen3-coder-next": {
"input_cost_per_token": 6e-7,
@@ -12862,68 +14589,72 @@
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00000144,
"output_cost_per_token_flex": 7.2e-7,
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-coder-next.html",
+ "supports_audio_input": false,
"supports_function_calling": true,
+ "supports_response_schema": true,
"supports_system_messages": true,
"supports_tool_choice": true,
- "supports_audio_input": false,
- "supports_response_schema": true,
- "supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-coder-next.html"
+ "supports_vision": false
},
"bedrock/eu-west-1/meta.llama3-70b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-70b-instruct.md",
"input_cost_per_token": 0.00000286,
"litellm_provider": "bedrock",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000378,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-70b-instruct.md"
},
"bedrock/eu-west-1/meta.llama3-8b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-8b-instruct.md",
"input_cost_per_token": 3.2e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 6.5e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-8b-instruct.md"
},
"bedrock/eu-west-1/minimax.minimax-m2.1": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 3.6e-7,
+ "input_cost_per_token_batches": 1.8e-7,
"input_cost_per_token_flex": 1.8e-7,
+ "input_cost_per_token_priority": 6.3e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000144,
+ "output_cost_per_token_batches": 7.2e-7,
"output_cost_per_token_flex": 7.2e-7,
+ "output_cost_per_token_priority": 0.00000252,
"supports_function_calling": true,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-1.html"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json"
},
"bedrock/eu-west-1/minimax.minimax-m2.5": {
"input_cost_per_token": 3.6e-7,
+ "input_cost_per_token_batches": 1.8e-7,
"input_cost_per_token_flex": 1.8e-7,
+ "input_cost_per_token_priority": 6.3e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-5.html",
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json",
"supports_function_calling": true,
"supports_reasoning": true,
"supports_system_messages": true,
@@ -12932,7 +14663,9 @@
"supports_response_schema": true,
"supports_vision": false,
"output_cost_per_token": 0.00000144,
- "output_cost_per_token_flex": 7.2e-7
+ "output_cost_per_token_batches": 7.2e-7,
+ "output_cost_per_token_flex": 7.2e-7,
+ "output_cost_per_token_priority": 0.00000252
},
"bedrock/eu-west-1/qwen.qwen3-coder-next": {
"input_cost_per_token": 6e-7,
@@ -12940,27 +14673,29 @@
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00000144,
"output_cost_per_token_flex": 7.2e-7,
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-coder-next.html",
+ "supports_audio_input": false,
"supports_function_calling": true,
+ "supports_response_schema": true,
"supports_system_messages": true,
"supports_tool_choice": true,
- "supports_audio_input": false,
- "supports_response_schema": true,
- "supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-coder-next.html"
+ "supports_vision": false
},
"bedrock/eu-west-1/qwen.qwen3-next-80b-a3b": {
"input_cost_per_token": 1.8e-7,
+ "input_cost_per_token_flex": 9e-8,
+ "input_cost_per_token_priority": 3.2e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000141,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-next-80b-a3b.html",
+ "output_cost_per_token_flex": 7.1e-7,
+ "output_cost_per_token_priority": 0.00000247,
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json",
"supports_function_calling": true,
"supports_native_structured_output": true,
"supports_system_messages": true,
@@ -12970,54 +14705,59 @@
},
"bedrock/eu-west-2/meta.llama3-70b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-70b-instruct.md",
"input_cost_per_token": 0.00000345,
"litellm_provider": "bedrock",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000455,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-70b-instruct.md"
},
"bedrock/eu-west-2/meta.llama3-8b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-8b-instruct.md",
"input_cost_per_token": 3.9e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 7.8e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-8b-instruct.md"
},
"bedrock/eu-west-2/minimax.minimax-m2.1": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 4.7e-7,
+ "input_cost_per_token_batches": 2.35e-7,
"input_cost_per_token_flex": 2.35e-7,
+ "input_cost_per_token_priority": 8.225e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000186,
+ "output_cost_per_token_batches": 9.3e-7,
"output_cost_per_token_flex": 9.3e-7,
+ "output_cost_per_token_priority": 0.000003255,
"supports_function_calling": true,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-1.html"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json"
},
"bedrock/eu-west-2/minimax.minimax-m2.5": {
"input_cost_per_token": 4.7e-7,
+ "input_cost_per_token_batches": 2.35e-7,
"input_cost_per_token_flex": 2.35e-7,
+ "input_cost_per_token_priority": 8.225e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-5.html",
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json",
"supports_function_calling": true,
"supports_reasoning": true,
"supports_system_messages": true,
@@ -13026,19 +14766,64 @@
"supports_response_schema": true,
"supports_vision": false,
"output_cost_per_token": 0.00000186,
- "output_cost_per_token_flex": 9.3e-7
+ "output_cost_per_token_batches": 9.3e-7,
+ "output_cost_per_token_flex": 9.3e-7,
+ "output_cost_per_token_priority": 0.000003255
+ },
+ "bedrock/eu-west-2/mistral.voxtral-mini-3b-2507": {
+ "deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
+ "input_cost_per_token": 6e-8,
+ "input_cost_per_token_batches": 3e-8,
+ "input_cost_per_token_flex": 3e-8,
+ "input_cost_per_token_priority": 1.1e-7,
+ "litellm_provider": "bedrock",
+ "max_input_tokens": 32768,
+ "max_output_tokens": 8192,
+ "mode": "chat",
+ "output_cost_per_token": 6e-8,
+ "output_cost_per_token_batches": 3e-8,
+ "output_cost_per_token_flex": 3e-8,
+ "output_cost_per_token_priority": 1.1e-7,
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/eu-west-2/index.json",
+ "supports_audio_input": true,
+ "supports_system_messages": true,
+ "supports_native_structured_output": true
+ },
+ "bedrock/eu-west-2/mistral.voxtral-small-24b-2507": {
+ "deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
+ "input_cost_per_token": 1.6e-7,
+ "input_cost_per_token_batches": 8e-8,
+ "input_cost_per_token_flex": 8e-8,
+ "input_cost_per_token_priority": 2.8e-7,
+ "litellm_provider": "bedrock",
+ "max_input_tokens": 32768,
+ "max_output_tokens": 8192,
+ "mode": "chat",
+ "output_cost_per_token": 4.7e-7,
+ "output_cost_per_token_batches": 2.3e-7,
+ "output_cost_per_token_flex": 2.3e-7,
+ "output_cost_per_token_priority": 8.2e-7,
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/eu-west-2/index.json",
+ "supports_audio_input": true,
+ "supports_system_messages": true,
+ "supports_native_structured_output": true
},
"bedrock/eu-west-2/nvidia.nemotron-super-3-120b": {
"input_cost_per_token": 2.3e-7,
+ "input_cost_per_token_batches": 1.15e-7,
"input_cost_per_token_flex": 1.15e-7,
+ "input_cost_per_token_priority": 4.025e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 256000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.00000101,
+ "output_cost_per_token_batches": 5.05e-7,
"output_cost_per_token_flex": 5.05e-7,
- "source": "https://aws.amazon.com/bedrock/pricing/",
+ "output_cost_per_token_priority": 0.0000017675,
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json",
"supports_audio_input": false,
"supports_function_calling": true,
"supports_reasoning": true,
@@ -13049,31 +14834,37 @@
},
"bedrock/eu-west-2/qwen.qwen3-coder-next": {
"input_cost_per_token": 7.8e-7,
+ "input_cost_per_token_batches": 3.9e-7,
"input_cost_per_token_flex": 3.9e-7,
+ "input_cost_per_token_priority": 0.000001365,
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00000186,
+ "output_cost_per_token_batches": 9.3e-7,
"output_cost_per_token_flex": 9.3e-7,
+ "output_cost_per_token_priority": 0.000003255,
"supports_function_calling": true,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-coder-next.html"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json"
},
"bedrock/eu-west-2/qwen.qwen3-next-80b-a3b": {
"input_cost_per_token": 2.3e-7,
+ "input_cost_per_token_flex": 1.2e-7,
+ "input_cost_per_token_priority": 4e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000186,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-next-80b-a3b.html",
+ "output_cost_per_token_flex": 9.3e-7,
+ "output_cost_per_token_priority": 0.00000326,
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json",
"supports_function_calling": true,
"supports_native_structured_output": true,
"supports_system_messages": true,
@@ -13083,11 +14874,11 @@
},
"bedrock/eu-west-3/mistral.mistral-7b-instruct-v0:2": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-mistral-ai-mistral-7b-instruct.md",
"input_cost_per_token": 2e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 32000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 2.6e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-mistral-ai-mistral-7b-instruct.md",
@@ -13098,7 +14889,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 32000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.0000156,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-mistral-ai-mistral-large.md",
@@ -13106,11 +14896,11 @@
},
"bedrock/eu-west-3/mistral.mixtral-8x7b-instruct-v0:1": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-mistral-ai-mixtral-8x7b-instruct.md",
"input_cost_per_token": 5.9e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 32000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 9.1e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-mistral-ai-mixtral-8x7b-instruct.md",
@@ -13121,7 +14911,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 200000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"metadata": {
"notes": "Anthropic via Invoke route does not currently support pdf input."
},
@@ -13136,12 +14925,12 @@
},
"bedrock/moonshotai.kimi-k2-thinking": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 6e-7,
"input_cost_per_token_flex": 3e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_flex": 0.00000125,
@@ -13155,7 +14944,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 0.000003,
"output_cost_per_token_flex": 0.0000015,
@@ -13171,14 +14959,17 @@
},
"bedrock/sa-east-1/deepseek.v3.2": {
"input_cost_per_token": 7.4e-7,
+ "input_cost_per_token_batches": 3.7e-7,
"input_cost_per_token_flex": 3.7e-7,
+ "input_cost_per_token_priority": 0.000001295,
"litellm_provider": "bedrock",
- "max_input_tokens": 163840,
+ "max_input_tokens": 156000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.00000222,
+ "output_cost_per_token_batches": 0.00000111,
"output_cost_per_token_flex": 0.00000111,
+ "output_cost_per_token_priority": 0.000003885,
"supports_function_calling": true,
"supports_reasoning": true,
"supports_native_structured_output": true,
@@ -13186,58 +14977,63 @@
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-deepseek-deepseek-v3-2.html"
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-deepseek-deepseek-v3-2.md"
},
"bedrock/sa-east-1/meta.llama3-70b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-70b-instruct.md",
"input_cost_per_token": 0.00000445,
"litellm_provider": "bedrock",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000588,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-70b-instruct.md"
},
"bedrock/sa-east-1/meta.llama3-8b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-8b-instruct.md",
"input_cost_per_token": 5e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000101,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-8b-instruct.md"
},
"bedrock/sa-east-1/minimax.minimax-m2.1": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 3.6e-7,
+ "input_cost_per_token_batches": 1.8e-7,
"input_cost_per_token_flex": 1.8e-7,
+ "input_cost_per_token_priority": 6.3e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000144,
+ "output_cost_per_token_batches": 7.2e-7,
"output_cost_per_token_flex": 7.2e-7,
+ "output_cost_per_token_priority": 0.00000252,
"supports_function_calling": true,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-1.html"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json"
},
"bedrock/sa-east-1/minimax.minimax-m2.5": {
"input_cost_per_token": 3.6e-7,
+ "input_cost_per_token_batches": 1.8e-7,
"input_cost_per_token_flex": 1.8e-7,
+ "input_cost_per_token_priority": 6.3e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-5.html",
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json",
"supports_function_calling": true,
"supports_reasoning": true,
"supports_system_messages": true,
@@ -13246,16 +15042,18 @@
"supports_response_schema": true,
"supports_vision": false,
"output_cost_per_token": 0.00000144,
- "output_cost_per_token_flex": 7.2e-7
+ "output_cost_per_token_batches": 7.2e-7,
+ "output_cost_per_token_flex": 7.2e-7,
+ "output_cost_per_token_priority": 0.00000252
},
"bedrock/sa-east-1/moonshotai.kimi-k2-thinking": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-moonshot-ai-kimi-k2-thinking.html",
"input_cost_per_token": 7.3e-7,
"input_cost_per_token_flex": 3.6e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 0.00000303,
"output_cost_per_token_flex": 0.00000152,
@@ -13265,21 +15063,24 @@
},
"bedrock/sa-east-1/moonshotai.kimi-k2.5": {
"input_cost_per_token": 7.2e-7,
+ "input_cost_per_token_batches": 3.6e-7,
"input_cost_per_token_flex": 3.6e-7,
+ "input_cost_per_token_priority": 0.00000126,
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 0.0000036,
+ "output_cost_per_token_batches": 0.0000018,
"output_cost_per_token_flex": 0.0000018,
+ "output_cost_per_token_priority": 0.0000063,
"supports_function_calling": true,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_vision": true,
"supports_audio_input": false,
"supports_response_schema": true,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-moonshot-ai-kimi-k2-5.html"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json"
},
"bedrock/sa-east-1/qwen.qwen3-coder-next": {
"input_cost_per_token": 6e-7,
@@ -13287,27 +15088,29 @@
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00000144,
"output_cost_per_token_flex": 7.2e-7,
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-coder-next.html",
+ "supports_audio_input": false,
"supports_function_calling": true,
+ "supports_response_schema": true,
"supports_system_messages": true,
"supports_tool_choice": true,
- "supports_audio_input": false,
- "supports_response_schema": true,
- "supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-coder-next.html"
+ "supports_vision": false
},
"bedrock/sa-east-1/qwen.qwen3-next-80b-a3b": {
"input_cost_per_token": 1.8e-7,
+ "input_cost_per_token_flex": 9e-8,
+ "input_cost_per_token_priority": 3.2e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000145,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-next-80b-a3b.html",
+ "output_cost_per_token_flex": 7.2e-7,
+ "output_cost_per_token_priority": 0.00000254,
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json",
"supports_function_calling": true,
"supports_native_structured_output": true,
"supports_system_messages": true,
@@ -13321,7 +15124,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"supports_tool_choice": true
},
@@ -13331,7 +15133,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat"
},
"bedrock/us-east-1/1-month-commitment/anthropic.claude-v2:1": {
@@ -13340,7 +15141,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"supports_tool_choice": true
},
@@ -13350,7 +15150,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"supports_tool_choice": true
},
@@ -13360,7 +15159,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat"
},
"bedrock/us-east-1/6-month-commitment/anthropic.claude-v2:1": {
@@ -13369,7 +15167,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"supports_tool_choice": true
},
@@ -13378,7 +15175,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.0000024,
"supports_tool_choice": true
@@ -13388,7 +15184,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.000024,
"supports_tool_choice": true
@@ -13398,21 +15193,23 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.000024,
"supports_tool_choice": true
},
"bedrock/us-east-1/deepseek.v3.2": {
"input_cost_per_token": 6.2e-7,
+ "input_cost_per_token_batches": 3.1e-7,
"input_cost_per_token_flex": 3.1e-7,
+ "input_cost_per_token_priority": 0.000001085,
"litellm_provider": "bedrock",
- "max_input_tokens": 163840,
+ "max_input_tokens": 156000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.00000185,
+ "output_cost_per_token_batches": 9.25e-7,
"output_cost_per_token_flex": 9.25e-7,
+ "output_cost_per_token_priority": 0.0000032375,
"supports_function_calling": true,
"supports_reasoning": true,
"supports_native_structured_output": true,
@@ -13420,74 +15217,81 @@
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-deepseek-deepseek-v3-2.html"
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-deepseek-deepseek-v3-2.md"
},
"bedrock/us-east-1/meta.llama3-70b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-70b-instruct.md",
"input_cost_per_token": 0.00000265,
"litellm_provider": "bedrock",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000035,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-70b-instruct.md"
},
"bedrock/us-east-1/meta.llama3-8b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-8b-instruct.md",
"input_cost_per_token": 3e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 6e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-8b-instruct.md"
},
"bedrock/us-east-1/minimax.minimax-m2.1": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 3e-7,
+ "input_cost_per_token_batches": 1.5e-7,
"input_cost_per_token_flex": 1.5e-7,
+ "input_cost_per_token_priority": 5.25e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000012,
+ "output_cost_per_token_batches": 6e-7,
"output_cost_per_token_flex": 6e-7,
+ "output_cost_per_token_priority": 0.0000021,
"supports_function_calling": true,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-1.html"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json"
},
"bedrock/us-east-1/minimax.minimax-m2.5": {
"input_cost_per_token": 3e-7,
+ "input_cost_per_token_batches": 1.5e-7,
"input_cost_per_token_flex": 1.5e-7,
+ "input_cost_per_token_priority": 5.25e-7,
"output_cost_per_token": 0.0000012,
"output_cost_per_token_flex": 6e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
+ "output_cost_per_token_batches": 6e-7,
+ "output_cost_per_token_priority": 0.0000021,
"supports_function_calling": true,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-5.html"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json"
},
"bedrock/us-east-1/mistral.mistral-7b-instruct-v0:2": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-mistral-ai-mistral-7b-instruct.md",
"input_cost_per_token": 1.5e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 32000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 2e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-mistral-ai-mistral-7b-instruct.md",
@@ -13498,7 +15302,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 32000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000012,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-mistral-ai-mistral-large.md",
@@ -13506,11 +15309,11 @@
},
"bedrock/us-east-1/mistral.mixtral-8x7b-instruct-v0:1": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-mistral-ai-mixtral-8x7b-instruct.md",
"input_cost_per_token": 4.5e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 32000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 7e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-mistral-ai-mixtral-8x7b-instruct.md",
@@ -13518,12 +15321,12 @@
},
"bedrock/us-east-1/moonshotai.kimi-k2-thinking": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-moonshot-ai-kimi-k2-thinking.html",
"input_cost_per_token": 6e-7,
"input_cost_per_token_flex": 3e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_flex": 0.00000125,
@@ -13533,48 +15336,59 @@
},
"bedrock/us-east-1/moonshotai.kimi-k2.5": {
"input_cost_per_token": 6e-7,
+ "input_cost_per_token_batches": 3e-7,
"input_cost_per_token_flex": 3e-7,
+ "input_cost_per_token_priority": 0.00000105,
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 0.000003,
+ "output_cost_per_token_batches": 0.0000015,
"output_cost_per_token_flex": 0.0000015,
+ "output_cost_per_token_priority": 0.00000525,
"supports_function_calling": true,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_vision": true,
"supports_audio_input": false,
"supports_response_schema": true,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-moonshot-ai-kimi-k2-5.html"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json"
},
"bedrock/us-east-1/qwen.qwen3-coder-next": {
"input_cost_per_token": 5e-7,
+ "input_cost_per_token_batches": 2.5e-7,
"input_cost_per_token_flex": 2.5e-7,
+ "input_cost_per_token_priority": 8.75e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000012,
+ "output_cost_per_token_batches": 6e-7,
"output_cost_per_token_flex": 6e-7,
+ "output_cost_per_token_priority": 0.0000021,
"supports_function_calling": true,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-coder-next.html"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json"
},
"bedrock/us-east-1/zai.glm-5": {
"input_cost_per_token": 0.000001,
+ "input_cost_per_token_batches": 5e-7,
+ "input_cost_per_token_flex": 5e-7,
+ "input_cost_per_token_priority": 0.00000175,
"output_cost_per_token": 0.0000032,
"litellm_provider": "bedrock",
"max_input_tokens": 200000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
+ "output_cost_per_token_batches": 0.0000016,
+ "output_cost_per_token_flex": 0.0000016,
+ "output_cost_per_token_priority": 0.0000056,
"supports_function_calling": true,
"supports_reasoning": true,
"supports_system_messages": true,
@@ -13583,18 +15397,21 @@
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json"
},
"bedrock/us-east-2/deepseek.v3.2": {
"input_cost_per_token": 6.2e-7,
+ "input_cost_per_token_batches": 3.1e-7,
"input_cost_per_token_flex": 3.1e-7,
+ "input_cost_per_token_priority": 0.000001085,
"litellm_provider": "bedrock",
- "max_input_tokens": 163840,
+ "max_input_tokens": 156000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.00000185,
+ "output_cost_per_token_batches": 9.25e-7,
"output_cost_per_token_flex": 9.25e-7,
+ "output_cost_per_token_priority": 0.0000032375,
"supports_function_calling": true,
"supports_reasoning": true,
"supports_native_structured_output": true,
@@ -13602,36 +15419,41 @@
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-deepseek-deepseek-v3-2.html"
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-deepseek-deepseek-v3-2.md"
},
"bedrock/us-east-2/minimax.minimax-m2.1": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 3e-7,
+ "input_cost_per_token_batches": 1.5e-7,
"input_cost_per_token_flex": 1.5e-7,
+ "input_cost_per_token_priority": 5.25e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000012,
+ "output_cost_per_token_batches": 6e-7,
"output_cost_per_token_flex": 6e-7,
+ "output_cost_per_token_priority": 0.0000021,
"supports_function_calling": true,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-1.html"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json"
},
"bedrock/us-east-2/minimax.minimax-m2.5": {
"input_cost_per_token": 3e-7,
+ "input_cost_per_token_batches": 1.5e-7,
"input_cost_per_token_flex": 1.5e-7,
+ "input_cost_per_token_priority": 5.25e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-5.html",
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json",
"supports_function_calling": true,
"supports_reasoning": true,
"supports_system_messages": true,
@@ -13640,16 +15462,18 @@
"supports_response_schema": true,
"supports_vision": false,
"output_cost_per_token": 0.0000012,
- "output_cost_per_token_flex": 6e-7
+ "output_cost_per_token_batches": 6e-7,
+ "output_cost_per_token_flex": 6e-7,
+ "output_cost_per_token_priority": 0.0000021
},
"bedrock/us-east-2/moonshotai.kimi-k2-thinking": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-moonshot-ai-kimi-k2-thinking.html",
"input_cost_per_token": 6e-7,
"input_cost_per_token_flex": 3e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_flex": 0.00000125,
@@ -13659,21 +15483,24 @@
},
"bedrock/us-east-2/moonshotai.kimi-k2.5": {
"input_cost_per_token": 6e-7,
+ "input_cost_per_token_batches": 3e-7,
"input_cost_per_token_flex": 3e-7,
+ "input_cost_per_token_priority": 0.00000105,
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 0.000003,
+ "output_cost_per_token_batches": 0.0000015,
"output_cost_per_token_flex": 0.0000015,
+ "output_cost_per_token_priority": 0.00000525,
"supports_function_calling": true,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_vision": true,
"supports_audio_input": false,
"supports_response_schema": true,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-moonshot-ai-kimi-k2-5.html"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json"
},
"bedrock/us-east-2/qwen.qwen3-coder-next": {
"input_cost_per_token": 5e-7,
@@ -13681,17 +15508,16 @@
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"output_cost_per_token_flex": 6e-7,
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-coder-next.html",
+ "supports_audio_input": false,
"supports_function_calling": true,
+ "supports_response_schema": true,
"supports_system_messages": true,
"supports_tool_choice": true,
- "supports_audio_input": false,
- "supports_response_schema": true,
- "supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-coder-next.html"
+ "supports_vision": false
},
"bedrock/us-gov-east-1/amazon.nova-pro-v1:0": {
"cache_read_input_token_cost": 2.4e-7,
@@ -13699,7 +15525,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 300000,
"max_output_tokens": 10000,
- "max_tokens": 10000,
"mode": "chat",
"output_cost_per_token": 0.00000384,
"supports_function_calling": true,
@@ -13714,7 +15539,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 42000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.0000017
},
@@ -13723,7 +15547,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 42000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 4e-7
},
@@ -13732,7 +15555,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 42000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.0000015
},
@@ -13744,7 +15566,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00006,
"supports_adaptive_thinking": true,
@@ -13763,6 +15584,7 @@
"supports_vision": true,
"supports_xhigh_reasoning_effort": true,
"supports_native_structured_output": false,
+ "supports_bedrock_native_structured_output": false,
"supports_max_reasoning_effort": true,
"supports_output_config": true,
"bedrock_output_config_effort_ceiling": "xhigh",
@@ -13778,7 +15600,6 @@
"supports_tool_search": true,
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000006,
"source": "https://aws.amazon.com/about-aws/whats-new/2025/10/claude-4-5-haiku-anthropic-amazon-bedrock",
@@ -13793,7 +15614,11 @@
"supports_native_structured_output": true,
"supports_pdf_input": true,
"supports_parallel_tool_use_config": true,
- "prompt_cache_min_tokens": 4096
+ "prompt_cache_min_tokens": 4096,
+ "token_count_model": {
+ "model": "anthropic.claude-haiku-4-5-20251001-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"bedrock/us-gov-east-1/anthropic.claude-haiku-5-5": {
"input_cost_per_token_above_100k_tokens": 6e-7,
@@ -13811,7 +15636,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 6e-7,
"supports_forced_tool_use": true,
@@ -13848,7 +15672,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00003,
"prompt_cache_min_tokens": 1024,
@@ -13881,7 +15704,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00003,
"prompt_cache_min_tokens": 512,
@@ -13901,7 +15723,10 @@
"supports_sampling_params": false,
"supports_tool_choice": true,
"supports_vision": true,
- "supports_xhigh_reasoning_effort": true
+ "supports_xhigh_reasoning_effort": true,
+ "input_cost_per_token_batches": 0.000003,
+ "output_cost_per_token_batches": 0.000015,
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/us-gov-east-1/index.json"
},
"bedrock/us-gov-east-1/anthropic.claude-opus-5-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -13913,7 +15738,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000024,
"prompt_cache_min_tokens": 512,
@@ -13924,6 +15748,7 @@
"supports_max_reasoning_effort": true,
"supports_mid_conversation_system": true,
"supports_native_structured_output": false,
+ "supports_bedrock_native_structured_output": false,
"supports_output_config": true,
"supports_parallel_tool_use_config": true,
"supports_pdf_input": true,
@@ -13942,12 +15767,14 @@
"cache_creation_input_token_cost": 0.0000045,
"cache_creation_input_token_cost_above_1hr": 0.0000072,
"cache_read_input_token_cost": 3.6e-7,
+ "deprecation_date": "2027-04-08",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-sonnet-4-5.md",
+ "successor_model": "bedrock/us-gov-east-1/anthropic.claude-sonnet-5-5",
"input_cost_per_token": 0.0000036,
"litellm_provider": "bedrock",
"supports_tool_search": true,
"max_input_tokens": 200000,
- "max_output_tokens": 8192,
- "max_tokens": 8192,
+ "max_output_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000018,
"supports_assistant_prefill": true,
@@ -13961,7 +15788,12 @@
"supports_vision": true,
"supports_native_structured_output": true,
"supports_parallel_tool_use_config": true,
- "prompt_cache_min_tokens": 1024
+ "prompt_cache_min_tokens": 1024,
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-sonnet-4-5.md",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-5-20250929-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"bedrock/us-gov-east-1/anthropic.claude-sonnet-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -13974,7 +15806,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000012,
"prompt_cache_min_tokens": 1024,
@@ -14008,7 +15839,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000012,
"supports_forced_tool_use": false,
@@ -14038,12 +15868,13 @@
"cache_creation_input_token_cost": 0.0000045,
"cache_creation_input_token_cost_above_1hr": 0.0000072,
"cache_read_input_token_cost": 3.6e-7,
+ "deprecation_date": "2027-04-08",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-sonnet-4-5.md",
"input_cost_per_token": 0.0000036,
"litellm_provider": "bedrock",
"supports_tool_search": true,
"max_input_tokens": 200000,
- "max_output_tokens": 8192,
- "max_tokens": 8192,
+ "max_output_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000018,
"supports_assistant_prefill": true,
@@ -14057,14 +15888,18 @@
"supports_vision": true,
"supports_native_structured_output": true,
"supports_parallel_tool_use_config": true,
- "prompt_cache_min_tokens": 1024
+ "prompt_cache_min_tokens": 1024,
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-sonnet-4-5.md",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-5-20250929-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"bedrock/us-gov-east-1/meta.llama3-70b-instruct-v1:0": {
"input_cost_per_token": 0.00000265,
"litellm_provider": "bedrock",
"max_input_tokens": 8000,
"max_output_tokens": 2048,
- "max_tokens": 2048,
"mode": "chat",
"output_cost_per_token": 0.0000035,
"supports_pdf_input": true
@@ -14074,18 +15909,17 @@
"litellm_provider": "bedrock",
"max_input_tokens": 8000,
"max_output_tokens": 2048,
- "max_tokens": 2048,
"mode": "chat",
"output_cost_per_token": 0.00000265,
"supports_pdf_input": true
},
"bedrock/us-gov-east-1/nvidia.nemotron-nano-12b-v2": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-nvidia-nvidia-nemotron-nano-12b-v2-vl-bf16.html",
"input_cost_per_token": 2.4e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 7.2e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-nvidia-nvidia-nemotron-nano-12b-v2-vl-bf16.html",
@@ -14100,7 +15934,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 2.88e-7,
"source": "https://aws.amazon.com/bedrock/pricing/",
@@ -14114,11 +15947,11 @@
},
"bedrock/us-gov-east-1/nvidia.nemotron-nano-9b-v2": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-nvidia-nvidia-nemotron-nano-9b-v2.html",
"input_cost_per_token": 7.2e-8,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 2.76e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-nvidia-nvidia-nemotron-nano-9b-v2.html",
@@ -14133,7 +15966,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 256000,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 7.8e-7,
"source": "https://aws.amazon.com/bedrock/pricing/",
@@ -14146,11 +15978,11 @@
"supports_vision": false
},
"bedrock/us-gov-east-1/openai.gpt-oss-120b-1:0": {
+ "supports_vision": false,
"input_cost_per_token": 1.8e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 7.2e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-oss-120b.html",
@@ -14165,11 +15997,11 @@
"supports_tool_choice": true
},
"bedrock/us-gov-east-1/openai.gpt-oss-20b-1:0": {
+ "supports_vision": false,
"input_cost_per_token": 8.4e-8,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 3.6e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-oss-20b.html",
@@ -14189,7 +16021,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 300000,
"max_output_tokens": 10000,
- "max_tokens": 10000,
"mode": "chat",
"output_cost_per_token": 2.88e-7,
"supports_function_calling": true,
@@ -14205,7 +16036,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 10000,
- "max_tokens": 10000,
"mode": "chat",
"output_cost_per_token": 1.68e-7,
"supports_function_calling": true,
@@ -14219,7 +16049,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 300000,
"max_output_tokens": 10000,
- "max_tokens": 10000,
"mode": "chat",
"output_cost_per_token": 0.00000384,
"supports_function_calling": true,
@@ -14234,7 +16063,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 42000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.0000016
},
@@ -14243,7 +16071,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 42000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 4e-7
},
@@ -14252,7 +16079,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 42000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.0000015
},
@@ -14264,7 +16090,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00006,
"supports_adaptive_thinking": true,
@@ -14283,11 +16108,17 @@
"supports_vision": true,
"supports_xhigh_reasoning_effort": true,
"supports_native_structured_output": false,
+ "supports_bedrock_native_structured_output": false,
"supports_max_reasoning_effort": true,
"supports_output_config": true,
"bedrock_output_config_effort_ceiling": "xhigh",
"supports_parallel_tool_use_config": true,
- "prompt_cache_min_tokens": 512
+ "prompt_cache_min_tokens": 512,
+ "token_count_model": {
+ "model": "anthropic.claude-fable-5-1",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-gov-west-1"
+ }
},
"bedrock/us-gov-west-1/anthropic.claude-haiku-4-5-20251001-v1:0": {
"cache_creation_input_token_cost": 0.0000015,
@@ -14298,7 +16129,6 @@
"supports_tool_search": true,
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000006,
"source": "https://aws.amazon.com/about-aws/whats-new/2025/10/claude-4-5-haiku-anthropic-amazon-bedrock",
@@ -14313,7 +16143,11 @@
"supports_native_structured_output": true,
"supports_pdf_input": true,
"supports_parallel_tool_use_config": true,
- "prompt_cache_min_tokens": 4096
+ "prompt_cache_min_tokens": 4096,
+ "token_count_model": {
+ "model": "anthropic.claude-haiku-4-5-20251001-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"bedrock/us-gov-west-1/anthropic.claude-haiku-5-5": {
"input_cost_per_token_above_100k_tokens": 6e-7,
@@ -14331,7 +16165,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 6e-7,
"supports_forced_tool_use": true,
@@ -14355,7 +16188,12 @@
"supports_sampling_params": false,
"supports_tool_choice": true,
"supports_vision": true,
- "supports_xhigh_reasoning_effort": true
+ "supports_xhigh_reasoning_effort": true,
+ "token_count_model": {
+ "model": "anthropic.claude-haiku-5-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-gov-west-1"
+ }
},
"bedrock/us-gov-west-1/anthropic.claude-opus-4-8": {
"bedrock_converse_supports_strict_tools": false,
@@ -14368,7 +16206,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00003,
"prompt_cache_min_tokens": 1024,
@@ -14389,7 +16226,12 @@
"supports_sampling_params": false,
"supports_tool_choice": true,
"supports_vision": true,
- "supports_xhigh_reasoning_effort": true
+ "supports_xhigh_reasoning_effort": true,
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-8",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-gov-west-1"
+ }
},
"bedrock/us-gov-west-1/anthropic.claude-opus-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -14401,7 +16243,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00003,
"prompt_cache_min_tokens": 512,
@@ -14421,7 +16262,15 @@
"supports_sampling_params": false,
"supports_tool_choice": true,
"supports_vision": true,
- "supports_xhigh_reasoning_effort": true
+ "supports_xhigh_reasoning_effort": true,
+ "token_count_model": {
+ "model": "anthropic.claude-opus-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-gov-west-1"
+ },
+ "input_cost_per_token_batches": 0.000003,
+ "output_cost_per_token_batches": 0.000015,
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/us-gov-west-1/index.json"
},
"bedrock/us-gov-west-1/anthropic.claude-opus-5-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -14433,7 +16282,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000024,
"prompt_cache_min_tokens": 512,
@@ -14444,6 +16292,7 @@
"supports_max_reasoning_effort": true,
"supports_mid_conversation_system": true,
"supports_native_structured_output": false,
+ "supports_bedrock_native_structured_output": false,
"supports_output_config": true,
"supports_parallel_tool_use_config": true,
"supports_pdf_input": true,
@@ -14456,18 +16305,25 @@
"supports_xhigh_reasoning_effort": true,
"thinking_always_on": true,
"supports_forced_tool_use": false,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-5-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-gov-west-1"
+ }
},
"bedrock/us-gov-west-1/anthropic.claude-sonnet-4-5-20250929-v1:0": {
"cache_creation_input_token_cost": 0.0000045,
"cache_creation_input_token_cost_above_1hr": 0.0000072,
"cache_read_input_token_cost": 3.6e-7,
+ "deprecation_date": "2027-04-08",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-sonnet-4-5.md",
+ "successor_model": "bedrock/us-gov-west-1/anthropic.claude-sonnet-5-5",
"input_cost_per_token": 0.0000036,
"litellm_provider": "bedrock",
"supports_tool_search": true,
"max_input_tokens": 200000,
- "max_output_tokens": 8192,
- "max_tokens": 8192,
+ "max_output_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000018,
"supports_assistant_prefill": true,
@@ -14481,7 +16337,12 @@
"supports_vision": true,
"supports_native_structured_output": true,
"supports_parallel_tool_use_config": true,
- "prompt_cache_min_tokens": 1024
+ "prompt_cache_min_tokens": 1024,
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-sonnet-4-5.md",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-5-20250929-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"bedrock/us-gov-west-1/anthropic.claude-sonnet-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -14494,7 +16355,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000012,
"prompt_cache_min_tokens": 1024,
@@ -14515,7 +16375,12 @@
"supports_sampling_params": false,
"supports_tool_choice": true,
"supports_vision": true,
- "supports_xhigh_reasoning_effort": true
+ "supports_xhigh_reasoning_effort": true,
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-gov-west-1"
+ }
},
"bedrock/us-gov-west-1/anthropic.claude-sonnet-5-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -14528,7 +16393,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000012,
"supports_forced_tool_use": false,
@@ -14552,18 +16416,24 @@
"supports_sampling_params": false,
"supports_tool_choice": true,
"supports_vision": true,
- "supports_xhigh_reasoning_effort": true
+ "supports_xhigh_reasoning_effort": true,
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-5-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-gov-west-1"
+ }
},
"bedrock/us-gov-west-1/claude-sonnet-4-5-20250929-v1:0": {
"cache_creation_input_token_cost": 0.0000045,
"cache_creation_input_token_cost_above_1hr": 0.0000072,
"cache_read_input_token_cost": 3.6e-7,
+ "deprecation_date": "2027-04-08",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-sonnet-4-5.md",
"input_cost_per_token": 0.0000036,
"litellm_provider": "bedrock",
"supports_tool_search": true,
"max_input_tokens": 200000,
- "max_output_tokens": 8192,
- "max_tokens": 8192,
+ "max_output_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000018,
"supports_assistant_prefill": true,
@@ -14577,35 +16447,44 @@
"supports_vision": true,
"supports_native_structured_output": true,
"supports_parallel_tool_use_config": true,
- "prompt_cache_min_tokens": 1024
+ "prompt_cache_min_tokens": 1024,
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-sonnet-4-5.md",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-5-20250929-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"bedrock/us-gov-west-1/meta.llama3-70b-instruct-v1:0": {
+ "deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-70b-instruct.md",
"input_cost_per_token": 0.00000265,
"litellm_provider": "bedrock",
"max_input_tokens": 8000,
- "max_output_tokens": 2048,
- "max_tokens": 2048,
+ "max_output_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000035,
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-70b-instruct.md",
"supports_pdf_input": true
},
"bedrock/us-gov-west-1/meta.llama3-8b-instruct-v1:0": {
+ "deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-8b-instruct.md",
"input_cost_per_token": 3e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 8000,
- "max_output_tokens": 2048,
- "max_tokens": 2048,
+ "max_output_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 6e-7,
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-8b-instruct.md",
"supports_pdf_input": true
},
"bedrock/us-gov-west-1/nvidia.nemotron-nano-12b-v2": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-nvidia-nvidia-nemotron-nano-12b-v2-vl-bf16.html",
"input_cost_per_token": 2.4e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 7.2e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-nvidia-nvidia-nemotron-nano-12b-v2-vl-bf16.html",
@@ -14620,7 +16499,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 2.88e-7,
"source": "https://aws.amazon.com/bedrock/pricing/",
@@ -14634,11 +16512,11 @@
},
"bedrock/us-gov-west-1/nvidia.nemotron-nano-9b-v2": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-nvidia-nvidia-nemotron-nano-9b-v2.html",
"input_cost_per_token": 7.2e-8,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 2.76e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-nvidia-nvidia-nemotron-nano-9b-v2.html",
@@ -14653,7 +16531,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 256000,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 7.8e-7,
"source": "https://aws.amazon.com/bedrock/pricing/",
@@ -14666,11 +16543,11 @@
"supports_vision": false
},
"bedrock/us-gov-west-1/openai.gpt-oss-120b-1:0": {
+ "supports_vision": false,
"input_cost_per_token": 1.8e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 7.2e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-oss-120b.html",
@@ -14685,11 +16562,11 @@
"supports_tool_choice": true
},
"bedrock/us-gov-west-1/openai.gpt-oss-20b-1:0": {
+ "supports_vision": false,
"input_cost_per_token": 8.4e-8,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 3.6e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-oss-20b.html",
@@ -14705,22 +16582,22 @@
},
"bedrock/us-west-1/meta.llama3-70b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-70b-instruct.md",
"input_cost_per_token": 0.00000265,
"litellm_provider": "bedrock",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000035,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-70b-instruct.md"
},
"bedrock/us-west-1/meta.llama3-8b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-8b-instruct.md",
"input_cost_per_token": 3e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 6e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-8b-instruct.md"
@@ -14731,7 +16608,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"supports_tool_choice": true
},
@@ -14741,7 +16617,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat"
},
"bedrock/us-west-2/1-month-commitment/anthropic.claude-v2:1": {
@@ -14750,7 +16625,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"supports_tool_choice": true
},
@@ -14760,7 +16634,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"supports_tool_choice": true
},
@@ -14770,7 +16643,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat"
},
"bedrock/us-west-2/6-month-commitment/anthropic.claude-v2:1": {
@@ -14779,7 +16651,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"supports_tool_choice": true
},
@@ -14788,7 +16659,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.0000024,
"supports_tool_choice": true
@@ -14798,7 +16668,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.000024,
"supports_tool_choice": true
@@ -14808,21 +16677,23 @@
"litellm_provider": "bedrock",
"max_input_tokens": 100000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.000024,
"supports_tool_choice": true
},
"bedrock/us-west-2/deepseek.v3.2": {
"input_cost_per_token": 6.2e-7,
+ "input_cost_per_token_batches": 3.1e-7,
"input_cost_per_token_flex": 3.1e-7,
+ "input_cost_per_token_priority": 0.000001085,
"litellm_provider": "bedrock",
- "max_input_tokens": 163840,
+ "max_input_tokens": 156000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.00000185,
+ "output_cost_per_token_batches": 9.25e-7,
"output_cost_per_token_flex": 9.25e-7,
+ "output_cost_per_token_priority": 0.0000032375,
"supports_function_calling": true,
"supports_reasoning": true,
"supports_native_structured_output": true,
@@ -14830,52 +16701,59 @@
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-deepseek-deepseek-v3-2.html"
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-deepseek-deepseek-v3-2.md"
},
"bedrock/us-west-2/minimax.minimax-m2.1": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 3e-7,
+ "input_cost_per_token_batches": 1.5e-7,
"input_cost_per_token_flex": 1.5e-7,
+ "input_cost_per_token_priority": 5.25e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000012,
+ "output_cost_per_token_batches": 6e-7,
"output_cost_per_token_flex": 6e-7,
+ "output_cost_per_token_priority": 0.0000021,
"supports_function_calling": true,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-1.html"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json"
},
"bedrock/us-west-2/minimax.minimax-m2.5": {
"input_cost_per_token": 3e-7,
+ "input_cost_per_token_batches": 1.5e-7,
"input_cost_per_token_flex": 1.5e-7,
+ "input_cost_per_token_priority": 5.25e-7,
"output_cost_per_token": 0.0000012,
"output_cost_per_token_flex": 6e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 196000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
+ "output_cost_per_token_batches": 6e-7,
+ "output_cost_per_token_priority": 0.0000021,
"supports_function_calling": true,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-minimax-minimax-m2-5.html"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json"
},
"bedrock/us-west-2/mistral.mistral-7b-instruct-v0:2": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-mistral-ai-mistral-7b-instruct.md",
"input_cost_per_token": 1.5e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 32000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 2e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-mistral-ai-mistral-7b-instruct.md",
@@ -14886,7 +16764,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 32000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000012,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-mistral-ai-mistral-large.md",
@@ -14894,11 +16771,11 @@
},
"bedrock/us-west-2/mistral.mixtral-8x7b-instruct-v0:1": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-mistral-ai-mixtral-8x7b-instruct.md",
"input_cost_per_token": 4.5e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 32000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 7e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-mistral-ai-mixtral-8x7b-instruct.md",
@@ -14906,12 +16783,12 @@
},
"bedrock/us-west-2/moonshotai.kimi-k2-thinking": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-moonshot-ai-kimi-k2-thinking.html",
"input_cost_per_token": 6e-7,
"input_cost_per_token_flex": 3e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_flex": 0.00000125,
@@ -14921,21 +16798,24 @@
},
"bedrock/us-west-2/moonshotai.kimi-k2.5": {
"input_cost_per_token": 6e-7,
+ "input_cost_per_token_batches": 3e-7,
"input_cost_per_token_flex": 3e-7,
+ "input_cost_per_token_priority": 0.00000105,
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 0.000003,
+ "output_cost_per_token_batches": 0.0000015,
"output_cost_per_token_flex": 0.0000015,
+ "output_cost_per_token_priority": 0.00000525,
"supports_function_calling": true,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_vision": true,
"supports_audio_input": false,
"supports_response_schema": true,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-moonshot-ai-kimi-k2-5.html"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json"
},
"bedrock/us-west-2/qwen.qwen3-coder-next": {
"input_cost_per_token": 5e-7,
@@ -14943,26 +16823,30 @@
"litellm_provider": "bedrock",
"max_input_tokens": 262144,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"output_cost_per_token_flex": 6e-7,
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-coder-next.html",
+ "supports_audio_input": false,
"supports_function_calling": true,
+ "supports_response_schema": true,
"supports_system_messages": true,
"supports_tool_choice": true,
- "supports_audio_input": false,
- "supports_response_schema": true,
- "supports_vision": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-coder-next.html"
+ "supports_vision": false
},
"bedrock/us-west-2/zai.glm-5": {
"input_cost_per_token": 0.000001,
+ "input_cost_per_token_batches": 5e-7,
+ "input_cost_per_token_flex": 5e-7,
+ "input_cost_per_token_priority": 0.00000175,
"output_cost_per_token": 0.0000032,
"litellm_provider": "bedrock",
"max_input_tokens": 200000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
+ "output_cost_per_token_batches": 0.0000016,
+ "output_cost_per_token_flex": 0.0000016,
+ "output_cost_per_token_priority": 0.0000056,
"supports_function_calling": true,
"supports_reasoning": true,
"supports_system_messages": true,
@@ -14971,7 +16855,7 @@
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json"
},
"bedrock/us.anthropic.claude-3-5-haiku-20241022-v1:0": {
"cache_creation_input_token_cost": 0.000001,
@@ -14980,7 +16864,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 200000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000004,
"supports_assistant_prefill": true,
@@ -15000,7 +16883,6 @@
"supports_tool_search": true,
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000005,
"source": "https://aws.amazon.com/about-aws/whats-new/2025/10/claude-4-5-haiku-anthropic-amazon-bedrock",
@@ -15017,7 +16899,11 @@
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 4096,
"input_cost_per_token_batches": 5e-7,
- "output_cost_per_token_batches": 0.0000025
+ "output_cost_per_token_batches": 0.0000025,
+ "token_count_model": {
+ "model": "anthropic.claude-haiku-4-5-20251001-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"bedrock_mantle/anthropic.claude-haiku-5-5": {
"input_cost_per_token_above_100k_tokens": 5.5e-7,
@@ -15034,7 +16920,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 5.5e-7,
"search_context_cost_per_query": {
@@ -15077,7 +16962,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000022,
"search_context_cost_per_query": {
@@ -15103,7 +16987,12 @@
"prompt_cache_min_tokens": 512,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-opus-5-5.html",
"thinking_always_on": true,
- "supports_forced_tool_use": false
+ "supports_forced_tool_use": false,
+ "token_count_model": {
+ "model": "anthropic.claude-opus-5-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-east-1"
+ }
},
"bedrock_mantle/anthropic.claude-sonnet-5-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -15115,7 +17004,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000011,
"search_context_cost_per_query": {
@@ -15148,6 +17036,7 @@
},
"bedrock_mantle/deepseek.v3.1": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 5.8e-7,
"input_cost_per_token_batches": 2.9e-7,
"input_cost_per_token_flex": 2.9e-7,
@@ -15157,7 +17046,6 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 128000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token_batches": 8.4e-7,
"output_cost_per_token_priority": 0.00000294,
@@ -15178,7 +17066,6 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token_batches": 2e-7,
"output_cost_per_token_priority": 7e-7,
@@ -15204,7 +17091,6 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token_batches": 2e-7,
"output_cost_per_token_priority": 7e-7,
@@ -15230,7 +17116,6 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token_batches": 4e-8,
"output_cost_per_token_priority": 1.4e-7,
@@ -15248,6 +17133,7 @@
},
"bedrock_mantle/moonshotai.kimi-k2-thinking": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 6e-7,
"input_cost_per_token_batches": 3e-7,
"input_cost_per_token_flex": 3e-7,
@@ -15257,7 +17143,6 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 256000,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token_batches": 0.00000125,
"output_cost_per_token_priority": 0.00000438,
@@ -15282,9 +17167,8 @@
"search_context_size_medium": 0.012
},
"litellm_provider": "bedrock_mantle",
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "responses",
"use_openai_responses_path": true,
"supported_endpoints": [
@@ -15322,9 +17206,8 @@
"search_context_size_medium": 0.012
},
"litellm_provider": "bedrock_mantle",
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "responses",
"use_openai_responses_path": true,
"supported_endpoints": [
@@ -15349,6 +17232,44 @@
"supports_web_search": true,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-55.html"
},
+ "bedrock_mantle/openai.gpt-5.6-cyber": {
+ "input_cost_per_token": 0.00001375,
+ "cache_creation_input_token_cost": 0.0000171875,
+ "cache_read_input_token_cost": 0.000001375,
+ "output_cost_per_token": 0.0000825,
+ "litellm_provider": "bedrock_mantle",
+ "max_input_tokens": 922000,
+ "max_output_tokens": 128000,
+ "mode": "responses",
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.012,
+ "search_context_size_low": 0.012,
+ "search_context_size_medium": 0.012
+ },
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-56-cyber.html",
+ "use_openai_responses_path": true,
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/responses"
+ ],
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_function_calling": true,
+ "supports_minimal_reasoning_effort": false,
+ "supports_prompt_caching": true,
+ "supports_prompt_cache_breakpoint": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_xhigh_reasoning_effort": true,
+ "supports_vision": true,
+ "supports_web_search": true
+ },
"bedrock_mantle/openai.gpt-5.6-luna": {
"input_cost_per_token": 2.2e-7,
"input_cost_per_token_above_272k_tokens": 4.4e-7,
@@ -15364,9 +17285,8 @@
"search_context_size_medium": 0.012
},
"litellm_provider": "bedrock_mantle",
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "responses",
"use_openai_responses_path": true,
"supported_endpoints": [
@@ -15408,9 +17328,8 @@
"search_context_size_medium": 0.012
},
"litellm_provider": "bedrock_mantle",
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "responses",
"use_openai_responses_path": true,
"supported_endpoints": [
@@ -15452,9 +17371,8 @@
"search_context_size_medium": 0.012
},
"litellm_provider": "bedrock_mantle",
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "responses",
"use_openai_responses_path": true,
"supported_endpoints": [
@@ -15497,12 +17415,16 @@
"output_cost_per_token": 0.000055,
"output_cost_per_token_above_272k_tokens": 0.0000825,
"litellm_provider": "bedrock_mantle",
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "responses",
"output_cost_per_token_above_272k_tokens_ultrafast": 0.000495,
"output_cost_per_token_ultrafast": 0.00033,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.012,
+ "search_context_size_low": 0.012,
+ "search_context_size_medium": 0.012
+ },
"use_openai_responses_path": true,
"supported_endpoints": [
"/v1/chat/completions",
@@ -15526,7 +17448,8 @@
"supports_tool_choice": true,
"supports_xhigh_reasoning_effort": true,
"supports_vision": true,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-6-astra.html"
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-6-astra.html",
+ "supports_web_search": true
},
"bedrock_mantle/openai.gpt-6-luna": {
"input_cost_per_token": 1.1e-7,
@@ -15538,10 +17461,14 @@
"output_cost_per_token": 5.5e-7,
"output_cost_per_token_above_272k_tokens": 8.25e-7,
"litellm_provider": "bedrock_mantle",
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "responses",
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.012,
+ "search_context_size_low": 0.012,
+ "search_context_size_medium": 0.012
+ },
"use_openai_responses_path": true,
"supported_endpoints": [
"/v1/chat/completions",
@@ -15565,7 +17492,8 @@
"supports_tool_choice": true,
"supports_xhigh_reasoning_effort": true,
"supports_vision": true,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-cards-openai.html"
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-cards-openai.html",
+ "supports_web_search": true
},
"bedrock_mantle/openai.gpt-6-sol": {
"input_cost_per_token": 0.0000022,
@@ -15577,10 +17505,14 @@
"output_cost_per_token": 0.000011,
"output_cost_per_token_above_272k_tokens": 0.0000165,
"litellm_provider": "bedrock_mantle",
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "responses",
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.012,
+ "search_context_size_low": 0.012,
+ "search_context_size_medium": 0.012
+ },
"use_openai_responses_path": true,
"supported_endpoints": [
"/v1/chat/completions",
@@ -15604,7 +17536,8 @@
"supports_tool_choice": true,
"supports_xhigh_reasoning_effort": true,
"supports_vision": true,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-cards-openai.html"
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-cards-openai.html",
+ "supports_web_search": true
},
"bedrock_mantle/openai.gpt-6.1-sol": {
"cache_creation_input_token_cost": 0.00000275,
@@ -15622,12 +17555,16 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 1000000,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "responses",
"output_cost_per_token": 0.000011,
"output_cost_per_token_above_272k_tokens": 0.0000165,
"output_cost_per_token_above_272k_tokens_ultrafast": 0.000099,
"output_cost_per_token_ultrafast": 0.000066,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.012,
+ "search_context_size_low": 0.012,
+ "search_context_size_medium": 0.012
+ },
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-6-1-sol.html",
"supported_endpoints": [
"/v1/chat/completions",
@@ -15650,10 +17587,56 @@
"supports_response_schema": true,
"supports_tool_choice": true,
"supports_vision": true,
+ "supports_web_search": true,
+ "supports_xhigh_reasoning_effort": true,
+ "use_openai_responses_path": true
+ },
+ "bedrock_mantle/openai.gpt-6.1-terra": {
+ "cache_creation_input_token_cost": 0.000001375,
+ "cache_creation_input_token_cost_above_272k_tokens": 0.00000275,
+ "cache_read_input_token_cost": 5.5e-8,
+ "cache_read_input_token_cost_above_272k_tokens": 1.1e-7,
+ "input_cost_per_token": 0.0000011,
+ "input_cost_per_token_above_272k_tokens": 0.0000022,
+ "litellm_provider": "bedrock_mantle",
+ "max_input_tokens": 922000,
+ "max_output_tokens": 128000,
+ "mode": "responses",
+ "output_cost_per_token": 0.0000055,
+ "output_cost_per_token_above_272k_tokens": 0.00000825,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.012,
+ "search_context_size_low": 0.012,
+ "search_context_size_medium": 0.012
+ },
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-6-1-terra.html",
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/responses"
+ ],
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_function_calling": true,
+ "supports_max_reasoning_effort": true,
+ "supports_minimal_reasoning_effort": false,
+ "supports_none_reasoning_effort": true,
+ "supports_prompt_cache_breakpoint": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_web_search": true,
"supports_xhigh_reasoning_effort": true,
"use_openai_responses_path": true
},
"bedrock_mantle/openai.gpt-oss-120b": {
+ "supports_vision": false,
"input_cost_per_token": 1.5e-7,
"input_cost_per_token_batches": 7.5e-8,
"input_cost_per_token_flex": 7.5e-8,
@@ -15663,7 +17646,6 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 131072,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token_batches": 3e-7,
"output_cost_per_token_priority": 0.00000105,
@@ -15679,6 +17661,7 @@
"supports_tool_choice": true
},
"bedrock_mantle/openai.gpt-oss-20b": {
+ "supports_vision": false,
"input_cost_per_token": 7e-8,
"input_cost_per_token_batches": 3.5e-8,
"input_cost_per_token_flex": 3.5e-8,
@@ -15688,7 +17671,6 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 131072,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token_batches": 1.5e-7,
"output_cost_per_token_priority": 5.25e-7,
@@ -15704,6 +17686,7 @@
"supports_tool_choice": true
},
"bedrock_mantle/openai.gpt-oss-safeguard-120b": {
+ "supports_vision": false,
"input_cost_per_token": 1.5e-7,
"input_cost_per_token_batches": 7e-8,
"input_cost_per_token_flex": 7e-8,
@@ -15713,7 +17696,6 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 131072,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token_batches": 3e-7,
"output_cost_per_token_priority": 0.00000105,
@@ -15727,6 +17709,7 @@
"supports_tool_choice": true
},
"bedrock_mantle/openai.gpt-oss-safeguard-20b": {
+ "supports_vision": false,
"input_cost_per_token": 7e-8,
"input_cost_per_token_batches": 3e-8,
"input_cost_per_token_flex": 3e-8,
@@ -15736,7 +17719,6 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 131072,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token_batches": 1e-7,
"output_cost_per_token_priority": 3.5e-7,
@@ -15759,7 +17741,6 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 256000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token_batches": 4.4e-7,
"output_cost_per_token_priority": 0.00000154,
@@ -15781,7 +17762,6 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 32000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token_batches": 3e-7,
"output_cost_per_token_priority": 0.00000105,
@@ -15795,6 +17775,7 @@
},
"bedrock_mantle/qwen.qwen3-coder-30b-a3b-instruct": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 1.5e-7,
"input_cost_per_token_batches": 7.5e-8,
"input_cost_per_token_flex": 7.5e-8,
@@ -15804,7 +17785,6 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 256000,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token_batches": 3e-7,
"output_cost_per_token_priority": 0.00000105,
@@ -15817,6 +17797,7 @@
},
"bedrock_mantle/qwen.qwen3-coder-480b-a35b-instruct": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-coder-480b-a35b-instruct.html",
"input_cost_per_token": 4.5e-7,
"input_cost_per_token_batches": 2.25e-7,
"input_cost_per_token_flex": 2.25e-7,
@@ -15826,7 +17807,6 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 262144,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token_batches": 9e-7,
"output_cost_per_token_priority": 0.00000315,
@@ -15847,7 +17827,6 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 256000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token_batches": 6e-7,
"output_cost_per_token_priority": 0.0000021,
@@ -15869,7 +17848,6 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 256000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token_batches": 0.00000133,
"output_cost_per_token_priority": 0.00000466,
@@ -15882,12 +17860,12 @@
"source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/us-east-1/index.json"
},
"bedrock_mantle/us-gov-east-1/openai.gpt-oss-120b": {
+ "supports_vision": false,
"input_cost_per_token": 1.8e-7,
"output_cost_per_token": 7.2e-7,
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 131072,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-oss-120b.html",
"supported_endpoints": [
@@ -15901,12 +17879,12 @@
"supports_tool_choice": true
},
"bedrock_mantle/us-gov-east-1/openai.gpt-oss-20b": {
+ "supports_vision": false,
"input_cost_per_token": 8.4e-8,
"output_cost_per_token": 3.6e-7,
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 131072,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-oss-20b.html",
"supported_endpoints": [
@@ -15927,7 +17905,6 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 500000,
"max_output_tokens": 500000,
- "max_tokens": 500000,
"mode": "chat",
"supported_endpoints": [
"/v1/chat/completions",
@@ -15956,7 +17933,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 6e-7,
"supports_forced_tool_use": true,
@@ -15979,7 +17955,12 @@
"supports_tool_choice": true,
"supports_vision": true,
"supports_xhigh_reasoning_effort": true,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-haiku-5-5.html"
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-haiku-5-5.html",
+ "token_count_model": {
+ "model": "anthropic.claude-haiku-5-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-gov-west-1"
+ }
},
"bedrock_mantle/us-gov-west-1/anthropic.claude-opus-5-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -15991,7 +17972,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000024,
"prompt_cache_min_tokens": 512,
@@ -16014,7 +17994,12 @@
"supports_xhigh_reasoning_effort": true,
"thinking_always_on": true,
"supports_forced_tool_use": false,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-opus-5-5.html"
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-opus-5-5.html",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-5-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-gov-west-1"
+ }
},
"bedrock_mantle/us-gov-west-1/anthropic.claude-sonnet-5-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -16027,7 +18012,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000012,
"supports_forced_tool_use": false,
@@ -16050,7 +18034,12 @@
"supports_tool_choice": true,
"supports_vision": true,
"supports_xhigh_reasoning_effort": true,
- "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-5-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-gov-west-1"
+ }
},
"bedrock_mantle/us-gov-west-1/google.gemma-4-26b-a4b": {
"input_cost_per_token": 1.56e-7,
@@ -16058,7 +18047,6 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"use_openai_responses_path": true,
"supported_endpoints": [
@@ -16077,7 +18065,6 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"use_openai_responses_path": true,
"supported_endpoints": [
@@ -16096,7 +18083,6 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"use_openai_responses_path": true,
"supported_endpoints": [
@@ -16111,9 +18097,8 @@
},
"bedrock_mantle/us-gov-west-1/openai.gpt-5.6-luna": {
"litellm_provider": "bedrock_mantle",
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "responses",
"use_openai_responses_path": true,
"supported_endpoints": [
@@ -16143,13 +18128,18 @@
"cache_read_input_token_cost_above_272k_tokens": 5.4e-8,
"output_cost_per_token": 0.00000162,
"output_cost_per_token_above_272k_tokens": 0.00000243,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-56-luna.html"
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.0144,
+ "search_context_size_low": 0.0144,
+ "search_context_size_medium": 0.0144
+ },
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-56-luna.html",
+ "supports_web_search": true
},
"bedrock_mantle/us-gov-west-1/openai.gpt-5.6-terra": {
"litellm_provider": "bedrock_mantle",
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "responses",
"use_openai_responses_path": true,
"supported_endpoints": [
@@ -16179,15 +18169,21 @@
"cache_read_input_token_cost_above_272k_tokens": 5.4e-7,
"output_cost_per_token": 0.0000162,
"output_cost_per_token_above_272k_tokens": 0.0000243,
- "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-56-terra.html"
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.0144,
+ "search_context_size_low": 0.0144,
+ "search_context_size_medium": 0.0144
+ },
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-56-terra.html",
+ "supports_web_search": true
},
"bedrock_mantle/us-gov-west-1/openai.gpt-oss-120b": {
+ "supports_vision": false,
"input_cost_per_token": 1.8e-7,
"output_cost_per_token": 7.2e-7,
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 131072,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-oss-120b.html",
"supported_endpoints": [
@@ -16201,12 +18197,12 @@
"supports_tool_choice": true
},
"bedrock_mantle/us-gov-west-1/openai.gpt-oss-20b": {
+ "supports_vision": false,
"input_cost_per_token": 8.4e-8,
"output_cost_per_token": 3.6e-7,
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 131072,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-oss-20b.html",
"supported_endpoints": [
@@ -16224,7 +18220,6 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 1048576,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"supported_endpoints": [
"/v1/chat/completions",
@@ -16248,7 +18243,6 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 500000,
"max_output_tokens": 500000,
- "max_tokens": 500000,
"mode": "chat",
"supported_endpoints": [
"/v1/chat/completions",
@@ -16275,7 +18269,6 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 1048576,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token_batches": 0.00000125,
"output_cost_per_token_flex": 0.00000125,
@@ -16303,7 +18296,6 @@
"litellm_provider": "bedrock_mantle",
"max_input_tokens": 500000,
"max_output_tokens": 500000,
- "max_tokens": 500000,
"mode": "chat",
"output_cost_per_token_flex": 0.0000033,
"output_cost_per_token_priority": 0.00001155,
@@ -16319,13 +18311,88 @@
"supports_vision": true,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-xai-grok-4-6.html"
},
+ "bigmodel/glm-5.3": {
+ "input_cost_per_token": 0.0000011428571428571428,
+ "output_cost_per_token": 0.000004,
+ "cache_read_input_token_cost": 2.857142857142857e-7,
+ "litellm_provider": "bigmodel",
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "source": "https://docs.bigmodel.cn/cn/guide/start/pricing",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "thinking_always_on": true,
+ "metadata": {
+ "comment": "Official API list price checked 2026-10-27: input 8, output 28, cached input 2 CNY per million tokens; converted at 7.0 CNY/USD. Cache storage is temporarily free and is not encoded."
+ },
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/responses",
+ "/v1/messages"
+ ],
+ "supports_native_streaming": true
+ },
+ "bigmodel/glm-5.3-flash": {
+ "input_cost_per_token": 1.142857142857143e-7,
+ "output_cost_per_token": 4e-7,
+ "cache_read_input_token_cost": 3.2857142857142855e-8,
+ "litellm_provider": "bigmodel",
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "source": "https://docs.bigmodel.cn/cn/guide/start/pricing",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "thinking_always_on": true,
+ "supports_vision": true,
+ "supports_video_input": true,
+ "metadata": {
+ "comment": "Official API list price checked 2026-10-27: input 0.8, output 2.8, cached input 0.23 CNY per million tokens; converted at 7.0 CNY/USD. Cache storage is temporarily free and is not encoded."
+ },
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/responses",
+ "/v1/messages"
+ ],
+ "supports_native_streaming": true
+ },
+ "bigmodel/glm-5.3-flashx": {
+ "input_cost_per_token": 2.857142857142857e-7,
+ "output_cost_per_token": 0.000001,
+ "cache_read_input_token_cost": 8.142857142857142e-8,
+ "litellm_provider": "bigmodel",
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "source": "https://docs.bigmodel.cn/cn/guide/start/pricing",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "thinking_always_on": true,
+ "supports_vision": true,
+ "supports_video_input": true,
+ "metadata": {
+ "comment": "Official API list price checked 2026-10-27: input 2, output 7, cached input 0.57 CNY per million tokens; converted at 7.0 CNY/USD. Cache storage is temporarily free and is not encoded."
+ },
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/responses",
+ "/v1/messages"
+ ],
+ "supports_native_streaming": true
+ },
"c4ai-aya-expanse-32b": {
"input_cost_per_token": 5e-7,
"output_cost_per_token": 0.0000015,
"litellm_provider": "cohere_chat",
"max_input_tokens": 128000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"source": "https://docs.cohere.com/docs/models"
},
@@ -16334,7 +18401,6 @@
"litellm_provider": "cerebras",
"max_input_tokens": 131072,
"max_output_tokens": 40960,
- "max_tokens": 40960,
"mode": "chat",
"output_cost_per_token": 0.00000149,
"source": "https://api.cerebras.ai/public/v1/models/gemma-4-31b",
@@ -16350,7 +18416,6 @@
"litellm_provider": "cerebras",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 7.5e-7,
"source": "https://www.cerebras.ai/blog/openai-gpt-oss-120b-runs-fastest-on-cerebras",
@@ -16360,45 +18425,54 @@
"supports_response_schema": true,
"supports_tool_choice": true
},
- "cerebras/llama-3.3-70b": {
- "input_cost_per_token": 8.5e-7,
+ "cerebras/llama-3.1-70b": {
+ "input_cost_per_token": 6e-7,
"litellm_provider": "cerebras",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
- "output_cost_per_token": 0.0000012,
+ "output_cost_per_token": 6e-7,
"supports_function_calling": true,
"supports_tool_choice": true
},
- "cerebras/llama3.1-70b": {
- "input_cost_per_token": 6e-7,
+ "cerebras/llama-3.1-8b": {
+ "input_cost_per_token": 1e-7,
"litellm_provider": "cerebras",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
- "output_cost_per_token": 6e-7,
+ "output_cost_per_token": 1e-7,
+ "supports_function_calling": true,
+ "supports_tool_choice": true
+ },
+ "cerebras/llama-3.3-70b": {
+ "deprecation_date": "2026-02-16",
+ "input_cost_per_token": 8.5e-7,
+ "litellm_provider": "cerebras",
+ "max_input_tokens": 128000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000012,
"supports_function_calling": true,
"supports_tool_choice": true
},
"cerebras/llama3.1-8b": {
+ "deprecation_date": "2026-05-27",
"input_cost_per_token": 1e-7,
"litellm_provider": "cerebras",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 1e-7,
"supports_function_calling": true,
"supports_tool_choice": true
},
"cerebras/qwen-3-32b": {
+ "deprecation_date": "2026-02-16",
"input_cost_per_token": 4e-7,
"litellm_provider": "cerebras",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 8e-7,
"source": "https://inference-docs.cerebras.ai/support/pricing",
@@ -16411,7 +18485,6 @@
"litellm_provider": "cerebras",
"max_input_tokens": 65536,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.00000149,
"source": "https://api.cerebras.ai/public/v1/models/qwen-3.8-27b",
@@ -16428,12 +18501,19 @@
"litellm_provider": "openai",
"max_input_tokens": 400000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00003,
"reasoning_effort_levels": [
"medium"
],
+ "reasoning_contexts": [
+ "auto",
+ "current_turn",
+ "all_turns"
+ ],
+ "reasoning_modes": [
+ "standard"
+ ],
"source": "https://developers.openai.com/api/docs/pricing",
"supported_endpoints": [
"/v1/chat/completions",
@@ -16463,7 +18543,6 @@
"litellm_provider": "nlp_cloud",
"max_input_tokens": 16384,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 5e-7
},
@@ -16471,7 +18550,6 @@
"litellm_provider": "chatgpt",
"max_input_tokens": 128000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "responses",
"supported_endpoints": [
"/v1/chat/completions",
@@ -16491,7 +18569,6 @@
"litellm_provider": "chatgpt",
"max_input_tokens": 128000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "responses",
"supported_endpoints": [
"/v1/chat/completions",
@@ -16507,7 +18584,6 @@
"litellm_provider": "chatgpt",
"max_input_tokens": 128000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "responses",
"supported_endpoints": [
"/v1/chat/completions",
@@ -16522,7 +18598,6 @@
"litellm_provider": "chatgpt",
"max_input_tokens": 1050000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "responses",
"supported_endpoints": [
"/v1/chat/completions",
@@ -16543,7 +18618,6 @@
"source": "https://platform.openai.com/docs/models/gpt-5.5",
"max_input_tokens": 1050000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "responses",
"supported_endpoints": [
"/v1/chat/completions",
@@ -16563,7 +18637,6 @@
"source": "https://platform.openai.com/docs/models/gpt-5.6-luna",
"max_input_tokens": 1050000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "responses",
"supported_endpoints": [
"/v1/chat/completions",
@@ -16583,7 +18656,6 @@
"source": "https://platform.openai.com/docs/models/gpt-5.6-sol",
"max_input_tokens": 1050000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "responses",
"supported_endpoints": [
"/v1/chat/completions",
@@ -16603,7 +18675,6 @@
"source": "https://platform.openai.com/docs/models/gpt-5.6-terra",
"max_input_tokens": 1050000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "responses",
"supported_endpoints": [
"/v1/chat/completions",
@@ -16627,7 +18698,6 @@
],
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"source": "https://developers.openai.com/api/docs/pricing",
"supports_function_calling": true,
"supports_max_reasoning_effort": true,
@@ -16639,6 +18709,26 @@
"supports_vision": true,
"supports_xhigh_reasoning_effort": true
},
+ "chatgpt/gpt-6-astra-law": {
+ "litellm_provider": "chatgpt",
+ "max_input_tokens": 922000,
+ "max_output_tokens": 128000,
+ "mode": "responses",
+ "source": "https://developers.openai.com/api/docs/pricing",
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/responses"
+ ],
+ "supports_function_calling": true,
+ "supports_max_reasoning_effort": true,
+ "supports_minimal_reasoning_effort": false,
+ "supports_none_reasoning_effort": false,
+ "supports_parallel_function_calling": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_vision": true,
+ "supports_xhigh_reasoning_effort": true
+ },
"chatgpt/gpt-6-luna": {
"litellm_provider": "chatgpt",
"mode": "responses",
@@ -16648,7 +18738,6 @@
],
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"source": "https://developers.openai.com/api/docs/pricing",
"supports_function_calling": true,
"supports_max_reasoning_effort": true,
@@ -16669,7 +18758,6 @@
],
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"source": "https://developers.openai.com/api/docs/pricing",
"supports_function_calling": true,
"supports_max_reasoning_effort": true,
@@ -16690,7 +18778,6 @@
],
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"source": "https://developers.openai.com/api/docs/pricing",
"supports_function_calling": true,
"supports_max_reasoning_effort": true,
@@ -16702,6 +18789,26 @@
"supports_vision": true,
"supports_xhigh_reasoning_effort": true
},
+ "chatgpt/gpt-6.1-terra": {
+ "litellm_provider": "chatgpt",
+ "max_input_tokens": 922000,
+ "max_output_tokens": 128000,
+ "mode": "responses",
+ "source": "https://developers.openai.com/api/docs/pricing",
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/responses"
+ ],
+ "supports_function_calling": true,
+ "supports_max_reasoning_effort": true,
+ "supports_minimal_reasoning_effort": false,
+ "supports_none_reasoning_effort": true,
+ "supports_parallel_function_calling": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_vision": true,
+ "supports_xhigh_reasoning_effort": true
+ },
"claude-fable-5": {
"supports_web_search": true,
"supports_anthropic_compaction": true,
@@ -16715,7 +18822,6 @@
"litellm_provider": "anthropic",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00005,
"output_cost_per_token_batches": 0.000025,
@@ -16760,7 +18866,6 @@
"litellm_provider": "anthropic",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00005,
"output_cost_per_token_batches": 0.000025,
@@ -16804,7 +18909,6 @@
"litellm_provider": "anthropic",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000005,
"output_cost_per_token_batches": 0.0000025,
@@ -16833,7 +18937,6 @@
"litellm_provider": "anthropic",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000005,
"output_cost_per_token_batches": 0.0000025,
@@ -16865,7 +18968,6 @@
"litellm_provider": "anthropic",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 5e-7,
"output_cost_per_token_batches": 2.5e-7,
@@ -16916,7 +19018,6 @@
"litellm_provider": "anthropic",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00005,
"output_cost_per_token_batches": 0.000025,
@@ -16960,7 +19061,6 @@
"litellm_provider": "anthropic",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00005,
"output_cost_per_token_batches": 0.000025,
@@ -16995,6 +19095,7 @@
},
"claude-mythos-preview": {
"deprecation_date": "2026-06-09",
+ "deprecation_source": "https://platform.claude.com/docs/en/about-claude/model-deprecations",
"supports_anthropic_compaction": true,
"cache_creation_input_token_cost": 0.0000125,
"cache_creation_input_token_cost_above_1hr": 0.00002,
@@ -17003,7 +19104,6 @@
"litellm_provider": "anthropic",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00005,
"prompt_cache_min_tokens": 512,
@@ -17044,7 +19144,6 @@
"litellm_provider": "anthropic",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"output_cost_per_token_batches": 0.0000125,
@@ -17080,7 +19179,6 @@
"litellm_provider": "anthropic",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"output_cost_per_token_batches": 0.0000125,
@@ -17116,7 +19214,6 @@
"litellm_provider": "anthropic",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"output_cost_per_token_batches": 0.0000125,
@@ -17159,7 +19256,6 @@
"litellm_provider": "anthropic",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"output_cost_per_token_batches": 0.0000125,
@@ -17202,7 +19298,6 @@
"litellm_provider": "anthropic",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"output_cost_per_token_batches": 0.0000125,
@@ -17230,7 +19325,6 @@
"us": 1.1
},
"supports_output_config": true,
- "supports_speed": true,
"prompt_cache_min_tokens": 2048,
"source": "https://platform.claude.com/docs/en/about-claude/pricing"
},
@@ -17246,7 +19340,6 @@
"litellm_provider": "anthropic",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"output_cost_per_token_batches": 0.0000125,
@@ -17274,7 +19367,6 @@
"us": 1.1
},
"supports_output_config": true,
- "supports_speed": true,
"prompt_cache_min_tokens": 2048
},
"claude-opus-4-8": {
@@ -17290,7 +19382,6 @@
"litellm_provider": "anthropic",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"output_cost_per_token_batches": 0.0000125,
@@ -17338,7 +19429,6 @@
"litellm_provider": "anthropic",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"output_cost_per_token_batches": 0.0000125,
@@ -17386,7 +19476,6 @@
"litellm_provider": "anthropic",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00002,
"output_cost_per_token_batches": 0.00001,
@@ -17430,11 +19519,12 @@
"cache_creation_input_token_cost_batches": 0.000001875,
"cache_read_input_token_cost_batches": 1.5e-7,
"deprecation_date": "2026-11-30",
+ "deprecation_source": "https://platform.claude.com/docs/en/about-claude/model-deprecations",
+ "successor_model": "claude-sonnet-5-5",
"input_cost_per_token_batches": 0.0000015,
"litellm_provider": "anthropic",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"output_cost_per_token_batches": 0.0000075,
@@ -17464,11 +19554,12 @@
"cache_creation_input_token_cost_batches": 0.000001875,
"cache_read_input_token_cost_batches": 1.5e-7,
"deprecation_date": "2026-11-30",
+ "deprecation_source": "https://platform.claude.com/docs/en/about-claude/model-deprecations",
+ "successor_model": "claude-sonnet-5-5",
"input_cost_per_token_batches": 0.0000015,
"litellm_provider": "anthropic",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"output_cost_per_token_batches": 0.0000075,
@@ -17501,11 +19592,12 @@
"output_cost_per_token_above_200k_tokens": 0.0000225,
"cache_creation_input_token_cost_above_200k_tokens": 0.0000075,
"cache_read_input_token_cost_above_200k_tokens": 6e-7,
+ "deprecation_date": "2027-04-08",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-sonnet-4-5.md",
"litellm_provider": "bedrock",
"supports_tool_search": true,
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_assistant_prefill": true,
@@ -17520,7 +19612,12 @@
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 1024,
"input_cost_per_token_batches": 0.0000015,
- "output_cost_per_token_batches": 0.0000075
+ "output_cost_per_token_batches": 0.0000075,
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-sonnet-4-5.md",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-5-20250929-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"claude-sonnet-4-6": {
"supports_web_search": true,
@@ -17535,7 +19632,6 @@
"litellm_provider": "anthropic",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"output_cost_per_token_batches": 0.0000075,
@@ -17578,7 +19674,6 @@
"litellm_provider": "anthropic",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_batches": 0.000005,
@@ -17622,7 +19717,6 @@
"litellm_provider": "anthropic",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_batches": 0.000005,
@@ -17656,12 +19750,277 @@
"source": "https://platform.claude.com/docs/en/about-claude/pricing",
"supports_web_search": true
},
+ "clf_ai_gateway/deepseek-v4-flash": {
+ "metadata": {
+ "comment": "Billed price checked 2026-10-29, which the gateway shows as 60% off a list price 2.5x higher. Update the rows when the discount ends."
+ },
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 131072,
+ "input_cost_per_token": 1.76e-7,
+ "output_cost_per_token": 5.28e-7,
+ "cache_read_input_token_cost": 5e-9,
+ "litellm_provider": "clf_ai_gateway",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_tool_choice": true,
+ "supports_reasoning": true,
+ "reasoning_effort_levels": [
+ "low",
+ "medium",
+ "high",
+ "xhigh",
+ "max"
+ ],
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_prompt_caching": true,
+ "source": "https://clfaigateway.dev/models"
+ },
+ "clf_ai_gateway/deepseek-v4-pro": {
+ "metadata": {
+ "comment": "Billed price checked 2026-10-29, which the gateway shows as 60% off a list price 2.5x higher. Update the rows when the discount ends."
+ },
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 131072,
+ "input_cost_per_token": 5.28e-7,
+ "output_cost_per_token": 0.000001584,
+ "cache_read_input_token_cost": 1.7e-8,
+ "litellm_provider": "clf_ai_gateway",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_tool_choice": true,
+ "supports_reasoning": true,
+ "reasoning_effort_levels": [
+ "low",
+ "medium",
+ "high",
+ "xhigh",
+ "max"
+ ],
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_prompt_caching": true,
+ "source": "https://clfaigateway.dev/models"
+ },
+ "clf_ai_gateway/deepseek-v4.1-flash": {
+ "metadata": {
+ "comment": "Billed price checked 2026-10-29, which the gateway shows as 60% off a list price 2.5x higher. Update the rows when the discount ends."
+ },
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 131072,
+ "input_cost_per_token": 1.2e-7,
+ "output_cost_per_token": 4.8e-7,
+ "cache_read_input_token_cost": 2e-9,
+ "litellm_provider": "clf_ai_gateway",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_tool_choice": true,
+ "supports_reasoning": true,
+ "reasoning_effort_levels": [
+ "none",
+ "low",
+ "medium",
+ "high",
+ "xhigh",
+ "max"
+ ],
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_prompt_caching": true,
+ "supports_vision": true,
+ "source": "https://clfaigateway.dev/models"
+ },
+ "clf_ai_gateway/glm-4.7-flash": {
+ "metadata": {
+ "comment": "Billed price checked 2026-10-29, which the gateway shows as 60% off a list price 2.5x higher. Update the rows when the discount ends."
+ },
+ "max_input_tokens": 131072,
+ "max_output_tokens": 131072,
+ "input_cost_per_token": 2.4e-8,
+ "output_cost_per_token": 1.6e-7,
+ "litellm_provider": "clf_ai_gateway",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_tool_choice": true,
+ "supports_reasoning": true,
+ "reasoning_effort_levels": [
+ "low",
+ "medium",
+ "high"
+ ],
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "source": "https://clfaigateway.dev/models"
+ },
+ "clf_ai_gateway/glm-5.2": {
+ "metadata": {
+ "comment": "Billed price checked 2026-10-29, which the gateway shows as 60% off a list price 2.5x higher. Update the rows when the discount ends."
+ },
+ "max_input_tokens": 262144,
+ "max_output_tokens": 131072,
+ "input_cost_per_token": 5.6e-7,
+ "output_cost_per_token": 0.00000176,
+ "cache_read_input_token_cost": 1.04e-7,
+ "litellm_provider": "clf_ai_gateway",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_tool_choice": true,
+ "supports_reasoning": true,
+ "reasoning_effort_levels": [
+ "low",
+ "medium",
+ "high",
+ "xhigh",
+ "max"
+ ],
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_prompt_caching": true,
+ "source": "https://clfaigateway.dev/models"
+ },
+ "clf_ai_gateway/glm-5.3": {
+ "metadata": {
+ "comment": "Billed price checked 2026-10-29, which the gateway shows as 60% off a list price 2.5x higher. Update the rows when the discount ends."
+ },
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 131072,
+ "input_cost_per_token": 5.6e-7,
+ "output_cost_per_token": 0.00000176,
+ "cache_read_input_token_cost": 1.04e-7,
+ "litellm_provider": "clf_ai_gateway",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_tool_choice": true,
+ "supports_reasoning": true,
+ "reasoning_effort_levels": [
+ "low",
+ "medium",
+ "high",
+ "max"
+ ],
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_prompt_caching": true,
+ "source": "https://clfaigateway.dev/models"
+ },
+ "clf_ai_gateway/glm-5.3-flash": {
+ "metadata": {
+ "comment": "Billed price checked 2026-10-29, which the gateway shows as 60% off a list price 2.5x higher. Update the rows when the discount ends."
+ },
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 131072,
+ "input_cost_per_token": 6e-8,
+ "output_cost_per_token": 2e-7,
+ "cache_read_input_token_cost": 1.2e-8,
+ "litellm_provider": "clf_ai_gateway",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_tool_choice": true,
+ "supports_reasoning": true,
+ "reasoning_effort_levels": [
+ "low",
+ "medium",
+ "high",
+ "xhigh",
+ "max"
+ ],
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_prompt_caching": true,
+ "supports_vision": true,
+ "source": "https://clfaigateway.dev/models"
+ },
+ "clf_ai_gateway/kimi-k2.6": {
+ "metadata": {
+ "comment": "Billed price checked 2026-10-29, which the gateway shows as 60% off a list price 2.5x higher. Update the rows when the discount ends."
+ },
+ "max_input_tokens": 262144,
+ "max_output_tokens": 131072,
+ "input_cost_per_token": 3.8e-7,
+ "output_cost_per_token": 0.0000016,
+ "cache_read_input_token_cost": 6.4e-8,
+ "litellm_provider": "clf_ai_gateway",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_tool_choice": true,
+ "supports_reasoning": true,
+ "reasoning_effort_levels": [
+ "none",
+ "low",
+ "medium",
+ "high"
+ ],
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_prompt_caching": true,
+ "supports_vision": true,
+ "source": "https://clfaigateway.dev/models"
+ },
+ "clf_ai_gateway/kimi-k2.7-code": {
+ "metadata": {
+ "comment": "Billed price checked 2026-10-29, which the gateway shows as 60% off a list price 2.5x higher. Update the rows when the discount ends."
+ },
+ "max_input_tokens": 262144,
+ "max_output_tokens": 131072,
+ "input_cost_per_token": 3.8e-7,
+ "output_cost_per_token": 0.0000016,
+ "cache_read_input_token_cost": 7.6e-8,
+ "litellm_provider": "clf_ai_gateway",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_tool_choice": true,
+ "supports_reasoning": true,
+ "reasoning_effort_levels": [
+ "low",
+ "medium",
+ "high"
+ ],
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_prompt_caching": true,
+ "supports_vision": true,
+ "source": "https://clfaigateway.dev/models"
+ },
+ "clf_ai_gateway/qwen3.8-27b": {
+ "metadata": {
+ "comment": "Billed price checked 2026-10-29, which the gateway shows as 60% off a list price 2.5x higher. Update the rows when the discount ends."
+ },
+ "max_input_tokens": 262144,
+ "max_output_tokens": 131072,
+ "input_cost_per_token": 1.8e-7,
+ "output_cost_per_token": 0.00000128,
+ "cache_read_input_token_cost": 2e-8,
+ "litellm_provider": "clf_ai_gateway",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_tool_choice": true,
+ "supports_reasoning": true,
+ "reasoning_effort_levels": [
+ "low",
+ "medium",
+ "xhigh"
+ ],
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_prompt_caching": true,
+ "supports_vision": true,
+ "source": "https://clfaigateway.dev/models"
+ },
"cloudflare/@cf/aisingapore/gemma-sea-lion-v4-27b-it": {
"input_cost_per_token": 3.51e-7,
"litellm_provider": "cloudflare",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 5.55e-7,
"rpm": 300
@@ -17671,7 +20030,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 80000,
"max_output_tokens": 80000,
- "max_tokens": 80000,
"mode": "chat",
"output_cost_per_token": 0.000004881,
"rpm": 300,
@@ -17682,7 +20040,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0,
"rpm": 300
@@ -17692,7 +20049,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 3e-7,
"rpm": 300,
@@ -17704,7 +20060,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 3500,
"max_output_tokens": 3500,
- "max_tokens": 3500,
"mode": "chat",
"output_cost_per_token": 0,
"rpm": 300
@@ -17714,7 +20069,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 131000,
"max_output_tokens": 131000,
- "max_tokens": 131000,
"mode": "chat",
"output_cost_per_token": 1.12e-7,
"rpm": 300,
@@ -17725,7 +20079,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0,
"rpm": 300
@@ -17735,7 +20088,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 3072,
"max_output_tokens": 3072,
- "max_tokens": 3072,
"mode": "chat",
"output_cost_per_token": 0.000001923,
"rpm": 300
@@ -17745,7 +20097,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 2048,
"max_output_tokens": 2048,
- "max_tokens": 2048,
"mode": "chat",
"output_cost_per_token": 0.000001923,
"rpm": 300
@@ -17755,7 +20106,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 32000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 2.87e-7,
"rpm": 300
@@ -17765,7 +20115,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 6.76e-7,
"rpm": 300,
@@ -17776,7 +20125,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 60000,
"max_output_tokens": 60000,
- "max_tokens": 60000,
"mode": "chat",
"output_cost_per_token": 2.01e-7,
"rpm": 300
@@ -17786,7 +20134,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 80000,
"max_output_tokens": 80000,
- "max_tokens": 80000,
"mode": "chat",
"output_cost_per_token": 3.35e-7,
"rpm": 300
@@ -17796,7 +20143,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 24000,
"max_output_tokens": 24000,
- "max_tokens": 24000,
"mode": "chat",
"output_cost_per_token": 0.000002253,
"rpm": 300,
@@ -17807,7 +20153,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 131000,
"max_output_tokens": 131000,
- "max_tokens": 131000,
"mode": "chat",
"output_cost_per_token": 8.5e-7,
"rpm": 300,
@@ -17818,7 +20163,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 3e-8,
"rpm": 300
@@ -17828,7 +20172,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000001923,
"rpm": 300
@@ -17838,7 +20181,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 15000,
"max_output_tokens": 15000,
- "max_tokens": 15000,
"mode": "chat",
"output_cost_per_token": 0,
"rpm": 300
@@ -17848,7 +20190,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 5.55e-7,
"rpm": 300,
@@ -17860,7 +20201,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.000004,
"rpm": 20,
@@ -17873,7 +20213,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.000004,
"rpm": 20,
@@ -17885,7 +20224,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"rpm": 300,
@@ -17897,7 +20235,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 7.5e-7,
"rpm": 300,
@@ -17909,7 +20246,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 3e-7,
"rpm": 300,
@@ -17921,7 +20257,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000001,
"rpm": 300
@@ -17931,7 +20266,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 3.35e-7,
"rpm": 300,
@@ -17943,7 +20277,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 24000,
"max_output_tokens": 24000,
- "max_tokens": 24000,
"mode": "chat",
"output_cost_per_token": 0.000001,
"rpm": 300,
@@ -17954,7 +20287,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 4e-7,
"rpm": 300,
@@ -17967,7 +20299,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"rpm": 20,
@@ -17979,7 +20310,6 @@
"litellm_provider": "cloudflare",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000001923,
"rpm": 300
@@ -17989,7 +20319,6 @@
"litellm_provider": "codestral",
"max_input_tokens": 32000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://docs.mistral.ai/capabilities/code_generation/",
@@ -18001,7 +20330,6 @@
"litellm_provider": "codestral",
"max_input_tokens": 32000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://docs.mistral.ai/capabilities/code_generation/",
@@ -18043,7 +20371,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 6e-7,
"source": "https://aws.amazon.com/bedrock/pricing/",
@@ -18054,7 +20381,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000002,
"source": "https://aws.amazon.com/bedrock/pricing/",
@@ -18065,7 +20391,6 @@
"litellm_provider": "cohere_chat",
"max_input_tokens": 256000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"supports_function_calling": true,
@@ -18076,7 +20401,6 @@
"litellm_provider": "cohere_chat",
"max_input_tokens": 128000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://docs.cohere.com/docs/command-a-plus",
@@ -18091,7 +20415,6 @@
"litellm_provider": "cohere_chat",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 6e-7,
"supports_function_calling": true,
@@ -18102,7 +20425,6 @@
"litellm_provider": "cohere_chat",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.00001,
"supports_function_calling": true,
@@ -18113,7 +20435,6 @@
"litellm_provider": "cohere_chat",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 1.5e-7,
"source": "https://docs.cohere.com/v2/docs/command-r7b",
@@ -18122,11 +20443,12 @@
},
"computer-use-preview": {
"deprecation_date": "2026-07-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-terra",
"input_cost_per_token": 0.000003,
"litellm_provider": "openai",
"max_input_tokens": 8192,
"max_output_tokens": 1024,
- "max_tokens": 1024,
"mode": "chat",
"output_cost_per_token": 0.000012,
"supported_endpoints": [
@@ -18152,11 +20474,12 @@
},
"computer-use-preview-2025-03-11": {
"deprecation_date": "2026-07-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-terra",
"input_cost_per_token": 0.000003,
"litellm_provider": "openai",
"max_input_tokens": 8192,
"max_output_tokens": 1024,
- "max_tokens": 1024,
"mode": "chat",
"output_cost_per_token": 0.000012,
"supported_endpoints": [
@@ -18186,7 +20509,7 @@
"input_cost_per_token": 1e-8,
"litellm_provider": "coralbricks",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://www.coralbricks.ai/pricing",
@@ -18209,7 +20532,7 @@
"input_cost_per_token": 1e-8,
"litellm_provider": "coralbricks",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://www.coralbricks.ai/pricing",
@@ -18232,7 +20555,7 @@
"input_cost_per_token": 1e-8,
"litellm_provider": "coralbricks",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://www.coralbricks.ai/pricing",
@@ -18255,7 +20578,7 @@
"input_cost_per_token": 0.00000112,
"litellm_provider": "coralbricks",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://www.coralbricks.ai/pricing",
@@ -18278,7 +20601,7 @@
"input_cost_per_token": 0.00000112,
"litellm_provider": "coralbricks",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://www.coralbricks.ai/pricing",
@@ -18301,7 +20624,7 @@
"input_cost_per_token": 0.00000112,
"litellm_provider": "coralbricks",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://www.coralbricks.ai/pricing",
@@ -18323,7 +20646,6 @@
"litellm_provider": "crusoe",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.000003,
"supports_function_calling": true,
@@ -18336,7 +20658,6 @@
"litellm_provider": "crusoe",
"max_input_tokens": 163840,
"max_output_tokens": 163840,
- "max_tokens": 163840,
"mode": "chat",
"output_cost_per_token": 0.000007,
"supports_function_calling": false,
@@ -18349,7 +20670,6 @@
"litellm_provider": "crusoe",
"max_input_tokens": 163840,
"max_output_tokens": 163840,
- "max_tokens": 163840,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"supports_function_calling": true,
@@ -18362,7 +20682,6 @@
"litellm_provider": "crusoe",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 1e-7,
"supports_function_calling": true,
@@ -18376,7 +20695,6 @@
"litellm_provider": "crusoe",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 2e-7,
"supports_function_calling": true,
@@ -18389,7 +20707,6 @@
"litellm_provider": "crusoe",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"supports_function_calling": false,
@@ -18402,7 +20719,6 @@
"litellm_provider": "crusoe",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 8e-7,
"supports_function_calling": true,
@@ -18415,7 +20731,6 @@
"litellm_provider": "darkbloom",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 1.65e-7,
"source": "https://www.darkbloom.dev/",
@@ -18432,7 +20747,6 @@
"litellm_provider": "darkbloom",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 7e-8,
"source": "https://www.darkbloom.dev/",
@@ -18450,7 +20764,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 1000000,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"output_cost_per_token": 4e-7,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -18466,7 +20779,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 1000000,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"output_cost_per_token": 4e-7,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -18482,7 +20794,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 1000000,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"output_cost_per_token": 0.0000048,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -18498,7 +20809,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 202745,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -18514,7 +20824,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -18530,7 +20839,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 229376,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.000004,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -18546,7 +20854,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 1000000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -18558,7 +20865,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 997952,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -18587,7 +20893,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 997952,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -18617,7 +20922,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 30720,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000064,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -18630,7 +20934,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 129024,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -18643,7 +20946,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 129024,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -18656,7 +20958,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 129024,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_reasoning_token": 0.000004,
"output_cost_per_token": 0.0000012,
@@ -18670,7 +20971,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 129024,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_reasoning_token": 0.000004,
"output_cost_per_token": 0.0000012,
@@ -18683,7 +20983,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 997952,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -18714,7 +21013,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 997952,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -18745,7 +21043,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 997952,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -18777,7 +21074,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 129024,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_reasoning_token": 5e-7,
"output_cost_per_token": 2e-7,
@@ -18791,7 +21087,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 1000000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 2e-7,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -18804,7 +21099,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 1000000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_reasoning_token": 5e-7,
"output_cost_per_token": 2e-7,
@@ -18818,7 +21112,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 1000000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_reasoning_token": 5e-7,
"output_cost_per_token": 2e-7,
@@ -18831,7 +21124,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 129024,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -18842,7 +21134,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 997952,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -18891,7 +21182,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 997952,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -18936,7 +21226,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 997952,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -18985,7 +21274,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 997952,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -19030,7 +21318,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 258048,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -19067,7 +21354,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 258048,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -19104,7 +21390,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 258048,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -19142,7 +21427,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://www.alibabacloud.com/help/en/model-studio/model-pricing",
@@ -19154,7 +21438,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://www.alibabacloud.com/help/en/model-studio/model-pricing",
@@ -19167,7 +21450,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.0000016,
"source": "https://www.alibabacloud.com/help/en/model-studio/model-pricing",
@@ -19180,7 +21462,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000004,
"source": "https://www.alibabacloud.com/help/en/model-studio/model-pricing",
@@ -19194,7 +21475,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 6.4e-7,
"source": "https://www.alibabacloud.com/help/en/model-studio/model-pricing",
@@ -19207,7 +21487,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.00000287,
"source": "https://www.alibabacloud.com/help/en/model-studio/model-pricing",
@@ -19220,7 +21499,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 260096,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -19258,7 +21536,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 991808,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -19285,12 +21562,13 @@
]
},
"dashscope/qwen3.7-max": {
+ "cache_creation_input_token_cost": 0.000003125,
"cache_read_input_token_cost": 5e-7,
+ "explicit_cache_read_input_token_cost": 2.5e-7,
"input_cost_per_token": 0.0000025,
"litellm_provider": "dashscope",
"max_input_tokens": 991808,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.0000075,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -19304,7 +21582,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 991808,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -19341,7 +21618,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 991808,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 4.7e-7,
"source": "https://docs.modelstudio.console.alibabacloud.com/en/model-studio/model-pricing",
@@ -19360,7 +21636,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 991808,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000006,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -19377,7 +21652,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 991808,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 4.7e-7,
"source": "https://docs.modelstudio.console.alibabacloud.com/en/model-studio/model-pricing",
@@ -19396,7 +21670,6 @@
"litellm_provider": "dashscope",
"max_input_tokens": 98304,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000024,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -19405,20 +21678,20 @@
"supports_tool_choice": true
},
"databricks/databricks-claude-fable-5": {
- "cache_creation_input_token_cost": 0.00001250004,
+ "cache_creation_input_token_cost": 0.00001249997,
+ "cache_creation_input_token_cost_above_1hr": 0.00001999998,
"cache_read_input_token_cost": 0.00000100002,
- "input_cost_per_token": 0.00001000006,
- "input_dbu_cost_per_token": 0.000142858,
+ "input_cost_per_token": 0.00000999999,
+ "input_dbu_cost_per_token": 0.00014286,
"litellm_provider": "databricks",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"metadata": {
"notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
},
"mode": "chat",
"output_cost_per_token": 0.00005000002,
- "output_dbu_cost_per_token": 0.000714286,
+ "output_dbu_cost_per_token": 0.00071429,
"prompt_cache_min_tokens": 512,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
"supports_adaptive_thinking": true,
@@ -19434,20 +21707,20 @@
"thinking_always_on": true
},
"databricks/databricks-claude-fable-5-1": {
- "cache_creation_input_token_cost": 0.00001250004,
- "cache_read_input_token_cost": 2.5004e-7,
- "input_cost_per_token": 0.00001000006,
- "input_dbu_cost_per_token": 0.000142858,
+ "cache_creation_input_token_cost": 0.00001249997,
+ "cache_creation_input_token_cost_above_1hr": 0.00001999998,
+ "cache_read_input_token_cost": 2.4997e-7,
+ "input_cost_per_token": 0.00000999999,
+ "input_dbu_cost_per_token": 0.00014286,
"litellm_provider": "databricks",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"metadata": {
"notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
},
"mode": "chat",
"output_cost_per_token": 0.00005000002,
- "output_dbu_cost_per_token": 0.000714286,
+ "output_dbu_cost_per_token": 0.00071429,
"prompt_cache_min_tokens": 512,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
"supports_adaptive_thinking": true,
@@ -19465,13 +21738,13 @@
},
"databricks/databricks-claude-haiku-4-5": {
"cache_creation_input_token_cost": 0.00000124999,
+ "cache_creation_input_token_cost_above_1hr": 0.00000199997,
"cache_read_input_token_cost": 1.0003e-7,
"input_cost_per_token": 0.00000100002,
"input_dbu_cost_per_token": 0.000014286,
"litellm_provider": "databricks",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
@@ -19487,21 +21760,55 @@
"supports_tool_choice": true,
"prompt_cache_min_tokens": 4096
},
+ "databricks/databricks-claude-haiku-5-5": {
+ "cache_creation_input_token_cost": 1.2502e-7,
+ "cache_creation_input_token_cost_above_100k_tokens": 6.2503e-7,
+ "cache_creation_input_token_cost_above_1hr": 1.9999e-7,
+ "cache_creation_input_token_cost_above_1hr_above_100k_tokens": 0.00000100002,
+ "cache_read_input_token_cost": 1.001e-8,
+ "cache_read_input_token_cost_above_100k_tokens": 4.998e-8,
+ "input_cost_per_token": 1.0003e-7,
+ "input_cost_per_token_above_100k_tokens": 5.0001e-7,
+ "input_dbu_cost_per_token": 0.000001429,
+ "litellm_provider": "databricks",
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "metadata": {
+ "notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
+ },
+ "mode": "chat",
+ "output_cost_per_token": 5.0001e-7,
+ "output_cost_per_token_above_100k_tokens": 0.00000249998,
+ "output_dbu_cost_per_token": 0.000007143,
+ "prompt_cache_min_tokens": 512,
+ "source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
+ "supports_adaptive_thinking": true,
+ "supports_anthropic_thinking_payload": true,
+ "supports_assistant_prefill": false,
+ "supports_function_calling": true,
+ "supports_mid_conversation_system": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_sampling_params": false,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "thinking_always_on": false
+ },
"databricks/databricks-claude-opus-4": {
"cache_creation_input_token_cost": 0.00001874999,
+ "cache_creation_input_token_cost_above_1hr": 0.00002999997,
"cache_read_input_token_cost": 0.00000150003,
- "input_cost_per_token": 0.000015000020000000002,
- "input_dbu_cost_per_token": 0.000214286,
+ "input_cost_per_token": 0.00001500002,
+ "input_dbu_cost_per_token": 0.00021429,
"litellm_provider": "databricks",
"max_input_tokens": 200000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
"mode": "chat",
- "output_cost_per_token": 0.00007500003000000001,
- "output_dbu_cost_per_token": 0.001071429,
+ "output_cost_per_token": 0.0000750001,
+ "output_dbu_cost_per_token": 0.0010714,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
"supports_assistant_prefill": true,
"supports_function_calling": true,
@@ -19513,19 +21820,19 @@
},
"databricks/databricks-claude-opus-4-1": {
"cache_creation_input_token_cost": 0.00001874999,
+ "cache_creation_input_token_cost_above_1hr": 0.00002999997,
"cache_read_input_token_cost": 0.00000150003,
- "input_cost_per_token": 0.000015000020000000002,
- "input_dbu_cost_per_token": 0.000214286,
+ "input_cost_per_token": 0.00001500002,
+ "input_dbu_cost_per_token": 0.00021429,
"litellm_provider": "databricks",
"max_input_tokens": 200000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
"mode": "chat",
- "output_cost_per_token": 0.00007500003000000001,
- "output_dbu_cost_per_token": 0.001071429,
+ "output_cost_per_token": 0.0000750001,
+ "output_dbu_cost_per_token": 0.0010714,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
"supports_assistant_prefill": true,
"supports_function_calling": true,
@@ -19537,19 +21844,19 @@
},
"databricks/databricks-claude-opus-4-5": {
"cache_creation_input_token_cost": 0.00000625002,
+ "cache_creation_input_token_cost_above_1hr": 0.00000999999,
"cache_read_input_token_cost": 5.0001e-7,
"input_cost_per_token": 0.00000500003,
"input_dbu_cost_per_token": 0.000071429,
"litellm_provider": "databricks",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
"mode": "chat",
- "output_cost_per_token": 0.000025000010000000002,
- "output_dbu_cost_per_token": 0.000357143,
+ "output_cost_per_token": 0.00002500001,
+ "output_dbu_cost_per_token": 0.00035714,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
"supports_assistant_prefill": true,
"supports_function_calling": true,
@@ -19562,19 +21869,19 @@
},
"databricks/databricks-claude-opus-4-6": {
"cache_creation_input_token_cost": 0.00000625002,
+ "cache_creation_input_token_cost_above_1hr": 0.00000999999,
"cache_read_input_token_cost": 5.0001e-7,
"input_cost_per_token": 0.00000500003,
"input_dbu_cost_per_token": 0.000071429,
"litellm_provider": "databricks",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
"mode": "chat",
- "output_cost_per_token": 0.000025000010000000002,
- "output_dbu_cost_per_token": 0.000357143,
+ "output_cost_per_token": 0.00002500001,
+ "output_dbu_cost_per_token": 0.00035714,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
"supports_assistant_prefill": false,
"supports_function_calling": true,
@@ -19587,19 +21894,19 @@
},
"databricks/databricks-claude-opus-4-7": {
"cache_creation_input_token_cost": 0.00000625002,
+ "cache_creation_input_token_cost_above_1hr": 0.00000999999,
"cache_read_input_token_cost": 5.0001e-7,
"input_cost_per_token": 0.00000500003,
"input_dbu_cost_per_token": 0.000071429,
"litellm_provider": "databricks",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"metadata": {
"notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
},
"mode": "chat",
"output_cost_per_token": 0.00002500001,
- "output_dbu_cost_per_token": 0.000357143,
+ "output_dbu_cost_per_token": 0.00035714,
"prompt_cache_min_tokens": 2048,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
"supports_adaptive_thinking": true,
@@ -19614,19 +21921,19 @@
},
"databricks/databricks-claude-opus-4-8": {
"cache_creation_input_token_cost": 0.00000625002,
+ "cache_creation_input_token_cost_above_1hr": 0.00000999999,
"cache_read_input_token_cost": 5.0001e-7,
"input_cost_per_token": 0.00000500003,
"input_dbu_cost_per_token": 0.000071429,
"litellm_provider": "databricks",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"metadata": {
"notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
},
"mode": "chat",
"output_cost_per_token": 0.00002500001,
- "output_dbu_cost_per_token": 0.000357143,
+ "output_dbu_cost_per_token": 0.00035714,
"prompt_cache_min_tokens": 1024,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
"supports_adaptive_thinking": true,
@@ -19642,19 +21949,19 @@
},
"databricks/databricks-claude-opus-5": {
"cache_creation_input_token_cost": 0.00000625002,
+ "cache_creation_input_token_cost_above_1hr": 0.00000999999,
"cache_read_input_token_cost": 5.0001e-7,
"input_cost_per_token": 0.00000500003,
"input_dbu_cost_per_token": 0.000071429,
"litellm_provider": "databricks",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"metadata": {
"notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
},
"mode": "chat",
"output_cost_per_token": 0.00002500001,
- "output_dbu_cost_per_token": 0.000357143,
+ "output_dbu_cost_per_token": 0.00035714,
"prompt_cache_min_tokens": 512,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
"supports_adaptive_thinking": true,
@@ -19677,7 +21984,6 @@
"litellm_provider": "databricks",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"metadata": {
"notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
},
@@ -19707,17 +22013,17 @@
"cache_creation_input_token_cost": 0.00000374997,
"cache_read_input_token_cost": 3.0002e-7,
"deprecation_date": "2026-10-09",
- "input_cost_per_token": 0.0000029999900000000002,
+ "successor_model": "databricks/databricks-claude-sonnet-5",
+ "input_cost_per_token": 0.00000299999,
"input_dbu_cost_per_token": 0.000042857,
"litellm_provider": "databricks",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
"mode": "chat",
- "output_cost_per_token": 0.000015000020000000002,
+ "output_cost_per_token": 0.00001500002,
"output_dbu_cost_per_token": 0.000214286,
"prompt_cache_min_tokens": 1024,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
@@ -19736,7 +22042,6 @@
"litellm_provider": "databricks",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
@@ -19753,19 +22058,19 @@
},
"databricks/databricks-claude-sonnet-4-5": {
"cache_creation_input_token_cost": 0.00000374997,
+ "cache_creation_input_token_cost_above_1hr": 0.00000599998,
"cache_read_input_token_cost": 3.0002e-7,
- "input_cost_per_token": 0.0000029999900000000002,
+ "input_cost_per_token": 0.00000299999,
"input_dbu_cost_per_token": 0.000042857,
"litellm_provider": "databricks",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
"mode": "chat",
- "output_cost_per_token": 0.000015000020000000002,
- "output_dbu_cost_per_token": 0.000214286,
+ "output_cost_per_token": 0.00001500002,
+ "output_dbu_cost_per_token": 0.00021429,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
"supports_assistant_prefill": true,
"supports_function_calling": true,
@@ -19777,19 +22082,19 @@
},
"databricks/databricks-claude-sonnet-4-6": {
"cache_creation_input_token_cost": 0.00000374997,
+ "cache_creation_input_token_cost_above_1hr": 0.00000599998,
"cache_read_input_token_cost": 3.0002e-7,
- "input_cost_per_token": 0.0000029999900000000002,
+ "input_cost_per_token": 0.00000299999,
"input_dbu_cost_per_token": 0.000042857,
"litellm_provider": "databricks",
"max_input_tokens": 1000000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
"mode": "chat",
- "output_cost_per_token": 0.000015000020000000002,
- "output_dbu_cost_per_token": 0.000214286,
+ "output_cost_per_token": 0.00001500002,
+ "output_dbu_cost_per_token": 0.00021429,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
"supports_assistant_prefill": false,
"supports_function_calling": true,
@@ -19801,20 +22106,20 @@
"prompt_cache_min_tokens": 1024
},
"databricks/databricks-claude-sonnet-5": {
- "cache_creation_input_token_cost": 0.00000374997,
- "cache_read_input_token_cost": 3.0002e-7,
- "input_cost_per_token": 0.00000299999,
- "input_dbu_cost_per_token": 0.000042857,
+ "cache_creation_input_token_cost": 0.00000249998,
+ "cache_creation_input_token_cost_above_1hr": 0.00000400001,
+ "cache_read_input_token_cost": 1.9999e-7,
+ "input_cost_per_token": 0.00000199997,
+ "input_dbu_cost_per_token": 0.000028571,
"litellm_provider": "databricks",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"metadata": {
- "notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields. Introductory launch rates of 28.571 input / 142.857 output / 35.714 cache write / 2.857 cache read DBU run through 2026-08-31; the standard rates are listed here because entries carry no expiry date."
+ "notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
},
"mode": "chat",
- "output_cost_per_token": 0.00001500002,
- "output_dbu_cost_per_token": 0.000214286,
+ "output_cost_per_token": 0.00000999999,
+ "output_dbu_cost_per_token": 0.00014286,
"prompt_cache_min_tokens": 1024,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
"supports_adaptive_thinking": true,
@@ -19828,23 +22133,115 @@
"supports_tool_choice": true,
"supports_vision": true
},
+ "databricks/databricks-claude-sonnet-5-5": {
+ "cache_creation_input_token_cost": 0.00000249998,
+ "cache_creation_input_token_cost_above_1hr": 0.00000400001,
+ "cache_read_input_token_cost": 1.0003e-7,
+ "input_cost_per_token": 0.00000199997,
+ "input_dbu_cost_per_token": 0.000028571,
+ "litellm_provider": "databricks",
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "metadata": {
+ "notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
+ },
+ "mode": "chat",
+ "output_cost_per_token": 0.00000999999,
+ "output_dbu_cost_per_token": 0.00014286,
+ "prompt_cache_min_tokens": 512,
+ "source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
+ "supports_adaptive_thinking": true,
+ "supports_anthropic_thinking_payload": true,
+ "supports_assistant_prefill": false,
+ "supports_function_calling": true,
+ "supports_mid_conversation_system": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_sampling_params": false,
+ "supports_tool_choice": true,
+ "supports_vision": false,
+ "thinking_always_on": true
+ },
+ "databricks/databricks-deepseek-v4-1-flash": {
+ "cache_creation_input_token_cost": 3.0002e-7,
+ "cache_read_input_token_cost": 3.003e-8,
+ "deprecation_date": "2026-11-19",
+ "deprecation_source": "https://docs.databricks.com/aws/en/machine-learning/foundation-model-apis/supported-models",
+ "input_cost_per_token": 3.0002e-7,
+ "input_dbu_cost_per_token": 0.000004286,
+ "litellm_provider": "databricks",
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 384000,
+ "metadata": {
+ "notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields. The docs list only databricks-deepseek-v4-1-flash (retiring 2026-11-19) and databricks-deepseek-v4-1-flash-1017, so the pricing page's 'DeepSeek V4.1 Flash (0910)' row prices the unsuffixed endpoint."
+ },
+ "mode": "chat",
+ "output_cost_per_token": 0.00000120001,
+ "output_dbu_cost_per_token": 0.000017143,
+ "source": "https://docs.databricks.com/aws/en/machine-learning/foundation-model-apis/supported-models",
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "input_cost_per_token_priority": 5.25e-7,
+ "output_cost_per_token_priority": 0.0000021,
+ "cache_read_input_token_cost_priority": 5.25e-8,
+ "cache_creation_input_token_cost_priority": 5.25e-7
+ },
+ "databricks/databricks-deepseek-v4-1-flash-1017": {
+ "cache_creation_input_token_cost": 3.0002e-7,
+ "cache_read_input_token_cost": 7e-9,
+ "input_cost_per_token": 3.0002e-7,
+ "input_dbu_cost_per_token": 0.000004286,
+ "litellm_provider": "databricks",
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 384000,
+ "metadata": {
+ "notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
+ },
+ "mode": "chat",
+ "output_cost_per_token": 0.00000120001,
+ "output_dbu_cost_per_token": 0.000017143,
+ "source": "https://www.databricks.com/product/pricing/foundation-model-serving",
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
"databricks/databricks-deepseek-v4-flash-0731": {
"cache_creation_input_token_cost": 1.4e-7,
"cache_read_input_token_cost": 2.8e-8,
+ "deprecation_date": "2026-11-05",
+ "deprecation_source": "https://docs.databricks.com/aws/en/machine-learning/foundation-model-apis/supported-models",
"input_cost_per_token": 1.4e-7,
"input_dbu_cost_per_token": 0.000002,
"litellm_provider": "databricks",
"token_count_framing": 97,
"max_input_tokens": 1000000,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Billing reads the per-token dollar fields; the '*_dbu_cost_per_token' fields are the published Databricks rates, kept for reference. Context/max output are the DeepSeek-published model limits (1M context, 384K max output)."
},
"mode": "chat",
"output_cost_per_token": 2.8e-7,
"output_dbu_cost_per_token": 0.000004,
- "source": "https://www.databricks.com/product/pricing/foundation-model-serving",
+ "source": "https://docs.databricks.com/aws/en/machine-learning/foundation-model-apis/supported-models",
"supported_modalities": [
"text"
],
@@ -19860,19 +22257,20 @@
"databricks/databricks-deepseek-v4-pro-0813": {
"cache_creation_input_token_cost": 0.00000131999,
"cache_read_input_token_cost": 1.3202e-7,
+ "deprecation_date": "2026-10-30",
+ "deprecation_source": "https://docs.databricks.com/aws/en/machine-learning/foundation-model-apis/supported-models",
"input_cost_per_token": 0.00000131999,
"input_dbu_cost_per_token": 0.000018857,
"litellm_provider": "databricks",
"max_input_tokens": 1000000,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Billing reads the per-token dollar fields; the '*_dbu_cost_per_token' fields are the published Databricks rates, kept for reference. Context/max output are the DeepSeek-published model limits (1M context, 384K max output)."
},
"mode": "chat",
"output_cost_per_token": 0.00000395997,
"output_dbu_cost_per_token": 0.000056571,
- "source": "https://www.databricks.com/product/pricing/foundation-model-serving",
+ "source": "https://docs.databricks.com/aws/en/machine-learning/foundation-model-apis/supported-models",
"supported_modalities": [
"text"
],
@@ -19889,12 +22287,12 @@
"cache_creation_input_token_cost": 3.0002e-7,
"cache_read_input_token_cost": 3.0002e-8,
"deprecation_date": "2026-10-02",
+ "successor_model": "databricks/databricks-gemini-3-5-flash",
"input_cost_per_token": 3.0001999999999996e-7,
"input_dbu_cost_per_token": 0.000004285999999999999,
"litellm_provider": "databricks",
"max_input_tokens": 1048576,
"max_output_tokens": 65535,
- "max_tokens": 65535,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
@@ -19920,6 +22318,41 @@
"supports_audio_input": true,
"supports_video_input": true
},
+ "databricks/databricks-gemini-2-5-flash-lite": {
+ "cache_creation_input_token_cost": 1.2502e-7,
+ "cache_read_input_audio_token_cost": 3.752e-8,
+ "cache_read_input_token_cost": 1.253e-8,
+ "input_cost_per_audio_token": 3.7499e-7,
+ "input_cost_per_image_token": 1.2502e-7,
+ "input_cost_per_token": 1.2502e-7,
+ "input_dbu_cost_per_token": 0.000001786,
+ "litellm_provider": "databricks",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 65536,
+ "metadata": {
+ "notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
+ },
+ "mode": "chat",
+ "output_cost_per_token": 5.0001e-7,
+ "output_dbu_cost_per_token": 0.000007143,
+ "source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
+ "supported_modalities": [
+ "text",
+ "image",
+ "audio",
+ "video"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_audio_input": true,
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_video_input": true,
+ "supports_vision": true
+ },
"databricks/databricks-gemini-2-5-pro": {
"cache_creation_input_token_cost": 0.00000124999,
"cache_read_input_token_cost": 1.24999e-7,
@@ -19928,7 +22361,6 @@
"litellm_provider": "databricks",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
@@ -19956,14 +22388,19 @@
"supports_video_input": true
},
"databricks/databricks-gemini-3-1-flash-image": {
+ "cache_creation_input_token_cost": 6.2503e-7,
+ "cache_read_input_token_cost": 6.2503e-7,
+ "input_cost_per_image_token": 6.2503e-7,
+ "input_cost_per_token": 6.2503e-7,
"litellm_provider": "databricks",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"metadata": {
- "notes": "Databricks DBU rates not yet published for this model; endpoint metadata only."
+ "notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
},
"mode": "chat",
+ "output_cost_per_image_token": 0.0000750001,
+ "output_cost_per_token": 0.00000374997,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
"supported_modalities": [
"text",
@@ -19978,13 +22415,15 @@
},
"databricks/databricks-gemini-3-1-flash-lite": {
"cache_creation_input_token_cost": 3.1248e-7,
+ "cache_read_input_audio_token_cost": 6.251e-8,
"cache_read_input_token_cost": 3.122e-8,
+ "input_cost_per_audio_token": 6.2503e-7,
+ "input_cost_per_image_token": 3.1248e-7,
"input_cost_per_token": 3.1248e-7,
"input_dbu_cost_per_token": 0.000004464,
"litellm_provider": "databricks",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
@@ -20006,28 +22445,60 @@
],
"supports_vision": true,
"supports_audio_input": true,
- "supports_video_input": true
+ "supports_video_input": true,
+ "input_cost_per_token_priority": 5.6252e-7,
+ "output_cost_per_token_priority": 0.00000337498,
+ "cache_read_input_token_cost_priority": 5.628e-8,
+ "cache_creation_input_token_cost_priority": 5.6252e-7,
+ "input_cost_per_audio_token_priority": 0.00000112497,
+ "cache_read_input_audio_token_cost_priority": 1.1249e-7
+ },
+ "databricks/databricks-gemini-3-1-flash-lite-image": {
+ "cache_creation_input_token_cost": 3.1248e-7,
+ "cache_read_input_token_cost": 3.1248e-7,
+ "input_cost_per_image_token": 3.1248e-7,
+ "input_cost_per_token": 3.1248e-7,
+ "input_dbu_cost_per_token": 0.000004464,
+ "litellm_provider": "databricks",
+ "max_input_tokens": 65536,
+ "max_output_tokens": 4096,
+ "metadata": {
+ "notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
+ },
+ "mode": "chat",
+ "output_cost_per_image_token": 0.00003749998,
+ "output_cost_per_token": 0.00000187502,
+ "output_dbu_cost_per_token": 0.000026786,
+ "source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text",
+ "image"
+ ],
+ "supports_function_calling": false,
+ "supports_vision": true
},
"databricks/databricks-gemini-3-1-pro": {
"cache_creation_input_token_cost": 0.00000249998,
"cache_read_input_token_cost": 2.4997e-7,
+ "cache_read_input_token_cost_above_200k_tokens": 5.0001e-7,
"input_cost_per_token": 0.00000249998,
+ "input_cost_per_token_above_200k_tokens": 0.00000500003,
"input_dbu_cost_per_token": 0.000035714,
"litellm_provider": "databricks",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
"mode": "chat",
- "output_cost_per_token": 0.000015000020000000002,
+ "output_cost_per_token": 0.00001500002,
+ "output_cost_per_token_above_200k_tokens": 0.0000225,
"output_dbu_cost_per_token": 0.000214286,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
- "supports_function_calling": true,
- "supports_prompt_caching": true,
- "supports_tool_choice": true,
- "supports_reasoning": true,
"supported_modalities": [
"text",
"image",
@@ -20037,9 +22508,20 @@
"supported_output_modalities": [
"text"
],
- "supports_vision": true,
"supports_audio_input": true,
- "supports_video_input": true
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_video_input": true,
+ "supports_vision": true,
+ "input_cost_per_token_priority": 0.00000450002,
+ "output_cost_per_token_priority": 0.00002699998,
+ "cache_read_input_token_cost_priority": 4.5003e-7,
+ "cache_creation_input_token_cost_priority": 0.00000450002,
+ "input_cost_per_token_above_200k_tokens_priority": 0.00000899997,
+ "output_cost_per_token_above_200k_tokens_priority": 0.00004049997,
+ "cache_read_input_token_cost_above_200k_tokens_priority": 8.9999e-7
},
"databricks/databricks-gemini-3-5-flash": {
"cache_creation_input_token_cost": 0.00000187502,
@@ -20049,14 +22531,13 @@
"litellm_provider": "databricks",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"metadata": {
"notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
},
"mode": "chat",
"output_cost_per_token": 0.00001124998,
"output_dbu_cost_per_token": 0.000160714,
- "source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
+ "source": "https://docs.databricks.com/aws/en/machine-learning/foundation-model-apis/supported-models",
"supported_modalities": [
"text",
"image",
@@ -20070,7 +22551,13 @@
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true,
- "supports_vision": true
+ "supports_vision": true,
+ "input_cost_per_token_priority": 0.00000337498,
+ "output_cost_per_token_priority": 0.00002025002,
+ "cache_read_input_token_cost_priority": 3.3747e-7,
+ "cache_creation_input_token_cost_priority": 0.00000337498,
+ "supports_audio_input": true,
+ "supports_video_input": true
},
"databricks/databricks-gemini-3-5-flash-lite": {
"cache_creation_input_token_cost": 3.7499e-7,
@@ -20080,14 +22567,13 @@
"litellm_provider": "databricks",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"metadata": {
"notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
},
"mode": "chat",
"output_cost_per_token": 0.00000312501,
"output_dbu_cost_per_token": 0.000044643,
- "source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
+ "source": "https://docs.databricks.com/aws/en/machine-learning/foundation-model-apis/supported-models",
"supported_modalities": [
"text",
"image",
@@ -20101,25 +22587,31 @@
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
+ "supports_sampling_params": false,
"supports_tool_choice": true,
- "supports_vision": true
+ "supports_vision": true,
+ "input_cost_per_token_priority": 6.7501e-7,
+ "output_cost_per_token_priority": 0.00000562499,
+ "cache_read_input_token_cost_priority": 6.748e-8,
+ "cache_creation_input_token_cost_priority": 6.7501e-7,
+ "supports_audio_input": true,
+ "supports_video_input": true
},
"databricks/databricks-gemini-3-6-flash": {
- "cache_creation_input_token_cost": 0.00000187502,
- "cache_read_input_token_cost": 1.8753e-7,
- "input_cost_per_token": 0.00000187502,
- "input_dbu_cost_per_token": 0.000026786,
+ "cache_creation_input_token_cost": 7.4998e-7,
+ "cache_read_input_token_cost": 7.497e-8,
+ "input_cost_per_token": 7.4998e-7,
+ "input_dbu_cost_per_token": 0.000010714,
"litellm_provider": "databricks",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"metadata": {
"notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
},
"mode": "chat",
- "output_cost_per_token": 0.00000937503,
- "output_dbu_cost_per_token": 0.000133929,
- "source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
+ "output_cost_per_token": 0.00000374997,
+ "output_dbu_cost_per_token": 0.000053571,
+ "source": "https://docs.databricks.com/aws/en/machine-learning/foundation-model-apis/supported-models",
"supported_modalities": [
"text",
"image",
@@ -20132,19 +22624,29 @@
"supports_function_calling": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
+ "supports_sampling_params": false,
"supports_tool_choice": true,
- "supports_vision": true
+ "supports_vision": true,
+ "input_cost_per_token_priority": 0.00000135002,
+ "output_cost_per_token_priority": 0.00000675003,
+ "cache_read_input_token_cost_priority": 1.3503e-7,
+ "cache_creation_input_token_cost_priority": 0.00000135002,
+ "supports_audio_input": true,
+ "supports_video_input": true
},
"databricks/databricks-gemini-3-7-flash": {
+ "cache_creation_input_token_cost": 7.4998e-7,
+ "cache_read_input_token_cost": 7.497e-8,
+ "input_cost_per_token": 7.4998e-7,
"litellm_provider": "databricks",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"metadata": {
- "notes": "Databricks DBU rates not yet published for this model; endpoint metadata only."
+ "notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
},
"mode": "chat",
- "source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
+ "output_cost_per_token": 0.00000374997,
+ "source": "https://docs.databricks.com/aws/en/machine-learning/foundation-model-apis/supported-models",
"supported_modalities": [
"text",
"image",
@@ -20156,19 +22658,29 @@
],
"supports_function_calling": true,
"supports_reasoning": true,
+ "supports_sampling_params": false,
"supports_tool_choice": true,
- "supports_vision": true
+ "supports_vision": true,
+ "input_cost_per_token_priority": 0.00000135002,
+ "output_cost_per_token_priority": 0.00000675003,
+ "cache_read_input_token_cost_priority": 1.3503e-7,
+ "cache_creation_input_token_cost_priority": 0.00000135002,
+ "supports_audio_input": true,
+ "supports_video_input": true
},
"databricks/databricks-gemini-3-8-flash": {
+ "cache_creation_input_token_cost": 7.4998e-7,
+ "cache_read_input_token_cost": 7.497e-8,
+ "input_cost_per_token": 7.4998e-7,
"litellm_provider": "databricks",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"metadata": {
- "notes": "Databricks DBU rates not yet published for this model; endpoint metadata only."
+ "notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
},
"mode": "chat",
- "source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
+ "output_cost_per_token": 0.00000374997,
+ "source": "https://docs.databricks.com/aws/en/machine-learning/foundation-model-apis/supported-models",
"supported_modalities": [
"text",
"image",
@@ -20180,18 +22692,27 @@
],
"supports_function_calling": true,
"supports_reasoning": true,
+ "supports_sampling_params": false,
"supports_tool_choice": true,
- "supports_vision": true
+ "supports_vision": true,
+ "input_cost_per_token_priority": 0.00000135002,
+ "output_cost_per_token_priority": 0.00000675003,
+ "cache_read_input_token_cost_priority": 1.3503e-7,
+ "cache_creation_input_token_cost_priority": 0.00000135002,
+ "supports_audio_input": true,
+ "supports_video_input": true
},
"databricks/databricks-gemini-3-flash": {
"cache_creation_input_token_cost": 6.2503e-7,
+ "cache_read_input_audio_token_cost": 1.2502e-7,
"cache_read_input_token_cost": 6.251e-8,
+ "input_cost_per_audio_token": 0.00000124999,
+ "input_cost_per_image_token": 6.2503e-7,
"input_cost_per_token": 6.2503e-7,
"input_dbu_cost_per_token": 0.000008929,
"litellm_provider": "databricks",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
@@ -20213,7 +22734,13 @@
],
"supports_vision": true,
"supports_audio_input": true,
- "supports_video_input": true
+ "supports_video_input": true,
+ "input_cost_per_token_priority": 0.00000112497,
+ "output_cost_per_token_priority": 0.00000675003,
+ "cache_read_input_token_cost_priority": 1.1249e-7,
+ "cache_creation_input_token_cost_priority": 0.00000112497,
+ "input_cost_per_audio_token_priority": 0.00000225001,
+ "cache_read_input_audio_token_cost_priority": 2.2498e-7
},
"databricks/databricks-gemini-3-pro": {
"cache_creation_input_token_cost": 0.00000249998,
@@ -20223,7 +22750,6 @@
"litellm_provider": "databricks",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
@@ -20236,14 +22762,19 @@
"supports_tool_choice": true
},
"databricks/databricks-gemini-3-pro-image": {
+ "cache_creation_input_token_cost": 0.00000249998,
+ "cache_read_input_token_cost": 0.00000249998,
+ "input_cost_per_image_token": 0.00000249998,
+ "input_cost_per_token": 0.00000249998,
"litellm_provider": "databricks",
"max_input_tokens": 65536,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"metadata": {
- "notes": "Databricks DBU rates not yet published for this model; endpoint metadata only."
+ "notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
},
"mode": "chat",
+ "output_cost_per_image_token": 0.0001500002,
+ "output_cost_per_token": 0.00001500002,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
"supported_modalities": [
"text",
@@ -20256,15 +22787,50 @@
"supports_function_calling": false,
"supports_vision": true
},
+ "databricks/databricks-gemini-4-argon": {
+ "cache_creation_input_token_cost": 0.00000249998,
+ "cache_read_input_token_cost": 1.2502e-7,
+ "input_cost_per_token": 0.00000249998,
+ "input_dbu_cost_per_token": 0.000035714,
+ "litellm_provider": "databricks",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 1048576,
+ "metadata": {
+ "notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
+ },
+ "mode": "chat",
+ "output_cost_per_token": 0.00001249997,
+ "output_dbu_cost_per_token": 0.00017857,
+ "source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
+ "supported_modalities": [
+ "text",
+ "image",
+ "audio",
+ "video"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_audio_input": true,
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_video_input": true,
+ "supports_vision": true,
+ "input_cost_per_token_priority": 0.00000450002,
+ "output_cost_per_token_priority": 0.00002250003,
+ "cache_read_input_token_cost_priority": 2.2498e-7,
+ "cache_creation_input_token_cost_priority": 0.00000450002
+ },
"databricks/databricks-gemma-3-12b": {
"cache_creation_input_token_cost": 1.5001e-7,
"cache_read_input_token_cost": 1.5001e-7,
- "input_cost_per_token": 1.5000999999999998e-7,
+ "input_cost_per_token": 1.5001e-7,
"input_dbu_cost_per_token": 0.0000021429999999999996,
"litellm_provider": "databricks",
"max_input_tokens": 128000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
@@ -20281,7 +22847,6 @@
"litellm_provider": "databricks",
"max_input_tokens": 1000000,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Billing reads the per-token dollar fields; the '*_dbu_cost_per_token' fields are the published Databricks rates, kept for reference."
},
@@ -20299,7 +22864,11 @@
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true,
- "supports_vision": false
+ "supports_vision": false,
+ "input_cost_per_token_priority": 0.00000245,
+ "output_cost_per_token_priority": 0.0000077,
+ "cache_read_input_token_cost_priority": 4.55e-7,
+ "cache_creation_input_token_cost_priority": 0.00000245
},
"databricks/databricks-glm-5-3": {
"cache_creation_input_token_cost": 0.0000014,
@@ -20309,7 +22878,6 @@
"litellm_provider": "databricks",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"metadata": {
"notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
},
@@ -20330,7 +22898,11 @@
"supports_response_schema": true,
"supports_tool_choice": true,
"supports_vision": false,
- "thinking_always_on": true
+ "thinking_always_on": true,
+ "input_cost_per_token_priority": 0.00000245,
+ "output_cost_per_token_priority": 0.0000077,
+ "cache_read_input_token_cost_priority": 4.55e-7,
+ "cache_creation_input_token_cost_priority": 0.00000245
},
"databricks/databricks-glm-5-3-flash": {
"cache_creation_input_token_cost": 1.5001e-7,
@@ -20340,7 +22912,6 @@
"litellm_provider": "databricks",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"metadata": {
"notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
},
@@ -20360,7 +22931,11 @@
"supports_reasoning": true,
"supports_tool_choice": true,
"supports_vision": true,
- "thinking_always_on": true
+ "thinking_always_on": true,
+ "input_cost_per_token_priority": 2.625e-7,
+ "output_cost_per_token_priority": 8.75e-7,
+ "cache_read_input_token_cost_priority": 5.25e-8,
+ "cache_creation_input_token_cost_priority": 2.625e-7
},
"databricks/databricks-gpt-5": {
"cache_creation_input_token_cost": 0.00000124999,
@@ -20370,17 +22945,20 @@
"litellm_provider": "databricks",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
"mode": "chat",
- "output_cost_per_token": 0.000009999990000000002,
+ "output_cost_per_token": 0.00000999999,
"output_dbu_cost_per_token": 0.000142857,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
"supports_function_calling": true,
"supports_prompt_caching": true,
- "supports_tool_choice": true
+ "supports_tool_choice": true,
+ "input_cost_per_token_priority": 0.00000249998,
+ "output_cost_per_token_priority": 0.00001999998,
+ "cache_read_input_token_cost_priority": 2.4997e-7,
+ "cache_creation_input_token_cost_priority": 0.00000249998
},
"databricks/databricks-gpt-5-1": {
"cache_creation_input_token_cost": 0.00000124999,
@@ -20390,17 +22968,20 @@
"litellm_provider": "databricks",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
"mode": "chat",
- "output_cost_per_token": 0.000009999990000000002,
+ "output_cost_per_token": 0.00000999999,
"output_dbu_cost_per_token": 0.000142857,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
"supports_function_calling": true,
"supports_prompt_caching": true,
- "supports_tool_choice": true
+ "supports_tool_choice": true,
+ "input_cost_per_token_priority": 0.00000249998,
+ "output_cost_per_token_priority": 0.00001999998,
+ "cache_read_input_token_cost_priority": 2.4997e-7,
+ "cache_creation_input_token_cost_priority": 0.00000249998
},
"databricks/databricks-gpt-5-2": {
"cache_creation_input_token_cost": 0.00000175,
@@ -20410,7 +22991,6 @@
"litellm_provider": "databricks",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
@@ -20420,22 +23000,28 @@
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
"supports_function_calling": true,
"supports_prompt_caching": true,
- "supports_tool_choice": true
+ "supports_tool_choice": true,
+ "input_cost_per_token_priority": 0.0000035,
+ "output_cost_per_token_priority": 0.000028,
+ "cache_read_input_token_cost_priority": 3.5e-7,
+ "cache_creation_input_token_cost_priority": 0.0000035
},
"databricks/databricks-gpt-5-4": {
"cache_creation_input_token_cost": 0.00000249998,
"cache_read_input_token_cost": 2.4997e-7,
+ "cache_read_input_token_cost_above_272k_tokens": 5.0001e-7,
"input_cost_per_token": 0.00000249998,
+ "input_cost_per_token_above_272k_tokens": 0.00000500003,
"input_dbu_cost_per_token": 0.000035714,
"litellm_provider": "databricks",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
"mode": "chat",
- "output_cost_per_token": 0.000015000020000000002,
+ "output_cost_per_token": 0.00001500002,
+ "output_cost_per_token_above_272k_tokens": 0.0000225,
"output_dbu_cost_per_token": 0.000214286,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
"supported_modalities": [
@@ -20449,7 +23035,14 @@
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true,
- "supports_vision": true
+ "supports_vision": true,
+ "input_cost_per_token_priority": 0.00000500003,
+ "output_cost_per_token_priority": 0.00002999997,
+ "cache_read_input_token_cost_priority": 5.0001e-7,
+ "cache_creation_input_token_cost_priority": 0.00000500003,
+ "input_cost_per_token_above_272k_tokens_priority": 0.00000500003,
+ "output_cost_per_token_above_272k_tokens_priority": 0.00002999997,
+ "cache_read_input_token_cost_above_272k_tokens_priority": 5.0001e-7
},
"databricks/databricks-gpt-5-4-mini": {
"cache_creation_input_token_cost": 7.4998e-7,
@@ -20459,7 +23052,6 @@
"litellm_provider": "databricks",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
@@ -20478,7 +23070,11 @@
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true,
- "supports_vision": true
+ "supports_vision": true,
+ "input_cost_per_token_priority": 0.00000150003,
+ "output_cost_per_token_priority": 0.00000899997,
+ "cache_read_input_token_cost_priority": 1.5001e-7,
+ "cache_creation_input_token_cost_priority": 0.00000150003
},
"databricks/databricks-gpt-5-4-nano": {
"cache_creation_input_token_cost": 1.9999e-7,
@@ -20488,7 +23084,6 @@
"litellm_provider": "databricks",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
@@ -20510,20 +23105,23 @@
"supports_vision": true
},
"databricks/databricks-gpt-5-6-luna": {
- "cache_creation_input_token_cost": 0.00000124999,
- "cache_read_input_token_cost": 1.0003e-7,
- "input_cost_per_token": 0.00000100002,
- "input_dbu_cost_per_token": 0.000014286,
+ "cache_creation_input_token_cost": 2.4997e-7,
+ "cache_creation_input_token_cost_above_272k_tokens": 5.0001e-7,
+ "cache_read_input_token_cost": 2.002e-8,
+ "cache_read_input_token_cost_above_272k_tokens": 3.997e-8,
+ "input_cost_per_token": 1.9999e-7,
+ "input_cost_per_token_above_272k_tokens": 3.9998e-7,
+ "input_dbu_cost_per_token": 0.000002857,
"litellm_provider": "databricks",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"metadata": {
"notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
},
"mode": "chat",
- "output_cost_per_token": 0.00000599998,
- "output_dbu_cost_per_token": 0.000085714,
+ "output_cost_per_token": 0.00000120001,
+ "output_cost_per_token_above_272k_tokens": 0.00000179998,
+ "output_dbu_cost_per_token": 0.000017143,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
"supported_modalities": [
"text",
@@ -20536,22 +23134,33 @@
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true,
- "supports_vision": true
+ "supports_vision": true,
+ "input_cost_per_token_priority": 3.9998e-7,
+ "output_cost_per_token_priority": 0.00000240002,
+ "cache_read_input_token_cost_priority": 3.997e-8,
+ "cache_creation_input_token_cost_priority": 5.0001e-7,
+ "input_cost_per_token_above_272k_tokens_priority": 8.0003e-7,
+ "output_cost_per_token_above_272k_tokens_priority": 0.00000360003,
+ "cache_read_input_token_cost_above_272k_tokens_priority": 8.001e-8,
+ "cache_creation_input_token_cost_above_272k_tokens_priority": 0.00000100002
},
"databricks/databricks-gpt-5-6-sol": {
"cache_creation_input_token_cost": 0.00000500003,
+ "cache_creation_input_token_cost_above_272k_tokens": 0.00000999999,
"cache_read_input_token_cost": 3.9998e-7,
+ "cache_read_input_token_cost_above_272k_tokens": 8.0003e-7,
"input_cost_per_token": 0.00000400001,
+ "input_cost_per_token_above_272k_tokens": 0.00000800002,
"input_dbu_cost_per_token": 0.000057143,
"litellm_provider": "databricks",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"metadata": {
"notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields. Rates reflect OpenAI's promotional pricing in effect through November 21, 2026; afterwards input, cache and Batch rates are 25% higher and output rates 50% higher."
},
"mode": "chat",
"output_cost_per_token": 0.00001999998,
+ "output_cost_per_token_above_272k_tokens": 0.00003,
"output_dbu_cost_per_token": 0.000285714,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
"supported_modalities": [
@@ -20565,23 +23174,34 @@
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true,
- "supports_vision": true
+ "supports_vision": true,
+ "input_cost_per_token_priority": 0.00000800002,
+ "output_cost_per_token_priority": 0.00004000003,
+ "cache_read_input_token_cost_priority": 8.0003e-7,
+ "cache_creation_input_token_cost_priority": 0.00000999999,
+ "input_cost_per_token_above_272k_tokens_priority": 0.00001599997,
+ "output_cost_per_token_above_272k_tokens_priority": 0.00006000001,
+ "cache_read_input_token_cost_above_272k_tokens_priority": 0.00000159999,
+ "cache_creation_input_token_cost_above_272k_tokens_priority": 0.00001999998
},
"databricks/databricks-gpt-5-6-terra": {
- "cache_creation_input_token_cost": 0.00000312501,
- "cache_read_input_token_cost": 2.4997e-7,
- "input_cost_per_token": 0.00000249998,
- "input_dbu_cost_per_token": 0.000035714,
+ "cache_creation_input_token_cost": 0.00000249998,
+ "cache_creation_input_token_cost_above_272k_tokens": 0.00000500003,
+ "cache_read_input_token_cost": 1.9999e-7,
+ "cache_read_input_token_cost_above_272k_tokens": 3.9998e-7,
+ "input_cost_per_token": 0.00000199997,
+ "input_cost_per_token_above_272k_tokens": 0.00000400001,
+ "input_dbu_cost_per_token": 0.000028571,
"litellm_provider": "databricks",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"metadata": {
"notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
},
"mode": "chat",
- "output_cost_per_token": 0.00001500002,
- "output_dbu_cost_per_token": 0.000214286,
+ "output_cost_per_token": 0.00001200003,
+ "output_cost_per_token_above_272k_tokens": 0.000018,
+ "output_dbu_cost_per_token": 0.000171429,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
"supported_modalities": [
"text",
@@ -20594,27 +23214,38 @@
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true,
- "supports_vision": true
+ "supports_vision": true,
+ "input_cost_per_token_priority": 0.00000400001,
+ "output_cost_per_token_priority": 0.00002399999,
+ "cache_read_input_token_cost_priority": 3.9998e-7,
+ "cache_creation_input_token_cost_priority": 0.00000500003,
+ "input_cost_per_token_above_272k_tokens_priority": 0.00000800002,
+ "output_cost_per_token_above_272k_tokens_priority": 0.00003600002,
+ "cache_read_input_token_cost_above_272k_tokens_priority": 8.0003e-7,
+ "cache_creation_input_token_cost_above_272k_tokens_priority": 0.00000999999
},
"databricks/databricks-gpt-5-mini": {
"cache_creation_input_token_cost": 2.4997e-7,
"cache_read_input_token_cost": 2.499e-8,
- "input_cost_per_token": 2.4997000000000006e-7,
+ "input_cost_per_token": 2.4997e-7,
"input_dbu_cost_per_token": 0.000003571,
"litellm_provider": "databricks",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
"mode": "chat",
- "output_cost_per_token": 0.0000019999700000000004,
+ "output_cost_per_token": 0.00000199997,
"output_dbu_cost_per_token": 0.000028571,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
"supports_function_calling": true,
"supports_prompt_caching": true,
- "supports_tool_choice": true
+ "supports_tool_choice": true,
+ "input_cost_per_token_priority": 4.5003e-7,
+ "output_cost_per_token_priority": 0.00000360003,
+ "cache_read_input_token_cost_priority": 4.501e-8,
+ "cache_creation_input_token_cost_priority": 4.5003e-7
},
"databricks/databricks-gpt-5-nano": {
"cache_creation_input_token_cost": 4.998e-8,
@@ -20624,27 +23255,105 @@
"litellm_provider": "databricks",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
"mode": "chat",
- "output_cost_per_token": 3.9998000000000007e-7,
+ "output_cost_per_token": 3.9998e-7,
"output_dbu_cost_per_token": 0.000005714000000000001,
"source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
"supports_function_calling": true,
"supports_prompt_caching": true,
"supports_tool_choice": true
},
+ "databricks/databricks-gpt-6-1-terra": {
+ "cache_creation_input_token_cost": 0.00000124999,
+ "cache_creation_input_token_cost_above_272k_tokens": 0.00000249998,
+ "cache_read_input_token_cost": 4.998e-8,
+ "cache_read_input_token_cost_above_272k_tokens": 1.0003e-7,
+ "input_cost_per_token": 0.00000100002,
+ "input_cost_per_token_above_272k_tokens": 0.00000199997,
+ "input_dbu_cost_per_token": 0.000014286,
+ "litellm_provider": "databricks",
+ "max_input_tokens": 922000,
+ "max_output_tokens": 128000,
+ "metadata": {
+ "notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
+ },
+ "mode": "chat",
+ "output_cost_per_token": 0.00000500003,
+ "output_cost_per_token_above_272k_tokens": 0.00000750001,
+ "output_dbu_cost_per_token": 0.000071429,
+ "source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "input_cost_per_token_priority": 0.00000199997,
+ "output_cost_per_token_priority": 0.00000999999,
+ "cache_read_input_token_cost_priority": 1.0003e-7,
+ "cache_creation_input_token_cost_priority": 0.00000249998,
+ "input_cost_per_token_above_272k_tokens_priority": 0.00000400001,
+ "output_cost_per_token_above_272k_tokens_priority": 0.00001500002,
+ "cache_read_input_token_cost_above_272k_tokens_priority": 1.9999e-7,
+ "cache_creation_input_token_cost_above_272k_tokens_priority": 0.00000500003
+ },
+ "databricks/databricks-gpt-6-astra": {
+ "cache_creation_input_token_cost": 0.00001249997,
+ "cache_creation_input_token_cost_above_272k_tokens": 0.000025,
+ "cache_read_input_token_cost": 0.00000100002,
+ "cache_read_input_token_cost_above_272k_tokens": 0.00000199997,
+ "input_cost_per_token": 0.00000999999,
+ "input_cost_per_token_above_272k_tokens": 0.00002,
+ "input_dbu_cost_per_token": 0.00014286,
+ "litellm_provider": "databricks",
+ "max_input_tokens": 922000,
+ "max_output_tokens": 128000,
+ "metadata": {
+ "notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
+ },
+ "mode": "chat",
+ "output_cost_per_token": 0.00005000002,
+ "output_cost_per_token_above_272k_tokens": 0.0000750001,
+ "output_dbu_cost_per_token": 0.00071429,
+ "source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "input_cost_per_token_priority": 0.00001999998,
+ "output_cost_per_token_priority": 0.0000999999,
+ "cache_read_input_token_cost_priority": 0.00000199997,
+ "cache_creation_input_token_cost_priority": 0.00002500001,
+ "input_cost_per_token_above_272k_tokens_priority": 0.00004000003,
+ "output_cost_per_token_above_272k_tokens_priority": 0.0001500002,
+ "cache_read_input_token_cost_above_272k_tokens_priority": 0.00000400001,
+ "cache_creation_input_token_cost_above_272k_tokens_priority": 0.00005000002
+ },
"databricks/databricks-gpt-oss-120b": {
"cache_creation_input_token_cost": 1.5001e-7,
"cache_read_input_token_cost": 1.5001e-7,
- "input_cost_per_token": 1.5000999999999998e-7,
+ "input_cost_per_token": 1.5001e-7,
"input_dbu_cost_per_token": 0.0000021429999999999996,
"litellm_provider": "databricks",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
@@ -20661,12 +23370,11 @@
"litellm_provider": "databricks",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
"mode": "chat",
- "output_cost_per_token": 3.0001999999999996e-7,
+ "output_cost_per_token": 3.0002e-7,
"output_dbu_cost_per_token": 0.000004285999999999999,
"source": "https://www.databricks.com/product/pricing/foundation-model-serving"
},
@@ -20696,9 +23404,39 @@
"supports_tool_choice": true,
"supports_vision": false
},
+ "databricks/databricks-grok-4-7": {
+ "cache_creation_input_token_cost": 0.00000249998,
+ "cache_read_input_token_cost": 6.2503e-7,
+ "input_cost_per_token": 0.00000249998,
+ "input_dbu_cost_per_token": 0.000035714,
+ "litellm_provider": "databricks",
+ "max_input_tokens": 500000,
+ "max_output_tokens": 500000,
+ "metadata": {
+ "notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
+ },
+ "mode": "chat",
+ "output_cost_per_token": 0.00000750001,
+ "output_dbu_cost_per_token": 0.00010714,
+ "source": "https://www.databricks.com/product/pricing/proprietary-foundation-model-serving",
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
"databricks/databricks-inkling": {
"cache_creation_input_token_cost": 0.00000100002,
"cache_read_input_token_cost": 1.7003e-7,
+ "deprecation_date": "2026-10-30",
+ "deprecation_source": "https://docs.databricks.com/aws/en/machine-learning/foundation-model-apis/supported-models",
"input_cost_per_token": 0.00000100002,
"input_dbu_cost_per_token": 0.000014286,
"litellm_provider": "databricks",
@@ -20709,7 +23447,7 @@
"mode": "chat",
"output_cost_per_token": 0.00000404999,
"output_dbu_cost_per_token": 0.000057857,
- "source": "https://www.databricks.com/product/pricing/foundation-model-serving",
+ "source": "https://docs.databricks.com/aws/en/machine-learning/foundation-model-apis/supported-models",
"supported_modalities": [
"text",
"image"
@@ -20724,6 +23462,34 @@
"supports_vision": true,
"thinking_always_on": true
},
+ "databricks/databricks-kimi-k2-7": {
+ "cache_creation_input_token_cost": 9.4997e-7,
+ "cache_read_input_token_cost": 1.8998e-7,
+ "input_cost_per_token": 9.4997e-7,
+ "input_dbu_cost_per_token": 0.000013571,
+ "litellm_provider": "databricks",
+ "max_input_tokens": 262144,
+ "max_output_tokens": 262144,
+ "metadata": {
+ "notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
+ },
+ "mode": "chat",
+ "output_cost_per_token": 0.00000400001,
+ "output_dbu_cost_per_token": 0.000057143,
+ "source": "https://www.databricks.com/product/pricing/foundation-model-serving",
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
"databricks/databricks-kimi-k3": {
"cache_creation_input_token_cost": 0.00000299999,
"cache_read_input_token_cost": 3.0002e-7,
@@ -20733,7 +23499,6 @@
"token_count_framing": 100,
"max_input_tokens": 1000000,
"max_output_tokens": 1048576,
- "max_tokens": 1048576,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Billing reads the per-token dollar fields; the '*_dbu_cost_per_token' fields are the published Databricks rates, kept for reference."
},
@@ -20752,7 +23517,11 @@
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true,
- "supports_vision": true
+ "supports_vision": true,
+ "input_cost_per_token_priority": 0.00000525,
+ "output_cost_per_token_priority": 0.00002625,
+ "cache_read_input_token_cost_priority": 5.25e-7,
+ "cache_creation_input_token_cost_priority": 0.00000525
},
"databricks/databricks-llama-4-maverick": {
"cache_creation_input_token_cost": 5.0001e-7,
@@ -20762,12 +23531,11 @@
"litellm_provider": "databricks",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"metadata": {
"notes": "Databricks documentation now provides both DBU costs (_dbu_cost_per_token) and dollar costs(_cost_per_token)."
},
"mode": "chat",
- "output_cost_per_token": 0.0000015000300000000002,
+ "output_cost_per_token": 0.00000150003,
"output_dbu_cost_per_token": 0.000021429,
"source": "https://www.databricks.com/product/pricing/foundation-model-serving",
"supports_tool_choice": true
@@ -20775,17 +23543,16 @@
"databricks/databricks-meta-llama-3-1-8b-instruct": {
"cache_creation_input_token_cost": 1.5001e-7,
"cache_read_input_token_cost": 1.5001e-7,
- "input_cost_per_token": 1.5000999999999998e-7,
+ "input_cost_per_token": 1.5001e-7,
"input_dbu_cost_per_token": 0.0000021429999999999996,
"litellm_provider": "databricks",
"max_input_tokens": 200000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
"mode": "chat",
- "output_cost_per_token": 4.5003000000000007e-7,
+ "output_cost_per_token": 4.5003e-7,
"output_dbu_cost_per_token": 0.000006429000000000001,
"source": "https://www.databricks.com/product/pricing/foundation-model-serving"
},
@@ -20797,12 +23564,11 @@
"litellm_provider": "databricks",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"metadata": {
"notes": "Input/output cost per token is dbu cost * $0.070, based on databricks Llama 3.1 70B conversion. Number provided for reference, '*_dbu_cost_per_token' used in actual calculation."
},
"mode": "chat",
- "output_cost_per_token": 0.0000015000300000000002,
+ "output_cost_per_token": 0.00000150003,
"output_dbu_cost_per_token": 0.000021429,
"source": "https://www.databricks.com/product/pricing/foundation-model-serving",
"supports_tool_choice": true
@@ -20838,7 +23604,6 @@
"litellm_provider": "databricks",
"max_input_tokens": 262144,
"max_output_tokens": 25000,
- "max_tokens": 25000,
"metadata": {
"notes": "Costs per token are the published Global DBU rates times $0.070 per DBU. The '*_dbu_cost_per_token' fields are provided for reference; cost calculation reads the dollar '*_cost_per_token' fields."
},
@@ -20856,7 +23621,11 @@
"supports_reasoning": true,
"supports_tool_choice": true,
"supports_vision": false,
- "thinking_always_on": true
+ "thinking_always_on": true,
+ "input_cost_per_token_priority": 3.85e-7,
+ "output_cost_per_token_priority": 0.00000385,
+ "cache_read_input_token_cost_priority": 3.85e-7,
+ "cache_creation_input_token_cost_priority": 3.85e-7
},
"databricks/system.ai.deepseek-v4-flash-0731": {
"litellm_provider": "databricks",
@@ -20878,7 +23647,6 @@
"litellm_provider": "openai",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00002,
"output_cost_per_token_above_272k_tokens": 0.00003,
@@ -20917,7 +23685,6 @@
"litellm_provider": "openai",
"max_input_tokens": 400000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000075,
"output_cost_per_token_above_272k_tokens": 0.0001125,
@@ -20955,7 +23722,6 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 65536,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_image": 0.134,
"output_cost_per_image_token": 0.00012,
@@ -20983,7 +23749,7 @@
"supports_web_search": true
},
"deepinfra/ByteDance/Seed-1.8": {
- "max_tokens": 256000,
+ "max_output_tokens": 256000,
"max_input_tokens": 256000,
"input_cost_per_token": 2.5e-7,
"output_cost_per_token": 0.000002,
@@ -20999,7 +23765,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/ByteDance/Seed-2.0-code": {
- "max_tokens": 256000,
+ "max_output_tokens": 256000,
"max_input_tokens": 256000,
"input_cost_per_token": 5e-7,
"output_cost_per_token": 0.000003,
@@ -21015,7 +23781,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/ByteDance/Seed-2.0-mini": {
- "max_tokens": 256000,
+ "max_output_tokens": 256000,
"max_input_tokens": 256000,
"input_cost_per_token": 1e-7,
"output_cost_per_token": 4e-7,
@@ -21031,7 +23797,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/ByteDance/Seed-2.0-pro": {
- "max_tokens": 256000,
+ "max_output_tokens": 256000,
"max_input_tokens": 256000,
"input_cost_per_token": 5e-7,
"output_cost_per_token": 0.000003,
@@ -21047,7 +23813,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Gryphe/MythoMax-L2-13b": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 4e-7,
@@ -21059,7 +23824,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/MiniMaxAI/MiniMax-M2.7": {
- "max_tokens": 196608,
+ "max_output_tokens": 196608,
"max_input_tokens": 196608,
"input_cost_per_token": 2.5e-7,
"output_cost_per_token": 0.000001,
@@ -21075,7 +23840,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/MiniMaxAI/MiniMax-M2.7-Turbo": {
- "max_tokens": 196608,
+ "max_output_tokens": 196608,
"max_input_tokens": 196608,
"input_cost_per_token": 3.8e-7,
"output_cost_per_token": 0.0000017,
@@ -21091,7 +23856,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/MiniMaxAI/MiniMax-M3": {
- "max_tokens": 524288,
+ "max_output_tokens": 524288,
"max_input_tokens": 524288,
"input_cost_per_token": 2.8e-7,
"output_cost_per_token": 0.0000011,
@@ -21107,7 +23872,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/NousResearch/Hermes-3-Llama-3.1-405B": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 0.000001,
@@ -21118,7 +23882,6 @@
"supports_function_calling": true
},
"deepinfra/NousResearch/Hermes-3-Llama-3.1-70B": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 7e-7,
@@ -21129,7 +23892,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Qwen/QwQ-32B": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 1.5e-7,
@@ -21140,7 +23902,6 @@
"supports_function_calling": true
},
"deepinfra/Qwen/Qwen2.5-72B-Instruct": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 3.6e-7,
@@ -21152,7 +23913,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Qwen/Qwen2.5-7B-Instruct": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 4e-8,
@@ -21162,7 +23922,6 @@
"supports_tool_choice": false
},
"deepinfra/Qwen/Qwen2.5-VL-32B-Instruct": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 2e-7,
@@ -21174,7 +23933,6 @@
"supports_function_calling": true
},
"deepinfra/Qwen/Qwen3-14B": {
- "max_tokens": 40960,
"max_input_tokens": 40960,
"max_output_tokens": 40960,
"input_cost_per_token": 1.2e-7,
@@ -21186,7 +23944,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Qwen/Qwen3-235B-A22B": {
- "max_tokens": 40960,
"max_input_tokens": 40960,
"max_output_tokens": 40960,
"input_cost_per_token": 1.8e-7,
@@ -21197,7 +23954,6 @@
"supports_function_calling": true
},
"deepinfra/Qwen/Qwen3-235B-A22B-Instruct-2507": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 9e-8,
@@ -21209,7 +23965,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Qwen/Qwen3-235B-A22B-Thinking-2507": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 3e-7,
@@ -21220,7 +23975,6 @@
"supports_function_calling": true
},
"deepinfra/Qwen/Qwen3-30B-A3B": {
- "max_tokens": 40960,
"max_input_tokens": 40960,
"max_output_tokens": 40960,
"input_cost_per_token": 1.2e-7,
@@ -21232,7 +23986,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Qwen/Qwen3-32B": {
- "max_tokens": 40960,
"max_input_tokens": 40960,
"max_output_tokens": 40960,
"input_cost_per_token": 8e-8,
@@ -21244,7 +23997,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Qwen/Qwen3-Coder-480B-A35B-Instruct": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 4e-7,
@@ -21255,7 +24007,6 @@
"supports_function_calling": true
},
"deepinfra/Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 3e-7,
@@ -21269,7 +24020,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Qwen/Qwen3-Max": {
- "max_tokens": 256000,
+ "max_output_tokens": 256000,
"max_input_tokens": 256000,
"input_cost_per_token": 0.0000012,
"output_cost_per_token": 0.000006,
@@ -21284,7 +24035,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Qwen/Qwen3-Max-Thinking": {
- "max_tokens": 256000,
+ "max_output_tokens": 256000,
"max_input_tokens": 256000,
"input_cost_per_token": 0.0000012,
"output_cost_per_token": 0.000006,
@@ -21299,7 +24050,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Qwen/Qwen3-Next-80B-A3B-Instruct": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 9e-8,
@@ -21311,7 +24061,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Qwen/Qwen3-Next-80B-A3B-Thinking": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 1.4e-7,
@@ -21322,7 +24071,7 @@
"supports_function_calling": true
},
"deepinfra/Qwen/Qwen3-VL-235B-A22B-Instruct": {
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262144,
"input_cost_per_token": 2e-7,
"output_cost_per_token": 8.8e-7,
@@ -21337,7 +24086,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Qwen/Qwen3-VL-30B-A3B-Instruct": {
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262144,
"input_cost_per_token": 1.5e-7,
"output_cost_per_token": 6e-7,
@@ -21350,7 +24099,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Qwen/Qwen3.5-122B-A10B": {
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262144,
"input_cost_per_token": 2.9e-7,
"output_cost_per_token": 0.0000024,
@@ -21364,7 +24113,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Qwen/Qwen3.5-27B": {
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262144,
"input_cost_per_token": 2.6e-7,
"output_cost_per_token": 0.0000026,
@@ -21378,7 +24127,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Qwen/Qwen3.5-35B-A3B": {
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262144,
"input_cost_per_token": 1.4e-7,
"output_cost_per_token": 0.000001,
@@ -21394,7 +24143,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Qwen/Qwen3.5-397B-A17B": {
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262144,
"input_cost_per_token": 4.5e-7,
"output_cost_per_token": 0.000003,
@@ -21410,7 +24159,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Qwen/Qwen3.5-9B": {
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262144,
"input_cost_per_token": 1e-7,
"output_cost_per_token": 1.5e-7,
@@ -21423,7 +24172,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Qwen/Qwen3.6-27B": {
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262144,
"input_cost_per_token": 3.2e-7,
"output_cost_per_token": 0.0000032,
@@ -21437,7 +24186,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Qwen/Qwen3.6-35B-A3B": {
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262144,
"input_cost_per_token": 1e-7,
"output_cost_per_token": 9.5e-7,
@@ -21451,7 +24200,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Qwen/Qwen3.7-Max": {
- "max_tokens": 256000,
+ "max_output_tokens": 256000,
"max_input_tokens": 256000,
"input_cost_per_token": 0.0000025,
"output_cost_per_token": 0.0000075,
@@ -21466,7 +24215,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Qwen/Qwen3.8-2.4T-A95B": {
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262144,
"input_cost_per_token": 0.000002,
"output_cost_per_token": 0.000006,
@@ -21482,7 +24231,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Qwen/Qwen3.8-27B": {
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262144,
"input_cost_per_token": 4e-7,
"output_cost_per_token": 0.000003,
@@ -21498,7 +24247,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Qwen/Qwen3.8-Max": {
- "max_tokens": 256000,
+ "max_output_tokens": 256000,
"max_input_tokens": 256000,
"input_cost_per_token": 0.00000165,
"output_cost_per_token": 0.000004951,
@@ -21513,7 +24262,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Sao10K/L3-8B-Lunaris-v1-Turbo": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 4e-8,
@@ -21523,7 +24271,6 @@
"supports_tool_choice": false
},
"deepinfra/Sao10K/L3.1-70B-Euryale-v2.2": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 8.5e-7,
@@ -21534,7 +24281,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/Sao10K/L3.3-70B-Euryale-v2.3": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 6.5e-7,
@@ -21544,7 +24290,7 @@
"supports_tool_choice": false
},
"deepinfra/XiaomiMiMo/MiMo-V2.5": {
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262144,
"input_cost_per_token": 4e-7,
"output_cost_per_token": 0.000002,
@@ -21560,7 +24306,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/XiaomiMiMo/MiMo-V2.5-Pro": {
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"max_input_tokens": 1048576,
"input_cost_per_token": 0.000001,
"output_cost_per_token": 0.000003,
@@ -21576,7 +24322,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/allenai/olmOCR-7B-0725-FP8": {
- "max_tokens": 16384,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
"input_cost_per_token": 2.7e-7,
@@ -21586,7 +24331,6 @@
"supports_tool_choice": false
},
"deepinfra/anthropic/claude-3-7-sonnet-latest": {
- "max_tokens": 200000,
"max_input_tokens": 200000,
"max_output_tokens": 200000,
"input_cost_per_token": 0.0000033,
@@ -21598,7 +24342,6 @@
"supports_function_calling": true
},
"deepinfra/anthropic/claude-4-opus": {
- "max_tokens": 200000,
"max_input_tokens": 200000,
"max_output_tokens": 200000,
"input_cost_per_token": 0.0000165,
@@ -21609,7 +24352,6 @@
"supports_function_calling": true
},
"deepinfra/anthropic/claude-4-sonnet": {
- "max_tokens": 200000,
"max_input_tokens": 200000,
"max_output_tokens": 200000,
"input_cost_per_token": 0.0000033,
@@ -21623,7 +24365,7 @@
"input_cost_per_token": 0.00001,
"litellm_provider": "deepinfra",
"max_input_tokens": 1000000,
- "max_tokens": 1000000,
+ "max_output_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.00005,
"prompt_cache_min_tokens": 512,
@@ -21638,7 +24380,7 @@
"thinking_always_on": true
},
"deepinfra/anthropic/claude-haiku-4-5": {
- "max_tokens": 200000,
+ "max_output_tokens": 200000,
"max_input_tokens": 200000,
"input_cost_per_token": 0.000001,
"output_cost_per_token": 0.000005,
@@ -21656,7 +24398,7 @@
"input_cost_per_token": 0.000005,
"litellm_provider": "deepinfra",
"max_input_tokens": 1000000,
- "max_tokens": 1000000,
+ "max_output_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"prompt_cache_min_tokens": 2048,
@@ -21673,7 +24415,7 @@
"input_cost_per_token": 0.000005,
"litellm_provider": "deepinfra",
"max_input_tokens": 1000000,
- "max_tokens": 1000000,
+ "max_output_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"prompt_cache_min_tokens": 1024,
@@ -21690,7 +24432,7 @@
"input_cost_per_token": 0.000005,
"litellm_provider": "deepinfra",
"max_input_tokens": 1000000,
- "max_tokens": 1000000,
+ "max_output_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"prompt_cache_min_tokens": 512,
@@ -21704,7 +24446,7 @@
"supports_vision": true
},
"deepinfra/anthropic/claude-sonnet-4-6": {
- "max_tokens": 1000000,
+ "max_output_tokens": 1000000,
"max_input_tokens": 1000000,
"input_cost_per_token": 0.000003,
"output_cost_per_token": 0.000015,
@@ -21723,7 +24465,7 @@
"input_cost_per_token": 0.000002,
"litellm_provider": "deepinfra",
"max_input_tokens": 1000000,
- "max_tokens": 1000000,
+ "max_output_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"prompt_cache_min_tokens": 1024,
@@ -21737,7 +24479,6 @@
"supports_vision": true
},
"deepinfra/deepseek-ai/DeepSeek-R1": {
- "max_tokens": 163840,
"max_input_tokens": 163840,
"max_output_tokens": 163840,
"input_cost_per_token": 7e-7,
@@ -21748,19 +24489,17 @@
"supports_function_calling": true
},
"deepinfra/deepseek-ai/DeepSeek-R1-0528": {
- "max_tokens": 163840,
"max_input_tokens": 163840,
"max_output_tokens": 163840,
"input_cost_per_token": 5e-7,
"output_cost_per_token": 0.00000215,
- "cache_read_input_token_cost": 4e-7,
+ "cache_read_input_token_cost": 3.5e-7,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": true,
"supports_function_calling": true
},
"deepinfra/deepseek-ai/DeepSeek-R1-0528-Turbo": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 0.000001,
@@ -21771,7 +24510,6 @@
"supports_function_calling": true
},
"deepinfra/deepseek-ai/DeepSeek-R1-Distill-Llama-70B": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 2e-7,
@@ -21781,7 +24519,6 @@
"supports_tool_choice": false
},
"deepinfra/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 2.7e-7,
@@ -21792,7 +24529,6 @@
"supports_function_calling": true
},
"deepinfra/deepseek-ai/DeepSeek-R1-Turbo": {
- "max_tokens": 40960,
"max_input_tokens": 40960,
"max_output_tokens": 40960,
"input_cost_per_token": 0.000001,
@@ -21803,7 +24539,6 @@
"supports_function_calling": true
},
"deepinfra/deepseek-ai/DeepSeek-V3": {
- "max_tokens": 163840,
"max_input_tokens": 163840,
"max_output_tokens": 163840,
"input_cost_per_token": 3.2e-7,
@@ -21815,7 +24550,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/deepseek-ai/DeepSeek-V3-0324": {
- "max_tokens": 163840,
"max_input_tokens": 163840,
"max_output_tokens": 163840,
"input_cost_per_token": 2.4e-7,
@@ -21829,12 +24563,11 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/deepseek-ai/DeepSeek-V3.1": {
- "max_tokens": 163840,
"max_input_tokens": 163840,
"max_output_tokens": 163840,
"input_cost_per_token": 2.5e-7,
"output_cost_per_token": 9.5e-7,
- "cache_read_input_token_cost": 2.16e-7,
+ "cache_read_input_token_cost": 1.3e-7,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": true,
@@ -21843,7 +24576,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/deepseek-ai/DeepSeek-V3.1-Terminus": {
- "max_tokens": 163840,
"max_input_tokens": 163840,
"max_output_tokens": 163840,
"input_cost_per_token": 2.7e-7,
@@ -21855,7 +24587,7 @@
"supports_function_calling": true
},
"deepinfra/deepseek-ai/DeepSeek-V3.2": {
- "max_tokens": 163840,
+ "max_output_tokens": 163840,
"max_input_tokens": 163840,
"input_cost_per_token": 2.6e-7,
"output_cost_per_token": 3.8e-7,
@@ -21870,7 +24602,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/deepseek-ai/DeepSeek-V4-Flash": {
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"max_input_tokens": 1048576,
"input_cost_per_token": 9e-8,
"output_cost_per_token": 1.8e-7,
@@ -21886,11 +24618,11 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/deepseek-ai/DeepSeek-V4-Flash-0731": {
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"max_input_tokens": 1048576,
- "input_cost_per_token": 8e-8,
+ "input_cost_per_token": 6e-8,
"output_cost_per_token": 1.8e-7,
- "cache_read_input_token_cost": 1.6e-8,
+ "cache_read_input_token_cost": 1.5e-8,
"supports_prompt_caching": true,
"litellm_provider": "deepinfra",
"mode": "chat",
@@ -21902,7 +24634,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/deepseek-ai/DeepSeek-V4-Pro": {
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"max_input_tokens": 1048576,
"input_cost_per_token": 0.0000013,
"output_cost_per_token": 0.0000026,
@@ -21917,7 +24649,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/deepseek-ai/DeepSeek-V4-Pro-0813": {
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"max_input_tokens": 1048576,
"input_cost_per_token": 0.0000013,
"output_cost_per_token": 0.0000026,
@@ -21932,7 +24664,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/deepseek-ai/DeepSeek-V4.1-Flash": {
- "max_tokens": 131072,
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
"input_cost_per_token": 1.4e-7,
@@ -21949,7 +24680,6 @@
"source": "https://deepinfra.com/deepseek-ai/DeepSeek-V4.1-Flash"
},
"deepinfra/deepseek-ai/DeepSeek-V4.1-Flash-1017": {
- "max_tokens": 131072,
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
"input_cost_per_token": 1.4e-7,
@@ -21966,7 +24696,6 @@
"source": "https://deepinfra.com/deepseek-ai/DeepSeek-V4.1-Flash-1017"
},
"deepinfra/google/gemini-2.5-flash": {
- "max_tokens": 1000000,
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
"input_cost_per_token": 3e-7,
@@ -21982,7 +24711,6 @@
"supports_audio_input": true
},
"deepinfra/google/gemini-2.5-pro": {
- "max_tokens": 1000000,
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
"input_cost_per_token": 0.00000125,
@@ -21997,7 +24725,7 @@
"supports_audio_input": true
},
"deepinfra/google/gemini-3.1-flash-lite": {
- "max_tokens": 1000000,
+ "max_output_tokens": 1000000,
"max_input_tokens": 1000000,
"input_cost_per_token": 2.5e-7,
"output_cost_per_token": 0.0000015,
@@ -22012,7 +24740,7 @@
"supports_audio_input": true
},
"deepinfra/google/gemini-3.1-pro": {
- "max_tokens": 1000000,
+ "max_output_tokens": 1000000,
"max_input_tokens": 1000000,
"input_cost_per_token": 0.000002,
"output_cost_per_token": 0.000012,
@@ -22027,7 +24755,7 @@
"supports_audio_input": true
},
"deepinfra/google/gemini-3.5-flash": {
- "max_tokens": 1000000,
+ "max_output_tokens": 1000000,
"max_input_tokens": 1000000,
"input_cost_per_token": 0.0000015,
"output_cost_per_token": 0.000009,
@@ -22042,7 +24770,7 @@
"supports_audio_input": true
},
"deepinfra/google/gemini-3.7-flash": {
- "max_tokens": 1000000,
+ "max_output_tokens": 1000000,
"max_input_tokens": 1000000,
"input_cost_per_token": 7.5e-7,
"output_cost_per_token": 0.00000375,
@@ -22052,12 +24780,12 @@
"supports_tool_choice": true,
"supports_response_schema": true,
"supports_reasoning": true,
+ "supports_sampling_params": false,
"supports_vision": true,
"source": "https://deepinfra.com/pricing",
"supports_audio_input": true
},
"deepinfra/google/gemma-3-12b-it": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 5e-8,
@@ -22069,7 +24797,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/google/gemma-3-27b-it": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 8e-8,
@@ -22081,7 +24808,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/google/gemma-3-4b-it": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 5e-8,
@@ -22093,7 +24819,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/google/gemma-4-26B-A4B-it": {
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262144,
"input_cost_per_token": 7e-8,
"output_cost_per_token": 3.4e-7,
@@ -22107,10 +24833,10 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/google/gemma-4-31B-it": {
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262144,
- "input_cost_per_token": 1.3e-7,
- "output_cost_per_token": 3.8e-7,
+ "input_cost_per_token": 2e-7,
+ "output_cost_per_token": 4e-7,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_function_calling": true,
@@ -22121,7 +24847,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/google/gemma-4-31B-it-Ultra": {
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"max_input_tokens": 131072,
"input_cost_per_token": 2.7e-7,
"output_cost_per_token": 7.6e-7,
@@ -22135,7 +24861,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/google/gemma-4-31B-it-turbo": {
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262144,
"input_cost_per_token": 9e-8,
"output_cost_per_token": 3.4e-7,
@@ -22150,7 +24876,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/google/gemma-4-E4B-it": {
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"max_input_tokens": 131072,
"input_cost_per_token": 2e-8,
"output_cost_per_token": 1e-7,
@@ -22163,7 +24889,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/inclusionAI/Ling-3.0-flash": {
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"max_input_tokens": 131072,
"input_cost_per_token": 6e-8,
"output_cost_per_token": 1.8e-7,
@@ -22179,7 +24905,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/meta-llama/Llama-3.2-11B-Vision-Instruct": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 4.9e-8,
@@ -22189,7 +24914,6 @@
"supports_tool_choice": false
},
"deepinfra/meta-llama/Llama-3.2-3B-Instruct": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 2e-8,
@@ -22200,7 +24924,6 @@
"supports_function_calling": true
},
"deepinfra/meta-llama/Llama-3.3-70B-Instruct": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 2.3e-7,
@@ -22211,7 +24934,6 @@
"supports_function_calling": true
},
"deepinfra/meta-llama/Llama-3.3-70B-Instruct-Turbo": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 1e-7,
@@ -22223,7 +24945,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": {
- "max_tokens": 1048576,
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
"input_cost_per_token": 2e-7,
@@ -22235,7 +24956,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/meta-llama/Llama-4-Scout-17B-16E-Instruct": {
- "max_tokens": 327680,
"max_input_tokens": 327680,
"max_output_tokens": 327680,
"input_cost_per_token": 1e-7,
@@ -22247,7 +24967,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/meta-llama/Llama-Guard-3-8B": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 5.5e-8,
@@ -22257,7 +24976,6 @@
"supports_tool_choice": false
},
"deepinfra/meta-llama/Llama-Guard-4-12B": {
- "max_tokens": 163840,
"max_input_tokens": 163840,
"max_output_tokens": 163840,
"input_cost_per_token": 1.8e-7,
@@ -22267,7 +24985,6 @@
"supports_tool_choice": false
},
"deepinfra/meta-llama/Meta-Llama-3-8B-Instruct": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 3e-8,
@@ -22278,7 +24995,6 @@
"supports_function_calling": true
},
"deepinfra/meta-llama/Meta-Llama-3.1-70B-Instruct": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 4e-7,
@@ -22289,7 +25005,6 @@
"supports_function_calling": true
},
"deepinfra/meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 4e-7,
@@ -22301,7 +25016,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/meta-llama/Meta-Llama-3.1-8B-Instruct": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 3e-8,
@@ -22312,7 +25026,6 @@
"supports_function_calling": true
},
"deepinfra/meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 2e-8,
@@ -22324,7 +25037,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/meta-models/Muse-Glimmer-30B": {
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"max_input_tokens": 131072,
"input_cost_per_token": 3e-7,
"output_cost_per_token": 0.0000012,
@@ -22340,7 +25053,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/microsoft/WizardLM-2-8x22B": {
- "max_tokens": 65536,
"max_input_tokens": 65536,
"max_output_tokens": 65536,
"input_cost_per_token": 4.8e-7,
@@ -22350,7 +25062,6 @@
"supports_tool_choice": false
},
"deepinfra/microsoft/phi-4": {
- "max_tokens": 16384,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
"input_cost_per_token": 7e-8,
@@ -22361,7 +25072,6 @@
"supports_function_calling": true
},
"deepinfra/mistralai/Mistral-Nemo-Instruct-2407": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 1.9e-8,
@@ -22373,7 +25083,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/mistralai/Mistral-Small-24B-Instruct-2501": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 5e-8,
@@ -22384,7 +25093,6 @@
"supports_function_calling": true
},
"deepinfra/mistralai/Mistral-Small-3.2-24B-Instruct-2506": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 7.5e-8,
@@ -22395,7 +25103,6 @@
"supports_function_calling": true
},
"deepinfra/mistralai/Mixtral-8x7B-Instruct-v0.1": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 4e-7,
@@ -22406,7 +25113,6 @@
"supports_function_calling": true
},
"deepinfra/moonshotai/Kimi-K2-Instruct": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 5e-7,
@@ -22417,7 +25123,6 @@
"supports_function_calling": true
},
"deepinfra/moonshotai/Kimi-K2-Instruct-0905": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 5e-7,
@@ -22429,7 +25134,7 @@
"supports_function_calling": true
},
"deepinfra/moonshotai/Kimi-K2.5": {
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262144,
"input_cost_per_token": 4.5e-7,
"output_cost_per_token": 0.00000225,
@@ -22445,7 +25150,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/moonshotai/Kimi-K2.6": {
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262144,
"input_cost_per_token": 7.5e-7,
"output_cost_per_token": 0.0000035,
@@ -22461,7 +25166,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/moonshotai/Kimi-K2.7-Code": {
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262144,
"input_cost_per_token": 6.8e-7,
"output_cost_per_token": 0.0000034,
@@ -22477,7 +25182,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/moonshotai/Kimi-K3": {
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"max_input_tokens": 1048576,
"input_cost_per_token": 0.00000285,
"output_cost_per_token": 0.00001425,
@@ -22492,7 +25197,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/nvidia/Llama-3.1-Nemotron-70B-Instruct": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 6e-7,
@@ -22503,7 +25207,6 @@
"supports_function_calling": true
},
"deepinfra/nvidia/Llama-3.3-Nemotron-Super-49B-v1.5": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 1e-7,
@@ -22514,7 +25217,7 @@
"supports_function_calling": true
},
"deepinfra/nvidia/NVIDIA-Nemotron-3-Super-120B-A12B": {
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262144,
"input_cost_per_token": 8.5e-8,
"output_cost_per_token": 4e-7,
@@ -22528,7 +25231,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B": {
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262144,
"input_cost_per_token": 5e-7,
"output_cost_per_token": 0.0000022,
@@ -22557,7 +25260,6 @@
"supports_prompt_caching": true
},
"deepinfra/nvidia/NVIDIA-Nemotron-Nano-9B-v2": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 4e-8,
@@ -22568,7 +25270,7 @@
"supports_function_calling": true
},
"deepinfra/nvidia/Nemotron-3-Nano-30B-A3B": {
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262144,
"input_cost_per_token": 5e-8,
"output_cost_per_token": 2e-7,
@@ -22583,7 +25285,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/nvidia/Nemotron-Content-Safety-3.5": {
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"max_input_tokens": 131072,
"input_cost_per_token": 2e-7,
"output_cost_per_token": 2e-7,
@@ -22593,7 +25295,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/openai/gpt-oss-120b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 3.7e-8,
@@ -22605,7 +25306,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/openai/gpt-oss-120b-Turbo": {
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"max_input_tokens": 131072,
"input_cost_per_token": 1.5e-7,
"output_cost_per_token": 6e-7,
@@ -22619,7 +25320,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/openai/gpt-oss-120b-Ultra": {
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"max_input_tokens": 131072,
"input_cost_per_token": 2e-7,
"output_cost_per_token": 9.5e-7,
@@ -22633,7 +25334,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/openai/gpt-oss-20b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 3e-8,
@@ -22645,7 +25345,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/stepfun-ai/Step-3.7-Flash": {
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262144,
"input_cost_per_token": 2e-7,
"output_cost_per_token": 0.00000115,
@@ -22659,7 +25359,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/tencent/Hy3": {
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262144,
"input_cost_per_token": 1.4e-7,
"output_cost_per_token": 5.8e-7,
@@ -22675,7 +25375,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/thinkingmachines/Inkling": {
- "max_tokens": 524288,
+ "max_output_tokens": 524288,
"max_input_tokens": 524288,
"input_cost_per_token": 9.5e-7,
"output_cost_per_token": 0.00000405,
@@ -22691,7 +25391,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/thinkingmachines/Inkling-Small": {
- "max_tokens": 524288,
+ "max_output_tokens": 524288,
"max_input_tokens": 524288,
"input_cost_per_token": 4.5e-7,
"output_cost_per_token": 0.0000012,
@@ -22707,7 +25407,6 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/zai-org/GLM-4.5": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 4e-7,
@@ -22718,7 +25417,7 @@
"supports_function_calling": true
},
"deepinfra/zai-org/GLM-4.6": {
- "max_tokens": 202752,
+ "max_output_tokens": 202752,
"max_input_tokens": 202752,
"input_cost_per_token": 5e-7,
"output_cost_per_token": 0.000002,
@@ -22734,7 +25433,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/zai-org/GLM-4.7": {
- "max_tokens": 202752,
+ "max_output_tokens": 202752,
"max_input_tokens": 202752,
"input_cost_per_token": 4e-7,
"output_cost_per_token": 0.00000175,
@@ -22750,7 +25449,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/zai-org/GLM-4.7-Flash": {
- "max_tokens": 202752,
+ "max_output_tokens": 202752,
"max_input_tokens": 202752,
"input_cost_per_token": 6e-8,
"output_cost_per_token": 4e-7,
@@ -22766,7 +25465,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/zai-org/GLM-5": {
- "max_tokens": 202752,
+ "max_output_tokens": 202752,
"max_input_tokens": 202752,
"input_cost_per_token": 6e-7,
"output_cost_per_token": 0.00000208,
@@ -22782,7 +25481,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/zai-org/GLM-5.1": {
- "max_tokens": 202752,
+ "max_output_tokens": 202752,
"max_input_tokens": 202752,
"input_cost_per_token": 0.00000105,
"output_cost_per_token": 0.0000035,
@@ -22798,7 +25497,7 @@
"source": "https://deepinfra.com/pricing"
},
"deepinfra/zai-org/GLM-5.2": {
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"max_input_tokens": 1048576,
"input_cost_per_token": 7.5e-7,
"output_cost_per_token": 0.0000024,
@@ -22816,11 +25515,11 @@
"deepseek-chat": {
"cache_read_input_token_cost": 2.8e-8,
"deprecation_date": "2026-07-24",
+ "deprecation_source": "https://api-docs.deepseek.com/updates",
"input_cost_per_token": 2.8e-7,
"litellm_provider": "deepseek",
"max_input_tokens": 131072,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 4.2e-7,
"source": "https://api-docs.deepseek.com/quick_start/pricing",
@@ -22843,7 +25542,6 @@
"litellm_provider": "deepseek",
"max_input_tokens": 1000000,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"off_peak_pricing": {
"cache_read_input_token_cost": 3e-9,
@@ -22892,11 +25590,11 @@
"deepseek-reasoner": {
"cache_read_input_token_cost": 2.8e-8,
"deprecation_date": "2026-07-24",
+ "deprecation_source": "https://api-docs.deepseek.com/updates",
"input_cost_per_token": 2.8e-7,
"litellm_provider": "deepseek",
"max_input_tokens": 131072,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 4.2e-7,
"source": "https://api-docs.deepseek.com/quick_start/pricing",
@@ -22917,7 +25615,6 @@
"litellm_provider": "volcengine",
"max_input_tokens": 98304,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0,
"supports_assistant_prefill": true,
@@ -22934,7 +25631,6 @@
"litellm_provider": "deepseek",
"max_input_tokens": 1000000,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"off_peak_pricing": {
"cache_read_input_token_cost": 3e-9,
@@ -22988,7 +25684,6 @@
"litellm_provider": "deepseek",
"max_input_tokens": 1000000,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"off_peak_pricing": {
"cache_read_input_token_cost": 3e-9,
@@ -23042,7 +25737,6 @@
"litellm_provider": "deepseek",
"max_input_tokens": 1000000,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"off_peak_pricing": {
"cache_read_input_token_cost": 2.2e-8,
@@ -23090,11 +25784,11 @@
},
"deepseek.r1-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-deepseek-deepseek-r1.html",
"input_cost_per_token": 0.00000135,
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000054,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-deepseek-deepseek-r1.html",
@@ -23104,11 +25798,11 @@
},
"deepseek.v3-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-deepseek-deepseek-v3-1.html",
"input_cost_per_token": 5.8e-7,
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.00000168,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-deepseek-deepseek-v3-1.html",
@@ -23123,9 +25817,8 @@
"input_cost_per_token_flex": 3.1e-7,
"input_cost_per_token_priority": 0.000001085,
"litellm_provider": "bedrock_converse",
- "max_input_tokens": 164000,
+ "max_input_tokens": 156000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.00000185,
"output_cost_per_token_batches": 9.25e-7,
@@ -23135,7 +25828,7 @@
"supports_reasoning": true,
"supports_native_structured_output": true,
"supports_tool_choice": true,
- "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/us-east-1/index.json",
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-deepseek-deepseek-v3-2.md",
"supports_audio_input": false,
"supports_response_schema": true,
"supports_vision": false
@@ -23144,12 +25837,12 @@
"cache_creation_input_token_cost": 0,
"cache_read_input_token_cost": 2.8e-8,
"deprecation_date": "2026-07-24",
+ "deprecation_source": "https://api-docs.deepseek.com/updates",
"input_cost_per_token": 2.8e-7,
"input_cost_per_token_cache_hit": 2.8e-8,
"litellm_provider": "deepseek",
"max_input_tokens": 131072,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 4.2e-7,
"source": "https://api-docs.deepseek.com/quick_start/pricing",
@@ -23172,7 +25865,6 @@
"litellm_provider": "deepseek",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 2.8e-7,
"supports_assistant_prefill": true,
@@ -23188,7 +25880,6 @@
"litellm_provider": "deepseek",
"max_input_tokens": 1000000,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"off_peak_pricing": {
"cache_read_input_token_cost": 3e-9,
@@ -23241,7 +25932,6 @@
"litellm_provider": "deepseek",
"max_input_tokens": 65536,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000219,
"supports_assistant_prefill": true,
@@ -23253,12 +25943,12 @@
"deepseek/deepseek-reasoner": {
"cache_read_input_token_cost": 2.8e-8,
"deprecation_date": "2026-07-24",
+ "deprecation_source": "https://api-docs.deepseek.com/updates",
"input_cost_per_token": 2.8e-7,
"input_cost_per_token_cache_hit": 2.8e-8,
"litellm_provider": "deepseek",
"max_input_tokens": 131072,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 4.2e-7,
"source": "https://api-docs.deepseek.com/quick_start/pricing",
@@ -23283,7 +25973,6 @@
"litellm_provider": "deepseek",
"max_input_tokens": 65536,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000011,
"supports_assistant_prefill": true,
@@ -23298,7 +25987,6 @@
"litellm_provider": "deepseek",
"max_input_tokens": 163840,
"max_output_tokens": 163840,
- "max_tokens": 163840,
"mode": "chat",
"output_cost_per_token": 4e-7,
"supports_assistant_prefill": true,
@@ -23315,7 +26003,6 @@
"litellm_provider": "deepseek",
"max_input_tokens": 1000000,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"off_peak_pricing": {
"cache_read_input_token_cost": 3e-9,
@@ -23359,7 +26046,9 @@
"supports_response_schema": true,
"supports_system_messages": true,
"supports_tool_choice": true,
- "supports_vision": true
+ "supports_vision": true,
+ "token_count_framing": 23,
+ "token_count_tool_framing": 12
},
"deepseek/deepseek-v4-flash-vision-exp": {
"cache_creation_input_token_cost": 0,
@@ -23369,7 +26058,6 @@
"litellm_provider": "deepseek",
"max_input_tokens": 1000000,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"off_peak_pricing": {
"cache_read_input_token_cost": 3e-9,
@@ -23423,7 +26111,6 @@
"litellm_provider": "deepseek",
"max_input_tokens": 1000000,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"off_peak_pricing": {
"cache_read_input_token_cost": 2.2e-8,
@@ -23467,7 +26154,9 @@
"supports_response_schema": true,
"supports_system_messages": true,
"supports_tool_choice": true,
- "supports_vision": false
+ "supports_vision": false,
+ "token_count_framing": 76,
+ "token_count_tool_framing": 75
},
"deepseek/deepseek-v4.1-flash": {
"cache_creation_input_token_cost": 0,
@@ -23501,7 +26190,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000003597,
"supports_function_calling": true,
@@ -23521,7 +26209,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000011,
"source": "https://aws.amazon.com/nova/pricing/",
@@ -23540,7 +26227,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 300000,
"max_output_tokens": 10000,
- "max_tokens": 10000,
"mode": "chat",
"output_cost_per_token": 3.12e-7,
"supports_function_calling": true,
@@ -23556,7 +26242,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 10000,
- "max_tokens": 10000,
"mode": "chat",
"output_cost_per_token": 1.84e-7,
"supports_function_calling": true,
@@ -23572,7 +26257,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 300000,
"max_output_tokens": 10000,
- "max_tokens": 10000,
"mode": "chat",
"output_cost_per_token": 0.0000042,
"output_cost_per_token_flex": 0.0000021,
@@ -23589,7 +26273,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 200000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000004,
"supports_assistant_prefill": true,
@@ -23607,7 +26290,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 200000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_function_calling": true,
@@ -23623,7 +26305,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 200000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_assistant_prefill": true,
@@ -23642,7 +26323,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 200000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_assistant_prefill": true,
@@ -23662,7 +26342,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 200000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000075,
"supports_function_calling": true,
@@ -23680,7 +26359,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000055,
"search_context_cost_per_query": {
@@ -23718,7 +26396,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000055,
"search_context_cost_per_query": {
@@ -23754,11 +26431,11 @@
"cache_read_input_token_cost": 1.1e-7,
"input_cost_per_token": 0.0000011,
"deprecation_date": "2026-10-15",
+ "successor_model": "eu.anthropic.claude-haiku-5-5",
"litellm_provider": "bedrock_converse",
"supports_tool_search": true,
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.0000055,
"source": "https://aws.amazon.com/bedrock/pricing/",
@@ -23775,7 +26452,11 @@
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 4096,
"input_cost_per_token_batches": 5.5e-7,
- "output_cost_per_token_batches": 0.00000275
+ "output_cost_per_token_batches": 0.00000275,
+ "token_count_model": {
+ "model": "anthropic.claude-haiku-4-5-20251001-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"eu.anthropic.claude-haiku-5-5": {
"input_cost_per_token_above_100k_tokens": 5.5e-7,
@@ -23792,7 +26473,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 5.5e-7,
"search_context_cost_per_query": {
@@ -23831,7 +26511,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 200000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.000075,
"search_context_cost_per_query": {
@@ -23849,7 +26528,12 @@
"supports_tool_choice": true,
"supports_vision": true,
"prompt_cache_min_tokens": 1024,
- "deprecation_date": "2027-01-08"
+ "deprecation_date": "2027-01-08",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-1-20250805-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"eu.anthropic.claude-opus-4-20250514-v1:0": {
"cache_creation_input_token_cost": 0.00001875,
@@ -23858,7 +26542,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 200000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.000075,
"search_context_cost_per_query": {
@@ -23886,7 +26569,6 @@
"supports_tool_search": true,
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.0000275,
"search_context_cost_per_query": {
@@ -23908,7 +26590,11 @@
"bedrock_output_config_effort_ceiling": "high",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 4096,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-5-20251101-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"eu.anthropic.claude-opus-4-6-v1": {
"supports_adaptive_thinking": true,
@@ -23921,7 +26607,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000275,
"search_context_cost_per_query": {
@@ -23944,7 +26629,11 @@
"bedrock_output_config_effort_ceiling": "max",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 4096,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-6-v1",
+ "litellm_provider": "bedrock"
+ }
},
"eu.anthropic.claude-opus-4-7": {
"bedrock_converse_supports_strict_tools": false,
@@ -23957,7 +26646,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000275,
"search_context_cost_per_query": {
@@ -23982,7 +26670,12 @@
"bedrock_output_config_effort_ceiling": "xhigh",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 2048,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-7",
+ "litellm_provider": "bedrock_mantle",
+ "region": "eu-west-1"
+ }
},
"eu.anthropic.claude-opus-4-8": {
"bedrock_converse_supports_strict_tools": false,
@@ -23996,7 +26689,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000275,
"search_context_cost_per_query": {
@@ -24022,7 +26714,12 @@
"bedrock_output_config_effort_ceiling": "xhigh",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 1024,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-8",
+ "litellm_provider": "bedrock_mantle",
+ "region": "eu-west-1"
+ }
},
"eu.anthropic.claude-opus-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -24036,7 +26733,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000275,
"search_context_cost_per_query": {
@@ -24060,7 +26756,14 @@
"supports_output_config": true,
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 512,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/eu-west-1/index.json",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "eu-west-1"
+ },
+ "input_cost_per_token_batches": 0.00000275,
+ "output_cost_per_token_batches": 0.00001375
},
"eu.anthropic.claude-opus-5-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -24074,7 +26777,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000022,
"search_context_cost_per_query": {
@@ -24106,6 +26808,8 @@
"cache_creation_input_token_cost": 0.00000375,
"cache_read_input_token_cost": 3e-7,
"deprecation_date": "2026-10-14",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
+ "successor_model": "eu.anthropic.claude-sonnet-5",
"input_cost_per_token": 0.000003,
"input_cost_per_token_above_200k_tokens": 0.000006,
"output_cost_per_token_above_200k_tokens": 0.0000225,
@@ -24114,7 +26818,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"search_context_cost_per_query": {
@@ -24133,7 +26836,11 @@
"supports_vision": true,
"bedrock_converse_supports_strict_tools": false,
"prompt_cache_min_tokens": 1024,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-20250514-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"eu.anthropic.claude-sonnet-4-5-20250929-v1:0": {
"cache_creation_input_token_cost": 0.000004125,
@@ -24146,11 +26853,12 @@
"cache_creation_input_token_cost_above_1hr_above_200k_tokens": 0.0000132,
"cache_read_input_token_cost_above_200k_tokens": 6.6e-7,
"deprecation_date": "2027-04-08",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
+ "successor_model": "eu.anthropic.claude-sonnet-5-5",
"litellm_provider": "bedrock_converse",
"supports_tool_search": true,
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.0000165,
"search_context_cost_per_query": {
@@ -24172,7 +26880,11 @@
"prompt_cache_min_tokens": 1024,
"input_cost_per_token_batches": 0.00000165,
"output_cost_per_token_batches": 0.00000825,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-5-20250929-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"eu.anthropic.claude-sonnet-4-6": {
"supports_adaptive_thinking": true,
@@ -24185,7 +26897,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.0000165,
"search_context_cost_per_query": {
@@ -24207,7 +26918,11 @@
"supports_output_config": true,
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 1024,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-6",
+ "litellm_provider": "bedrock"
+ }
},
"eu.anthropic.claude-sonnet-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -24219,7 +26934,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000011,
"search_context_cost_per_query": {
@@ -24247,7 +26961,12 @@
"bedrock_output_config_effort_ceiling": "xhigh",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 1024,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "eu-west-1"
+ }
},
"eu.anthropic.claude-sonnet-5-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -24259,7 +26978,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000011,
"search_context_cost_per_query": {
@@ -24297,7 +27015,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 163840,
"max_output_tokens": 163840,
- "max_tokens": 163840,
"mode": "chat",
"output_cost_per_token": 0.00000222,
"output_cost_per_token_flex": 0.00000111,
@@ -24311,11 +27028,11 @@
},
"eu.meta.llama3-2-1b-instruct-v1:0": {
"deprecation_date": "2026-07-07",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-2-1b-instruct.md",
"input_cost_per_token": 1.3e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 1.3e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-2-1b-instruct.md",
@@ -24324,11 +27041,11 @@
},
"eu.meta.llama3-2-3b-instruct-v1:0": {
"deprecation_date": "2026-07-07",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-2-3b-instruct.md",
"input_cost_per_token": 1.9e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 1.9e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-2-3b-instruct.md",
@@ -24340,7 +27057,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.000006,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-mistral-ai-pixtral-large.md",
@@ -24348,10 +27064,13 @@
"supports_tool_choice": false
},
"eu.twelvelabs.pegasus-1-2-v1:0": {
+ "deprecation_date": "2027-03-22",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-twelvelabs-pegasus-v1-2.md",
"input_cost_per_video_per_second": 0.00049,
"output_cost_per_token": 0.0000075,
"litellm_provider": "bedrock",
"mode": "chat",
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-twelvelabs-pegasus-v1-2.md",
"supports_video_input": true
},
"fal_ai/fal-ai/moondream3-preview/query": {
@@ -24370,18 +27089,15 @@
"litellm_provider": "featherless_ai",
"max_input_tokens": 32768,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat"
},
"featherless_ai/featherless-ai/Qwerky-QwQ-32B": {
"litellm_provider": "featherless_ai",
"max_input_tokens": 32768,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/chronos-hermes-13b-v2": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 2e-7,
@@ -24390,7 +27106,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/code-llama-13b": {
- "max_tokens": 16384,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
"input_cost_per_token": 2e-7,
@@ -24399,7 +27114,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/code-llama-13b-instruct": {
- "max_tokens": 16384,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
"input_cost_per_token": 2e-7,
@@ -24408,7 +27122,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/code-llama-13b-python": {
- "max_tokens": 16384,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
"input_cost_per_token": 2e-7,
@@ -24417,7 +27130,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/code-llama-34b": {
- "max_tokens": 16384,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
"input_cost_per_token": 9e-7,
@@ -24426,7 +27138,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/code-llama-34b-instruct": {
- "max_tokens": 16384,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
"input_cost_per_token": 9e-7,
@@ -24435,7 +27146,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/code-llama-34b-python": {
- "max_tokens": 16384,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
"input_cost_per_token": 9e-7,
@@ -24444,7 +27154,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/code-llama-70b": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 9e-7,
@@ -24453,7 +27162,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/code-llama-70b-instruct": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 9e-7,
@@ -24462,7 +27170,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/code-llama-70b-python": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 9e-7,
@@ -24471,7 +27178,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/code-llama-7b": {
- "max_tokens": 16384,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
"input_cost_per_token": 2e-7,
@@ -24480,7 +27186,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/code-llama-7b-instruct": {
- "max_tokens": 16384,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
"input_cost_per_token": 2e-7,
@@ -24489,7 +27194,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/code-llama-7b-python": {
- "max_tokens": 16384,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
"input_cost_per_token": 2e-7,
@@ -24498,7 +27202,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/code-qwen-1p5-7b": {
- "max_tokens": 65536,
"max_input_tokens": 65536,
"max_output_tokens": 65536,
"input_cost_per_token": 2e-7,
@@ -24507,7 +27210,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/codegemma-2b": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 1e-7,
@@ -24516,7 +27218,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/codegemma-7b": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 2e-7,
@@ -24525,7 +27226,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/cogito-671b-v2-p1": {
- "max_tokens": 163840,
"max_input_tokens": 163840,
"max_output_tokens": 163840,
"input_cost_per_token": 0.0000012,
@@ -24534,7 +27234,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/cogito-v1-preview-llama-3b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 1e-7,
@@ -24543,7 +27242,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/cogito-v1-preview-llama-70b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 9e-7,
@@ -24552,7 +27250,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/cogito-v1-preview-llama-8b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 2e-7,
@@ -24561,7 +27258,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/cogito-v1-preview-qwen-14b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 2e-7,
@@ -24570,7 +27266,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/cogito-v1-preview-qwen-32b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 9e-7,
@@ -24579,7 +27274,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/dbrx-instruct": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 0.0000012,
@@ -24588,7 +27282,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/deepseek-coder-1b-base": {
- "max_tokens": 16384,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
"input_cost_per_token": 1e-7,
@@ -24597,7 +27290,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/deepseek-coder-33b-instruct": {
- "max_tokens": 16384,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
"input_cost_per_token": 9e-7,
@@ -24606,7 +27298,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/deepseek-coder-7b-base": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 2e-7,
@@ -24615,7 +27306,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/deepseek-coder-7b-base-v1p5": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 2e-7,
@@ -24624,7 +27314,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/deepseek-coder-7b-instruct-v1p5": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 2e-7,
@@ -24637,7 +27326,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 65536,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://fireworks.ai/pricing",
@@ -24646,7 +27334,6 @@
"supports_tool_choice": false
},
"fireworks_ai/accounts/fireworks/models/deepseek-coder-v2-lite-base": {
- "max_tokens": 163840,
"max_input_tokens": 163840,
"max_output_tokens": 163840,
"input_cost_per_token": 5e-7,
@@ -24655,7 +27342,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/deepseek-coder-v2-lite-instruct": {
- "max_tokens": 163840,
"max_input_tokens": 163840,
"max_output_tokens": 163840,
"input_cost_per_token": 5e-7,
@@ -24664,7 +27350,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/deepseek-prover-v2": {
- "max_tokens": 163840,
"max_input_tokens": 163840,
"max_output_tokens": 163840,
"input_cost_per_token": 0.0000012,
@@ -24677,7 +27362,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 163840,
"max_output_tokens": 20480,
- "max_tokens": 20480,
"mode": "chat",
"output_cost_per_token": 0.000008,
"source": "https://fireworks.ai/pricing",
@@ -24689,7 +27373,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 163840,
"max_output_tokens": 160000,
- "max_tokens": 160000,
"mode": "chat",
"output_cost_per_token": 0.000008,
"source": "https://fireworks.ai/pricing",
@@ -24697,7 +27380,6 @@
"supports_tool_choice": false
},
"fireworks_ai/accounts/fireworks/models/deepseek-r1-0528-distill-qwen3-8b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 2e-7,
@@ -24710,7 +27392,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 163840,
"max_output_tokens": 20480,
- "max_tokens": 20480,
"mode": "chat",
"output_cost_per_token": 0.00000219,
"source": "https://fireworks.ai/pricing",
@@ -24718,7 +27399,6 @@
"supports_tool_choice": false
},
"fireworks_ai/accounts/fireworks/models/deepseek-r1-distill-llama-70b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 9e-7,
@@ -24727,7 +27407,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/deepseek-r1-distill-llama-8b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 2e-7,
@@ -24736,7 +27415,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/deepseek-r1-distill-qwen-14b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 2e-7,
@@ -24745,7 +27423,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/deepseek-r1-distill-qwen-1p5b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 1e-7,
@@ -24754,7 +27431,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/deepseek-r1-distill-qwen-32b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 9e-7,
@@ -24763,7 +27439,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/deepseek-r1-distill-qwen-7b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 2e-7,
@@ -24772,7 +27447,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/deepseek-v2-lite-chat": {
- "max_tokens": 163840,
"max_input_tokens": 163840,
"max_output_tokens": 163840,
"input_cost_per_token": 5e-7,
@@ -24781,7 +27455,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/deepseek-v2p5": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 0.0000012,
@@ -24794,7 +27467,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 131072,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 9e-7,
"source": "https://fireworks.ai/pricing",
@@ -24806,7 +27478,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 163840,
"max_output_tokens": 163840,
- "max_tokens": 163840,
"mode": "chat",
"output_cost_per_token": 9e-7,
"source": "https://fireworks.ai/models/fireworks/deepseek-v3-0324",
@@ -24818,7 +27489,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000168,
"source": "https://fireworks.ai/pricing",
@@ -24831,7 +27501,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000168,
"source": "https://fireworks.ai/pricing",
@@ -24844,7 +27513,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 163840,
"max_output_tokens": 163840,
- "max_tokens": 163840,
"mode": "chat",
"output_cost_per_token": 0.00000168,
"source": "https://fireworks.ai/models/fireworks/deepseek-v3p2",
@@ -24855,11 +27523,11 @@
},
"fireworks_ai/accounts/fireworks/models/deepseek-v4-flash": {
"cache_read_input_token_cost": 2.8e-8,
+ "deprecation_date": "2026-08-14",
"input_cost_per_token": 1.4e-7,
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 384000,
- "max_tokens": 384000,
"mode": "chat",
"output_cost_per_token": 2.8e-7,
"source": "https://docs.fireworks.ai/serverless/pricing",
@@ -24878,7 +27546,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 6.6e-7,
"output_cost_per_token_priority": 8.25e-7,
@@ -24897,7 +27564,7 @@
"input_cost_per_token_priority": 2.75e-7,
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 6.6e-7,
"output_cost_per_token_priority": 8.25e-7,
@@ -24916,7 +27583,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"output_cost_per_token_priority": 0.0000012,
@@ -24936,7 +27602,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.00000396,
"output_cost_per_token_priority": 0.00000495,
@@ -24953,14 +27618,15 @@
"input_cost_per_token": 3e-7,
"input_cost_per_token_priority": 3.75e-7,
"litellm_provider": "fireworks_ai",
+ "token_count_framing": 23,
"max_input_tokens": 1048576,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"output_cost_per_token_priority": 0.0000015,
"source": "https://docs.fireworks.ai/serverless/pricing",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
@@ -24975,20 +27641,38 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"output_cost_per_token_priority": 0.0000015,
"source": "https://api.fireworks.ai/v1/serverless/models?format=nested",
- "supports_function_calling": false,
+ "supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
- "supports_tool_choice": false,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
+ "fireworks_ai/accounts/fireworks/models/deepseek-v4p1-flash-1017-us": {
+ "cache_read_input_token_cost": 9e-9,
+ "cache_read_input_token_cost_priority": 1.125e-8,
+ "input_cost_per_token": 4.5e-7,
+ "input_cost_per_token_priority": 5.625e-7,
+ "litellm_provider": "fireworks_ai",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 393216,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000018,
+ "output_cost_per_token_priority": 0.00000225,
+ "source": "https://docs.fireworks.ai/serverless/us-only-serverless",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
"supports_vision": true
},
"fireworks_ai/accounts/fireworks/models/devstral-small-2505": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 9e-7,
@@ -24997,7 +27681,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/dobby-mini-unhinged-plus-llama-3-1-8b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 2e-7,
@@ -25006,7 +27689,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/dobby-unhinged-llama-3-3-70b-new": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 9e-7,
@@ -25015,7 +27697,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/dolphin-2-9-2-qwen2-72b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 9e-7,
@@ -25024,7 +27705,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/dolphin-2p6-mixtral-8x7b": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 5e-7,
@@ -25044,13 +27724,13 @@
"output_cost_per_token_priority": 0.00001875,
"source": "https://api.fireworks.ai/v1/serverless/models",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
"supports_vision": true
},
"fireworks_ai/accounts/fireworks/models/ernie-4p5-21b-a3b-pt": {
- "max_tokens": 4096,
"max_input_tokens": 131072,
"max_output_tokens": 4096,
"input_cost_per_token": 1e-7,
@@ -25059,7 +27739,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/ernie-4p5-300b-a47b-pt": {
- "max_tokens": 4096,
"max_input_tokens": 131072,
"max_output_tokens": 4096,
"input_cost_per_token": 1e-7,
@@ -25068,7 +27747,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/fare-20b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 9e-7,
@@ -25077,7 +27755,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/firefunction-v1": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 5e-7,
@@ -25090,7 +27767,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 9e-7,
"source": "https://fireworks.ai/pricing",
@@ -25099,7 +27775,6 @@
"supports_tool_choice": true
},
"fireworks_ai/accounts/fireworks/models/firellava-13b": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 2e-7,
@@ -25108,7 +27783,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/firesearch-ocr-v6": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 2e-7,
@@ -25117,7 +27791,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/flux-1-dev": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 1e-7,
@@ -25126,7 +27799,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/flux-1-dev-controlnet-union": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 1e-9,
@@ -25135,7 +27807,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/flux-1-schnell": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 1e-7,
@@ -25144,7 +27815,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/gemma-2b-it": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 1e-7,
@@ -25153,7 +27823,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/gemma-3-27b-it": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 9e-7,
@@ -25162,7 +27831,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/gemma-7b": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 2e-7,
@@ -25171,7 +27839,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/gemma-7b-it": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 2e-7,
@@ -25180,7 +27847,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/gemma2-9b-it": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 2e-7,
@@ -25193,7 +27859,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 131072,
"max_output_tokens": 96000,
- "max_tokens": 96000,
"mode": "chat",
"output_cost_per_token": 0.00000219,
"source": "https://fireworks.ai/models/fireworks/glm-4p5",
@@ -25207,7 +27872,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 131072,
"max_output_tokens": 96000,
- "max_tokens": 96000,
"mode": "chat",
"output_cost_per_token": 8.8e-7,
"source": "https://artificialanalysis.ai/models/glm-4-5-air",
@@ -25217,7 +27881,6 @@
"supports_tool_choice": true
},
"fireworks_ai/accounts/fireworks/models/glm-4p5v": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 0.0000012,
@@ -25232,7 +27895,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 202752,
"max_output_tokens": 202800,
- "max_tokens": 202800,
"mode": "chat",
"source": "https://fireworks.ai/pricing",
"supports_function_calling": true,
@@ -25246,7 +27908,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 202752,
"max_output_tokens": 202800,
- "max_tokens": 202800,
"mode": "chat",
"output_cost_per_token": 0.0000022,
"source": "https://fireworks.ai/models/fireworks/glm-4p7",
@@ -25261,7 +27922,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 202752,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://docs.fireworks.ai/serverless/pricing",
@@ -25275,12 +27935,12 @@
"cache_read_input_token_cost": 1.4e-7,
"cache_read_input_token_cost_priority": 1.75e-7,
"deprecation_date": "2026-09-25",
+ "successor_model": "fireworks_ai/accounts/fireworks/models/glm-5p3",
"input_cost_per_token": 0.0000014,
"input_cost_per_token_priority": 0.00000175,
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"output_cost_per_token_priority": 0.0000055,
@@ -25299,12 +27959,12 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"output_cost_per_token_priority": 0.0000055,
"source": "https://api.fireworks.ai/v1/serverless/models",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
@@ -25317,12 +27977,13 @@
"input_cost_per_token_priority": 1.875e-7,
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 5e-7,
"output_cost_per_token_priority": 6.25e-7,
"source": "https://api.fireworks.ai/v1/serverless/models",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_response_schema": true,
"supports_tool_choice": true,
"supports_vision": true
@@ -25330,16 +27991,16 @@
"fireworks_ai/accounts/fireworks/models/gpt-oss-120b": {
"cache_read_input_token_cost": 1.5e-8,
"cache_read_input_token_cost_priority": 1.8e-8,
+ "deprecation_date": "2026-11-07",
"input_cost_per_token": 1.5e-7,
"input_cost_per_token_priority": 1.8e-7,
"litellm_provider": "fireworks_ai",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 6e-7,
"output_cost_per_token_priority": 7.2e-7,
- "source": "https://api.fireworks.ai/v1/serverless/models",
+ "source": "https://api.fireworks.ai/v1/serverless/models?format=nested",
"supports_function_calling": true,
"supports_reasoning": true,
"supports_response_schema": true,
@@ -25352,7 +28013,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 3e-7,
"source": "https://docs.fireworks.ai/serverless/pricing",
@@ -25363,7 +28023,6 @@
"supports_vision": false
},
"fireworks_ai/accounts/fireworks/models/gpt-oss-safeguard-120b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 0.0000012,
@@ -25372,7 +28031,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/gpt-oss-safeguard-20b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 5e-7,
@@ -25381,7 +28039,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/hermes-2-pro-mistral-7b": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 2e-7,
@@ -25392,22 +28049,23 @@
"fireworks_ai/accounts/fireworks/models/inkling": {
"cache_read_input_token_cost": 1.7e-7,
"cache_read_input_token_cost_priority": 1.7e-7,
+ "deprecation_date": "2026-11-07",
"input_cost_per_token": 0.000001,
"input_cost_per_token_priority": 0.000001,
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.00000405,
"output_cost_per_token_priority": 0.00000405,
"source": "https://api.fireworks.ai/v1/serverless/models?format=nested",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_response_schema": true,
"supports_tool_choice": true,
"supports_vision": true
},
"fireworks_ai/accounts/fireworks/models/internvl3-38b": {
- "max_tokens": 16384,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
"input_cost_per_token": 9e-7,
@@ -25416,7 +28074,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/internvl3-78b": {
- "max_tokens": 16384,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
"input_cost_per_token": 9e-7,
@@ -25425,7 +28082,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/internvl3-8b": {
- "max_tokens": 16384,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
"input_cost_per_token": 2e-7,
@@ -25434,7 +28090,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/kat-coder": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 9e-7,
@@ -25443,7 +28098,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/kat-dev-32b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 9e-7,
@@ -25452,7 +28106,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/kat-dev-72b-exp": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 9e-7,
@@ -25465,7 +28118,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 131072,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://fireworks.ai/models/fireworks/kimi-k2-instruct",
@@ -25478,7 +28130,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://app.fireworks.ai/models/fireworks/kimi-k2-instruct-0905",
@@ -25491,7 +28142,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://fireworks.ai/pricing",
@@ -25506,7 +28156,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000003,
"source": "https://fireworks.ai/pricing",
@@ -25523,7 +28172,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000004,
"output_cost_per_token_priority": 0.000006,
@@ -25543,7 +28191,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000004,
"output_cost_per_token_priority": 0.000006,
@@ -25562,7 +28209,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000015,
"output_cost_per_token_priority": 0.00001875,
@@ -25573,13 +28219,13 @@
],
"source": "https://api.fireworks.ai/v1/serverless/models",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
"supports_vision": true
},
"fireworks_ai/accounts/fireworks/models/llama-guard-2-8b": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 2e-7,
@@ -25588,7 +28234,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/llama-guard-3-1b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 1e-7,
@@ -25597,7 +28242,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/llama-guard-3-8b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 2e-7,
@@ -25606,7 +28250,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/llama-v2-13b": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 2e-7,
@@ -25615,7 +28258,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/llama-v2-13b-chat": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 2e-7,
@@ -25624,7 +28266,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/llama-v2-70b": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 1e-7,
@@ -25633,7 +28274,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/llama-v2-70b-chat": {
- "max_tokens": 2048,
"max_input_tokens": 2048,
"max_output_tokens": 2048,
"input_cost_per_token": 9e-7,
@@ -25642,7 +28282,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/llama-v2-7b": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 2e-7,
@@ -25651,7 +28290,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/llama-v2-7b-chat": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 2e-7,
@@ -25660,7 +28298,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/llama-v3-70b-instruct": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 9e-7,
@@ -25669,7 +28306,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/llama-v3-70b-instruct-hf": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 9e-7,
@@ -25678,7 +28314,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/llama-v3-8b": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 2e-7,
@@ -25687,7 +28322,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/llama-v3-8b-instruct-hf": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 2e-7,
@@ -25700,7 +28334,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 131072,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.000003,
"source": "https://fireworks.ai/pricing",
@@ -25709,7 +28342,6 @@
"supports_tool_choice": true
},
"fireworks_ai/accounts/fireworks/models/llama-v3p1-405b-instruct-long": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 1e-7,
@@ -25718,7 +28350,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/llama-v3p1-70b-instruct": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 9e-7,
@@ -25727,7 +28358,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/llama-v3p1-70b-instruct-1b": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 1e-7,
@@ -25740,7 +28370,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 131072,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 1e-7,
"source": "https://fireworks.ai/pricing",
@@ -25749,7 +28378,6 @@
"supports_tool_choice": false
},
"fireworks_ai/accounts/fireworks/models/llama-v3p1-nemotron-70b-instruct": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 9e-7,
@@ -25762,7 +28390,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 131072,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 2e-7,
"source": "https://fireworks.ai/pricing",
@@ -25772,7 +28399,6 @@
"supports_vision": true
},
"fireworks_ai/accounts/fireworks/models/llama-v3p2-1b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 1e-7,
@@ -25785,7 +28411,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 131072,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 1e-7,
"source": "https://fireworks.ai/pricing",
@@ -25794,7 +28419,6 @@
"supports_tool_choice": false
},
"fireworks_ai/accounts/fireworks/models/llama-v3p2-3b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 1e-7,
@@ -25807,7 +28431,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 131072,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 1e-7,
"source": "https://fireworks.ai/pricing",
@@ -25820,7 +28443,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 131072,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 9e-7,
"source": "https://fireworks.ai/pricing",
@@ -25829,7 +28451,6 @@
"supports_vision": true
},
"fireworks_ai/accounts/fireworks/models/llama-v3p3-70b-instruct": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 9e-7,
@@ -25842,7 +28463,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 8.8e-7,
"source": "https://fireworks.ai/pricing",
@@ -25854,7 +28474,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 6e-7,
"source": "https://fireworks.ai/pricing",
@@ -25862,7 +28481,6 @@
"supports_tool_choice": false
},
"fireworks_ai/accounts/fireworks/models/llamaguard-7b": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 2e-7,
@@ -25871,7 +28489,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/llava-yi-34b": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 9e-7,
@@ -25880,7 +28497,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/minimax-m1-80k": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 1e-7,
@@ -25889,7 +28505,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/minimax-m2": {
- "max_tokens": 4096,
"max_input_tokens": 196608,
"max_output_tokens": 4096,
"input_cost_per_token": 3e-7,
@@ -25903,7 +28518,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 196608,
"max_output_tokens": 204800,
- "max_tokens": 204800,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://fireworks.ai/models/fireworks/minimax-m2p1",
@@ -25918,7 +28532,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 196608,
"max_output_tokens": 196608,
- "max_tokens": 196608,
"mode": "chat",
"output_cost_per_token_priority": 0.0000012,
"source": "https://api.fireworks.ai/v1/serverless/models",
@@ -25934,7 +28547,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 512000,
"max_output_tokens": 512000,
- "max_tokens": 512000,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"output_cost_per_token_priority": 0.0000018,
@@ -25943,10 +28555,28 @@
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
- "supports_vision": false
+ "supports_vision": true
+ },
+ "fireworks_ai/accounts/fireworks/models/minimax-m3p1-flash": {
+ "cache_read_input_token_cost": 1.5e-8,
+ "cache_read_input_token_cost_priority": 2.25e-8,
+ "input_cost_per_token": 1.5e-7,
+ "input_cost_per_token_priority": 2.25e-7,
+ "litellm_provider": "fireworks_ai",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 1048576,
+ "mode": "chat",
+ "output_cost_per_token": 6e-7,
+ "output_cost_per_token_priority": 9e-7,
+ "source": "https://platform.minimax.io/docs/guides/pricing",
+ "supports_function_calling": true,
+ "supports_mid_conversation_system": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
},
"fireworks_ai/accounts/fireworks/models/ministral-3-14b-instruct-2512": {
- "max_tokens": 256000,
"max_input_tokens": 256000,
"max_output_tokens": 256000,
"input_cost_per_token": 2e-7,
@@ -25955,7 +28585,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/ministral-3-3b-instruct-2512": {
- "max_tokens": 256000,
"max_input_tokens": 256000,
"max_output_tokens": 256000,
"input_cost_per_token": 1e-7,
@@ -25964,7 +28593,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/ministral-3-8b-instruct-2512": {
- "max_tokens": 256000,
"max_input_tokens": 256000,
"max_output_tokens": 256000,
"input_cost_per_token": 2e-7,
@@ -25973,7 +28601,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/mistral-7b": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 2e-7,
@@ -25982,7 +28609,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/mistral-7b-instruct-4k": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 2e-7,
@@ -25991,7 +28617,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/mistral-7b-instruct-v0p2": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 2e-7,
@@ -26000,7 +28625,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/mistral-7b-instruct-v3": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 2e-7,
@@ -26009,7 +28633,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/mistral-7b-v0p2": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 2e-7,
@@ -26018,7 +28641,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/mistral-large-3-fp8": {
- "max_tokens": 256000,
"max_input_tokens": 256000,
"max_output_tokens": 256000,
"input_cost_per_token": 0.0000012,
@@ -26027,7 +28649,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/mistral-nemo-base-2407": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 2e-7,
@@ -26036,7 +28657,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/mistral-nemo-instruct-2407": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 2e-7,
@@ -26045,7 +28665,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/mistral-small-24b-instruct-2501": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 9e-7,
@@ -26054,7 +28673,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/mixtral-8x22b": {
- "max_tokens": 65536,
"max_input_tokens": 65536,
"max_output_tokens": 65536,
"input_cost_per_token": 0.0000012,
@@ -26063,7 +28681,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/mixtral-8x22b-instruct": {
- "max_tokens": 65536,
"max_input_tokens": 65536,
"max_output_tokens": 65536,
"input_cost_per_token": 0.0000012,
@@ -26076,7 +28693,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 65536,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://fireworks.ai/pricing",
@@ -26085,7 +28701,6 @@
"supports_tool_choice": true
},
"fireworks_ai/accounts/fireworks/models/mixtral-8x7b": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 5e-7,
@@ -26094,7 +28709,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/mixtral-8x7b-instruct": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 5e-7,
@@ -26103,7 +28717,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/mixtral-8x7b-instruct-hf": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 5e-7,
@@ -26120,7 +28733,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 131072,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"output_cost_per_token_priority": 0.00000225,
@@ -26133,17 +28745,21 @@
},
"fireworks_ai/accounts/fireworks/models/muse-spark-open": {
"cache_read_input_token_cost": 1.5e-7,
+ "cache_read_input_token_cost_priority": 2.25e-7,
"input_cost_per_token": 0.00000125,
+ "input_cost_per_token_priority": 0.000001875,
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.00000425,
- "source": "https://fireworks.ai/models/fireworks/muse-spark-open",
+ "output_cost_per_token_priority": 0.000006375,
+ "source": "https://docs.fireworks.ai/serverless/pricing",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
+ "supports_reasoning": true,
"supports_vision": true
},
"fireworks_ai/accounts/fireworks/models/mythomax-l2-13b": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 2e-7,
@@ -26154,17 +28770,18 @@
"fireworks_ai/accounts/fireworks/models/nemotron-3-ultra-nvfp4": {
"cache_read_input_token_cost": 1.2e-7,
"cache_read_input_token_cost_priority": 1.5e-7,
+ "deprecation_date": "2026-11-07",
"input_cost_per_token": 6e-7,
"input_cost_per_token_priority": 7.5e-7,
"litellm_provider": "fireworks_ai",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.0000024,
"output_cost_per_token_priority": 0.000003,
- "source": "https://api.fireworks.ai/v1/serverless/models",
+ "source": "https://api.fireworks.ai/v1/serverless/models?format=nested",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
@@ -26173,16 +28790,16 @@
"fireworks_ai/accounts/fireworks/models/nemotron-lightning-3p5-30b-a3b": {
"cache_read_input_token_cost": 1e-8,
"cache_read_input_token_cost_priority": 1.25e-8,
+ "deprecation_date": "2026-11-07",
"input_cost_per_token": 5e-8,
"input_cost_per_token_priority": 6.25e-8,
"litellm_provider": "fireworks_ai",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 2e-7,
"output_cost_per_token_priority": 2.5e-7,
- "source": "https://docs.fireworks.ai/serverless/pricing",
+ "source": "https://api.fireworks.ai/v1/serverless/models?format=nested",
"supports_function_calling": true,
"supports_reasoning": true,
"supports_response_schema": true,
@@ -26190,7 +28807,6 @@
"supports_vision": false
},
"fireworks_ai/accounts/fireworks/models/nemotron-nano-v2-12b-vl": {
- "max_tokens": 4096,
"max_input_tokens": 131072,
"max_output_tokens": 4096,
"input_cost_per_token": 1e-7,
@@ -26199,7 +28815,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/nous-capybara-7b-v1p9": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 2e-7,
@@ -26208,7 +28823,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/nous-hermes-2-mixtral-8x7b-dpo": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 5e-7,
@@ -26217,7 +28831,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/nous-hermes-2-yi-34b": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 9e-7,
@@ -26226,7 +28839,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/nous-hermes-llama2-13b": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 2e-7,
@@ -26235,7 +28847,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/nous-hermes-llama2-70b": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 9e-7,
@@ -26244,7 +28855,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/nous-hermes-llama2-7b": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 2e-7,
@@ -26253,7 +28863,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/nvidia-nemotron-nano-12b-v2": {
- "max_tokens": 131072,
"max_input_tokens": 128000,
"max_output_tokens": 131072,
"input_cost_per_token": 2e-7,
@@ -26262,7 +28871,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/nvidia-nemotron-nano-9b-v2": {
- "max_tokens": 131072,
"max_input_tokens": 128000,
"max_output_tokens": 131072,
"input_cost_per_token": 2e-7,
@@ -26271,7 +28879,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/openchat-3p5-0106-7b": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 2e-7,
@@ -26280,7 +28887,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/openhermes-2-mistral-7b": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 2e-7,
@@ -26289,7 +28895,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/openhermes-2p5-mistral-7b": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 2e-7,
@@ -26298,7 +28903,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/openorca-7b": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 2e-7,
@@ -26307,7 +28911,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/phi-2-3b": {
- "max_tokens": 2048,
"max_input_tokens": 2048,
"max_output_tokens": 2048,
"input_cost_per_token": 1e-7,
@@ -26316,7 +28919,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/phi-3-mini-128k-instruct": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 1e-7,
@@ -26325,7 +28927,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/phi-3-vision-128k-instruct": {
- "max_tokens": 32064,
"max_input_tokens": 32064,
"max_output_tokens": 32064,
"input_cost_per_token": 2e-7,
@@ -26334,7 +28935,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/phind-code-llama-34b-python-v1": {
- "max_tokens": 16384,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
"input_cost_per_token": 9e-7,
@@ -26343,7 +28943,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/phind-code-llama-34b-v1": {
- "max_tokens": 16384,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
"input_cost_per_token": 9e-7,
@@ -26352,7 +28951,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/phind-code-llama-34b-v2": {
- "max_tokens": 16384,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
"input_cost_per_token": 9e-7,
@@ -26361,7 +28959,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/pythia-12b": {
- "max_tokens": 2048,
"max_input_tokens": 2048,
"max_output_tokens": 2048,
"input_cost_per_token": 2e-7,
@@ -26370,7 +28967,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen-qwq-32b-preview": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 9e-7,
@@ -26379,7 +28975,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen-v2p5-14b-instruct": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 2e-7,
@@ -26388,7 +28983,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen-v2p5-7b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 2e-7,
@@ -26397,7 +28991,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen1p5-72b-chat": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 9e-7,
@@ -26410,7 +29003,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 9e-7,
"source": "https://fireworks.ai/pricing",
@@ -26419,7 +29011,6 @@
"supports_tool_choice": false
},
"fireworks_ai/accounts/fireworks/models/qwen2-7b-instruct": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 2e-7,
@@ -26428,7 +29019,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2-vl-2b-instruct": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 1e-7,
@@ -26437,7 +29027,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2-vl-72b-instruct": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 9e-7,
@@ -26446,7 +29035,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2-vl-7b-instruct": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 2e-7,
@@ -26455,7 +29043,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-0p5b-instruct": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 1e-7,
@@ -26464,7 +29051,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-14b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 2e-7,
@@ -26473,7 +29059,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-1p5b-instruct": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 1e-7,
@@ -26482,7 +29067,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-32b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 9e-7,
@@ -26491,7 +29075,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-32b-instruct": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 9e-7,
@@ -26500,7 +29083,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-72b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 9e-7,
@@ -26509,7 +29091,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-72b-instruct": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 9e-7,
@@ -26518,7 +29099,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-7b-instruct": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 2e-7,
@@ -26527,7 +29107,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-coder-0p5b": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 1e-7,
@@ -26536,7 +29115,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-coder-0p5b-instruct": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 1e-7,
@@ -26545,7 +29123,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-coder-14b": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 2e-7,
@@ -26554,7 +29131,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-coder-14b-instruct": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 2e-7,
@@ -26563,7 +29139,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-coder-1p5b": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 1e-7,
@@ -26572,7 +29147,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-coder-1p5b-instruct": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 1e-7,
@@ -26581,7 +29155,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-coder-32b": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 9e-7,
@@ -26594,7 +29167,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 9e-7,
"source": "https://fireworks.ai/pricing",
@@ -26603,7 +29175,6 @@
"supports_tool_choice": false
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-coder-32b-instruct-128k": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 9e-7,
@@ -26612,7 +29183,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-coder-32b-instruct-32k-rope": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 9e-7,
@@ -26621,7 +29191,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-coder-32b-instruct-64k": {
- "max_tokens": 65536,
"max_input_tokens": 65536,
"max_output_tokens": 65536,
"input_cost_per_token": 9e-7,
@@ -26630,7 +29199,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-coder-3b": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 1e-7,
@@ -26639,7 +29207,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-coder-3b-instruct": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 1e-7,
@@ -26648,7 +29215,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-coder-7b": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 2e-7,
@@ -26657,7 +29223,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-coder-7b-instruct": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 2e-7,
@@ -26666,7 +29231,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-math-72b-instruct": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 9e-7,
@@ -26675,7 +29239,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-vl-32b-instruct": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 9e-7,
@@ -26684,7 +29247,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-vl-3b-instruct": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 2e-7,
@@ -26693,7 +29255,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-vl-72b-instruct": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 9e-7,
@@ -26702,7 +29263,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen2p5-vl-7b-instruct": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 2e-7,
@@ -26711,7 +29271,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-0p6b": {
- "max_tokens": 40960,
"max_input_tokens": 40960,
"max_output_tokens": 40960,
"input_cost_per_token": 1e-7,
@@ -26720,7 +29279,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-14b": {
- "max_tokens": 40960,
"max_input_tokens": 40960,
"max_output_tokens": 40960,
"input_cost_per_token": 2e-7,
@@ -26729,7 +29287,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-1p7b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 1e-7,
@@ -26738,7 +29295,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-1p7b-fp8-draft": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 1e-7,
@@ -26747,7 +29303,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-1p7b-fp8-draft-131072": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 1e-7,
@@ -26756,7 +29311,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-1p7b-fp8-draft-40960": {
- "max_tokens": 40960,
"max_input_tokens": 40960,
"max_output_tokens": 40960,
"input_cost_per_token": 1e-7,
@@ -26765,7 +29319,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-235b-a22b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 2.2e-7,
@@ -26774,7 +29327,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-235b-a22b-instruct-2507": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 2.2e-7,
@@ -26783,7 +29335,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-235b-a22b-thinking-2507": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 2.2e-7,
@@ -26792,7 +29343,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-30b-a3b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 1.5e-7,
@@ -26801,7 +29351,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-30b-a3b-instruct-2507": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 5e-7,
@@ -26810,7 +29359,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-30b-a3b-thinking-2507": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 9e-7,
@@ -26819,7 +29367,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-32b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 9e-7,
@@ -26829,7 +29376,6 @@
"supports_reasoning": true
},
"fireworks_ai/accounts/fireworks/models/qwen3-4b": {
- "max_tokens": 40960,
"max_input_tokens": 40960,
"max_output_tokens": 40960,
"input_cost_per_token": 2e-7,
@@ -26838,7 +29384,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-4b-instruct-2507": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 2e-7,
@@ -26847,7 +29392,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-8b": {
- "max_tokens": 40960,
"max_input_tokens": 40960,
"max_output_tokens": 40960,
"input_cost_per_token": 2e-7,
@@ -26857,7 +29401,6 @@
"supports_reasoning": true
},
"fireworks_ai/accounts/fireworks/models/qwen3-coder-30b-a3b-instruct": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 1.5e-7,
@@ -26866,7 +29409,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-coder-480b-a35b-instruct": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 4.5e-7,
@@ -26876,7 +29418,6 @@
"supports_reasoning": true
},
"fireworks_ai/accounts/fireworks/models/qwen3-coder-480b-instruct-bf16": {
- "max_tokens": 4096,
"max_input_tokens": 262144,
"max_output_tokens": 4096,
"input_cost_per_token": 9e-7,
@@ -26885,7 +29426,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-next-80b-a3b-instruct": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 9e-7,
@@ -26894,7 +29434,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-next-80b-a3b-thinking": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 9e-7,
@@ -26903,7 +29442,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-vl-235b-a22b-instruct": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 2.2e-7,
@@ -26912,7 +29450,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-vl-235b-a22b-thinking": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 2.2e-7,
@@ -26921,7 +29458,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-vl-30b-a3b-instruct": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 1.5e-7,
@@ -26930,7 +29466,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-vl-30b-a3b-thinking": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 1.5e-7,
@@ -26939,7 +29474,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-vl-32b-instruct": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 9e-7,
@@ -26948,7 +29482,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/qwen3-vl-8b-instruct": {
- "max_tokens": 4096,
"max_input_tokens": 262144,
"max_output_tokens": 4096,
"input_cost_per_token": 2e-7,
@@ -26962,7 +29495,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.0000016,
"source": "https://api.fireworks.ai/v1/serverless/models",
@@ -26984,13 +29516,13 @@
"output_cost_per_token_priority": 0.000009,
"source": "https://api.fireworks.ai/v1/serverless/models",
"supports_function_calling": true,
+ "supports_mid_conversation_system": false,
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
"supports_vision": true
},
"fireworks_ai/accounts/fireworks/models/qwq-32b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 9e-7,
@@ -26999,7 +29531,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/rolm-ocr": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 2e-7,
@@ -27008,7 +29539,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/snorkel-mistral-7b-pairrm-dpo": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 2e-7,
@@ -27017,7 +29547,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/stablecode-3b": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 1e-7,
@@ -27026,7 +29555,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/starcoder-16b": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 2e-7,
@@ -27035,7 +29563,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/starcoder-7b": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 2e-7,
@@ -27044,7 +29571,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/starcoder2-15b": {
- "max_tokens": 16384,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
"input_cost_per_token": 2e-7,
@@ -27053,7 +29579,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/starcoder2-3b": {
- "max_tokens": 16384,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
"input_cost_per_token": 1e-7,
@@ -27062,7 +29587,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/starcoder2-7b": {
- "max_tokens": 16384,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
"input_cost_per_token": 2e-7,
@@ -27071,7 +29595,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/toppy-m-7b": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 2e-7,
@@ -27079,8 +29602,24 @@
"litellm_provider": "fireworks_ai",
"mode": "chat"
},
+ "fireworks_ai/accounts/fireworks/models/ultramarine-1-flash-us": {
+ "cache_read_input_token_cost": 4.5e-8,
+ "cache_read_input_token_cost_priority": 5.625e-8,
+ "input_cost_per_token": 2.25e-7,
+ "input_cost_per_token_priority": 2.8125e-7,
+ "litellm_provider": "fireworks_ai",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 1048576,
+ "mode": "chat",
+ "output_cost_per_token": 7.5e-7,
+ "output_cost_per_token_priority": 9.375e-7,
+ "source": "https://docs.fireworks.ai/serverless/pricing",
+ "supports_function_calling": false,
+ "supports_response_schema": true,
+ "supports_tool_choice": false,
+ "supports_vision": true
+ },
"fireworks_ai/accounts/fireworks/models/yi-34b": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 9e-7,
@@ -27089,7 +29628,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/yi-34b-200k-capybara": {
- "max_tokens": 200000,
"max_input_tokens": 200000,
"max_output_tokens": 200000,
"input_cost_per_token": 9e-7,
@@ -27098,7 +29636,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/yi-34b-chat": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 9e-7,
@@ -27107,7 +29644,6 @@
"mode": "chat"
},
"fireworks_ai/accounts/fireworks/models/yi-6b": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 2e-7,
@@ -27120,7 +29656,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000003,
"source": "https://fireworks.ai/pricing",
@@ -27129,7 +29664,6 @@
"supports_tool_choice": false
},
"fireworks_ai/accounts/fireworks/models/zephyr-7b-beta": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 2e-7,
@@ -27155,6 +29689,40 @@
"supports_response_schema": true,
"supports_tool_choice": true
},
+ "fireworks_ai/accounts/fireworks/routers/deepseek-v4p1-flash-1017-spot": {
+ "cache_read_input_token_cost": 4.2e-9,
+ "input_cost_per_token": 2.1e-7,
+ "litellm_provider": "fireworks_ai",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 393216,
+ "mode": "chat",
+ "output_cost_per_token": 8.4e-7,
+ "source": "https://api.fireworks.ai/v1/serverless/models",
+ "supports_function_calling": true,
+ "supports_mid_conversation_system": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
+ "fireworks_ai/accounts/fireworks/routers/deepseek-v4p1-flash-spot": {
+ "cache_read_input_token_cost": 4.2e-9,
+ "input_cost_per_token": 2.1e-7,
+ "litellm_provider": "fireworks_ai",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 393216,
+ "mode": "chat",
+ "output_cost_per_token": 8.4e-7,
+ "source": "https://api.fireworks.ai/v1/serverless/models",
+ "supports_function_calling": true,
+ "supports_mid_conversation_system": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
"fireworks_ai/accounts/fireworks/routers/deepseek-v4p1-flash-us": {
"cache_read_input_token_cost": 9e-9,
"cache_read_input_token_cost_priority": 1.125e-8,
@@ -27163,12 +29731,12 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"output_cost_per_token": 0.0000018,
"output_cost_per_token_priority": 0.00000225,
"source": "https://docs.fireworks.ai/serverless/pricing",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
@@ -27190,7 +29758,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 202800,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000088,
"source": "https://docs.fireworks.ai/serverless/pricing",
@@ -27203,11 +29770,11 @@
"fireworks_ai/accounts/fireworks/routers/glm-5p2-fast": {
"cache_read_input_token_cost": 2.1e-7,
"deprecation_date": "2026-09-25",
+ "successor_model": "fireworks_ai/accounts/fireworks/routers/glm-5p3-fast",
"input_cost_per_token": 0.0000021,
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000066,
"source": "https://api.fireworks.ai/v1/serverless/models",
@@ -27224,7 +29791,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000066,
"source": "https://docs.fireworks.ai/serverless/pricing",
@@ -27239,11 +29805,12 @@
"input_cost_per_token": 0.0000021,
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.0000066,
"source": "https://api.fireworks.ai/v1/serverless/models",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
@@ -27252,20 +29819,39 @@
"fireworks_ai/accounts/fireworks/routers/glm-5p3-flash-us": {
"cache_read_input_token_cost": 4.5e-8,
"cache_read_input_token_cost_priority": 5.625e-8,
+ "deprecation_date": "2026-11-07",
"input_cost_per_token": 2.25e-7,
"input_cost_per_token_priority": 2.8125e-7,
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 7.5e-7,
"output_cost_per_token_priority": 9.375e-7,
"source": "https://docs.fireworks.ai/serverless/pricing",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_response_schema": true,
"supports_tool_choice": true,
"supports_vision": true
},
+ "fireworks_ai/accounts/fireworks/routers/glm-5p3-spot": {
+ "cache_read_input_token_cost": 1.82e-7,
+ "input_cost_per_token": 9.8e-7,
+ "litellm_provider": "fireworks_ai",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.00000308,
+ "source": "https://api.fireworks.ai/v1/serverless/models",
+ "supports_function_calling": true,
+ "supports_mid_conversation_system": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": false
+ },
"fireworks_ai/accounts/fireworks/routers/glm-5p3-us": {
"cache_read_input_token_cost": 3.9e-7,
"cache_read_input_token_cost_priority": 4.875e-7,
@@ -27274,12 +29860,12 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000066,
"output_cost_per_token_priority": 0.00000825,
"source": "https://docs.fireworks.ai/serverless/pricing",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
@@ -27292,7 +29878,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000008,
"source": "https://docs.fireworks.ai/serverless/pricing",
@@ -27309,7 +29894,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000008,
"source": "https://docs.fireworks.ai/serverless/pricing",
@@ -27325,7 +29909,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000225,
"reasoning_effort_levels": [
@@ -27335,6 +29918,29 @@
],
"source": "https://api.fireworks.ai/v1/serverless/models",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
+ "fireworks_ai/accounts/fireworks/routers/kimi-k3-spot": {
+ "cache_read_input_token_cost": 2.1e-7,
+ "input_cost_per_token": 0.0000021,
+ "litellm_provider": "fireworks_ai",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 131072,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000105,
+ "reasoning_effort_levels": [
+ "low",
+ "high",
+ "max"
+ ],
+ "source": "https://api.fireworks.ai/v1/serverless/models",
+ "supports_function_calling": true,
+ "supports_mid_conversation_system": true,
+ "supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
@@ -27348,7 +29954,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000225,
"output_cost_per_token_priority": 0.000028125,
@@ -27359,18 +29964,36 @@
],
"source": "https://docs.fireworks.ai/serverless/pricing",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
"supports_vision": true
},
+ "fireworks_ai/accounts/fireworks/routers/spot-deepseek-v4-flash": {
+ "cache_read_input_token_cost": 2.1e-8,
+ "deprecation_date": "2026-08-14",
+ "input_cost_per_token": 1.05e-7,
+ "litellm_provider": "fireworks_ai",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 384000,
+ "mode": "chat",
+ "output_cost_per_token": 2.1e-7,
+ "source": "https://api.fireworks.ai/v1/serverless/models",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": false
+ },
"fireworks_ai/deepseek-v4-flash": {
"cache_read_input_token_cost": 2.8e-8,
+ "deprecation_date": "2026-08-14",
"input_cost_per_token": 1.4e-7,
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 384000,
- "max_tokens": 384000,
"mode": "chat",
"output_cost_per_token": 2.8e-7,
"source": "https://docs.fireworks.ai/serverless/pricing",
@@ -27389,7 +30012,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 6.6e-7,
"output_cost_per_token_priority": 8.25e-7,
@@ -27408,7 +30030,7 @@
"input_cost_per_token_priority": 2.75e-7,
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 6.6e-7,
"output_cost_per_token_priority": 8.25e-7,
@@ -27427,7 +30049,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.00000396,
"output_cost_per_token_priority": 0.00000495,
@@ -27444,14 +30065,15 @@
"input_cost_per_token": 3e-7,
"input_cost_per_token_priority": 3.75e-7,
"litellm_provider": "fireworks_ai",
+ "token_count_framing": 23,
"max_input_tokens": 1048576,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"output_cost_per_token_priority": 0.0000015,
"source": "https://docs.fireworks.ai/serverless/pricing",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
@@ -27466,12 +30088,12 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"output_cost_per_token": 0.0000018,
"output_cost_per_token_priority": 0.00000225,
"source": "https://docs.fireworks.ai/serverless/pricing",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
@@ -27484,7 +30106,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 202752,
"max_output_tokens": 202800,
- "max_tokens": 202800,
"mode": "chat",
"output_cost_per_token": 0.0000022,
"source": "https://fireworks.ai/models/fireworks/glm-4p7",
@@ -27499,7 +30120,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 202752,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://docs.fireworks.ai/serverless/pricing",
@@ -27515,7 +30135,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 202800,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000088,
"source": "https://docs.fireworks.ai/serverless/pricing",
@@ -27529,12 +30148,12 @@
"cache_read_input_token_cost": 1.4e-7,
"cache_read_input_token_cost_priority": 1.75e-7,
"deprecation_date": "2026-09-25",
+ "successor_model": "fireworks_ai/glm-5p3",
"input_cost_per_token": 0.0000014,
"input_cost_per_token_priority": 0.00000175,
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"output_cost_per_token_priority": 0.0000055,
@@ -27548,11 +30167,11 @@
"fireworks_ai/glm-5p2-fast": {
"cache_read_input_token_cost": 2.1e-7,
"deprecation_date": "2026-09-25",
+ "successor_model": "fireworks_ai/glm-5p3-fast",
"input_cost_per_token": 0.0000021,
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000066,
"source": "https://docs.fireworks.ai/serverless/pricing",
@@ -27569,7 +30188,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000066,
"source": "https://docs.fireworks.ai/serverless/pricing",
@@ -27587,12 +30205,12 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"output_cost_per_token_priority": 0.0000055,
"source": "https://api.fireworks.ai/v1/serverless/models",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
@@ -27603,11 +30221,12 @@
"input_cost_per_token": 0.0000021,
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.0000066,
"source": "https://docs.fireworks.ai/serverless/pricing",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
@@ -27620,12 +30239,13 @@
"input_cost_per_token_priority": 1.875e-7,
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 5e-7,
"output_cost_per_token_priority": 6.25e-7,
"source": "https://api.fireworks.ai/v1/serverless/models",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_response_schema": true,
"supports_tool_choice": true,
"supports_vision": true
@@ -27633,16 +30253,18 @@
"fireworks_ai/glm-5p3-flash-us": {
"cache_read_input_token_cost": 4.5e-8,
"cache_read_input_token_cost_priority": 5.625e-8,
+ "deprecation_date": "2026-11-07",
"input_cost_per_token": 2.25e-7,
"input_cost_per_token_priority": 2.8125e-7,
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 7.5e-7,
"output_cost_per_token_priority": 9.375e-7,
"source": "https://docs.fireworks.ai/serverless/pricing",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_response_schema": true,
"supports_tool_choice": true,
"supports_vision": true
@@ -27655,12 +30277,12 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000066,
"output_cost_per_token_priority": 0.00000825,
"source": "https://docs.fireworks.ai/serverless/pricing",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
@@ -27669,16 +30291,16 @@
"fireworks_ai/gpt-oss-120b": {
"cache_read_input_token_cost": 1.5e-8,
"cache_read_input_token_cost_priority": 1.8e-8,
+ "deprecation_date": "2026-11-07",
"input_cost_per_token": 1.5e-7,
"input_cost_per_token_priority": 1.8e-7,
"litellm_provider": "fireworks_ai",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 6e-7,
"output_cost_per_token_priority": 7.2e-7,
- "source": "https://api.fireworks.ai/v1/serverless/models",
+ "source": "https://api.fireworks.ai/v1/serverless/models?format=nested",
"supports_function_calling": true,
"supports_reasoning": true,
"supports_response_schema": true,
@@ -27691,7 +30313,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 3e-7,
"source": "https://docs.fireworks.ai/serverless/pricing",
@@ -27707,7 +30328,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000003,
"source": "https://fireworks.ai/pricing",
@@ -27724,7 +30344,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000004,
"output_cost_per_token_priority": 0.000006,
@@ -27742,7 +30361,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000008,
"source": "https://docs.fireworks.ai/serverless/pricing",
@@ -27761,7 +30379,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000004,
"output_cost_per_token_priority": 0.000006,
@@ -27779,7 +30396,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000008,
"source": "https://docs.fireworks.ai/serverless/pricing",
@@ -27797,7 +30413,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000015,
"output_cost_per_token_priority": 0.00001875,
@@ -27808,6 +30423,7 @@
],
"source": "https://api.fireworks.ai/v1/serverless/models",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
@@ -27819,7 +30435,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000225,
"reasoning_effort_levels": [
@@ -27829,6 +30444,7 @@
],
"source": "https://docs.fireworks.ai/serverless/pricing",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
@@ -27842,7 +30458,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000225,
"output_cost_per_token_priority": 0.000028125,
@@ -27853,6 +30468,7 @@
],
"source": "https://docs.fireworks.ai/serverless/pricing",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
@@ -27864,7 +30480,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 196608,
"max_output_tokens": 204800,
- "max_tokens": 204800,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://fireworks.ai/models/fireworks/minimax-m2p1",
@@ -27880,7 +30495,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 512000,
"max_output_tokens": 512000,
- "max_tokens": 512000,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"output_cost_per_token_priority": 0.0000018,
@@ -27889,7 +30503,7 @@
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
- "supports_vision": false
+ "supports_vision": true
},
"fireworks_ai/muse-glimmer-30b": {
"cache_read_input_token_cost": 4e-8,
@@ -27900,7 +30514,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 131072,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"output_cost_per_token_priority": 0.00000225,
@@ -27914,17 +30527,18 @@
"fireworks_ai/nemotron-3-ultra-nvfp4": {
"cache_read_input_token_cost": 1.2e-7,
"cache_read_input_token_cost_priority": 1.5e-7,
+ "deprecation_date": "2026-11-07",
"input_cost_per_token": 6e-7,
"input_cost_per_token_priority": 7.5e-7,
"litellm_provider": "fireworks_ai",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.0000024,
"output_cost_per_token_priority": 0.000003,
- "source": "https://api.fireworks.ai/v1/serverless/models",
+ "source": "https://api.fireworks.ai/v1/serverless/models?format=nested",
"supports_function_calling": true,
+ "supports_mid_conversation_system": true,
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
@@ -27933,16 +30547,16 @@
"fireworks_ai/nemotron-lightning-3p5-30b-a3b": {
"cache_read_input_token_cost": 1e-8,
"cache_read_input_token_cost_priority": 1.25e-8,
+ "deprecation_date": "2026-11-07",
"input_cost_per_token": 5e-8,
"input_cost_per_token_priority": 6.25e-8,
"litellm_provider": "fireworks_ai",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 2e-7,
"output_cost_per_token_priority": 2.5e-7,
- "source": "https://docs.fireworks.ai/serverless/pricing",
+ "source": "https://api.fireworks.ai/v1/serverless/models?format=nested",
"supports_function_calling": true,
"supports_reasoning": true,
"supports_response_schema": true,
@@ -27955,7 +30569,6 @@
"litellm_provider": "fireworks_ai",
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.0000016,
"source": "https://api.fireworks.ai/v1/serverless/models",
@@ -27977,6 +30590,7 @@
"output_cost_per_token_priority": 0.000009,
"source": "https://api.fireworks.ai/v1/serverless/models",
"supports_function_calling": true,
+ "supports_mid_conversation_system": false,
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
@@ -27986,7 +30600,6 @@
"litellm_provider": "friendliai",
"max_input_tokens": 196608,
"max_output_tokens": 196608,
- "max_tokens": 196608,
"input_cost_per_token": 3e-7,
"output_cost_per_token": 0.0000012,
"cache_read_input_token_cost": 6e-8,
@@ -28010,7 +30623,6 @@
"litellm_provider": "friendliai",
"max_input_tokens": 163840,
"max_output_tokens": 163840,
- "max_tokens": 163840,
"input_cost_per_token": 5e-7,
"output_cost_per_token": 0.0000015,
"cache_read_input_token_cost": 2.5e-7,
@@ -28034,7 +30646,6 @@
"litellm_provider": "friendliai",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"input_cost_per_token": 1.4e-7,
"output_cost_per_token": 4e-7,
"supports_prompt_caching": false,
@@ -28057,7 +30668,6 @@
"litellm_provider": "friendliai",
"max_input_tokens": 202752,
"max_output_tokens": 202752,
- "max_tokens": 202752,
"input_cost_per_token": 0.0000014,
"output_cost_per_token": 0.0000044,
"cache_read_input_token_cost": 2.6e-7,
@@ -28081,7 +30691,6 @@
"litellm_provider": "friendliai",
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
- "max_tokens": 1048576,
"input_cost_per_token": 0.0000014,
"output_cost_per_token": 0.0000044,
"cache_read_input_token_cost": 2.6e-7,
@@ -28108,7 +30717,6 @@
"litellm_provider": "friendliai",
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
- "max_tokens": 1048576,
"input_cost_per_token": 0.00000126,
"output_cost_per_token": 0.00000396,
"cache_read_input_token_cost": 2.34e-7,
@@ -28136,7 +30744,6 @@
"litellm_provider": "friendliai",
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
- "max_tokens": 1048576,
"input_cost_per_token": 1.5e-7,
"output_cost_per_token": 5e-7,
"cache_read_input_token_cost": 3e-8,
@@ -28162,12 +30769,13 @@
},
"ft:gpt-3.5-turbo": {
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-terra",
"input_cost_per_token": 0.000003,
"input_cost_per_token_batches": 0.0000015,
"litellm_provider": "openai",
"max_input_tokens": 16385,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000006,
"output_cost_per_token_batches": 0.000003,
@@ -28177,11 +30785,12 @@
},
"ft:gpt-3.5-turbo-0125": {
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-terra",
"input_cost_per_token": 0.000003,
"litellm_provider": "openai",
"max_input_tokens": 16385,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000006,
"supports_system_messages": true,
@@ -28189,11 +30798,12 @@
},
"ft:gpt-3.5-turbo-0613": {
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "ft:gpt-3.5-turbo",
"input_cost_per_token": 0.000003,
"litellm_provider": "openai",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000006,
"supports_system_messages": true,
@@ -28201,11 +30811,12 @@
},
"ft:gpt-3.5-turbo-1106": {
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-terra",
"input_cost_per_token": 0.000003,
"litellm_provider": "openai",
"max_input_tokens": 16385,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000006,
"supports_system_messages": true,
@@ -28213,11 +30824,12 @@
},
"ft:gpt-4-0613": {
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-sol",
"input_cost_per_token": 0.00003,
"litellm_provider": "openai",
"max_input_tokens": 8192,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.00006,
"source": "OpenAI needs to add pricing for this ft model, will be updated when added by OpenAI. Defaulting to base model pricing",
@@ -28229,12 +30841,13 @@
"cache_read_input_token_cost": 7.5e-7,
"cache_read_input_token_cost_batches": 5e-7,
"deprecation_date": "2027-01-14",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-6-luna",
"input_cost_per_token": 0.000003,
"input_cost_per_token_batches": 0.0000015,
"litellm_provider": "openai",
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000012,
"output_cost_per_token_batches": 0.000006,
@@ -28250,12 +30863,13 @@
"cache_read_input_token_cost": 2e-7,
"cache_read_input_token_cost_batches": 1e-7,
"deprecation_date": "2027-01-14",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-6-luna",
"input_cost_per_token": 8e-7,
"input_cost_per_token_batches": 4e-7,
"litellm_provider": "openai",
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.0000032,
"output_cost_per_token_batches": 0.0000016,
@@ -28271,12 +30885,13 @@
"cache_read_input_token_cost": 5e-8,
"cache_read_input_token_cost_batches": 2.5e-8,
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-luna",
"input_cost_per_token": 2e-7,
"input_cost_per_token_batches": 1e-7,
"litellm_provider": "openai",
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 8e-7,
"output_cost_per_token_batches": 4e-7,
@@ -28292,12 +30907,13 @@
"cache_read_input_token_cost": 0.000001875,
"cache_read_input_token_cost_batches": 9e-7,
"deprecation_date": "2027-01-14",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-6-luna",
"input_cost_per_token": 0.00000375,
"input_cost_per_token_batches": 0.000002225,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.000015,
"output_cost_per_token_batches": 0.0000125,
@@ -28314,11 +30930,12 @@
"ft:gpt-4o-2024-11-20": {
"cache_creation_input_token_cost": 0.000001875,
"deprecation_date": "2027-01-14",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-6-luna",
"input_cost_per_token": 0.00000375,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_function_calling": true,
@@ -28333,12 +30950,13 @@
"cache_read_input_token_cost": 1.5e-7,
"cache_read_input_token_cost_batches": 7.5e-8,
"deprecation_date": "2027-01-14",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-6-luna",
"input_cost_per_token": 3e-7,
"input_cost_per_token_batches": 1.5e-7,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"output_cost_per_token_batches": 6e-7,
@@ -28355,12 +30973,13 @@
"cache_read_input_token_cost": 0.000001,
"cache_read_input_token_cost_batches": 5e-7,
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-terra",
"input_cost_per_token": 0.000004,
"input_cost_per_token_batches": 0.000002,
"litellm_provider": "openai",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.000016,
"output_cost_per_token_batches": 0.000008,
@@ -28378,7 +30997,6 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 128000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_above_200k_tokens": 0.000015,
@@ -28398,20 +31016,46 @@
},
"gemini-2.5-flash": {
"cache_read_input_audio_token_cost": 1e-7,
- "deprecation_date": "2026-10-20",
+ "deprecation_source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions",
+ "cache_read_input_audio_token_cost_priority": 1.8e-7,
"cache_read_input_token_cost": 3e-8,
"cache_read_input_token_cost_flex": 3e-8,
"cache_read_input_token_cost_priority": 5.4e-8,
+ "deprecation_date": "2026-10-20",
+ "google_maps_grounding_cost_per_query": 0.025,
"input_cost_per_audio_token": 0.000001,
+ "input_cost_per_audio_token_above_200k_tokens": 3e-7,
+ "input_cost_per_audio_token_above_200k_tokens_batches": 5e-7,
+ "input_cost_per_audio_token_above_200k_tokens_flex": 5e-7,
+ "input_cost_per_audio_token_above_200k_tokens_priority": 0.0000018,
+ "input_cost_per_audio_token_batches": 5e-7,
+ "input_cost_per_audio_token_flex": 5e-7,
+ "input_cost_per_audio_token_priority": 0.0000018,
"input_cost_per_token": 3e-7,
+ "input_cost_per_token_batches": 1.5e-7,
+ "input_cost_per_token_flex": 1.5e-7,
+ "input_cost_per_token_priority": 5.4e-7,
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 1048576,
"max_output_tokens": 65535,
- "max_tokens": 65535,
"mode": "chat",
"output_cost_per_reasoning_token": 0.0000025,
"output_cost_per_token": 0.0000025,
+ "output_cost_per_token_batches": 0.00000125,
+ "output_cost_per_token_flex": 0.00000125,
+ "output_cost_per_token_priority": 0.0000045,
+ "search_context_cost_per_query": {
+ "search_context_size_low": 0.035,
+ "search_context_size_medium": 0.035,
+ "search_context_size_high": 0.035
+ },
+ "search_free_requests": {
+ "count": 1500,
+ "period": "day",
+ "shared_group": "gemini-2-flash"
+ },
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
+ "successor_model": "gemini-3.8-flash",
"supported_endpoints": [
"/v1/chat/completions",
"/v1/completions",
@@ -28428,6 +31072,7 @@
],
"supports_audio_output": false,
"supports_function_calling": true,
+ "supports_image_size": false,
"supports_parallel_function_calling": true,
"supports_pdf_input": true,
"supports_prompt_caching": true,
@@ -28437,25 +31082,12 @@
"supports_tool_choice": true,
"supports_url_context": true,
"supports_vision": true,
- "supports_web_search": true,
- "search_context_cost_per_query": {
- "search_context_size_low": 0.035,
- "search_context_size_medium": 0.035,
- "search_context_size_high": 0.035
- },
- "google_maps_grounding_cost_per_query": 0.025,
- "input_cost_per_audio_token_batches": 5e-7,
- "input_cost_per_token_batches": 1.5e-7,
- "input_cost_per_token_flex": 1.5e-7,
- "input_cost_per_token_priority": 5.4e-7,
- "input_cost_per_audio_token_priority": 0.0000018,
- "output_cost_per_token_batches": 0.00000125,
- "output_cost_per_token_flex": 0.00000125,
- "output_cost_per_token_priority": 0.0000045,
- "supports_image_size": false
+ "supports_web_search": true
},
"gemini-2.5-flash-image": {
"deprecation_date": "2027-03-15",
+ "deprecation_source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions",
+ "successor_model": "gemini-3.1-flash-lite-image",
"input_cost_per_audio_token": 0.000001,
"input_cost_per_token": 3e-7,
"input_cost_per_token_batches": 1.5e-7,
@@ -28463,10 +31095,10 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "image_generation",
"output_cost_per_image": 0.039,
"output_cost_per_image_token": 0.00003,
+ "output_cost_per_image_token_batches": 0.000015,
"output_cost_per_reasoning_token": 0.0000025,
"output_cost_per_token": 0.0000025,
"output_cost_per_token_batches": 0.00000125,
@@ -28505,20 +31137,46 @@
},
"gemini-2.5-flash-lite": {
"cache_read_input_audio_token_cost": 3e-8,
- "deprecation_date": "2026-10-20",
+ "deprecation_source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions",
+ "cache_read_input_audio_token_cost_priority": 5.4e-8,
"cache_read_input_token_cost": 1e-8,
"cache_read_input_token_cost_flex": 1e-8,
"cache_read_input_token_cost_priority": 1.8e-8,
+ "deprecation_date": "2026-10-20",
+ "google_maps_grounding_cost_per_query": 0.025,
"input_cost_per_audio_token": 3e-7,
+ "input_cost_per_audio_token_above_200k_tokens": 3e-7,
+ "input_cost_per_audio_token_above_200k_tokens_batches": 5e-8,
+ "input_cost_per_audio_token_above_200k_tokens_flex": 5e-8,
+ "input_cost_per_audio_token_above_200k_tokens_priority": 5.4e-7,
+ "input_cost_per_audio_token_batches": 5e-8,
+ "input_cost_per_audio_token_flex": 5e-8,
+ "input_cost_per_audio_token_priority": 5.4e-7,
"input_cost_per_token": 1e-7,
+ "input_cost_per_token_batches": 5e-8,
+ "input_cost_per_token_flex": 5e-8,
+ "input_cost_per_token_priority": 1.8e-7,
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 1048576,
"max_output_tokens": 65535,
- "max_tokens": 65535,
"mode": "chat",
"output_cost_per_reasoning_token": 4e-7,
"output_cost_per_token": 4e-7,
+ "output_cost_per_token_batches": 2e-7,
+ "output_cost_per_token_flex": 2e-7,
+ "output_cost_per_token_priority": 7.2e-7,
+ "search_context_cost_per_query": {
+ "search_context_size_low": 0.035,
+ "search_context_size_medium": 0.035,
+ "search_context_size_high": 0.035
+ },
+ "search_free_requests": {
+ "count": 1500,
+ "period": "day",
+ "shared_group": "gemini-2-flash"
+ },
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
+ "successor_model": "gemini-3.8-flash",
"supported_endpoints": [
"/v1/chat/completions",
"/v1/completions",
@@ -28535,6 +31193,7 @@
],
"supports_audio_output": false,
"supports_function_calling": true,
+ "supports_image_size": false,
"supports_parallel_function_calling": true,
"supports_pdf_input": true,
"supports_prompt_caching": true,
@@ -28544,22 +31203,7 @@
"supports_tool_choice": true,
"supports_url_context": true,
"supports_vision": true,
- "supports_web_search": true,
- "search_context_cost_per_query": {
- "search_context_size_low": 0.035,
- "search_context_size_medium": 0.035,
- "search_context_size_high": 0.035
- },
- "google_maps_grounding_cost_per_query": 0.025,
- "input_cost_per_audio_token_batches": 5e-8,
- "input_cost_per_token_batches": 5e-8,
- "input_cost_per_token_flex": 5e-8,
- "input_cost_per_token_priority": 1.8e-7,
- "input_cost_per_audio_token_priority": 5.4e-7,
- "output_cost_per_token_batches": 2e-7,
- "output_cost_per_token_flex": 2e-7,
- "output_cost_per_token_priority": 7.2e-7,
- "supports_image_size": false
+ "supports_web_search": true
},
"gemini-2.5-flash-lite-preview-09-2025": {
"cache_read_input_token_cost": 1e-8,
@@ -28568,7 +31212,6 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 1048576,
"max_output_tokens": 65535,
- "max_tokens": 65535,
"mode": "chat",
"output_cost_per_reasoning_token": 4e-7,
"output_cost_per_token": 4e-7,
@@ -28604,6 +31247,11 @@
"search_context_size_medium": 0.035,
"search_context_size_high": 0.035
},
+ "search_free_requests": {
+ "count": 1500,
+ "period": "day",
+ "shared_group": "gemini-2-flash"
+ },
"google_maps_grounding_cost_per_query": 0.025,
"supports_image_size": false
},
@@ -28614,7 +31262,6 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 1048576,
"max_output_tokens": 65535,
- "max_tokens": 65535,
"mode": "chat",
"output_cost_per_reasoning_token": 0.0000025,
"output_cost_per_token": 0.0000025,
@@ -28650,11 +31297,18 @@
"search_context_size_medium": 0.035,
"search_context_size_high": 0.035
},
+ "search_free_requests": {
+ "count": 1500,
+ "period": "day",
+ "shared_group": "gemini-2-flash"
+ },
"google_maps_grounding_cost_per_query": 0.025,
"supports_image_size": false
},
"gemini-2.5-pro": {
"deprecation_date": "2026-10-20",
+ "deprecation_source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions",
+ "successor_model": "gemini-3.8-flash",
"cache_read_input_token_cost": 1.25e-7,
"cache_read_input_token_cost_above_200k_tokens": 2.5e-7,
"cache_creation_input_token_cost_above_200k_tokens": 2.5e-7,
@@ -28666,7 +31320,6 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 1048576,
"max_output_tokens": 65535,
- "max_tokens": 65535,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_above_200k_tokens": 0.000015,
@@ -28701,11 +31354,20 @@
"search_context_size_medium": 0.035,
"search_context_size_high": 0.035
},
+ "search_free_requests": {
+ "count": 10000,
+ "period": "day",
+ "shared_group": "gemini-2.5-pro"
+ },
"google_maps_grounding_cost_per_query": 0.025,
+ "input_cost_per_token_above_200k_tokens_batches": 0.00000125,
+ "input_cost_per_token_above_200k_tokens_flex": 0.00000125,
"input_cost_per_token_above_200k_tokens_priority": 0.0000045,
"input_cost_per_token_batches": 6.25e-7,
"input_cost_per_token_flex": 6.25e-7,
"input_cost_per_token_priority": 0.00000225,
+ "output_cost_per_token_above_200k_tokens_batches": 0.0000075,
+ "output_cost_per_token_above_200k_tokens_flex": 0.0000075,
"output_cost_per_token_above_200k_tokens_priority": 0.000027,
"output_cost_per_token_batches": 0.000005,
"output_cost_per_token_flex": 0.000005,
@@ -28719,7 +31381,6 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 1048576,
"max_output_tokens": 65535,
- "max_tokens": 65535,
"mode": "chat",
"output_cost_per_audio_token": 0.00002,
"output_cost_per_token": 0.00002,
@@ -28747,11 +31408,17 @@
},
"gemini-3-flash-preview": {
"cache_read_input_audio_token_cost": 1e-7,
+ "cache_read_input_audio_token_cost_priority": 1.8e-7,
"cache_read_input_token_cost": 5e-8,
"cache_read_input_token_cost_priority": 9e-8,
"google_maps_grounding_cost_per_query": 0.014,
"input_cost_per_audio_token": 0.000001,
+ "input_cost_per_audio_token_above_200k_tokens": 0.000001,
+ "input_cost_per_audio_token_above_200k_tokens_batches": 5e-7,
+ "input_cost_per_audio_token_above_200k_tokens_flex": 5e-7,
+ "input_cost_per_audio_token_above_200k_tokens_priority": 0.0000018,
"input_cost_per_audio_token_batches": 5e-7,
+ "input_cost_per_audio_token_flex": 5e-7,
"input_cost_per_audio_token_priority": 0.0000018,
"input_cost_per_token": 5e-7,
"input_cost_per_token_batches": 2.5e-7,
@@ -28760,7 +31427,6 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 1048576,
"max_output_tokens": 65535,
- "max_tokens": 65535,
"mode": "chat",
"output_cost_per_reasoning_token": 0.000003,
"output_cost_per_token": 0.000003,
@@ -28772,6 +31438,11 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
"supported_endpoints": [
"/v1/chat/completions",
@@ -28788,6 +31459,7 @@
"text"
],
"supports_audio_output": false,
+ "supports_computer_use": true,
"supports_function_calling": true,
"supports_native_streaming": true,
"supports_parallel_function_calling": true,
@@ -28804,12 +31476,13 @@
},
"gemini-3-pro-image": {
"cache_read_input_token_cost": 2e-7,
+ "cache_read_input_token_cost_batches": 1e-7,
"cache_read_input_token_cost_above_200k_tokens": 4e-7,
"cache_read_input_token_cost_above_200k_tokens_priority": 7.2e-7,
- "cache_read_input_token_cost_batches": 1e-7,
"cache_read_input_token_cost_flex": 1e-7,
"cache_read_input_token_cost_priority": 3.6e-7,
"deprecation_date": "2027-05-28",
+ "deprecation_source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions",
"input_cost_per_image": 0.0011,
"input_cost_per_token": 0.000002,
"input_cost_per_token_above_200k_tokens": 0.000004,
@@ -28820,10 +31493,11 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 65536,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "image_generation",
"output_cost_per_image": 0.134,
"output_cost_per_image_token": 0.00012,
+ "output_cost_per_image_token_batches": 0.00006,
+ "output_cost_per_image_token_priority": 0.000216,
"output_cost_per_token": 0.000012,
"output_cost_per_token_above_200k_tokens": 0.000018,
"output_cost_per_token_above_200k_tokens_priority": 0.0000324,
@@ -28856,6 +31530,11 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query"
},
"gemini-3-pro-image-preview": {
@@ -28873,16 +31552,17 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 65536,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "image_generation",
"output_cost_per_image": 0.134,
"output_cost_per_image_token": 0.00012,
+ "output_cost_per_image_token_batches": 0.00006,
+ "output_cost_per_image_token_priority": 0.000216,
"output_cost_per_token": 0.000012,
"output_cost_per_token_priority": 0.0000216,
"output_cost_per_token_above_200k_tokens": 0.000018,
"output_cost_per_token_above_200k_tokens_priority": 0.0000324,
"output_cost_per_token_batches": 0.000006,
- "source": "https://ai.google.dev/gemini-api/docs/pricing",
+ "source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
"supported_endpoints": [
"/v1/chat/completions",
"/v1/images/generations",
@@ -28908,6 +31588,11 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query"
},
"gemini-3.1-flash-image": {
@@ -28916,6 +31601,7 @@
"cache_read_input_token_cost_flex": 2.5e-8,
"cache_read_input_token_cost_priority": 9e-8,
"deprecation_date": "2027-05-28",
+ "deprecation_source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions",
"input_cost_per_image": 0.00056,
"input_cost_per_token": 5e-7,
"input_cost_per_token_batches": 2.5e-7,
@@ -28924,10 +31610,11 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 65536,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "image_generation",
"output_cost_per_image": 0.0672,
"output_cost_per_image_token": 0.00006,
+ "output_cost_per_image_token_batches": 0.00003,
+ "output_cost_per_image_token_priority": 0.000108,
"output_cost_per_token": 0.000003,
"output_cost_per_token_batches": 0.0000015,
"output_cost_per_token_flex": 0.0000015,
@@ -28958,6 +31645,11 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query"
},
"gemini-3.1-flash-image-preview": {
@@ -28969,13 +31661,14 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 65536,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "image_generation",
"output_cost_per_image": 0.0672,
"output_cost_per_image_token": 0.00006,
+ "output_cost_per_image_token_batches": 0.00003,
+ "output_cost_per_image_token_priority": 0.000108,
"output_cost_per_token": 0.000003,
"output_cost_per_token_batches": 0.0000015,
- "source": "https://cloud.google.com/vertex-ai/generative-ai/pricing#gemini-models",
+ "source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
"supported_endpoints": [
"/v1/chat/completions",
"/v1/images/generations",
@@ -29001,32 +31694,58 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query"
},
"gemini-3.1-flash-lite": {
"cache_read_input_audio_token_cost": 5e-8,
- "deprecation_date": "2027-05-07",
+ "deprecation_source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions",
+ "cache_read_input_audio_token_cost_batches": 2.5e-8,
+ "cache_read_input_audio_token_cost_flex": 2.5e-8,
+ "cache_read_input_audio_token_cost_priority": 9e-8,
"cache_read_input_token_cost": 2.5e-8,
"cache_read_input_token_cost_batches": 1.25e-8,
"cache_read_input_token_cost_flex": 1.25e-8,
"cache_read_input_token_cost_priority": 4.5e-8,
+ "deprecation_date": "2027-05-07",
+ "google_maps_grounding_cost_per_query": 0.014,
"input_cost_per_audio_token": 5e-7,
+ "input_cost_per_audio_token_above_200k_tokens": 5e-7,
+ "input_cost_per_audio_token_above_200k_tokens_batches": 2.5e-7,
+ "input_cost_per_audio_token_above_200k_tokens_flex": 2.5e-7,
+ "input_cost_per_audio_token_above_200k_tokens_priority": 9e-7,
+ "input_cost_per_audio_token_batches": 2.5e-7,
+ "input_cost_per_audio_token_flex": 2.5e-7,
+ "input_cost_per_audio_token_priority": 9e-7,
"input_cost_per_token": 2.5e-7,
"input_cost_per_token_batches": 1.25e-7,
"input_cost_per_token_flex": 1.25e-7,
"input_cost_per_token_priority": 4.5e-7,
- "input_cost_per_audio_token_priority": 9e-7,
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.0000015,
"output_cost_per_token": 0.0000015,
"output_cost_per_token_batches": 7.5e-7,
"output_cost_per_token_flex": 7.5e-7,
"output_cost_per_token_priority": 0.0000027,
+ "search_context_cost_per_query": {
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014,
+ "search_context_size_high": 0.014
+ },
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
+ "successor_model": "gemini-3.5-flash-lite",
"supported_endpoints": [
"/v1/chat/completions",
"/v1/completions",
@@ -29044,6 +31763,7 @@
"supports_audio_input": true,
"supports_audio_output": false,
"supports_function_calling": true,
+ "supports_native_streaming": true,
"supports_parallel_function_calling": true,
"supports_pdf_input": true,
"supports_prompt_caching": true,
@@ -29055,22 +31775,13 @@
"supports_video_input": true,
"supports_vision": true,
"supports_web_search": true,
- "supports_native_streaming": true,
- "search_context_cost_per_query": {
- "search_context_size_low": 0.014,
- "search_context_size_medium": 0.014,
- "search_context_size_high": 0.014
- },
- "web_search_billing_unit": "per_query",
- "google_maps_grounding_cost_per_query": 0.014,
- "input_cost_per_audio_token_batches": 2.5e-7
+ "web_search_billing_unit": "per_query"
},
"gemini-3.1-flash-lite-image": {
"cache_read_input_token_cost": 2.5e-8,
"cache_read_input_token_cost_batches": 1.25e-8,
"cache_read_input_token_cost_flex": 1.25e-8,
"cache_read_input_token_cost_priority": 4.5e-8,
- "deprecation_date": "2027-06-28",
"input_cost_per_image": 0.00028,
"input_cost_per_token": 2.5e-7,
"input_cost_per_token_batches": 1.25e-7,
@@ -29079,10 +31790,11 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 65536,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "image_generation",
"output_cost_per_image": 0.0336,
"output_cost_per_image_token": 0.00003,
+ "output_cost_per_image_token_batches": 0.000015,
+ "output_cost_per_image_token_priority": 0.000054,
"output_cost_per_token": 0.0000015,
"output_cost_per_token_batches": 7.5e-7,
"output_cost_per_token_flex": 7.5e-7,
@@ -29119,7 +31831,6 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.0000015,
"output_cost_per_token": 0.0000015,
@@ -29158,6 +31869,11 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
"google_maps_grounding_cost_per_query": 0.014
},
@@ -29170,6 +31886,8 @@
"google_maps_grounding_cost_per_query": 0.014,
"input_cost_per_token": 0.000002,
"input_cost_per_token_above_200k_tokens": 0.000004,
+ "input_cost_per_token_above_200k_tokens_batches": 0.000002,
+ "input_cost_per_token_above_200k_tokens_flex": 0.000002,
"input_cost_per_token_above_200k_tokens_priority": 0.0000072,
"input_cost_per_token_batches": 0.000001,
"input_cost_per_token_flex": 0.000001,
@@ -29177,11 +31895,12 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_image": 0.00012,
"output_cost_per_token": 0.000012,
"output_cost_per_token_above_200k_tokens": 0.000018,
+ "output_cost_per_token_above_200k_tokens_batches": 0.000009,
+ "output_cost_per_token_above_200k_tokens_flex": 0.000009,
"output_cost_per_token_above_200k_tokens_priority": 0.0000324,
"output_cost_per_token_batches": 0.000006,
"output_cost_per_token_flex": 0.000006,
@@ -29192,6 +31911,11 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
"supported_endpoints": [
"/v1/chat/completions",
@@ -29233,7 +31957,6 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.000012,
"output_cost_per_token_above_200k_tokens": 0.000018,
@@ -29272,12 +31995,19 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
"google_maps_grounding_cost_per_query": 0.014
},
"gemini-3.5-flash": {
"prompt_cache_min_tokens": 4096,
"deprecation_date": "2027-05-19",
+ "deprecation_source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions",
+ "successor_model": "gemini-3.8-flash",
"cache_read_input_token_cost": 1.5e-7,
"cache_read_input_token_cost_batches": 7.5e-8,
"input_cost_per_audio_token": 0.0000015,
@@ -29285,7 +32015,6 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 1048576,
"max_output_tokens": 65535,
- "max_tokens": 65535,
"mode": "chat",
"output_cost_per_reasoning_token": 0.000009,
"output_cost_per_token": 0.000009,
@@ -29306,6 +32035,7 @@
],
"supports_audio_output": false,
"supports_audio_input": true,
+ "supports_computer_use": true,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_pdf_input": true,
@@ -29328,6 +32058,11 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
"google_maps_grounding_cost_per_query": 0.014,
"input_cost_per_token_batches": 7.5e-7,
@@ -29338,6 +32073,7 @@
},
"gemini-3.5-flash-lite": {
"deprecation_date": "2027-07-21",
+ "deprecation_source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions",
"cache_read_input_token_cost": 3e-8,
"cache_read_input_token_cost_batches": 1.5e-8,
"cache_read_input_token_cost_flex": 1.5e-8,
@@ -29349,7 +32085,6 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.0000025,
"output_cost_per_token": 0.0000025,
@@ -29373,12 +32108,14 @@
],
"supports_audio_input": true,
"supports_audio_output": false,
+ "supports_computer_use": true,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_pdf_input": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
+ "supports_sampling_params": false,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_url_context": true,
@@ -29391,6 +32128,11 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
"google_maps_grounding_cost_per_query": 0.014
},
@@ -29405,7 +32147,6 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.00000375,
"output_cost_per_token": 0.00000375,
@@ -29428,12 +32169,14 @@
],
"supports_audio_output": false,
"supports_audio_input": true,
+ "supports_computer_use": true,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_pdf_input": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
+ "supports_sampling_params": false,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_url_context": true,
@@ -29445,11 +32188,18 @@
"output_cost_per_token_priority": 0.00000675,
"cache_read_input_token_cost_priority": 1.35e-7,
"deprecation_date": "2026-11-19",
+ "deprecation_source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions",
+ "successor_model": "gemini-3.8-flash",
"search_context_cost_per_query": {
"search_context_size_low": 0.014,
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
"google_maps_grounding_cost_per_query": 0.014
},
@@ -29464,7 +32214,6 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.00000375,
"output_cost_per_token": 0.00000375,
@@ -29487,6 +32236,7 @@
],
"supports_audio_output": false,
"supports_audio_input": true,
+ "supports_computer_use": true,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_pdf_input": true,
@@ -29494,6 +32244,7 @@
"supports_reasoning": true,
"supports_minimal_reasoning_effort": false,
"supports_response_schema": true,
+ "supports_sampling_params": false,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_url_context": true,
@@ -29505,32 +32256,51 @@
"output_cost_per_token_priority": 0.00000675,
"cache_read_input_token_cost_priority": 1.35e-7,
"deprecation_date": "2027-01-28",
+ "deprecation_source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions",
+ "successor_model": "gemini-3.8-flash",
"search_context_cost_per_query": {
"search_context_size_low": 0.014,
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
"google_maps_grounding_cost_per_query": 0.014
},
"gemini-3.8-flash": {
- "prompt_cache_min_tokens": 4096,
- "deprecation_date": "2027-09-02",
"cache_read_input_token_cost": 7.5e-8,
"cache_read_input_token_cost_batches": 3.75e-8,
"cache_read_input_token_cost_flex": 3.75e-8,
+ "cache_read_input_token_cost_priority": 1.35e-7,
+ "google_maps_grounding_cost_per_query": 0.014,
"input_cost_per_token": 7.5e-7,
"input_cost_per_token_batches": 3.75e-7,
"input_cost_per_token_flex": 3.75e-7,
+ "input_cost_per_token_priority": 0.00000135,
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.00000375,
"output_cost_per_token": 0.00000375,
"output_cost_per_token_batches": 0.000001875,
"output_cost_per_token_flex": 0.000001875,
+ "output_cost_per_token_priority": 0.00000675,
+ "prompt_cache_min_tokens": 4096,
+ "search_context_cost_per_query": {
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014,
+ "search_context_size_high": 0.014
+ },
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
"supported_endpoints": [
"/v1/chat/completions",
@@ -29546,32 +32316,25 @@
"supported_output_modalities": [
"text"
],
- "supports_audio_output": false,
"supports_audio_input": true,
+ "supports_audio_output": false,
+ "supports_computer_use": true,
"supports_function_calling": true,
+ "supports_minimal_reasoning_effort": false,
+ "supports_native_streaming": true,
"supports_parallel_function_calling": true,
"supports_pdf_input": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
- "supports_minimal_reasoning_effort": false,
"supports_response_schema": true,
+ "supports_sampling_params": false,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_url_context": true,
"supports_video_input": true,
"supports_vision": true,
"supports_web_search": true,
- "supports_native_streaming": true,
- "input_cost_per_token_priority": 0.00000135,
- "output_cost_per_token_priority": 0.00000675,
- "cache_read_input_token_cost_priority": 1.35e-7,
- "search_context_cost_per_query": {
- "search_context_size_low": 0.014,
- "search_context_size_medium": 0.014,
- "search_context_size_high": 0.014
- },
- "web_search_billing_unit": "per_query",
- "google_maps_grounding_cost_per_query": 0.014
+ "web_search_billing_unit": "per_query"
},
"gemini-3.8-flash-cyber": {
"cache_read_input_token_cost": 1.5e-7,
@@ -29585,7 +32348,6 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.0000075,
"output_cost_per_token": 0.0000075,
@@ -29614,6 +32376,7 @@
"supports_reasoning": true,
"supports_minimal_reasoning_effort": false,
"supports_response_schema": true,
+ "supports_sampling_params": false,
"supports_system_messages": true,
"supports_tool_choice": false,
"supports_url_context": false,
@@ -29629,7 +32392,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65535,
- "max_tokens": 65535,
"mode": "chat",
"output_cost_per_reasoning_token": 0.0000025,
"output_cost_per_token": 0.0000025,
@@ -29674,7 +32436,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.00000375,
"output_cost_per_token": 0.00000375,
@@ -29733,7 +32494,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.0000025,
"output_cost_per_token": 0.0000025,
@@ -29788,23 +32548,21 @@
"gemini-nano-banana-2.1": {
"cache_read_input_token_cost": 1.5e-7,
"cache_read_input_token_cost_batches": 7.5e-8,
- "cache_read_input_token_cost_flex": 7.5e-8,
"cache_read_input_token_cost_priority": 2.7e-7,
"input_cost_per_image": 0.00168,
"input_cost_per_token": 0.0000015,
"input_cost_per_token_batches": 7.5e-7,
- "input_cost_per_token_flex": 7.5e-7,
"input_cost_per_token_priority": 0.0000027,
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "image_generation",
"output_cost_per_image": 0.0336,
"output_cost_per_image_token": 0.00003,
+ "output_cost_per_image_token_batches": 0.000015,
+ "output_cost_per_image_token_priority": 0.000054,
"output_cost_per_token": 0.0000075,
"output_cost_per_token_batches": 0.00000375,
- "output_cost_per_token_flex": 0.00000375,
"output_cost_per_token_priority": 0.0000135,
"search_context_cost_per_query": {
"search_context_size_low": 0.014,
@@ -29842,14 +32600,13 @@
"input_cost_per_audio_token": 0.0000015,
"input_cost_per_token": 0.0000015,
"litellm_provider": "vertex_ai-language-models",
- "max_input_tokens": 1048576,
- "max_output_tokens": 65535,
- "max_tokens": 65535,
+ "max_input_tokens": 131072,
+ "max_output_tokens": 57920,
"mode": "chat",
"output_cost_per_reasoning_token": 0.000009,
"output_cost_per_token": 0.000009,
"output_cost_per_video_token": 0.0000175,
- "source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
+ "source": "https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/gemini/omni-flash-preview",
"supported_endpoints": [
"/v1/chat/completions"
],
@@ -29867,7 +32624,8 @@
"supports_reasoning": true,
"supports_system_messages": true,
"supports_video_input": true,
- "supports_vision": true
+ "supports_vision": true,
+ "deprecation_date": "2026-11-06"
},
"gemini-pro-latest": {
"cache_read_input_token_cost": 2e-7,
@@ -29877,7 +32635,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.000012,
"output_cost_per_token_above_200k_tokens": 0.000018,
@@ -29938,7 +32695,6 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 1048576,
"max_output_tokens": 65535,
- "max_tokens": 65535,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_reasoning_token": 0.0000025,
@@ -29969,18 +32725,14 @@
},
"gemini-robotics-er-2-preview": {
"cache_read_input_token_cost": 1e-7,
- "cache_read_input_token_cost_batches": 5e-8,
"input_cost_per_audio_token": 0.000001,
"input_cost_per_token": 0.000001,
- "input_cost_per_token_batches": 5e-7,
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 131072,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.000005,
"output_cost_per_token": 0.000005,
- "output_cost_per_token_batches": 0.0000025,
"search_context_cost_per_query": {
"search_context_size_low": 0.014,
"search_context_size_medium": 0.014,
@@ -29989,8 +32741,7 @@
"source": "https://ai.google.dev/gemini-api/docs/pricing",
"supported_endpoints": [
"/v1/chat/completions",
- "/v1/completions",
- "/v1/batch"
+ "/v1/completions"
],
"supported_modalities": [
"text",
@@ -30003,6 +32754,7 @@
],
"supports_audio_input": true,
"supports_audio_output": false,
+ "supports_computer_use": true,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_pdf_input": true,
@@ -30023,7 +32775,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.000012,
"rpm": 1000,
@@ -30060,7 +32811,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.000012,
"rpm": 1000,
@@ -30093,13 +32843,14 @@
},
"gemini/deep-research-pro-preview-12-2025": {
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://ai.google.dev/gemini-api/docs/deprecations",
+ "successor_model": "gemini/deep-research-preview-04-2026",
"input_cost_per_image": 0.0011,
"input_cost_per_token": 0.000002,
"input_cost_per_token_batches": 0.000001,
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.000012,
"output_cost_per_token_batches": 0.000006,
@@ -30135,12 +32886,13 @@
},
"gemini/gemini-2.5-computer-use-preview-10-2025": {
"deprecation_date": "2026-07-28",
+ "deprecation_source": "https://ai.google.dev/gemini-api/docs/deprecations",
+ "successor_model": "gemini/gemini-3.8-flash",
"input_cost_per_token": 0.00000125,
"input_cost_per_token_above_200k_tokens": 0.0000025,
"litellm_provider": "gemini",
"max_input_tokens": 128000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_above_200k_tokens": 0.000015,
@@ -30166,16 +32918,22 @@
},
"gemini/gemini-2.5-flash": {
"cache_read_input_audio_token_cost": 1e-7,
+ "cache_read_input_audio_token_cost_batches": 1e-7,
+ "cache_read_input_audio_token_cost_flex": 1e-7,
+ "cache_read_input_audio_token_cost_priority": 1.8e-7,
"cache_read_input_token_cost": 3e-8,
"cache_read_input_token_cost_batches": 3e-8,
"cache_read_input_token_cost_flex": 3e-8,
"cache_read_input_token_cost_priority": 5.4e-8,
+ "deprecation_date": "2026-12-01",
+ "deprecation_source": "https://ai.google.dev/gemini-api/docs/deprecations",
+ "successor_model": "gemini/gemini-3-flash-preview",
"input_cost_per_audio_token": 0.000001,
+ "input_cost_per_audio_token_flex": 5e-7,
"input_cost_per_token": 3e-7,
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.0000025,
"output_cost_per_token": 0.0000025,
@@ -30213,6 +32971,11 @@
"search_context_size_medium": 0.035,
"search_context_size_high": 0.035
},
+ "search_free_requests": {
+ "count": 1500,
+ "period": "day",
+ "shared_group": "gemini-2-flash"
+ },
"google_maps_grounding_cost_per_query": 0.025,
"input_cost_per_audio_token_batches": 5e-7,
"input_cost_per_audio_token_priority": 0.0000018,
@@ -30228,6 +32991,8 @@
"gemini/gemini-2.5-flash-image": {
"cache_read_input_token_cost": 3e-8,
"deprecation_date": "2027-03-15",
+ "deprecation_source": "https://ai.google.dev/gemini-api/docs/deprecations",
+ "successor_model": "gemini/gemini-3.1-flash-lite-image",
"input_cost_per_audio_token": 0.000001,
"input_cost_per_token": 3e-7,
"input_cost_per_token_batches": 1.5e-7,
@@ -30237,12 +33002,14 @@
"supports_reasoning": false,
"max_input_tokens": 65536,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "image_generation",
"output_cost_per_image": 0.039,
"output_cost_per_image_token": 0.00003,
"output_cost_per_reasoning_token": 0.0000025,
"output_cost_per_token": 0.0000025,
+ "output_cost_per_token_batches": 0.00000125,
+ "output_cost_per_token_flex": 0.00000125,
+ "output_cost_per_token_priority": 0.0000045,
"rpm": 100000,
"source": "https://ai.google.dev/gemini-api/docs/pricing",
"supported_endpoints": [
@@ -30282,16 +33049,19 @@
},
"gemini/gemini-2.5-flash-lite": {
"cache_read_input_audio_token_cost": 3e-8,
+ "cache_read_input_audio_token_cost_batches": 3e-8,
+ "cache_read_input_audio_token_cost_flex": 3e-8,
+ "cache_read_input_audio_token_cost_priority": 5.4e-8,
"cache_read_input_token_cost": 1e-8,
"cache_read_input_token_cost_batches": 1e-8,
"cache_read_input_token_cost_flex": 1e-8,
"cache_read_input_token_cost_priority": 1.8e-8,
"input_cost_per_audio_token": 3e-7,
+ "input_cost_per_audio_token_flex": 1.5e-7,
"input_cost_per_token": 1e-7,
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 4e-7,
"output_cost_per_token": 4e-7,
@@ -30329,6 +33099,11 @@
"search_context_size_medium": 0.035,
"search_context_size_high": 0.035
},
+ "search_free_requests": {
+ "count": 1500,
+ "period": "day",
+ "shared_group": "gemini-2-flash"
+ },
"google_maps_grounding_cost_per_query": 0.025,
"input_cost_per_audio_token_batches": 1.5e-7,
"input_cost_per_audio_token_priority": 5.4e-7,
@@ -30355,7 +33130,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_above_200k_tokens": 0.000015,
@@ -30394,23 +33168,35 @@
"search_context_size_medium": 0.035,
"search_context_size_high": 0.035
},
+ "search_free_requests": {
+ "count": 10000,
+ "period": "day",
+ "shared_group": "gemini-2.5-pro"
+ },
"google_maps_grounding_cost_per_query": 0.025,
"input_cost_per_token_batches": 6.25e-7,
"input_cost_per_token_flex": 6.25e-7,
"output_cost_per_token_batches": 0.000005,
"output_cost_per_token_flex": 0.000005,
- "supports_url_context": true
+ "supports_url_context": true,
+ "cache_read_input_token_cost_above_200k_tokens_batches": 2.5e-7,
+ "deprecation_date": "2026-12-01",
+ "deprecation_source": "https://ai.google.dev/gemini-api/docs/deprecations",
+ "successor_model": "gemini/gemini-3.1-pro-preview",
+ "input_cost_per_token_above_200k_tokens_batches": 0.00000125,
+ "output_cost_per_token_above_200k_tokens_batches": 0.0000075
},
"gemini/gemini-2.5-pro-preview-tts": {
"cache_read_input_token_cost": 1.25e-7,
"deprecation_date": "2026-11-17",
+ "deprecation_source": "https://ai.google.dev/gemini-api/docs/deprecations",
+ "successor_model": "gemini/gemini-3.8-flash-tts",
"input_cost_per_audio_token": 7e-7,
"input_cost_per_token": 0.000001,
"input_cost_per_token_batches": 5e-7,
"litellm_provider": "gemini",
"max_input_tokens": 8192,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_audio_token": 0.00002,
"output_cost_per_token": 0.00002,
@@ -30441,15 +33227,18 @@
},
"gemini/gemini-3-flash-preview": {
"cache_read_input_audio_token_cost": 1e-7,
+ "cache_read_input_audio_token_cost_batches": 1e-7,
+ "cache_read_input_audio_token_cost_flex": 1e-7,
+ "cache_read_input_audio_token_cost_priority": 1.8e-7,
"cache_read_input_token_cost": 5e-8,
"cache_read_input_token_cost_batches": 5e-8,
"cache_read_input_token_cost_flex": 5e-8,
"input_cost_per_audio_token": 0.000001,
+ "input_cost_per_audio_token_flex": 5e-7,
"input_cost_per_token": 5e-7,
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.000003,
"output_cost_per_token": 0.000003,
@@ -30492,6 +33281,11 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
"google_maps_grounding_cost_per_query": 0.014,
"input_cost_per_audio_token_batches": 5e-7,
@@ -30499,7 +33293,8 @@
"input_cost_per_token_flex": 2.5e-7,
"output_cost_per_token_batches": 0.0000015,
"output_cost_per_token_flex": 0.0000015,
- "supports_audio_input": true
+ "supports_audio_input": true,
+ "supports_computer_use": true
},
"gemini/gemini-3-pro-image": {
"input_cost_per_image": 0.0011,
@@ -30510,7 +33305,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 65536,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "image_generation",
"output_cost_per_image": 0.134,
"output_cost_per_image_token": 0.00012,
@@ -30546,11 +33340,18 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
"supports_reasoning": true
},
"gemini/gemini-3-pro-image-preview": {
"deprecation_date": "2026-06-25",
+ "deprecation_source": "https://ai.google.dev/gemini-api/docs/deprecations",
+ "successor_model": "gemini/gemini-3-pro-image",
"input_cost_per_image": 0.0011,
"input_cost_per_token": 0.000002,
"input_cost_per_token_batches": 0.000001,
@@ -30559,7 +33360,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "image_generation",
"output_cost_per_image": 0.134,
"output_cost_per_image_token": 0.00012,
@@ -30594,6 +33394,11 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
"supports_reasoning": false
},
@@ -30603,7 +33408,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "image_generation",
"output_cost_per_image": 0.045,
"output_cost_per_image_token": 0.00006,
@@ -30616,6 +33420,11 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"source": "https://ai.google.dev/gemini-api/docs/pricing",
"supported_endpoints": [
"/v1/chat/completions",
@@ -30643,12 +33452,13 @@
},
"gemini/gemini-3.1-flash-image-preview": {
"deprecation_date": "2026-06-25",
+ "deprecation_source": "https://ai.google.dev/gemini-api/docs/deprecations",
+ "successor_model": "gemini/gemini-nano-banana-2.1",
"input_cost_per_token": 5e-7,
"input_cost_per_token_batches": 2.5e-7,
"litellm_provider": "gemini",
"max_input_tokens": 65536,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "image_generation",
"output_cost_per_image": 0.045,
"output_cost_per_image_token": 0.00006,
@@ -30682,16 +33492,27 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query"
},
"gemini/gemini-3.1-flash-lite": {
"cache_read_input_audio_token_cost": 5e-8,
+ "cache_read_input_audio_token_cost_batches": 2.5e-8,
+ "cache_read_input_audio_token_cost_flex": 2.5e-8,
+ "cache_read_input_audio_token_cost_priority": 9e-8,
"cache_read_input_token_cost": 2.5e-8,
"cache_read_input_token_cost_batches": 1.25e-8,
"cache_read_input_token_cost_flex": 1.25e-8,
"cache_read_input_token_cost_priority": 4.5e-8,
"deprecation_date": "2027-05-07",
+ "deprecation_source": "https://ai.google.dev/gemini-api/docs/deprecations",
+ "successor_model": "gemini/gemini-3.5-flash-lite",
"input_cost_per_audio_token": 5e-7,
+ "input_cost_per_audio_token_flex": 2.5e-7,
"input_cost_per_token": 2.5e-7,
"input_cost_per_token_batches": 1.25e-7,
"input_cost_per_token_flex": 1.25e-7,
@@ -30699,7 +33520,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.0000015,
"output_cost_per_token": 0.0000015,
@@ -30743,6 +33563,11 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
"google_maps_grounding_cost_per_query": 0.014,
"input_cost_per_audio_token_batches": 2.5e-7,
@@ -30755,10 +33580,10 @@
"litellm_provider": "gemini",
"max_input_tokens": 65536,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "image_generation",
"output_cost_per_image": 0.0336,
"output_cost_per_image_token": 0.00003,
+ "output_cost_per_image_token_batches": 0.000015,
"output_cost_per_token": 0.0000015,
"output_cost_per_token_batches": 7.5e-7,
"rpm": 1000,
@@ -30793,6 +33618,8 @@
"cache_read_input_token_cost_flex": 1.25e-8,
"cache_read_input_token_cost_priority": 4.5e-8,
"deprecation_date": "2026-05-25",
+ "deprecation_source": "https://ai.google.dev/gemini-api/docs/deprecations",
+ "successor_model": "gemini/gemini-3.1-flash-lite",
"input_cost_per_audio_token": 5e-7,
"input_cost_per_token": 2.5e-7,
"input_cost_per_token_batches": 1.25e-7,
@@ -30801,7 +33628,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.0000015,
"output_cost_per_token": 0.0000015,
@@ -30845,6 +33671,11 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
"google_maps_grounding_cost_per_query": 0.014,
"input_cost_per_audio_token_batches": 2.5e-7
@@ -30859,7 +33690,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.000012,
"output_cost_per_token_above_200k_tokens": 0.000018,
@@ -30907,10 +33737,18 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
"google_maps_grounding_cost_per_query": 0.014,
"input_cost_per_token_flex": 0.000001,
- "output_cost_per_token_flex": 0.000006
+ "output_cost_per_token_flex": 0.000006,
+ "cache_read_input_token_cost_above_200k_tokens_batches": 4e-7,
+ "input_cost_per_token_above_200k_tokens_batches": 0.000002,
+ "output_cost_per_token_above_200k_tokens_batches": 0.000009
},
"gemini/gemini-3.1-pro-preview-customtools": {
"prompt_cache_min_tokens": 4096,
@@ -30922,7 +33760,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.000012,
"output_cost_per_token_above_200k_tokens": 0.000018,
@@ -30970,10 +33807,18 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
"google_maps_grounding_cost_per_query": 0.014,
"input_cost_per_token_flex": 0.000001,
- "output_cost_per_token_flex": 0.000006
+ "output_cost_per_token_flex": 0.000006,
+ "cache_read_input_token_cost_above_200k_tokens_batches": 4e-7,
+ "input_cost_per_token_above_200k_tokens_batches": 0.000002,
+ "output_cost_per_token_above_200k_tokens_batches": 0.000009
},
"gemini/gemini-3.5-flash": {
"prompt_cache_min_tokens": 4096,
@@ -30984,7 +33829,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.000009,
"output_cost_per_token": 0.000009,
@@ -31029,6 +33873,11 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
"google_maps_grounding_cost_per_query": 0.014,
"input_cost_per_token_batches": 7.5e-7,
@@ -31039,7 +33888,7 @@
},
"gemini/gemini-3.5-flash-lite": {
"cache_read_input_token_cost": 3e-8,
- "cache_read_input_token_cost_batches": 2e-8,
+ "cache_read_input_token_cost_batches": 1.5e-8,
"cache_read_input_token_cost_flex": 2e-8,
"cache_read_input_token_cost_priority": 5e-8,
"input_cost_per_token": 3e-7,
@@ -31049,7 +33898,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.0000025,
"output_cost_per_token": 0.0000025,
@@ -31080,6 +33928,7 @@
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
+ "supports_sampling_params": false,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_url_context": true,
@@ -31093,8 +33942,14 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
- "google_maps_grounding_cost_per_query": 0.014
+ "google_maps_grounding_cost_per_query": 0.014,
+ "supports_computer_use": true
},
"gemini/gemini-3.6-flash": {
"prompt_cache_min_tokens": 4096,
@@ -31107,7 +33962,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.00000375,
"output_cost_per_token": 0.00000375,
@@ -31137,6 +33991,7 @@
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
+ "supports_sampling_params": false,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_url_context": true,
@@ -31153,6 +34008,11 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
"google_maps_grounding_cost_per_query": 0.014
},
@@ -31167,7 +34027,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.00000375,
"output_cost_per_token": 0.00000375,
@@ -31198,6 +34057,7 @@
"supports_reasoning": true,
"supports_minimal_reasoning_effort": false,
"supports_response_schema": true,
+ "supports_sampling_params": false,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_url_context": true,
@@ -31214,6 +34074,11 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
"google_maps_grounding_cost_per_query": 0.014
},
@@ -31228,7 +34093,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.00000375,
"output_cost_per_token": 0.00000375,
@@ -31259,6 +34123,7 @@
"supports_reasoning": true,
"supports_minimal_reasoning_effort": false,
"supports_response_schema": true,
+ "supports_sampling_params": false,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_url_context": true,
@@ -31275,8 +34140,14 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
- "google_maps_grounding_cost_per_query": 0.014
+ "google_maps_grounding_cost_per_query": 0.014,
+ "supports_computer_use": true
},
"gemini/gemini-4-argon": {
"cache_read_input_token_cost": 1e-7,
@@ -31291,7 +34162,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
- "max_tokens": 1048576,
"mode": "chat",
"output_cost_per_reasoning_token": 0.00001,
"output_cost_per_token": 0.00001,
@@ -31321,6 +34191,8 @@
],
"supports_audio_input": true,
"supports_audio_output": false,
+ "supports_computer_use": true,
+ "supports_continuation": true,
"supports_function_calling": true,
"supports_minimal_reasoning_effort": false,
"supports_native_streaming": true,
@@ -31344,7 +34216,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"metadata": {
"notes": "Rate limits not documented for gemini-exp-1114. Assuming same as gemini-1.5-pro.",
"supports_tool_choice": true
@@ -31367,7 +34238,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 2097152,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"metadata": {
"notes": "Rate limits not documented for gemini-exp-1206. Assuming same as gemini-1.5-pro.",
"supports_tool_choice": true
@@ -31390,7 +34260,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.00000375,
"output_cost_per_token": 0.00000375,
@@ -31449,7 +34318,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.0000025,
"output_cost_per_token": 0.0000025,
@@ -31505,7 +34373,7 @@
"input_cost_per_token": 3.5e-7,
"litellm_provider": "gemini",
"max_output_tokens": 8192,
- "max_tokens": 8192,
+ "max_input_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000105,
"source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#foundation_models",
@@ -31519,7 +34387,7 @@
"input_cost_per_token": 3.5e-7,
"litellm_provider": "gemini",
"max_output_tokens": 8192,
- "max_tokens": 8192,
+ "max_input_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000105,
"source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#foundation_models",
@@ -31535,10 +34403,10 @@
"litellm_provider": "gemini",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "image_generation",
"output_cost_per_image": 0.0336,
"output_cost_per_image_token": 0.00003,
+ "output_cost_per_image_token_batches": 0.000015,
"output_cost_per_token": 0.0000075,
"output_cost_per_token_batches": 0.00000375,
"rpm": 1000,
@@ -31579,7 +34447,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.000009,
"output_cost_per_token": 0.000009,
@@ -31612,7 +34479,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 131072,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.000009,
"output_cost_per_token": 0.000009,
@@ -31638,7 +34504,9 @@
"supports_video_input": true,
"supports_vision": true,
"tpm": 800000,
- "deprecation_date": "2026-10-22"
+ "deprecation_date": "2026-10-22",
+ "deprecation_source": "https://ai.google.dev/gemini-api/docs/deprecations",
+ "successor_model": "gemini/gemini-omni-1.1-flash"
},
"gemini/gemini-pro-latest": {
"cache_read_input_token_cost": 2e-7,
@@ -31648,7 +34516,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.000012,
"output_cost_per_token_above_200k_tokens": 0.000018,
@@ -31711,7 +34578,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 131072,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.000005,
"output_cost_per_token": 0.000005,
@@ -31758,7 +34624,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 131072,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.000005,
"search_context_cost_per_query": {
@@ -31801,7 +34666,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 131072,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_character": 0,
"output_cost_per_character_above_128k_tokens": 0,
@@ -31821,7 +34685,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"supports_function_calling": true,
"supports_reasoning": true,
@@ -31837,7 +34700,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"supports_function_calling": true,
"supports_reasoning": true,
@@ -31861,7 +34723,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 32767,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_character": 0,
"output_cost_per_character_above_128k_tokens": 0,
@@ -31880,7 +34741,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 131072,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_image": 0.04,
"output_cost_per_token": 0,
@@ -31905,7 +34765,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 131072,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://ai.google.dev/gemini-api/docs/pricing",
@@ -31930,7 +34789,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 131072,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://ai.google.dev/gemini-api/docs/pricing",
@@ -31955,7 +34813,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 131072,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_image": 0.04,
"output_cost_per_token": 0,
@@ -31980,7 +34837,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 131072,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://ai.google.dev/gemini-api/docs/pricing",
@@ -32005,7 +34861,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://ai.google.dev/gemini-api/docs/models/lyria-realtime-exp",
@@ -32034,7 +34889,6 @@
"litellm_provider": "gemini",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "image_generation",
"output_cost_per_image": 0.134,
"output_cost_per_image_token": 0.00012,
@@ -32076,7 +34930,6 @@
"litellm_provider": "gigachat",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0,
"supports_function_calling": true,
@@ -32098,7 +34951,6 @@
"litellm_provider": "gigachat",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0,
"supports_function_calling": true,
@@ -32110,7 +34962,6 @@
"litellm_provider": "gigachat",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0,
"supports_function_calling": true,
@@ -32124,7 +34975,6 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.00005,
"source": "https://raw.githubusercontent.com/github/docs/main/data/tables/copilot/models-and-pricing.yml",
@@ -32147,7 +34997,6 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.00005,
"source": "https://raw.githubusercontent.com/github/docs/main/data/tables/copilot/models-and-pricing.yml",
@@ -32170,7 +35019,6 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 128000,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 0.000005,
"supported_endpoints": [
@@ -32191,7 +35039,6 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 128000,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 5e-7,
"output_cost_per_token_above_100k_tokens": 0.0000025,
@@ -32210,9 +35057,9 @@
},
"github_copilot/claude-opus-4.7": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 16000,
- "max_tokens": 16000,
+ "max_input_tokens": 200000,
+ "max_output_tokens": 64000,
+ "max_tokens": 64000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -32225,11 +35072,11 @@
"github_copilot/claude-opus-4.8": {
"cache_creation_input_token_cost": 0.00000625,
"cache_read_input_token_cost": 5e-7,
+ "deprecation_date": "2026-11-16",
"input_cost_per_token": 0.000005,
"litellm_provider": "github_copilot",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"source": "https://raw.githubusercontent.com/github/docs/main/data/tables/copilot/models-and-pricing.yml",
@@ -32247,11 +35094,11 @@
"github_copilot/claude-opus-4.8-fast": {
"cache_creation_input_token_cost": 0.0000125,
"cache_read_input_token_cost": 0.000001,
+ "deprecation_date": "2026-11-16",
"input_cost_per_token": 0.00001,
"litellm_provider": "github_copilot",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.00005,
"source": "https://raw.githubusercontent.com/github/docs/main/data/tables/copilot/models-and-pricing.yml",
@@ -32274,7 +35121,6 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"source": "https://raw.githubusercontent.com/github/docs/main/data/tables/copilot/models-and-pricing.yml",
@@ -32296,7 +35142,6 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 200000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00002,
"source": "https://raw.githubusercontent.com/github/docs/main/data/tables/copilot/models-and-pricing.yml",
@@ -32320,7 +35165,6 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"source": "https://raw.githubusercontent.com/github/docs/main/data/tables/copilot/models-and-pricing.yml",
@@ -32343,7 +35187,6 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"source": "https://raw.githubusercontent.com/github/docs/main/data/tables/copilot/models-and-pricing.yml",
@@ -32365,7 +35208,6 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 200000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"source": "https://raw.githubusercontent.com/github/docs/main/data/tables/copilot/models-and-pricing.yml",
@@ -32405,11 +35247,11 @@
},
"github_copilot/gemini-3.7-flash": {
"cache_read_input_token_cost": 7.5e-8,
+ "deprecation_date": "2026-10-19",
"input_cost_per_token": 7.5e-7,
"litellm_provider": "github_copilot",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.00000375,
"source": "https://raw.githubusercontent.com/github/docs/main/data/tables/copilot/models-and-pricing.yml",
@@ -32419,6 +35261,7 @@
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_reasoning": true,
+ "supports_sampling_params": false,
"supports_vision": true
},
"github_copilot/gemini-3.8-flash": {
@@ -32427,7 +35270,6 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 200000,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.00000375,
"source": "https://raw.githubusercontent.com/github/docs/main/data/tables/copilot/models-and-pricing.yml",
@@ -32437,6 +35279,7 @@
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_reasoning": true,
+ "supports_sampling_params": false,
"supports_vision": true
},
"github_copilot/gemini-4-argon": {
@@ -32445,7 +35288,6 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 200000,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.00001,
"source": "https://raw.githubusercontent.com/github/docs/main/data/tables/copilot/models-and-pricing.yml",
@@ -32461,7 +35303,6 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 16384,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"supports_function_calling": true
},
@@ -32469,7 +35310,6 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 16384,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"supports_function_calling": true
},
@@ -32477,7 +35317,6 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 32768,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"supports_function_calling": true
},
@@ -32485,7 +35324,6 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 32768,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"supports_function_calling": true
},
@@ -32493,28 +35331,31 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 64000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"supports_function_calling": true,
"supports_parallel_function_calling": true
},
"github_copilot/gpt-4.1": {
+ "deprecation_date": "2026-06-01",
+ "deprecation_source": "https://raw.githubusercontent.com/github/docs/main/data/tables/copilot/model-deprecation-history.yml",
"litellm_provider": "github_copilot",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
+ "source": "https://raw.githubusercontent.com/github/docs/main/data/tables/copilot/model-deprecation-history.yml",
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_response_schema": true,
"supports_vision": true
},
"github_copilot/gpt-4.1-2025-04-14": {
+ "deprecation_date": "2026-06-01",
+ "deprecation_source": "https://raw.githubusercontent.com/github/docs/main/data/tables/copilot/model-deprecation-history.yml",
"litellm_provider": "github_copilot",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
+ "source": "https://raw.githubusercontent.com/github/docs/main/data/tables/copilot/model-deprecation-history.yml",
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_response_schema": true,
@@ -32524,7 +35365,6 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 64000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"supports_function_calling": true,
"supports_parallel_function_calling": true,
@@ -32534,7 +35374,6 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 64000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"supports_function_calling": true,
"supports_parallel_function_calling": true,
@@ -32544,7 +35383,6 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 64000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"supports_function_calling": true,
"supports_parallel_function_calling": true
@@ -32553,7 +35391,6 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 64000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"supports_function_calling": true,
"supports_parallel_function_calling": true,
@@ -32563,7 +35400,6 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 64000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"supports_function_calling": true,
"supports_parallel_function_calling": true
@@ -32572,20 +35408,20 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 64000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"supports_function_calling": true,
"supports_parallel_function_calling": true
},
"github_copilot/gpt-5-mini": {
"cache_read_input_token_cost": 2.5e-8,
+ "deprecation_date": "2026-10-19",
"input_cost_per_token": 2.5e-7,
"litellm_provider": "github_copilot",
"max_input_tokens": 128000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000002,
+ "source": "https://github.blog/changelog/2026-10-19-github-copilot-models-deprecated-on-october-19-2026",
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_response_schema": true,
@@ -32593,9 +35429,9 @@
},
"github_copilot/gpt-5.3-codex": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -32610,12 +35446,13 @@
"github_copilot/gpt-5.4": {
"cache_read_input_token_cost": 2.5e-7,
"cache_read_input_token_cost_above_272k_tokens": 5e-7,
+ "deprecation_date": "2026-10-19",
+ "deprecation_source": "https://raw.githubusercontent.com/github/docs/main/data/tables/copilot/model-deprecation-history.yml",
"input_cost_per_token": 0.0000025,
"input_cost_per_token_above_272k_tokens": 0.000005,
"litellm_provider": "github_copilot",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"output_cost_per_token_above_272k_tokens": 0.0000225,
@@ -32632,9 +35469,9 @@
},
"github_copilot/gpt-5.4-mini": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -32647,9 +35484,9 @@
},
"github_copilot/gpt-5.4-nano": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -32662,9 +35499,9 @@
},
"github_copilot/gpt-5.5": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -32678,9 +35515,9 @@
},
"github_copilot/gpt-5.6-luna": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 200000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -32694,9 +35531,9 @@
},
"github_copilot/gpt-5.6-sol": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -32710,9 +35547,9 @@
},
"github_copilot/gpt-5.6-terra": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -32726,9 +35563,9 @@
},
"github_copilot/gpt-6-astra": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -32742,9 +35579,9 @@
},
"github_copilot/gpt-6-luna": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -32758,9 +35595,9 @@
},
"github_copilot/gpt-6-sol": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -32775,12 +35612,12 @@
"github_copilot/grok-4.5": {
"cache_read_input_token_cost": 5e-7,
"cache_read_input_token_cost_above_200k_tokens": 0.000001,
+ "deprecation_date": "2026-10-19",
"input_cost_per_token": 0.000002,
"input_cost_per_token_above_200k_tokens": 0.000004,
"litellm_provider": "github_copilot",
"max_input_tokens": 500000,
"max_output_tokens": 500000,
- "max_tokens": 500000,
"mode": "chat",
"output_cost_per_token": 0.000006,
"output_cost_per_token_above_200k_tokens": 0.000012,
@@ -32802,7 +35639,6 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 500000,
"max_output_tokens": 500000,
- "max_tokens": 500000,
"mode": "chat",
"output_cost_per_token": 0.000006,
"output_cost_per_token_above_200k_tokens": 0.000012,
@@ -32824,7 +35660,6 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 500000,
"max_output_tokens": 500000,
- "max_tokens": 500000,
"mode": "chat",
"output_cost_per_token": 0.000006,
"output_cost_per_token_above_200k_tokens": 0.000012,
@@ -32840,9 +35675,9 @@
},
"github_copilot/kimi-k2.7-code": {
"litellm_provider": "github_copilot",
- "max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_input_tokens": 262144,
+ "max_output_tokens": 131072,
+ "max_tokens": 131072,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -32858,7 +35693,6 @@
"litellm_provider": "github_copilot",
"max_input_tokens": 917504,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000015,
"source": "https://raw.githubusercontent.com/github/docs/main/data/tables/copilot/models-and-pricing.yml",
@@ -32873,8 +35707,8 @@
"github_copilot/mai-code-1.1-flash": {
"litellm_provider": "github_copilot",
"max_input_tokens": 128000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_output_tokens": 128000,
+ "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.github.com/en/copilot/reference/ai-models/supported-models",
"supported_endpoints": [
@@ -32889,7 +35723,6 @@
"litellm_provider": "volcengine",
"max_input_tokens": 204800,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0,
"supports_assistant_prefill": true,
@@ -32907,7 +35740,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_batches": 0.00000125,
@@ -32930,7 +35762,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00005,
"search_context_cost_per_query": {
@@ -32958,7 +35789,12 @@
"bedrock_output_config_effort_ceiling": "xhigh",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 512,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "global.anthropic.claude-fable-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-east-1"
+ }
},
"global.anthropic.claude-fable-5-1": {
"cache_creation_input_token_cost": 0.0000125,
@@ -32968,7 +35804,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00005,
"search_context_cost_per_query": {
@@ -33008,7 +35843,6 @@
"supports_tool_search": true,
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000005,
"source": "https://aws.amazon.com/bedrock/pricing/",
@@ -33025,7 +35859,11 @@
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 4096,
"input_cost_per_token_batches": 5e-7,
- "output_cost_per_token_batches": 0.0000025
+ "output_cost_per_token_batches": 0.0000025,
+ "token_count_model": {
+ "model": "anthropic.claude-haiku-4-5-20251001-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"global.anthropic.claude-haiku-5-5": {
"input_cost_per_token_above_100k_tokens": 5e-7,
@@ -33041,12 +35879,12 @@
"litellm_provider": "bedrock_converse",
"token_count_model": {
"model": "global.anthropic.claude-opus-5-5",
+ "litellm_provider": "bedrock_mantle",
"region": "us-east-1"
},
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 5e-7,
"search_context_cost_per_query": {
@@ -33082,7 +35920,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"supports_adaptive_thinking": true,
"thinking_always_on": true,
@@ -33120,7 +35957,6 @@
"supports_tool_search": true,
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"search_context_cost_per_query": {
@@ -33142,7 +35978,11 @@
"bedrock_output_config_effort_ceiling": "high",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 4096,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-5-20251101-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"global.anthropic.claude-opus-4-6-v1": {
"supports_adaptive_thinking": true,
@@ -33155,7 +35995,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"search_context_cost_per_query": {
@@ -33178,7 +36017,11 @@
"bedrock_output_config_effort_ceiling": "max",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 4096,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-6-v1",
+ "litellm_provider": "bedrock"
+ }
},
"global.anthropic.claude-opus-4-7": {
"bedrock_converse_supports_strict_tools": false,
@@ -33191,7 +36034,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"search_context_cost_per_query": {
@@ -33216,7 +36058,12 @@
"bedrock_output_config_effort_ceiling": "xhigh",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 2048,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "global.anthropic.claude-opus-4-7",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-east-1"
+ }
},
"global.anthropic.claude-opus-4-8": {
"bedrock_converse_supports_strict_tools": false,
@@ -33230,7 +36077,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"search_context_cost_per_query": {
@@ -33256,7 +36102,12 @@
"bedrock_output_config_effort_ceiling": "xhigh",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 1024,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "global.anthropic.claude-opus-4-8",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-east-1"
+ }
},
"global.anthropic.claude-opus-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -33270,7 +36121,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"search_context_cost_per_query": {
@@ -33294,7 +36144,14 @@
"supports_output_config": true,
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 512,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/us-east-1/index.json",
+ "token_count_model": {
+ "model": "global.anthropic.claude-opus-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-east-1"
+ },
+ "input_cost_per_token_batches": 0.0000025,
+ "output_cost_per_token_batches": 0.0000125
},
"global.anthropic.claude-opus-5-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -33308,7 +36165,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00002,
"search_context_cost_per_query": {
@@ -33334,12 +36190,19 @@
"prompt_cache_min_tokens": 512,
"source": "https://aws.amazon.com/bedrock/pricing/",
"thinking_always_on": true,
- "supports_forced_tool_use": false
+ "supports_forced_tool_use": false,
+ "token_count_model": {
+ "model": "global.anthropic.claude-opus-5-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-east-1"
+ }
},
"global.anthropic.claude-sonnet-4-20250514-v1:0": {
"cache_creation_input_token_cost": 0.00000375,
"cache_read_input_token_cost": 3e-7,
"deprecation_date": "2026-10-14",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
+ "successor_model": "global.anthropic.claude-sonnet-5",
"input_cost_per_token": 0.000003,
"input_cost_per_token_above_200k_tokens": 0.000006,
"output_cost_per_token_above_200k_tokens": 0.0000225,
@@ -33348,7 +36211,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"search_context_cost_per_query": {
@@ -33367,7 +36229,11 @@
"supports_vision": true,
"bedrock_converse_supports_strict_tools": false,
"prompt_cache_min_tokens": 1024,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-20250514-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"global.anthropic.claude-sonnet-4-5-20250929-v1:0": {
"cache_creation_input_token_cost": 0.00000375,
@@ -33380,11 +36246,12 @@
"cache_creation_input_token_cost_above_1hr_above_200k_tokens": 0.000012,
"cache_read_input_token_cost_above_200k_tokens": 6e-7,
"deprecation_date": "2027-04-08",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
+ "successor_model": "global.anthropic.claude-sonnet-5-5",
"litellm_provider": "bedrock_converse",
"supports_tool_search": true,
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"search_context_cost_per_query": {
@@ -33406,7 +36273,11 @@
"prompt_cache_min_tokens": 1024,
"input_cost_per_token_batches": 0.0000015,
"output_cost_per_token_batches": 0.0000075,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-5-20250929-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"global.anthropic.claude-sonnet-4-6": {
"supports_adaptive_thinking": true,
@@ -33419,7 +36290,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"search_context_cost_per_query": {
@@ -33441,7 +36311,11 @@
"supports_output_config": true,
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 1024,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-6",
+ "litellm_provider": "bedrock"
+ }
},
"global.anthropic.claude-sonnet-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -33453,7 +36327,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"search_context_cost_per_query": {
@@ -33481,7 +36354,12 @@
"bedrock_output_config_effort_ceiling": "xhigh",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 1024,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "global.anthropic.claude-sonnet-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-east-1"
+ }
},
"global.anthropic.claude-sonnet-5-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -33492,12 +36370,12 @@
"litellm_provider": "bedrock_converse",
"token_count_model": {
"model": "global.anthropic.claude-opus-5-5",
+ "litellm_provider": "bedrock_mantle",
"region": "us-east-1"
},
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"search_context_cost_per_query": {
@@ -33545,7 +36423,6 @@
"token_count_tokenizer": "kimi_k3",
"max_input_tokens": 1000000,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000015,
"output_cost_per_token_flex": 0.0000075,
@@ -33570,9 +36447,8 @@
"output_cost_per_token_above_272k_tokens": 0.0000225,
"litellm_provider": "bedrock_converse",
"supports_bedrock_converse_tool_result_images": false,
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-54.html",
"supported_modalities": [
@@ -33602,9 +36478,8 @@
"output_cost_per_token_above_272k_tokens": 0.000045,
"litellm_provider": "bedrock_converse",
"supports_bedrock_converse_tool_result_images": false,
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-55.html",
"supported_modalities": [
@@ -33637,9 +36512,8 @@
"output_cost_per_token_above_272k_tokens": 0.0000018,
"litellm_provider": "bedrock_converse",
"supports_bedrock_converse_tool_result_images": false,
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-56-luna.html",
"supported_modalities": [
@@ -33674,9 +36548,8 @@
"output_cost_per_token_above_272k_tokens": 0.00003,
"litellm_provider": "bedrock_converse",
"supports_bedrock_converse_tool_result_images": false,
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-56-sol.html",
"supported_modalities": [
@@ -33711,9 +36584,8 @@
"output_cost_per_token_above_272k_tokens": 0.000018,
"litellm_provider": "bedrock_converse",
"supports_bedrock_converse_tool_result_images": false,
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-56-terra.html",
"supported_modalities": [
@@ -33754,9 +36626,8 @@
"output_cost_per_token_above_272k_tokens": 0.000075,
"litellm_provider": "bedrock_converse",
"supports_bedrock_converse_tool_result_images": false,
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token_above_272k_tokens_ultrafast": 0.00045,
"output_cost_per_token_ultrafast": 0.0003,
@@ -33795,9 +36666,8 @@
"output_cost_per_token_above_272k_tokens": 7.5e-7,
"litellm_provider": "bedrock_converse",
"supports_bedrock_converse_tool_result_images": false,
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"supported_modalities": [
"text",
@@ -33834,9 +36704,8 @@
"output_cost_per_token_above_272k_tokens": 0.000015,
"litellm_provider": "bedrock_converse",
"supports_bedrock_converse_tool_result_images": false,
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"supported_modalities": [
"text",
@@ -33878,7 +36747,6 @@
"supports_bedrock_converse_tool_result_images": false,
"max_input_tokens": 1000000,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_above_272k_tokens": 0.000015,
@@ -33908,20 +36776,59 @@
"supports_sampling_params": false,
"supports_xhigh_reasoning_effort": true
},
+ "global.openai.gpt-6.1-terra": {
+ "cache_creation_input_token_cost": 0.00000125,
+ "cache_creation_input_token_cost_above_272k_tokens": 0.0000025,
+ "cache_read_input_token_cost": 5e-8,
+ "cache_read_input_token_cost_above_272k_tokens": 1e-7,
+ "input_cost_per_token": 0.000001,
+ "input_cost_per_token_above_272k_tokens": 0.000002,
+ "litellm_provider": "bedrock_converse",
+ "max_input_tokens": 922000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000005,
+ "output_cost_per_token_above_272k_tokens": 0.0000075,
+ "source": "https://developers.openai.com/api/docs/models/gpt-6.1-terra",
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/responses"
+ ],
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_bedrock_converse_tool_result_images": false,
+ "supports_bedrock_runtime_chat_completions_response_format": true,
+ "supports_function_calling": true,
+ "supports_max_reasoning_effort": true,
+ "supports_minimal_reasoning_effort": false,
+ "supports_none_reasoning_effort": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_sampling_params": false,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_xhigh_reasoning_effort": true
+ },
"global.twelvelabs.pegasus-1-2-v1:0": {
+ "deprecation_date": "2027-03-22",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-twelvelabs-pegasus-v1-2.md",
"input_cost_per_video_per_second": 0.00049,
"output_cost_per_token": 0.0000075,
"litellm_provider": "bedrock",
"mode": "chat",
"supports_video_input": true,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-twelvelabs-pegasus-v1-2.md"
},
"global.twelvelabs.pegasus-1-5-v1:0": {
"input_cost_per_video_per_second": 0.00049,
"litellm_provider": "bedrock",
"max_input_tokens": 261120,
"max_output_tokens": 98304,
- "max_tokens": 98304,
"mode": "chat",
"output_cost_per_token": 0.0000075,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-twelvelabs-pegasus-v1-5.html",
@@ -33944,7 +36851,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 500000,
"max_output_tokens": 500000,
- "max_tokens": 500000,
"mode": "chat",
"output_cost_per_token_flex": 0.000003,
"output_cost_per_token_priority": 0.0000105,
@@ -33971,7 +36877,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 524288,
"max_output_tokens": 524288,
- "max_tokens": 524288,
"mode": "chat",
"output_cost_per_token": 0.000006,
"output_cost_per_token_flex": 0.000003,
@@ -33999,7 +36904,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00000528,
"output_cost_per_token_batches": 0.00000264,
@@ -34021,7 +36925,6 @@
"litellm_provider": "gmi",
"max_input_tokens": 196608,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000012
},
@@ -34030,7 +36933,6 @@
"litellm_provider": "gmi",
"max_input_tokens": 262144,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000014,
"supports_vision": true
@@ -34040,7 +36942,6 @@
"litellm_provider": "gmi",
"max_input_tokens": 409600,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.000075,
"supports_function_calling": true,
@@ -34051,7 +36952,6 @@
"litellm_provider": "gmi",
"max_input_tokens": 409600,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"supports_function_calling": true,
@@ -34063,7 +36963,6 @@
"litellm_provider": "gmi",
"max_input_tokens": 409600,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_function_calling": true,
@@ -34074,7 +36973,6 @@
"litellm_provider": "gmi",
"max_input_tokens": 409600,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_function_calling": true,
@@ -34085,7 +36983,6 @@
"litellm_provider": "gmi",
"max_input_tokens": 163840,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 8.8e-7,
"supports_function_calling": true
@@ -34095,7 +36992,6 @@
"litellm_provider": "gmi",
"max_input_tokens": 163840,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 4e-7,
"supports_function_calling": true
@@ -34105,7 +37001,6 @@
"litellm_provider": "gmi",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.000003,
"supports_function_calling": true,
@@ -34117,7 +37012,6 @@
"litellm_provider": "gmi",
"max_input_tokens": 262144,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000012
},
@@ -34126,7 +37020,6 @@
"litellm_provider": "gmi",
"max_input_tokens": 131072,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00001,
"supports_function_calling": true,
@@ -34137,7 +37030,6 @@
"litellm_provider": "gmi",
"max_input_tokens": 131072,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 6e-7,
"supports_function_calling": true,
@@ -34148,7 +37040,6 @@
"litellm_provider": "gmi",
"max_input_tokens": 409600,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"supports_function_calling": true
@@ -34158,7 +37049,6 @@
"litellm_provider": "gmi",
"max_input_tokens": 409600,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"supports_function_calling": true
@@ -34168,7 +37058,6 @@
"litellm_provider": "gmi",
"max_input_tokens": 409600,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.000014,
"supports_function_calling": true
@@ -34178,12 +37067,12 @@
"litellm_provider": "gmi",
"max_input_tokens": 202752,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.000002
},
"google.gemma-3-12b-it": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 9e-8,
"input_cost_per_token_batches": 5e-8,
"input_cost_per_token_flex": 5e-8,
@@ -34191,7 +37080,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 2.9e-7,
"output_cost_per_token_batches": 1.5e-7,
@@ -34206,6 +37094,7 @@
},
"google.gemma-3-27b-it": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 2.3e-7,
"input_cost_per_token_batches": 1.2e-7,
"input_cost_per_token_flex": 1.2e-7,
@@ -34213,7 +37102,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 3.8e-7,
"output_cost_per_token_batches": 1.9e-7,
@@ -34228,6 +37116,7 @@
},
"google.gemma-3-4b-it": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 4e-8,
"input_cost_per_token_batches": 2e-8,
"input_cost_per_token_flex": 2e-8,
@@ -34235,7 +37124,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 8e-8,
"output_cost_per_token_batches": 4e-8,
@@ -34249,11 +37137,12 @@
},
"gpt-3.5-turbo": {
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-terra",
"input_cost_per_token": 5e-7,
"litellm_provider": "openai",
"max_input_tokens": 16385,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"source": "https://developers.openai.com/api/docs/pricing",
@@ -34264,12 +37153,13 @@
},
"gpt-3.5-turbo-0125": {
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-terra",
"input_cost_per_token": 5e-7,
"input_cost_per_token_batches": 2.5e-7,
"litellm_provider": "openai",
"max_input_tokens": 16385,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"output_cost_per_token_batches": 7.5e-7,
@@ -34282,12 +37172,13 @@
},
"gpt-3.5-turbo-1106": {
"deprecation_date": "2026-09-28",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-terra",
"input_cost_per_token": 0.000001,
"input_cost_per_token_batches": 0.000001,
"litellm_provider": "openai",
"max_input_tokens": 16385,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000002,
"output_cost_per_token_batches": 0.000002,
@@ -34300,11 +37191,11 @@
},
"gpt-3.5-turbo-16k": {
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
"input_cost_per_token": 0.000003,
"litellm_provider": "openai",
"max_input_tokens": 16385,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000004,
"supports_prompt_caching": true,
@@ -34313,11 +37204,12 @@
},
"gpt-4": {
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-sol",
"input_cost_per_token": 0.00003,
"litellm_provider": "openai",
"max_input_tokens": 8192,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.00006,
"supports_function_calling": true,
@@ -34327,12 +37219,13 @@
},
"gpt-4-0613": {
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-sol",
"input_cost_per_token": 0.00003,
"input_cost_per_token_batches": 0.000015,
"litellm_provider": "openai",
"max_input_tokens": 8192,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.00006,
"output_cost_per_token_batches": 0.00003,
@@ -34344,11 +37237,12 @@
},
"gpt-4-1106-preview": {
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-sol",
"input_cost_per_token": 0.00001,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.00003,
"supports_function_calling": true,
@@ -34359,11 +37253,12 @@
},
"gpt-4-turbo": {
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-sol",
"input_cost_per_token": 0.00001,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.00003,
"supports_function_calling": true,
@@ -34376,12 +37271,13 @@
},
"gpt-4-turbo-2024-04-09": {
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-sol",
"input_cost_per_token": 0.00001,
"input_cost_per_token_batches": 0.000005,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.00003,
"output_cost_per_token_batches": 0.000015,
@@ -34397,13 +37293,15 @@
"gpt-4.1": {
"cache_read_input_token_cost": 5e-7,
"cache_read_input_token_cost_priority": 8.75e-7,
+ "deprecation_date": "2027-01-14",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-6-luna",
"input_cost_per_token": 0.000002,
"input_cost_per_token_batches": 0.000001,
"input_cost_per_token_priority": 0.0000035,
"litellm_provider": "openai",
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000008,
"output_cost_per_token_batches": 0.000004,
@@ -34441,13 +37339,14 @@
"cache_read_input_token_cost": 5e-7,
"cache_read_input_token_cost_priority": 8.75e-7,
"deprecation_date": "2027-01-14",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-6-luna",
"input_cost_per_token": 0.000002,
"input_cost_per_token_priority": 0.0000035,
"input_cost_per_token_batches": 0.000001,
"litellm_provider": "openai",
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000008,
"output_cost_per_token_priority": 0.000014,
@@ -34484,13 +37383,15 @@
"gpt-4.1-mini": {
"cache_read_input_token_cost": 1e-7,
"cache_read_input_token_cost_priority": 1.75e-7,
+ "deprecation_date": "2027-01-14",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-6-luna",
"input_cost_per_token": 4e-7,
"input_cost_per_token_batches": 2e-7,
"input_cost_per_token_priority": 7e-7,
"litellm_provider": "openai",
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.0000016,
"output_cost_per_token_batches": 8e-7,
@@ -34528,13 +37429,14 @@
"cache_read_input_token_cost": 1e-7,
"cache_read_input_token_cost_priority": 1.75e-7,
"deprecation_date": "2027-01-14",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-6-luna",
"input_cost_per_token": 4e-7,
"input_cost_per_token_priority": 7e-7,
"input_cost_per_token_batches": 2e-7,
"litellm_provider": "openai",
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.0000016,
"output_cost_per_token_priority": 0.0000028,
@@ -34572,13 +37474,14 @@
"cache_read_input_token_cost": 2.5e-8,
"cache_read_input_token_cost_priority": 5e-8,
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-luna",
"input_cost_per_token": 1e-7,
"input_cost_per_token_batches": 5e-8,
"input_cost_per_token_priority": 2e-7,
"litellm_provider": "openai",
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 4e-7,
"output_cost_per_token_batches": 2e-7,
@@ -34610,13 +37513,14 @@
"cache_read_input_token_cost": 2.5e-8,
"cache_read_input_token_cost_priority": 5e-8,
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-luna",
"input_cost_per_token": 1e-7,
"input_cost_per_token_priority": 2e-7,
"input_cost_per_token_batches": 5e-8,
"litellm_provider": "openai",
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 4e-7,
"output_cost_per_token_priority": 8e-7,
@@ -34647,13 +37551,15 @@
"gpt-4o": {
"cache_read_input_token_cost": 0.00000125,
"cache_read_input_token_cost_priority": 0.000002125,
+ "deprecation_date": "2027-01-14",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-6-luna",
"input_cost_per_token": 0.0000025,
"input_cost_per_token_batches": 0.00000125,
"input_cost_per_token_priority": 0.00000425,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_batches": 0.000005,
@@ -34670,13 +37576,14 @@
},
"gpt-4o-2024-05-13": {
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-sol",
"input_cost_per_token": 0.000005,
"input_cost_per_token_batches": 0.0000025,
"input_cost_per_token_priority": 0.00000875,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000015,
"output_cost_per_token_batches": 0.0000075,
@@ -34694,13 +37601,14 @@
"cache_read_input_token_cost": 0.00000125,
"cache_read_input_token_cost_priority": 0.000002125,
"deprecation_date": "2027-01-14",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-6-luna",
"input_cost_per_token": 0.0000025,
"input_cost_per_token_priority": 0.00000425,
"input_cost_per_token_batches": 0.00000125,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_priority": 0.000017,
@@ -34719,13 +37627,14 @@
"cache_read_input_token_cost": 0.00000125,
"cache_read_input_token_cost_priority": 0.000002125,
"deprecation_date": "2027-01-14",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-6-luna",
"input_cost_per_token": 0.0000025,
"input_cost_per_token_priority": 0.00000425,
"input_cost_per_token_batches": 0.00000125,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_priority": 0.000017,
@@ -34742,12 +37651,13 @@
},
"gpt-4o-audio-preview-2024-12-17": {
"deprecation_date": "2027-01-20",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-audio-1.5",
"input_cost_per_audio_token": 0.00004,
"input_cost_per_token": 0.0000025,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_audio_token": 0.00008,
"output_cost_per_token": 0.00001,
@@ -34760,12 +37670,13 @@
},
"gpt-4o-audio-preview-2025-06-03": {
"deprecation_date": "2027-01-20",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-audio-1.5",
"input_cost_per_audio_token": 0.00004,
"input_cost_per_token": 0.0000025,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_audio_token": 0.00008,
"output_cost_per_token": 0.00001,
@@ -34779,13 +37690,15 @@
"gpt-4o-mini": {
"cache_read_input_token_cost": 7.5e-8,
"cache_read_input_token_cost_priority": 1.25e-7,
+ "deprecation_date": "2027-01-14",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-6-luna",
"input_cost_per_token": 1.5e-7,
"input_cost_per_token_batches": 7.5e-8,
"input_cost_per_token_priority": 2.5e-7,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 6e-7,
"output_cost_per_token_batches": 3e-7,
@@ -34809,13 +37722,14 @@
"cache_read_input_token_cost": 7.5e-8,
"cache_read_input_token_cost_priority": 1.25e-7,
"deprecation_date": "2027-01-14",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-6-luna",
"input_cost_per_token": 1.5e-7,
"input_cost_per_token_priority": 2.5e-7,
"input_cost_per_token_batches": 7.5e-8,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 6e-7,
"output_cost_per_token_priority": 0.000001,
@@ -34837,12 +37751,12 @@
},
"gpt-4o-mini-audio-preview-2024-12-17": {
"deprecation_date": "2027-01-20",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
"input_cost_per_audio_token": 0.00001,
"input_cost_per_token": 1.5e-7,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_audio_token": 0.00002,
"output_cost_per_token": 6e-7,
@@ -34860,7 +37774,6 @@
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 6e-7,
"output_cost_per_token_batches": 3e-7,
@@ -34881,13 +37794,14 @@
},
"gpt-4o-mini-search-preview-2025-03-11": {
"deprecation_date": "2026-07-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-terra",
"cache_read_input_token_cost": 7.5e-8,
"input_cost_per_token": 1.5e-7,
"input_cost_per_token_batches": 7.5e-8,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 6e-7,
"output_cost_per_token_batches": 3e-7,
@@ -34914,7 +37828,6 @@
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_batches": 0.000005,
@@ -34935,13 +37848,14 @@
},
"gpt-4o-search-preview-2025-03-11": {
"deprecation_date": "2026-07-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-terra",
"cache_read_input_token_cost": 0.00000125,
"input_cost_per_token": 0.0000025,
"input_cost_per_token_batches": 0.00000125,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_batches": 0.000005,
@@ -34962,62 +37876,13 @@
"source": "https://developers.openai.com/api/docs/models/gpt-4o-search-preview"
},
"gpt-5": {
- "cache_read_input_token_cost": 1.25e-7,
- "cache_read_input_token_cost_batches": 6.25e-8,
- "cache_read_input_token_cost_flex": 6.25e-8,
- "cache_read_input_token_cost_priority": 2.5e-7,
- "input_cost_per_token": 0.00000125,
- "input_cost_per_token_batches": 6.25e-7,
- "input_cost_per_token_flex": 6.25e-7,
- "input_cost_per_token_priority": 0.0000025,
- "litellm_provider": "openai",
- "max_input_tokens": 272000,
- "max_output_tokens": 128000,
- "max_tokens": 128000,
- "mode": "chat",
- "output_cost_per_token": 0.00001,
- "output_cost_per_token_batches": 0.000005,
- "output_cost_per_token_flex": 0.000005,
- "output_cost_per_token_priority": 0.00002,
- "search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
- },
- "source": "https://developers.openai.com/api/docs/pricing",
- "supported_endpoints": [
- "/v1/chat/completions",
- "/v1/batch",
- "/v1/responses"
- ],
- "supported_modalities": [
- "text",
- "image"
- ],
- "supported_output_modalities": [
- "text"
- ],
- "supports_function_calling": true,
- "supports_native_streaming": true,
- "supports_parallel_function_calling": true,
- "supports_pdf_input": true,
- "supports_prompt_caching": true,
- "supports_reasoning": true,
- "supports_response_schema": true,
- "supports_system_messages": true,
- "supports_tool_choice": true,
- "supports_vision": true,
- "supports_web_search": true,
- "supports_none_reasoning_effort": false,
- "supports_xhigh_reasoning_effort": false,
- "supports_minimal_reasoning_effort": true
- },
- "gpt-5-2025-08-07": {
"cache_read_input_token_cost": 1.25e-7,
"cache_read_input_token_cost_batches": 6.25e-8,
"cache_read_input_token_cost_flex": 6.25e-8,
"cache_read_input_token_cost_priority": 2.5e-7,
"deprecation_date": "2026-12-11",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-sol",
"input_cost_per_token": 0.00000125,
"input_cost_per_token_batches": 6.25e-7,
"input_cost_per_token_flex": 6.25e-7,
@@ -35025,131 +37890,208 @@
"litellm_provider": "openai",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_batches": 0.000005,
"output_cost_per_token_flex": 0.000005,
"output_cost_per_token_priority": 0.00002,
- "search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
- },
- "source": "https://developers.openai.com/api/docs/pricing",
- "supported_endpoints": [
- "/v1/chat/completions",
- "/v1/batch",
- "/v1/responses"
- ],
- "supported_modalities": [
- "text",
- "image"
- ],
- "supported_output_modalities": [
- "text"
- ],
- "supports_function_calling": true,
- "supports_native_streaming": true,
- "supports_parallel_function_calling": true,
- "supports_pdf_input": true,
- "supports_prompt_caching": true,
- "supports_reasoning": true,
- "supports_response_schema": true,
- "supports_system_messages": true,
- "supports_tool_choice": true,
- "supports_vision": true,
- "supports_web_search": true,
- "supports_none_reasoning_effort": false,
- "supports_xhigh_reasoning_effort": false,
- "supports_minimal_reasoning_effort": true
- },
- "gpt-5-chat": {
- "cache_read_input_token_cost": 1.25e-7,
- "deprecation_date": "2026-07-23",
- "input_cost_per_token": 0.00000125,
- "litellm_provider": "openai",
- "max_input_tokens": 128000,
- "max_output_tokens": 16384,
- "max_tokens": 16384,
- "mode": "chat",
- "output_cost_per_token": 0.00001,
- "supported_endpoints": [
- "/v1/chat/completions",
- "/v1/batch",
- "/v1/responses"
- ],
- "supported_modalities": [
- "text",
- "image"
- ],
- "supported_output_modalities": [
- "text"
- ],
- "supports_function_calling": false,
- "supports_native_streaming": true,
- "supports_parallel_function_calling": false,
- "supports_pdf_input": true,
- "supports_prompt_caching": true,
- "supports_reasoning": true,
- "supports_response_schema": true,
- "supports_system_messages": true,
- "supports_tool_choice": false,
- "supports_vision": true,
- "supports_none_reasoning_effort": false,
- "supports_xhigh_reasoning_effort": false,
- "supports_minimal_reasoning_effort": true
- },
- "gpt-5-chat-latest": {
- "cache_read_input_token_cost": 1.25e-7,
- "deprecation_date": "2026-07-23",
- "input_cost_per_token": 0.00000125,
- "litellm_provider": "openai",
- "max_input_tokens": 128000,
- "max_output_tokens": 16384,
- "max_tokens": 16384,
- "mode": "chat",
- "output_cost_per_token": 0.00001,
- "source": "https://developers.openai.com/api/docs/models/gpt-5-chat-latest",
- "supported_endpoints": [
- "/v1/chat/completions",
- "/v1/responses"
- ],
- "supported_modalities": [
- "text",
- "image"
+ "reasoning_contexts": [
+ "auto",
+ "current_turn"
],
- "supported_output_modalities": [
- "text"
+ "reasoning_modes": [
+ "standard"
+ ],
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "source": "https://developers.openai.com/api/docs/pricing",
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/batch",
+ "/v1/responses"
+ ],
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_function_calling": true,
+ "supports_native_streaming": true,
+ "supports_parallel_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_web_search": true,
+ "supports_none_reasoning_effort": false,
+ "supports_xhigh_reasoning_effort": false,
+ "supports_minimal_reasoning_effort": true
+ },
+ "gpt-5-2025-08-07": {
+ "cache_read_input_token_cost": 1.25e-7,
+ "cache_read_input_token_cost_batches": 6.25e-8,
+ "cache_read_input_token_cost_flex": 6.25e-8,
+ "cache_read_input_token_cost_priority": 2.5e-7,
+ "deprecation_date": "2026-12-11",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-sol",
+ "input_cost_per_token": 0.00000125,
+ "input_cost_per_token_batches": 6.25e-7,
+ "input_cost_per_token_flex": 6.25e-7,
+ "input_cost_per_token_priority": 0.0000025,
+ "litellm_provider": "openai",
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.00001,
+ "output_cost_per_token_batches": 0.000005,
+ "output_cost_per_token_flex": 0.000005,
+ "output_cost_per_token_priority": 0.00002,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn"
+ ],
+ "reasoning_modes": [
+ "standard"
+ ],
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "source": "https://developers.openai.com/api/docs/pricing",
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/batch",
+ "/v1/responses"
+ ],
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_function_calling": true,
+ "supports_native_streaming": true,
+ "supports_parallel_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_web_search": true,
+ "supports_none_reasoning_effort": false,
+ "supports_xhigh_reasoning_effort": false,
+ "supports_minimal_reasoning_effort": true
+ },
+ "gpt-5-chat": {
+ "cache_read_input_token_cost": 1.25e-7,
+ "deprecation_date": "2026-07-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.2-chat-latest",
+ "input_cost_per_token": 0.00000125,
+ "litellm_provider": "openai",
+ "max_input_tokens": 128000,
+ "max_output_tokens": 16384,
+ "mode": "chat",
+ "output_cost_per_token": 0.00001,
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/batch",
+ "/v1/responses"
+ ],
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_function_calling": false,
+ "supports_native_streaming": true,
+ "supports_parallel_function_calling": false,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_tool_choice": false,
+ "supports_vision": true,
+ "supports_none_reasoning_effort": false,
+ "supports_xhigh_reasoning_effort": false,
+ "supports_minimal_reasoning_effort": true
+ },
+ "gpt-5-chat-latest": {
+ "cache_read_input_token_cost": 1.25e-7,
+ "deprecation_date": "2026-07-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-sol",
+ "input_cost_per_token": 0.00000125,
+ "litellm_provider": "openai",
+ "max_input_tokens": 128000,
+ "max_output_tokens": 16384,
+ "mode": "chat",
+ "output_cost_per_token": 0.00001,
+ "source": "https://developers.openai.com/api/docs/models/gpt-5-chat-latest",
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/responses"
+ ],
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_function_calling": true,
+ "supports_native_streaming": true,
+ "supports_parallel_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
+ "gpt-5-mini": {
+ "cache_read_input_token_cost": 2.5e-8,
+ "cache_read_input_token_cost_batches": 1.25e-8,
+ "cache_read_input_token_cost_flex": 1.25e-8,
+ "cache_read_input_token_cost_priority": 4.5e-8,
+ "deprecation_date": "2026-12-11",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-terra",
+ "input_cost_per_token": 2.5e-7,
+ "input_cost_per_token_batches": 1.25e-7,
+ "input_cost_per_token_flex": 1.25e-7,
+ "input_cost_per_token_priority": 4.5e-7,
+ "litellm_provider": "openai",
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000002,
+ "output_cost_per_token_batches": 0.000001,
+ "output_cost_per_token_flex": 0.000001,
+ "output_cost_per_token_priority": 0.0000036,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn"
+ ],
+ "reasoning_modes": [
+ "standard"
],
- "supports_function_calling": true,
- "supports_native_streaming": true,
- "supports_parallel_function_calling": true,
- "supports_pdf_input": true,
- "supports_prompt_caching": false,
- "supports_reasoning": true,
- "supports_response_schema": true,
- "supports_tool_choice": true,
- "supports_vision": true
- },
- "gpt-5-mini": {
- "cache_read_input_token_cost": 2.5e-8,
- "cache_read_input_token_cost_batches": 1.25e-8,
- "cache_read_input_token_cost_flex": 1.25e-8,
- "cache_read_input_token_cost_priority": 4.5e-8,
- "input_cost_per_token": 2.5e-7,
- "input_cost_per_token_batches": 1.25e-7,
- "input_cost_per_token_flex": 1.25e-7,
- "input_cost_per_token_priority": 4.5e-7,
- "litellm_provider": "openai",
- "max_input_tokens": 272000,
- "max_output_tokens": 128000,
- "max_tokens": 128000,
- "mode": "chat",
- "output_cost_per_token": 0.000002,
- "output_cost_per_token_batches": 0.000001,
- "output_cost_per_token_flex": 0.000001,
- "output_cost_per_token_priority": 0.0000036,
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
@@ -35189,6 +38131,8 @@
"cache_read_input_token_cost_flex": 1.25e-8,
"cache_read_input_token_cost_priority": 4.5e-8,
"deprecation_date": "2026-12-11",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-terra",
"input_cost_per_token": 2.5e-7,
"input_cost_per_token_batches": 1.25e-7,
"input_cost_per_token_flex": 1.25e-7,
@@ -35196,12 +38140,18 @@
"litellm_provider": "openai",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000002,
"output_cost_per_token_batches": 0.000001,
"output_cost_per_token_flex": 0.000001,
"output_cost_per_token_priority": 0.0000036,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn"
+ ],
+ "reasoning_modes": [
+ "standard"
+ ],
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
@@ -35239,18 +38189,26 @@
"cache_read_input_token_cost": 5e-9,
"cache_read_input_token_cost_batches": 2.5e-9,
"cache_read_input_token_cost_flex": 2.5e-9,
+ "deprecation_date": "2026-12-11",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-luna",
"input_cost_per_token": 5e-8,
"input_cost_per_token_batches": 2.5e-8,
"input_cost_per_token_flex": 2.5e-8,
- "input_cost_per_token_priority": 0.0000025,
"litellm_provider": "openai",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 4e-7,
"output_cost_per_token_batches": 2e-7,
"output_cost_per_token_flex": 2e-7,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn"
+ ],
+ "reasoning_modes": [
+ "standard"
+ ],
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
@@ -35289,18 +38247,25 @@
"cache_read_input_token_cost_batches": 2.5e-9,
"cache_read_input_token_cost_flex": 2.5e-9,
"deprecation_date": "2026-12-11",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-luna",
"input_cost_per_token": 5e-8,
"input_cost_per_token_batches": 2.5e-8,
- "input_cost_per_token_priority": 0.0000025,
"input_cost_per_token_flex": 2.5e-8,
"litellm_provider": "openai",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 4e-7,
"output_cost_per_token_batches": 2e-7,
"output_cost_per_token_flex": 2e-7,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn"
+ ],
+ "reasoning_modes": [
+ "standard"
+ ],
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
@@ -35340,7 +38305,6 @@
"litellm_provider": "openai",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"search_context_cost_per_query": {
@@ -35368,7 +38332,6 @@
"litellm_provider": "openai",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"search_context_cost_per_query": {
@@ -35399,10 +38362,16 @@
"litellm_provider": "openai",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_priority": 0.00002,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn"
+ ],
+ "reasoning_modes": [
+ "standard"
+ ],
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
@@ -35440,22 +38409,33 @@
"source": "https://developers.openai.com/api/docs/pricing",
"supports_xhigh_reasoning_effort": false,
"supports_minimal_reasoning_effort": false,
- "deprecation_date": "2027-04-01"
+ "deprecation_date": "2027-04-01",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-6-sol"
},
"gpt-5.1-2025-11-13": {
"cache_read_input_token_cost": 1.25e-7,
"cache_read_input_token_cost_batches": 6.25e-8,
"cache_read_input_token_cost_flex": 6.25e-8,
"cache_read_input_token_cost_priority": 2.5e-7,
+ "deprecation_date": "2027-04-01",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-6-sol",
"input_cost_per_token": 0.00000125,
"input_cost_per_token_priority": 0.0000025,
"litellm_provider": "openai",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_priority": 0.00002,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn"
+ ],
+ "reasoning_modes": [
+ "standard"
+ ],
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
@@ -35497,11 +38477,12 @@
"gpt-5.1-chat-latest": {
"cache_read_input_token_cost": 1.25e-7,
"deprecation_date": "2026-07-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-sol",
"input_cost_per_token": 0.00000125,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00001,
"source": "https://developers.openai.com/api/docs/models/gpt-5.1-chat-latest",
@@ -35536,10 +38517,16 @@
"litellm_provider": "openai",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000014,
"output_cost_per_token_priority": 0.000028,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn"
+ ],
+ "reasoning_modes": [
+ "standard"
+ ],
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
@@ -35590,10 +38577,16 @@
"litellm_provider": "openai",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000014,
"output_cost_per_token_priority": 0.000028,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn"
+ ],
+ "reasoning_modes": [
+ "standard"
+ ],
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
@@ -35637,11 +38630,12 @@
"gpt-5.2-chat-latest": {
"cache_read_input_token_cost": 1.75e-7,
"deprecation_date": "2026-08-10",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-sol",
"input_cost_per_token": 0.00000175,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.000014,
"source": "https://developers.openai.com/api/docs/models/gpt-5.2-chat-latest",
@@ -35669,11 +38663,12 @@
"gpt-5.3-chat-latest": {
"cache_read_input_token_cost": 1.75e-7,
"deprecation_date": "2026-08-10",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-sol",
"input_cost_per_token": 0.00000175,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.000014,
"source": "https://developers.openai.com/api/docs/models/gpt-5.3-chat-latest",
@@ -35714,7 +38709,6 @@
"litellm_provider": "openai",
"max_input_tokens": 1050000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"output_cost_per_token_above_272k_tokens": 0.0000225,
@@ -35722,64 +38716,79 @@
"output_cost_per_token_batches": 0.0000075,
"output_cost_per_token_above_272k_tokens_batches": 0.00001125,
"output_cost_per_token_priority": 0.00003,
- "regional_processing_uplift_multiplier_eu": 1.1,
- "regional_processing_uplift_multiplier_us": 1.1,
- "supported_endpoints": [
- "/v1/chat/completions",
- "/v1/batch",
- "/v1/responses"
- ],
- "supported_modalities": [
- "text",
- "image"
+ "reasoning_contexts": [
+ "auto",
+ "current_turn",
+ "all_turns"
],
- "supported_output_modalities": [
- "text"
+ "reasoning_modes": [
+ "standard"
+ ],
+ "regional_processing_uplift_multiplier_eu": 1.1,
+ "regional_processing_uplift_multiplier_us": 1.1,
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/batch",
+ "/v1/responses"
+ ],
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_function_calling": true,
+ "supports_native_streaming": true,
+ "supports_parallel_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_tool_choice": true,
+ "supports_tool_search": true,
+ "supports_vision": true,
+ "supports_none_reasoning_effort": true,
+ "default_reasoning_effort": "none",
+ "supports_xhigh_reasoning_effort": true,
+ "supports_minimal_reasoning_effort": false,
+ "input_cost_per_token_above_272k_tokens_flex": 0.0000025,
+ "output_cost_per_token_above_272k_tokens_flex": 0.00001125,
+ "cache_read_input_token_cost_above_272k_tokens_flex": 2.5e-7,
+ "source": "https://developers.openai.com/api/docs/pricing"
+ },
+ "gpt-5.4-2026-03-05": {
+ "cache_read_input_token_cost": 2.5e-7,
+ "cache_read_input_token_cost_above_272k_tokens": 5e-7,
+ "cache_read_input_token_cost_batches": 1.3e-7,
+ "cache_read_input_token_cost_above_272k_tokens_batches": 2.5e-7,
+ "cache_read_input_token_cost_flex": 1.3e-7,
+ "cache_read_input_token_cost_priority": 5e-7,
+ "input_cost_per_token": 0.0000025,
+ "input_cost_per_token_above_272k_tokens": 0.000005,
+ "input_cost_per_token_flex": 0.00000125,
+ "input_cost_per_token_batches": 0.00000125,
+ "input_cost_per_token_above_272k_tokens_batches": 0.0000025,
+ "input_cost_per_token_priority": 0.000005,
+ "litellm_provider": "openai",
+ "max_input_tokens": 1050000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000015,
+ "output_cost_per_token_above_272k_tokens": 0.0000225,
+ "output_cost_per_token_flex": 0.0000075,
+ "output_cost_per_token_batches": 0.0000075,
+ "output_cost_per_token_above_272k_tokens_batches": 0.00001125,
+ "output_cost_per_token_priority": 0.00003,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn",
+ "all_turns"
+ ],
+ "reasoning_modes": [
+ "standard"
],
- "supports_function_calling": true,
- "supports_native_streaming": true,
- "supports_parallel_function_calling": true,
- "supports_pdf_input": true,
- "supports_prompt_caching": true,
- "supports_reasoning": true,
- "supports_response_schema": true,
- "supports_system_messages": true,
- "supports_tool_choice": true,
- "supports_tool_search": true,
- "supports_vision": true,
- "supports_none_reasoning_effort": true,
- "default_reasoning_effort": "none",
- "supports_xhigh_reasoning_effort": true,
- "supports_minimal_reasoning_effort": false,
- "input_cost_per_token_above_272k_tokens_flex": 0.0000025,
- "output_cost_per_token_above_272k_tokens_flex": 0.00001125,
- "cache_read_input_token_cost_above_272k_tokens_flex": 2.5e-7,
- "source": "https://developers.openai.com/api/docs/pricing"
- },
- "gpt-5.4-2026-03-05": {
- "cache_read_input_token_cost": 2.5e-7,
- "cache_read_input_token_cost_above_272k_tokens": 5e-7,
- "cache_read_input_token_cost_batches": 1.3e-7,
- "cache_read_input_token_cost_above_272k_tokens_batches": 2.5e-7,
- "cache_read_input_token_cost_flex": 1.3e-7,
- "cache_read_input_token_cost_priority": 5e-7,
- "input_cost_per_token": 0.0000025,
- "input_cost_per_token_above_272k_tokens": 0.000005,
- "input_cost_per_token_flex": 0.00000125,
- "input_cost_per_token_batches": 0.00000125,
- "input_cost_per_token_above_272k_tokens_batches": 0.0000025,
- "input_cost_per_token_priority": 0.000005,
- "litellm_provider": "openai",
- "max_input_tokens": 1050000,
- "max_output_tokens": 128000,
- "max_tokens": 128000,
- "mode": "chat",
- "output_cost_per_token": 0.000015,
- "output_cost_per_token_above_272k_tokens": 0.0000225,
- "output_cost_per_token_flex": 0.0000075,
- "output_cost_per_token_batches": 0.0000075,
- "output_cost_per_token_above_272k_tokens_batches": 0.00001125,
- "output_cost_per_token_priority": 0.00003,
"regional_processing_uplift_multiplier_eu": 1.1,
"regional_processing_uplift_multiplier_us": 1.1,
"supported_endpoints": [
@@ -35826,12 +38835,19 @@
"litellm_provider": "openai",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000045,
"output_cost_per_token_flex": 0.00000225,
"output_cost_per_token_batches": 0.00000225,
"output_cost_per_token_priority": 0.000009,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn",
+ "all_turns"
+ ],
+ "reasoning_modes": [
+ "standard"
+ ],
"regional_processing_uplift_multiplier_eu": 1.1,
"regional_processing_uplift_multiplier_us": 1.1,
"search_context_cost_per_query": {
@@ -35881,12 +38897,19 @@
"litellm_provider": "openai",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000045,
"output_cost_per_token_flex": 0.00000225,
"output_cost_per_token_batches": 0.00000225,
"output_cost_per_token_priority": 0.000009,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn",
+ "all_turns"
+ ],
+ "reasoning_modes": [
+ "standard"
+ ],
"regional_processing_uplift_multiplier_eu": 1.1,
"regional_processing_uplift_multiplier_us": 1.1,
"search_context_cost_per_query": {
@@ -35934,11 +38957,18 @@
"litellm_provider": "openai",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00000125,
"output_cost_per_token_flex": 6.25e-7,
"output_cost_per_token_batches": 6.25e-7,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn",
+ "all_turns"
+ ],
+ "reasoning_modes": [
+ "standard"
+ ],
"regional_processing_uplift_multiplier_eu": 1.1,
"regional_processing_uplift_multiplier_us": 1.1,
"search_context_cost_per_query": {
@@ -35974,23 +39004,35 @@
"source": "https://developers.openai.com/api/docs/pricing",
"supports_xhigh_reasoning_effort": true,
"supports_minimal_reasoning_effort": false,
- "deprecation_date": "2027-04-01"
+ "deprecation_date": "2027-04-01",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-6-luna"
},
"gpt-5.4-nano-2026-03-17": {
"cache_read_input_token_cost": 2e-8,
"cache_read_input_token_cost_batches": 1e-8,
"cache_read_input_token_cost_flex": 1e-8,
+ "deprecation_date": "2027-04-01",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-6-luna",
"input_cost_per_token": 2e-7,
"input_cost_per_token_flex": 1e-7,
"input_cost_per_token_batches": 1e-7,
"litellm_provider": "openai",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00000125,
"output_cost_per_token_flex": 6.25e-7,
"output_cost_per_token_batches": 6.25e-7,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn",
+ "all_turns"
+ ],
+ "reasoning_modes": [
+ "standard"
+ ],
"regional_processing_uplift_multiplier_eu": 1.1,
"regional_processing_uplift_multiplier_us": 1.1,
"search_context_cost_per_query": {
@@ -36043,7 +39085,6 @@
"litellm_provider": "openai",
"max_input_tokens": 1050000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00003,
"output_cost_per_token_above_272k_tokens": 0.000045,
@@ -36051,6 +39092,14 @@
"output_cost_per_token_batches": 0.000015,
"output_cost_per_token_above_272k_tokens_batches": 0.0000225,
"output_cost_per_token_priority": 0.000075,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn",
+ "all_turns"
+ ],
+ "reasoning_modes": [
+ "standard"
+ ],
"regional_processing_uplift_multiplier_eu": 1.1,
"regional_processing_uplift_multiplier_us": 1.1,
"search_context_cost_per_query": {
@@ -36106,7 +39155,6 @@
"litellm_provider": "openai",
"max_input_tokens": 1050000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00003,
"output_cost_per_token_above_272k_tokens": 0.000045,
@@ -36114,6 +39162,14 @@
"output_cost_per_token_batches": 0.000015,
"output_cost_per_token_above_272k_tokens_batches": 0.0000225,
"output_cost_per_token_priority": 0.000075,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn",
+ "all_turns"
+ ],
+ "reasoning_modes": [
+ "standard"
+ ],
"regional_processing_uplift_multiplier_eu": 1.1,
"regional_processing_uplift_multiplier_us": 1.1,
"search_context_cost_per_query": {
@@ -36173,6 +39229,12 @@
},
"gpt-5.6": {
"cache_creation_input_token_cost": 0.000005,
+ "cache_creation_input_token_cost_above_12hr": 0.00001,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens": 0.00002,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_flex": 0.00001,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_priority": 0.00004,
+ "cache_creation_input_token_cost_above_12hr_flex": 0.000005,
+ "cache_creation_input_token_cost_above_12hr_priority": 0.00002,
"cache_creation_input_token_cost_above_272k_tokens": 0.00001,
"cache_creation_input_token_cost_above_272k_tokens_flex": 0.000005,
"cache_creation_input_token_cost_above_272k_tokens_priority": 0.00002,
@@ -36199,7 +39261,6 @@
"litellm_provider": "openai",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00002,
"output_cost_per_token_above_272k_tokens": 0.00003,
@@ -36209,6 +39270,15 @@
"output_cost_per_token_above_272k_tokens_batches": 0.000015,
"output_cost_per_token_flex": 0.00001,
"output_cost_per_token_priority": 0.00004,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn",
+ "all_turns"
+ ],
+ "reasoning_modes": [
+ "standard",
+ "pro"
+ ],
"regional_processing_uplift_multiplier_eu": 1.1,
"regional_processing_uplift_multiplier_us": 1.1,
"search_context_cost_per_query": {
@@ -36247,6 +39317,7 @@
},
"gpt-5.6-cyber": {
"cache_creation_input_token_cost": 0.000015625,
+ "cache_creation_input_token_cost_above_12hr": 0.00003125,
"cache_creation_input_token_cost_above_272k_tokens": 0.00003125,
"cache_read_input_token_cost": 0.00000125,
"cache_read_input_token_cost_above_272k_tokens": 0.0000025,
@@ -36255,7 +39326,6 @@
"litellm_provider": "openai",
"max_input_tokens": 400000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000075,
"output_cost_per_token_above_272k_tokens": 0.0001125,
@@ -36286,6 +39356,14 @@
},
"gpt-5.6-luna": {
"cache_creation_input_token_cost": 2.5e-7,
+ "cache_creation_input_token_cost_above_12hr": 5e-7,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens": 0.000001,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_batches": 5e-7,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_flex": 5e-7,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_priority": 0.000002,
+ "cache_creation_input_token_cost_above_12hr_batches": 2.5e-7,
+ "cache_creation_input_token_cost_above_12hr_flex": 2.5e-7,
+ "cache_creation_input_token_cost_above_12hr_priority": 0.000001,
"cache_creation_input_token_cost_above_272k_tokens": 5e-7,
"cache_creation_input_token_cost_above_272k_tokens_flex": 2.5e-7,
"cache_creation_input_token_cost_above_272k_tokens_priority": 0.000001,
@@ -36312,7 +39390,6 @@
"litellm_provider": "openai",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"output_cost_per_token_above_272k_tokens": 0.0000018,
@@ -36322,6 +39399,15 @@
"output_cost_per_token_above_272k_tokens_batches": 9e-7,
"output_cost_per_token_flex": 6e-7,
"output_cost_per_token_priority": 0.0000024,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn",
+ "all_turns"
+ ],
+ "reasoning_modes": [
+ "standard",
+ "pro"
+ ],
"regional_processing_uplift_multiplier_eu": 1.1,
"regional_processing_uplift_multiplier_us": 1.1,
"search_context_cost_per_query": {
@@ -36361,6 +39447,14 @@
},
"gpt-5.6-sol": {
"cache_creation_input_token_cost": 0.000005,
+ "cache_creation_input_token_cost_above_12hr": 0.00001,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens": 0.00002,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_batches": 0.00001,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_flex": 0.00001,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_priority": 0.00004,
+ "cache_creation_input_token_cost_above_12hr_batches": 0.000005,
+ "cache_creation_input_token_cost_above_12hr_flex": 0.000005,
+ "cache_creation_input_token_cost_above_12hr_priority": 0.00002,
"cache_creation_input_token_cost_above_272k_tokens": 0.00001,
"cache_creation_input_token_cost_above_272k_tokens_flex": 0.000005,
"cache_creation_input_token_cost_above_272k_tokens_priority": 0.00002,
@@ -36387,7 +39481,6 @@
"litellm_provider": "openai",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00002,
"output_cost_per_token_above_272k_tokens": 0.00003,
@@ -36397,6 +39490,15 @@
"output_cost_per_token_above_272k_tokens_batches": 0.000015,
"output_cost_per_token_flex": 0.00001,
"output_cost_per_token_priority": 0.00004,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn",
+ "all_turns"
+ ],
+ "reasoning_modes": [
+ "standard",
+ "pro"
+ ],
"regional_processing_uplift_multiplier_eu": 1.1,
"regional_processing_uplift_multiplier_us": 1.1,
"search_context_cost_per_query": {
@@ -36437,6 +39539,14 @@
},
"gpt-5.6-terra": {
"cache_creation_input_token_cost": 0.0000025,
+ "cache_creation_input_token_cost_above_12hr": 0.000005,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens": 0.00001,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_batches": 0.000005,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_flex": 0.000005,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_priority": 0.00002,
+ "cache_creation_input_token_cost_above_12hr_batches": 0.0000025,
+ "cache_creation_input_token_cost_above_12hr_flex": 0.0000025,
+ "cache_creation_input_token_cost_above_12hr_priority": 0.00001,
"cache_creation_input_token_cost_above_272k_tokens": 0.000005,
"cache_creation_input_token_cost_above_272k_tokens_flex": 0.0000025,
"cache_creation_input_token_cost_above_272k_tokens_priority": 0.00001,
@@ -36463,7 +39573,6 @@
"litellm_provider": "openai",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000012,
"output_cost_per_token_above_272k_tokens": 0.000018,
@@ -36473,6 +39582,15 @@
"output_cost_per_token_above_272k_tokens_batches": 0.000009,
"output_cost_per_token_flex": 0.000006,
"output_cost_per_token_priority": 0.000024,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn",
+ "all_turns"
+ ],
+ "reasoning_modes": [
+ "standard",
+ "pro"
+ ],
"regional_processing_uplift_multiplier_eu": 1.1,
"regional_processing_uplift_multiplier_us": 1.1,
"search_context_cost_per_query": {
@@ -36512,6 +39630,16 @@
},
"gpt-6-astra": {
"cache_creation_input_token_cost": 0.0000125,
+ "cache_creation_input_token_cost_above_12hr": 0.000025,
+ "cache_creation_input_token_cost_above_12hr_ultrafast": 0.00015,
+ "cache_creation_input_token_cost_above_12hr_batches": 0.0000125,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens": 0.00005,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_batches": 0.000025,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_flex": 0.000025,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_priority": 0.0001,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_ultrafast": 0.0003,
+ "cache_creation_input_token_cost_above_12hr_flex": 0.0000125,
+ "cache_creation_input_token_cost_above_12hr_priority": 0.00005,
"cache_creation_input_token_cost_above_272k_tokens": 0.000025,
"cache_creation_input_token_cost_above_272k_tokens_flex": 0.0000125,
"cache_creation_input_token_cost_above_272k_tokens_priority": 0.00005,
@@ -36544,7 +39672,6 @@
"litellm_provider": "openai",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00005,
"output_cost_per_token_above_272k_tokens": 0.000075,
@@ -36556,6 +39683,71 @@
"output_cost_per_token_flex": 0.000025,
"output_cost_per_token_priority": 0.0001,
"output_cost_per_token_ultrafast": 0.0003,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn",
+ "all_turns"
+ ],
+ "reasoning_modes": [
+ "standard",
+ "pro"
+ ],
+ "regional_processing_uplift_multiplier_eu": 1.1,
+ "regional_processing_uplift_multiplier_us": 1.1,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "source": "https://developers.openai.com/api/docs/pricing",
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/batch",
+ "/v1/responses"
+ ],
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_max_reasoning_effort": true,
+ "supports_minimal_reasoning_effort": false,
+ "supports_native_streaming": true,
+ "supports_none_reasoning_effort": false,
+ "supports_parallel_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_cache_breakpoint": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_tool_choice": true,
+ "supports_tool_search": true,
+ "supports_vision": true,
+ "supports_web_search": true,
+ "supports_xhigh_reasoning_effort": true
+ },
+ "gpt-6-astra-law": {
+ "cache_read_input_token_cost": 0.000001,
+ "input_cost_per_token": 0.00001,
+ "litellm_provider": "openai",
+ "max_input_tokens": 922000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.00005,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn",
+ "all_turns"
+ ],
+ "reasoning_modes": [
+ "standard",
+ "pro"
+ ],
"regional_processing_uplift_multiplier_eu": 1.1,
"regional_processing_uplift_multiplier_us": 1.1,
"search_context_cost_per_query": {
@@ -36597,17 +39789,25 @@
},
"gpt-6-luna": {
"cache_creation_input_token_cost": 1.25e-7,
- "cache_creation_input_token_cost_decisions": 1e-7,
+ "cache_creation_input_token_cost_above_12hr": 2.5e-7,
+ "cache_creation_input_token_cost_above_12hr_batches": 1.25e-7,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens": 5e-7,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_batches": 2.5e-7,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_flex": 2.5e-7,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_priority": 0.000001,
+ "cache_creation_input_token_cost_above_12hr_flex": 1.25e-7,
+ "cache_creation_input_token_cost_above_12hr_priority": 5e-7,
+ "cache_creation_input_token_cost_decisions": 1.25e-7,
"cache_creation_input_token_cost_above_272k_tokens": 2.5e-7,
- "cache_creation_input_token_cost_above_272k_tokens_decisions": 2e-7,
+ "cache_creation_input_token_cost_above_272k_tokens_decisions": 2.5e-7,
"cache_creation_input_token_cost_above_272k_tokens_flex": 1.25e-7,
"cache_creation_input_token_cost_above_272k_tokens_priority": 5e-7,
"cache_creation_input_token_cost_flex": 6.25e-8,
"cache_creation_input_token_cost_priority": 2.5e-7,
"cache_read_input_token_cost": 1e-8,
- "cache_read_input_token_cost_decisions": 1e-7,
+ "cache_read_input_token_cost_decisions": 1e-8,
"cache_read_input_token_cost_above_272k_tokens": 2e-8,
- "cache_read_input_token_cost_above_272k_tokens_decisions": 2e-7,
+ "cache_read_input_token_cost_above_272k_tokens_decisions": 2e-8,
"cache_read_input_token_cost_above_272k_tokens_flex": 1e-8,
"cache_read_input_token_cost_above_272k_tokens_priority": 4e-8,
"cache_read_input_token_cost_batches": 5e-9,
@@ -36629,7 +39829,6 @@
"litellm_provider": "openai",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 5e-7,
"output_cost_per_token_decisions": 0,
@@ -36641,6 +39840,15 @@
"output_cost_per_token_above_272k_tokens_batches": 3.75e-7,
"output_cost_per_token_flex": 2.5e-7,
"output_cost_per_token_priority": 0.000001,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn",
+ "all_turns"
+ ],
+ "reasoning_modes": [
+ "standard",
+ "pro"
+ ],
"regional_processing_uplift_multiplier_eu": 1.1,
"regional_processing_uplift_multiplier_us": 1.1,
"search_context_cost_per_query": {
@@ -36681,8 +39889,53 @@
"supports_web_search": true,
"supports_xhigh_reasoning_effort": true
},
+ "gpt-6-rosalind": {
+ "cache_creation_input_token_cost": 0.00001875,
+ "cache_creation_input_token_cost_above_12hr": 0.0000375,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens": 0.000075,
+ "cache_creation_input_token_cost_above_272k_tokens": 0.0000375,
+ "cache_read_input_token_cost": 0.0000015,
+ "cache_read_input_token_cost_above_272k_tokens": 0.000003,
+ "input_cost_per_token": 0.000015,
+ "input_cost_per_token_above_272k_tokens": 0.00003,
+ "litellm_provider": "openai",
+ "max_input_tokens": 922000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000075,
+ "output_cost_per_token_above_272k_tokens": 0.0001125,
+ "regional_processing_uplift_multiplier_eu": 1.1,
+ "regional_processing_uplift_multiplier_us": 1.1,
+ "source": "https://developers.openai.com/api/docs/pricing",
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_max_reasoning_effort": true,
+ "supports_minimal_reasoning_effort": false,
+ "supports_native_streaming": true,
+ "supports_none_reasoning_effort": false,
+ "supports_parallel_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_cache_breakpoint": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_tool_choice": true,
+ "supports_tool_search": true,
+ "supports_vision": true,
+ "supports_web_search": true,
+ "supports_xhigh_reasoning_effort": true
+ },
"gpt-6-sol": {
"cache_creation_input_token_cost": 0.0000025,
+ "cache_creation_input_token_cost_above_12hr": 0.000005,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens": 0.00001,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_batches": 0.000005,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_flex": 0.000005,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_priority": 0.00002,
+ "cache_creation_input_token_cost_above_12hr_batches": 0.0000025,
+ "cache_creation_input_token_cost_above_12hr_flex": 0.0000025,
+ "cache_creation_input_token_cost_above_12hr_priority": 0.00001,
"cache_creation_input_token_cost_above_272k_tokens": 0.000005,
"cache_creation_input_token_cost_above_272k_tokens_flex": 0.0000025,
"cache_creation_input_token_cost_above_272k_tokens_priority": 0.00001,
@@ -36709,7 +39962,6 @@
"litellm_provider": "openai",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_above_272k_tokens": 0.000015,
@@ -36719,6 +39971,15 @@
"output_cost_per_token_above_272k_tokens_batches": 0.0000075,
"output_cost_per_token_flex": 0.000005,
"output_cost_per_token_priority": 0.00002,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn",
+ "all_turns"
+ ],
+ "reasoning_modes": [
+ "standard",
+ "pro"
+ ],
"regional_processing_uplift_multiplier_eu": 1.1,
"regional_processing_uplift_multiplier_us": 1.1,
"search_context_cost_per_query": {
@@ -36760,6 +40021,16 @@
},
"gpt-6.1-sol": {
"cache_creation_input_token_cost": 0.0000025,
+ "cache_creation_input_token_cost_above_12hr": 0.000005,
+ "cache_creation_input_token_cost_above_12hr_ultrafast": 0.00003,
+ "cache_creation_input_token_cost_above_12hr_batches": 0.0000025,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens": 0.00001,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_batches": 0.000005,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_flex": 0.000005,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_priority": 0.00002,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_ultrafast": 0.00006,
+ "cache_creation_input_token_cost_above_12hr_flex": 0.0000025,
+ "cache_creation_input_token_cost_above_12hr_priority": 0.00001,
"cache_creation_input_token_cost_above_272k_tokens": 0.000005,
"cache_creation_input_token_cost_above_272k_tokens_batches": 0.0000025,
"cache_creation_input_token_cost_above_272k_tokens_flex": 0.0000025,
@@ -36792,7 +40063,6 @@
"litellm_provider": "openai",
"max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_above_272k_tokens": 0.000015,
@@ -36804,6 +40074,15 @@
"output_cost_per_token_flex": 0.000005,
"output_cost_per_token_priority": 0.00002,
"output_cost_per_token_ultrafast": 0.00006,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn",
+ "all_turns"
+ ],
+ "reasoning_modes": [
+ "standard",
+ "pro"
+ ],
"regional_processing_uplift_multiplier_eu": 1.1,
"regional_processing_uplift_multiplier_us": 1.1,
"search_context_cost_per_query": {
@@ -36843,57 +40122,117 @@
"supports_web_search": true,
"supports_xhigh_reasoning_effort": true
},
- "gpt-audio": {
- "deprecation_date": "2027-01-20",
- "input_cost_per_audio_token": 0.000032,
- "input_cost_per_token": 0.0000025,
+ "gpt-6.1-terra": {
+ "cache_creation_input_token_cost": 0.00000125,
+ "cache_creation_input_token_cost_above_12hr": 0.0000025,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens": 0.000005,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_batches": 0.0000025,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_flex": 0.0000025,
+ "cache_creation_input_token_cost_above_12hr_above_272k_tokens_priority": 0.00001,
+ "cache_creation_input_token_cost_above_12hr_batches": 0.00000125,
+ "cache_creation_input_token_cost_above_12hr_flex": 0.00000125,
+ "cache_creation_input_token_cost_above_12hr_priority": 0.000005,
+ "cache_creation_input_token_cost_above_272k_tokens": 0.0000025,
+ "cache_creation_input_token_cost_above_272k_tokens_batches": 0.00000125,
+ "cache_creation_input_token_cost_above_272k_tokens_flex": 0.00000125,
+ "cache_creation_input_token_cost_above_272k_tokens_priority": 0.000005,
+ "cache_creation_input_token_cost_batches": 6.25e-7,
+ "cache_creation_input_token_cost_flex": 6.25e-7,
+ "cache_creation_input_token_cost_priority": 0.0000025,
+ "cache_read_input_token_cost": 5e-8,
+ "cache_read_input_token_cost_above_272k_tokens": 1e-7,
+ "cache_read_input_token_cost_above_272k_tokens_batches": 5e-8,
+ "cache_read_input_token_cost_above_272k_tokens_flex": 5e-8,
+ "cache_read_input_token_cost_above_272k_tokens_priority": 2e-7,
+ "cache_read_input_token_cost_batches": 2.5e-8,
+ "cache_read_input_token_cost_flex": 2.5e-8,
+ "cache_read_input_token_cost_priority": 1e-7,
+ "input_cost_per_token": 0.000001,
+ "input_cost_per_token_above_272k_tokens": 0.000002,
+ "input_cost_per_token_above_272k_tokens_batches": 0.000001,
+ "input_cost_per_token_above_272k_tokens_flex": 0.000001,
+ "input_cost_per_token_above_272k_tokens_priority": 0.000004,
+ "input_cost_per_token_batches": 5e-7,
+ "input_cost_per_token_flex": 5e-7,
+ "input_cost_per_token_priority": 0.000002,
"litellm_provider": "openai",
- "max_input_tokens": 128000,
- "max_output_tokens": 16384,
- "max_tokens": 16384,
+ "max_input_tokens": 922000,
+ "max_output_tokens": 128000,
"mode": "chat",
- "output_cost_per_audio_token": 0.000064,
- "output_cost_per_token": 0.00001,
+ "output_cost_per_token": 0.000005,
+ "output_cost_per_token_above_272k_tokens": 0.0000075,
+ "output_cost_per_token_above_272k_tokens_batches": 0.00000375,
+ "output_cost_per_token_above_272k_tokens_flex": 0.00000375,
+ "output_cost_per_token_above_272k_tokens_priority": 0.000015,
+ "output_cost_per_token_batches": 0.0000025,
+ "output_cost_per_token_flex": 0.0000025,
+ "output_cost_per_token_priority": 0.00001,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn",
+ "all_turns"
+ ],
+ "reasoning_modes": [
+ "standard",
+ "pro"
+ ],
+ "regional_processing_uplift_multiplier_eu": 1.1,
+ "regional_processing_uplift_multiplier_us": 1.1,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
"source": "https://developers.openai.com/api/docs/pricing",
"supported_endpoints": [
"/v1/chat/completions",
- "/v1/responses",
- "/v1/realtime",
- "/v1/batch"
+ "/v1/batch",
+ "/v1/responses"
],
"supported_modalities": [
"text",
- "audio"
+ "image"
],
"supported_output_modalities": [
- "text",
- "audio"
+ "text"
],
- "supports_audio_input": true,
- "supports_audio_output": true,
+ "supports_computer_use": true,
"supports_function_calling": true,
+ "supports_max_reasoning_effort": true,
+ "supports_minimal_reasoning_effort": false,
"supports_native_streaming": true,
+ "supports_none_reasoning_effort": true,
"supports_parallel_function_calling": true,
- "supports_prompt_caching": false,
- "supports_reasoning": false,
- "supports_response_schema": false,
+ "supports_pdf_input": true,
+ "supports_prompt_cache_breakpoint": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
"supports_system_messages": true,
"supports_tool_choice": true,
- "supports_vision": false
+ "supports_tool_search": true,
+ "supports_vision": true,
+ "supports_web_search": true,
+ "supports_xhigh_reasoning_effort": true
},
- "gpt-audio-1.5": {
+ "gpt-audio": {
+ "deprecation_date": "2027-01-20",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-audio-1.5",
"input_cost_per_audio_token": 0.000032,
"input_cost_per_token": 0.0000025,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_audio_token": 0.000064,
"output_cost_per_token": 0.00001,
"source": "https://developers.openai.com/api/docs/pricing",
"supported_endpoints": [
- "/v1/chat/completions"
+ "/v1/chat/completions",
+ "/v1/responses",
+ "/v1/realtime",
+ "/v1/batch"
],
"supported_modalities": [
"text",
@@ -36915,23 +40254,57 @@
"supports_tool_choice": true,
"supports_vision": false
},
- "gpt-audio-2025-08-28": {
- "deprecation_date": "2027-01-20",
+ "gpt-audio-1.5": {
"input_cost_per_audio_token": 0.000032,
"input_cost_per_token": 0.0000025,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_audio_token": 0.000064,
"output_cost_per_token": 0.00001,
"source": "https://developers.openai.com/api/docs/pricing",
"supported_endpoints": [
- "/v1/chat/completions",
- "/v1/responses",
- "/v1/realtime",
- "/v1/batch"
+ "/v1/chat/completions"
+ ],
+ "supported_modalities": [
+ "text",
+ "audio"
+ ],
+ "supported_output_modalities": [
+ "text",
+ "audio"
+ ],
+ "supports_audio_input": true,
+ "supports_audio_output": true,
+ "supports_function_calling": true,
+ "supports_native_streaming": true,
+ "supports_parallel_function_calling": true,
+ "supports_prompt_caching": false,
+ "supports_reasoning": false,
+ "supports_response_schema": false,
+ "supports_system_messages": true,
+ "supports_tool_choice": true,
+ "supports_vision": false
+ },
+ "gpt-audio-2025-08-28": {
+ "deprecation_date": "2027-01-20",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-audio-1.5",
+ "input_cost_per_audio_token": 0.000032,
+ "input_cost_per_token": 0.0000025,
+ "litellm_provider": "openai",
+ "max_input_tokens": 128000,
+ "max_output_tokens": 16384,
+ "mode": "chat",
+ "output_cost_per_audio_token": 0.000064,
+ "output_cost_per_token": 0.00001,
+ "source": "https://developers.openai.com/api/docs/pricing",
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/responses",
+ "/v1/realtime",
+ "/v1/batch"
],
"supported_modalities": [
"text",
@@ -36955,12 +40328,13 @@
},
"gpt-audio-mini": {
"deprecation_date": "2027-01-20",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-audio-1.5",
"input_cost_per_audio_token": 0.00001,
"input_cost_per_token": 6e-7,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_audio_token": 0.00002,
"output_cost_per_token": 0.0000024,
@@ -36993,12 +40367,13 @@
},
"gpt-audio-mini-2025-10-06": {
"deprecation_date": "2026-07-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-audio-1.5",
"input_cost_per_audio_token": 0.00001,
"input_cost_per_token": 6e-7,
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_audio_token": 0.00002,
"output_cost_per_token": 0.0000024,
@@ -37035,7 +40410,6 @@
"litellm_provider": "openai",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_audio_token": 0.00002,
"output_cost_per_token": 0.0000024,
@@ -37065,6 +40439,8 @@
"supports_tool_choice": true,
"supports_vision": false,
"deprecation_date": "2027-01-20",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-audio-1.5",
"source": "https://developers.openai.com/api/docs/pricing"
},
"gpt-rosalind-discovery": {
@@ -37085,7 +40461,6 @@
},
"gradient_ai/alibaba-qwen3-32b": {
"litellm_provider": "gradient_ai",
- "max_tokens": 40960,
"mode": "chat",
"supported_endpoints": [
"/v1/chat/completions"
@@ -37100,7 +40475,6 @@
"gradient_ai/anthropic-claude-3-opus": {
"input_cost_per_token": 0.000015,
"litellm_provider": "gradient_ai",
- "max_tokens": 1024,
"mode": "chat",
"output_cost_per_token": 0.000075,
"supported_endpoints": [
@@ -37116,7 +40490,6 @@
"gradient_ai/anthropic-claude-3.5-haiku": {
"input_cost_per_token": 8e-7,
"litellm_provider": "gradient_ai",
- "max_tokens": 1024,
"mode": "chat",
"output_cost_per_token": 0.000004,
"supported_endpoints": [
@@ -37132,7 +40505,6 @@
"gradient_ai/anthropic-claude-3.5-sonnet": {
"input_cost_per_token": 0.000003,
"litellm_provider": "gradient_ai",
- "max_tokens": 1024,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supported_endpoints": [
@@ -37148,7 +40520,6 @@
"gradient_ai/anthropic-claude-3.7-sonnet": {
"input_cost_per_token": 0.000003,
"litellm_provider": "gradient_ai",
- "max_tokens": 1024,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supported_endpoints": [
@@ -37164,7 +40535,6 @@
"gradient_ai/deepseek-r1-distill-llama-70b": {
"input_cost_per_token": 9.9e-7,
"litellm_provider": "gradient_ai",
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 9.9e-7,
"supported_endpoints": [
@@ -37180,7 +40550,6 @@
"gradient_ai/llama3-8b-instruct": {
"input_cost_per_token": 2e-7,
"litellm_provider": "gradient_ai",
- "max_tokens": 512,
"mode": "chat",
"output_cost_per_token": 2e-7,
"supported_endpoints": [
@@ -37196,7 +40565,6 @@
"gradient_ai/llama3.3-70b-instruct": {
"input_cost_per_token": 6.5e-7,
"litellm_provider": "gradient_ai",
- "max_tokens": 2048,
"mode": "chat",
"output_cost_per_token": 6.5e-7,
"supported_endpoints": [
@@ -37212,7 +40580,6 @@
"gradient_ai/mistral-nemo-instruct-2407": {
"input_cost_per_token": 3e-7,
"litellm_provider": "gradient_ai",
- "max_tokens": 512,
"mode": "chat",
"output_cost_per_token": 3e-7,
"supported_endpoints": [
@@ -37227,7 +40594,6 @@
},
"gradient_ai/openai-gpt-4o": {
"litellm_provider": "gradient_ai",
- "max_tokens": 16384,
"mode": "chat",
"supported_endpoints": [
"/v1/chat/completions"
@@ -37241,7 +40607,6 @@
},
"gradient_ai/openai-gpt-4o-mini": {
"litellm_provider": "gradient_ai",
- "max_tokens": 16384,
"mode": "chat",
"supported_endpoints": [
"/v1/chat/completions"
@@ -37256,7 +40621,6 @@
"gradient_ai/openai-o3": {
"input_cost_per_token": 0.000002,
"litellm_provider": "gradient_ai",
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.000008,
"supported_endpoints": [
@@ -37272,7 +40636,6 @@
"gradient_ai/openai-o3-mini": {
"input_cost_per_token": 0.0000011,
"litellm_provider": "gradient_ai",
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"supported_endpoints": [
@@ -37285,22 +40648,11 @@
"max_input_tokens": 200000,
"max_output_tokens": 100000
},
- "groq/llama-guard-3-8b": {
- "deprecation_date": "2025-06-06",
- "input_cost_per_token": 2e-7,
- "litellm_provider": "groq",
- "max_input_tokens": 8192,
- "max_tokens": 8192,
- "mode": "chat",
- "output_cost_per_token": 2e-7,
- "source": "https://console.groq.com/docs/model/llama-guard-3-8b"
- },
"groq/meta-llama/llama-prompt-guard-2-22m": {
"input_cost_per_token": 3e-8,
"litellm_provider": "groq",
"max_input_tokens": 512,
"max_output_tokens": 512,
- "max_tokens": 512,
"mode": "chat",
"output_cost_per_token": 3e-8,
"source": "https://console.groq.com/docs/models"
@@ -37310,7 +40662,6 @@
"litellm_provider": "groq",
"max_input_tokens": 512,
"max_output_tokens": 512,
- "max_tokens": 512,
"mode": "chat",
"output_cost_per_token": 4e-8,
"source": "https://console.groq.com/docs/model/meta-llama/llama-prompt-guard-2-86m"
@@ -37321,7 +40672,6 @@
"litellm_provider": "groq",
"max_input_tokens": 131072,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 6e-7,
"search_context_cost_per_query": {
@@ -37331,6 +40681,7 @@
},
"supports_function_calling": true,
"supports_parallel_function_calling": true,
+ "supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
@@ -37342,7 +40693,6 @@
"litellm_provider": "groq",
"max_input_tokens": 131072,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 3e-7,
"search_context_cost_per_query": {
@@ -37352,6 +40702,7 @@
},
"supports_function_calling": true,
"supports_parallel_function_calling": true,
+ "supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
@@ -37363,7 +40714,6 @@
"litellm_provider": "groq",
"max_input_tokens": 131072,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 3e-7,
"search_context_cost_per_query": {
@@ -37372,6 +40722,7 @@
"search_context_size_medium": 0.005
},
"supports_function_calling": true,
+ "supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
@@ -37382,7 +40733,6 @@
"litellm_provider": "groq",
"max_input_tokens": 131072,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.000004,
"source": "https://console.groq.com/docs/model/qwen/qwen3.8-27b",
@@ -37394,7 +40744,6 @@
},
"heroku/claude-3-5-haiku": {
"litellm_provider": "heroku",
- "max_tokens": 8192,
"mode": "chat",
"supports_function_calling": true,
"supports_system_messages": true,
@@ -37404,7 +40753,6 @@
},
"heroku/claude-3-5-sonnet-latest": {
"litellm_provider": "heroku",
- "max_tokens": 8192,
"mode": "chat",
"supports_function_calling": true,
"supports_system_messages": true,
@@ -37414,7 +40762,6 @@
},
"heroku/claude-3-7-sonnet": {
"litellm_provider": "heroku",
- "max_tokens": 8192,
"mode": "chat",
"supports_function_calling": true,
"supports_system_messages": true,
@@ -37424,7 +40771,6 @@
},
"heroku/claude-4-sonnet": {
"litellm_provider": "heroku",
- "max_tokens": 8192,
"mode": "chat",
"supports_function_calling": true,
"supports_system_messages": true,
@@ -37432,12 +40778,52 @@
"max_input_tokens": 200000,
"max_output_tokens": 8192
},
+ "hostinger_router/claude-sonnet-5": {
+ "cache_creation_input_token_cost": 0.0000033,
+ "cache_creation_input_token_cost_above_1hr": 0.00000528,
+ "cache_read_input_token_cost": 2.64e-7,
+ "input_cost_per_token": 0.00000264,
+ "litellm_provider": "hostinger_router",
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000132,
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_response_schema": true,
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/messages"
+ ],
+ "source": "https://router.hostinger.com/v1/models"
+ },
+ "hostinger_router/gpt-5.2": {
+ "cache_read_input_token_cost": 2.1e-7,
+ "input_cost_per_token": 0.0000021,
+ "litellm_provider": "hostinger_router",
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000168,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_response_schema": true,
+ "supports_vision": true,
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/responses"
+ ],
+ "source": "https://router.hostinger.com/v1/models"
+ },
"hyperbolic/NousResearch/Hermes-3-Llama-3.1-70B": {
"input_cost_per_token": 1.2e-7,
"litellm_provider": "hyperbolic",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 3e-7,
"supports_function_calling": true,
@@ -37450,7 +40836,6 @@
"litellm_provider": "hyperbolic",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 2e-7,
"supports_function_calling": true,
@@ -37463,7 +40848,6 @@
"litellm_provider": "hyperbolic",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 3e-7,
"supports_function_calling": true,
@@ -37476,7 +40860,6 @@
"litellm_provider": "hyperbolic",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 3e-7,
"supports_function_calling": true,
@@ -37489,7 +40872,6 @@
"litellm_provider": "hyperbolic",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000002,
"supports_function_calling": true,
@@ -37502,7 +40884,6 @@
"litellm_provider": "hyperbolic",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 4e-7,
"supports_function_calling": true,
@@ -37515,7 +40896,6 @@
"litellm_provider": "hyperbolic",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 2.5e-7,
"supports_function_calling": true,
@@ -37528,7 +40908,6 @@
"litellm_provider": "hyperbolic",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 2e-7,
"supports_function_calling": true,
@@ -37541,7 +40920,6 @@
"litellm_provider": "hyperbolic",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 4e-7,
"supports_function_calling": true,
@@ -37554,7 +40932,6 @@
"litellm_provider": "hyperbolic",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 3e-7,
"supports_function_calling": true,
@@ -37567,7 +40944,6 @@
"litellm_provider": "hyperbolic",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 3e-7,
"supports_function_calling": true,
@@ -37580,7 +40956,6 @@
"litellm_provider": "hyperbolic",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 3e-7,
"supports_function_calling": true,
@@ -37593,7 +40968,6 @@
"litellm_provider": "hyperbolic",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 3e-7,
"supports_function_calling": true,
@@ -37606,7 +40980,6 @@
"litellm_provider": "hyperbolic",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 3e-7,
"supports_function_calling": true,
@@ -37619,7 +40992,6 @@
"litellm_provider": "hyperbolic",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 3e-7,
"supports_function_calling": true,
@@ -37632,7 +41004,6 @@
"litellm_provider": "hyperbolic",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000002,
"supports_function_calling": true,
@@ -37655,7 +41026,6 @@
"token_count_tokenizer": "kimi_k3",
"max_input_tokens": 1000000,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000165,
"output_cost_per_token_flex": 0.00000825,
@@ -37678,7 +41048,6 @@
"litellm_provider": "inception",
"max_input_tokens": 128000,
"max_output_tokens": 50000,
- "max_tokens": 50000,
"mode": "chat",
"output_cost_per_token": 7.5e-7,
"supports_function_calling": true,
@@ -37693,7 +41062,6 @@
"litellm_provider": "inception",
"max_input_tokens": 260000,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 7.5e-7,
"source": "https://docs.inceptionlabs.ai/get-started/models",
@@ -37708,7 +41076,7 @@
"input_cost_per_token": 3.9e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 524288,
- "max_tokens": 524288,
+ "max_output_tokens": 524288,
"mode": "chat",
"output_cost_per_token": 0.00000156,
"source": "https://inferenceapis.com/pricing",
@@ -37728,7 +41096,7 @@
"input_cost_per_token": 2.6e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 262144,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.00000115,
"source": "https://inferenceapis.com/pricing",
@@ -37748,7 +41116,7 @@
"input_cost_per_token": 1.5e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 1000000,
- "max_tokens": 1000000,
+ "max_output_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 5e-7,
"source": "https://inferenceapis.com/pricing",
@@ -37769,7 +41137,7 @@
"input_cost_per_token": 1.9e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 3.8e-7,
"source": "https://inferenceapis.com/pricing",
@@ -37790,7 +41158,7 @@
"input_cost_per_token": 1.9e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 3.8e-7,
"source": "https://inferenceapis.com/pricing",
@@ -37811,7 +41179,7 @@
"input_cost_per_token": 1.9e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 3.8e-7,
"source": "https://inferenceapis.com/pricing",
@@ -37832,7 +41200,7 @@
"input_cost_per_token": 0.00000172,
"litellm_provider": "inferenceapis",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.00000515,
"source": "https://inferenceapis.com/pricing",
@@ -37853,7 +41221,7 @@
"input_cost_per_token": 0.00000172,
"litellm_provider": "inferenceapis",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.00000515,
"source": "https://inferenceapis.com/pricing",
@@ -37874,7 +41242,7 @@
"input_cost_per_token": 4e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.0000016,
"source": "https://inferenceapis.com/pricing",
@@ -37895,7 +41263,7 @@
"input_cost_per_token": 1.9e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 3.8e-7,
"source": "https://inferenceapis.com/pricing",
@@ -37916,7 +41284,7 @@
"input_cost_per_token": 4e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.0000016,
"source": "https://inferenceapis.com/pricing",
@@ -37937,7 +41305,7 @@
"input_cost_per_token": 1.9e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 3.8e-7,
"source": "https://inferenceapis.com/pricing",
@@ -37958,7 +41326,7 @@
"input_cost_per_token": 1.9e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 3.8e-7,
"source": "https://inferenceapis.com/pricing",
@@ -37979,7 +41347,7 @@
"input_cost_per_token": 1.9e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 3.8e-7,
"source": "https://inferenceapis.com/pricing",
@@ -38000,7 +41368,7 @@
"input_cost_per_token": 0.00000172,
"litellm_provider": "inferenceapis",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.00000515,
"source": "https://inferenceapis.com/pricing",
@@ -38021,7 +41389,7 @@
"input_cost_per_token": 4e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.0000016,
"source": "https://inferenceapis.com/pricing",
@@ -38042,7 +41410,7 @@
"input_cost_per_token": 0.00000182,
"litellm_provider": "inferenceapis",
"max_input_tokens": 1048575,
- "max_tokens": 1048575,
+ "max_output_tokens": 1048575,
"mode": "chat",
"output_cost_per_token": 0.00000572,
"source": "https://inferenceapis.com/pricing",
@@ -38063,7 +41431,7 @@
"input_cost_per_token": 2e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 1048575,
- "max_tokens": 1048575,
+ "max_output_tokens": 1048575,
"mode": "chat",
"output_cost_per_token": 6.6e-7,
"source": "https://inferenceapis.com/pricing",
@@ -38083,7 +41451,7 @@
"input_cost_per_token": 2e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 131072,
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 8e-7,
"source": "https://inferenceapis.com/pricing",
@@ -38102,7 +41470,7 @@
"input_cost_per_token": 4e-8,
"litellm_provider": "inferenceapis",
"max_input_tokens": 131072,
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 1.9e-7,
"source": "https://inferenceapis.com/pricing",
@@ -38122,7 +41490,7 @@
"input_cost_per_token": 8.9e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 262144,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.00000442,
"source": "https://inferenceapis.com/pricing",
@@ -38142,7 +41510,7 @@
"input_cost_per_token": 2e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 131072,
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 5e-7,
"source": "https://inferenceapis.com/pricing",
@@ -38161,7 +41529,7 @@
"input_cost_per_token": 2e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 131072,
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 5e-7,
"source": "https://inferenceapis.com/pricing",
@@ -38180,7 +41548,7 @@
"input_cost_per_token": 2e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 131072,
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 5e-7,
"source": "https://inferenceapis.com/pricing",
@@ -38199,7 +41567,7 @@
"input_cost_per_token": 2e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 131072,
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 5e-7,
"source": "https://inferenceapis.com/pricing",
@@ -38218,7 +41586,7 @@
"input_cost_per_token": 2e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 131072,
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 5e-7,
"source": "https://inferenceapis.com/pricing",
@@ -38237,7 +41605,7 @@
"input_cost_per_token": 2e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 131072,
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 5e-7,
"source": "https://inferenceapis.com/pricing",
@@ -38257,7 +41625,7 @@
"input_cost_per_token": 3.9e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 524288,
- "max_tokens": 524288,
+ "max_output_tokens": 524288,
"mode": "chat",
"output_cost_per_token": 0.00000156,
"source": "https://inferenceapis.com/pricing",
@@ -38278,7 +41646,7 @@
"input_cost_per_token": 8.9e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 262144,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.00000442,
"source": "https://inferenceapis.com/pricing",
@@ -38298,7 +41666,7 @@
"input_cost_per_token": 2e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 131072,
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 8e-7,
"source": "https://inferenceapis.com/pricing",
@@ -38317,7 +41685,7 @@
"input_cost_per_token": 4e-8,
"litellm_provider": "inferenceapis",
"max_input_tokens": 131072,
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 1.9e-7,
"source": "https://inferenceapis.com/pricing",
@@ -38336,7 +41704,7 @@
"input_cost_per_token": 2.6e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 262144,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.00000115,
"source": "https://inferenceapis.com/pricing",
@@ -38355,7 +41723,7 @@
"input_cost_per_token": 2.6e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 262144,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.00000115,
"source": "https://inferenceapis.com/pricing",
@@ -38375,7 +41743,7 @@
"input_cost_per_token": 1.5e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 1000000,
- "max_tokens": 1000000,
+ "max_output_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 5e-7,
"source": "https://inferenceapis.com/pricing",
@@ -38396,7 +41764,7 @@
"input_cost_per_token": 0.00000182,
"litellm_provider": "inferenceapis",
"max_input_tokens": 1048575,
- "max_tokens": 1048575,
+ "max_output_tokens": 1048575,
"mode": "chat",
"output_cost_per_token": 0.00000572,
"source": "https://inferenceapis.com/pricing",
@@ -38417,7 +41785,7 @@
"input_cost_per_token": 2e-7,
"litellm_provider": "inferenceapis",
"max_input_tokens": 1048575,
- "max_tokens": 1048575,
+ "max_output_tokens": 1048575,
"mode": "chat",
"output_cost_per_token": 6.6e-7,
"source": "https://inferenceapis.com/pricing",
@@ -38438,7 +41806,6 @@
"litellm_provider": "ai21",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 4e-7,
"supports_tool_choice": true
@@ -38448,7 +41815,6 @@
"litellm_provider": "ai21",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 0.000008,
"supports_tool_choice": true
@@ -38458,7 +41824,6 @@
"litellm_provider": "ai21",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 0.000008,
"supports_tool_choice": true
@@ -38468,7 +41833,6 @@
"litellm_provider": "ai21",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 4e-7,
"supports_tool_choice": true
@@ -38478,7 +41842,6 @@
"litellm_provider": "ai21",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 4e-7,
"supports_tool_choice": true
@@ -38488,7 +41851,6 @@
"litellm_provider": "ai21",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 0.000008,
"supports_tool_choice": true
@@ -38498,7 +41860,6 @@
"litellm_provider": "ai21",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 0.000008,
"supports_tool_choice": true
@@ -38508,7 +41869,6 @@
"litellm_provider": "ai21",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 4e-7,
"supports_tool_choice": true
@@ -38518,7 +41878,6 @@
"litellm_provider": "ai21",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 4e-7,
"supports_tool_choice": true
@@ -38534,7 +41893,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000003311,
"output_cost_per_token_batches": 0.0000016555,
@@ -38559,7 +41917,6 @@
"supports_tool_search": true,
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.0000055,
"source": "https://aws.amazon.com/bedrock/pricing/",
@@ -38576,7 +41933,11 @@
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 4096,
"input_cost_per_token_batches": 5.5e-7,
- "output_cost_per_token_batches": 0.00000275
+ "output_cost_per_token_batches": 0.00000275,
+ "token_count_model": {
+ "model": "anthropic.claude-haiku-4-5-20251001-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"jp.anthropic.claude-haiku-5-5": {
"input_cost_per_token_above_100k_tokens": 5.5e-7,
@@ -38593,7 +41954,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 5.5e-7,
"search_context_cost_per_query": {
@@ -38635,327 +41995,1587 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
- "output_cost_per_token": 0.0000275,
- "search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
- },
- "supports_adaptive_thinking": true,
- "supports_assistant_prefill": false,
- "supports_computer_use": true,
+ "output_cost_per_token": 0.0000275,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "supports_adaptive_thinking": true,
+ "supports_assistant_prefill": false,
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_sampling_params": false,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_xhigh_reasoning_effort": true,
+ "supports_native_structured_output": false,
+ "supports_max_reasoning_effort": true,
+ "supports_minimal_reasoning_effort": true,
+ "supports_parallel_tool_use_config": true,
+ "prompt_cache_min_tokens": 2048,
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-7",
+ "litellm_provider": "bedrock_mantle",
+ "region": "ap-northeast-1"
+ }
+ },
+ "jp.anthropic.claude-opus-4-8": {
+ "bedrock_converse_supports_strict_tools": false,
+ "supports_adaptive_thinking": true,
+ "supports_mid_conversation_system": true,
+ "cache_creation_input_token_cost": 0.000006875,
+ "cache_creation_input_token_cost_above_1hr": 0.000011,
+ "cache_read_input_token_cost": 5.5e-7,
+ "input_cost_per_token": 0.0000055,
+ "litellm_provider": "bedrock_converse",
+ "supports_tool_search": true,
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000275,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "supports_assistant_prefill": false,
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_sampling_params": false,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_xhigh_reasoning_effort": true,
+ "supports_native_structured_output": false,
+ "supports_bedrock_native_structured_output": true,
+ "supports_max_reasoning_effort": true,
+ "supports_output_config": true,
+ "bedrock_output_config_effort_ceiling": "xhigh",
+ "supports_parallel_tool_use_config": true,
+ "prompt_cache_min_tokens": 1024,
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-8",
+ "litellm_provider": "bedrock_mantle",
+ "region": "ap-northeast-1"
+ }
+ },
+ "jp.anthropic.claude-opus-5": {
+ "bedrock_converse_supports_strict_tools": false,
+ "supports_adaptive_thinking": true,
+ "supports_mid_conversation_system": true,
+ "cache_creation_input_token_cost": 0.000006875,
+ "cache_creation_input_token_cost_above_1hr": 0.000011,
+ "cache_read_input_token_cost": 5.5e-7,
+ "input_cost_per_token": 0.0000055,
+ "litellm_provider": "bedrock_converse",
+ "supports_tool_search": true,
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000275,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "supports_assistant_prefill": false,
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_sampling_params": false,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_xhigh_reasoning_effort": true,
+ "supports_native_structured_output": false,
+ "supports_max_reasoning_effort": true,
+ "supports_output_config": true,
+ "supports_parallel_tool_use_config": true,
+ "prompt_cache_min_tokens": 512,
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/ap-northeast-1/index.json",
+ "input_cost_per_token_batches": 0.00000275,
+ "output_cost_per_token_batches": 0.00001375
+ },
+ "jp.anthropic.claude-opus-5-5": {
+ "bedrock_converse_supports_strict_tools": false,
+ "supports_adaptive_thinking": true,
+ "supports_mid_conversation_system": true,
+ "cache_creation_input_token_cost": 0.0000055,
+ "cache_creation_input_token_cost_above_1hr": 0.0000088,
+ "cache_read_input_token_cost": 2.2e-7,
+ "input_cost_per_token": 0.0000044,
+ "litellm_provider": "bedrock_converse",
+ "supports_tool_search": true,
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000022,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "supports_assistant_prefill": false,
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_sampling_params": false,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_xhigh_reasoning_effort": true,
+ "supports_native_structured_output": false,
+ "supports_max_reasoning_effort": true,
+ "supports_output_config": true,
+ "supports_parallel_tool_use_config": true,
+ "prompt_cache_min_tokens": 512,
+ "thinking_always_on": true,
+ "supports_forced_tool_use": false,
+ "source": "https://aws.amazon.com/bedrock/pricing/"
+ },
+ "jp.anthropic.claude-sonnet-4-5-20250929-v1:0": {
+ "cache_creation_input_token_cost": 0.000004125,
+ "cache_creation_input_token_cost_above_1hr": 0.0000066,
+ "cache_read_input_token_cost": 3.3e-7,
+ "input_cost_per_token": 0.0000033,
+ "input_cost_per_token_above_200k_tokens": 0.0000066,
+ "output_cost_per_token_above_200k_tokens": 0.00002475,
+ "cache_creation_input_token_cost_above_200k_tokens": 0.00000825,
+ "cache_creation_input_token_cost_above_1hr_above_200k_tokens": 0.0000132,
+ "cache_read_input_token_cost_above_200k_tokens": 6.6e-7,
+ "deprecation_date": "2027-04-08",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
+ "successor_model": "jp.anthropic.claude-sonnet-5-5",
+ "litellm_provider": "bedrock_converse",
+ "supports_tool_search": true,
+ "max_input_tokens": 200000,
+ "max_output_tokens": 64000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000165,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "supports_assistant_prefill": true,
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_native_structured_output": true,
+ "supports_parallel_tool_use_config": true,
+ "prompt_cache_min_tokens": 1024,
+ "input_cost_per_token_batches": 0.00000165,
+ "output_cost_per_token_batches": 0.00000825,
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-5-20250929-v1:0",
+ "litellm_provider": "bedrock"
+ }
+ },
+ "jp.anthropic.claude-sonnet-4-6": {
+ "supports_adaptive_thinking": true,
+ "supports_legacy_thinking": true,
+ "cache_creation_input_token_cost": 0.000004125,
+ "cache_creation_input_token_cost_above_1hr": 0.0000066,
+ "cache_read_input_token_cost": 3.3e-7,
+ "input_cost_per_token": 0.0000033,
+ "litellm_provider": "bedrock_converse",
+ "supports_tool_search": true,
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 64000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000165,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "supports_assistant_prefill": false,
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_max_reasoning_effort": true,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_native_structured_output": true,
+ "supports_output_config": true,
+ "supports_parallel_tool_use_config": true,
+ "prompt_cache_min_tokens": 1024,
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-6",
+ "litellm_provider": "bedrock"
+ }
+ },
+ "jp.anthropic.claude-sonnet-5": {
+ "bedrock_converse_supports_strict_tools": false,
+ "cache_creation_input_token_cost": 0.00000275,
+ "cache_creation_input_token_cost_above_1hr": 0.0000044,
+ "cache_read_input_token_cost": 2.2e-7,
+ "input_cost_per_token": 0.0000022,
+ "litellm_provider": "bedrock_converse",
+ "supports_tool_search": true,
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000011,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "supports_adaptive_thinking": true,
+ "supports_mid_conversation_system": true,
+ "supports_assistant_prefill": false,
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_sampling_params": false,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_xhigh_reasoning_effort": true,
+ "supports_native_structured_output": false,
+ "supports_bedrock_native_structured_output": true,
+ "supports_max_reasoning_effort": true,
+ "supports_output_config": true,
+ "bedrock_output_config_effort_ceiling": "xhigh",
+ "supports_parallel_tool_use_config": true,
+ "prompt_cache_min_tokens": 1024,
+ "source": "https://aws.amazon.com/bedrock/pricing/"
+ },
+ "jp.anthropic.claude-sonnet-5-5": {
+ "bedrock_converse_supports_strict_tools": false,
+ "cache_creation_input_token_cost": 0.00000275,
+ "cache_creation_input_token_cost_above_1hr": 0.0000044,
+ "cache_read_input_token_cost": 1.1e-7,
+ "input_cost_per_token": 0.0000022,
+ "litellm_provider": "bedrock_converse",
+ "supports_tool_search": true,
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000011,
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
+ "supports_adaptive_thinking": true,
+ "supports_mid_conversation_system": true,
+ "supports_assistant_prefill": false,
+ "supports_computer_use": true,
+ "supports_function_calling": true,
+ "supports_pdf_input": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_sampling_params": false,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_xhigh_reasoning_effort": true,
+ "supports_native_structured_output": false,
+ "supports_bedrock_native_structured_output": true,
+ "supports_max_reasoning_effort": true,
+ "supports_output_config": true,
+ "bedrock_output_config_effort_ceiling": "xhigh",
+ "supports_parallel_tool_use_config": true,
+ "supports_forced_tool_use": false,
+ "thinking_always_on": true,
+ "prompt_cache_min_tokens": 512,
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json"
+ },
+ "kimi-k2-thinking-251104": {
+ "input_cost_per_token": 0,
+ "litellm_provider": "volcengine",
+ "max_input_tokens": 229376,
+ "max_output_tokens": 32768,
+ "mode": "chat",
+ "output_cost_per_token": 0,
+ "supports_assistant_prefill": true,
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true
+ },
+ "kyma/claude-fable-5": {
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "input_cost_per_token": 0.0000135,
+ "output_cost_per_token": 0.0000675,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true,
+ "supports_adaptive_thinking": true,
+ "thinking_always_on": true
+ },
+ "kyma/claude-fable-5.1": {
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "input_cost_per_token": 0.0000135,
+ "output_cost_per_token": 0.0000675,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true,
+ "supports_adaptive_thinking": true,
+ "thinking_always_on": true
+ },
+ "kyma/claude-haiku-4-5": {
+ "max_input_tokens": 200000,
+ "max_output_tokens": 64000,
+ "input_cost_per_token": 0.00000135,
+ "cache_read_input_token_cost": 1.35e-7,
+ "output_cost_per_token": 0.00000675,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false,
+ "prompt_cache_min_tokens": 4096
+ },
+ "kyma/claude-haiku-5.5": {
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "input_cost_per_token": 1.35e-7,
+ "cache_read_input_token_cost": 1.35e-8,
+ "output_cost_per_token": 6.75e-7,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true,
+ "supports_adaptive_thinking": true,
+ "thinking_always_on": false,
+ "prompt_cache_min_tokens": 512
+ },
+ "kyma/claude-opus-4-7": {
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "input_cost_per_token": 0.00000675,
+ "cache_read_input_token_cost": 6.75e-7,
+ "output_cost_per_token": 0.00003375,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false,
+ "supports_adaptive_thinking": true,
+ "prompt_cache_min_tokens": 2048
+ },
+ "kyma/claude-opus-5": {
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "input_cost_per_token": 0.00000675,
+ "cache_read_input_token_cost": 6.75e-7,
+ "output_cost_per_token": 0.00003375,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true,
+ "supports_adaptive_thinking": true,
+ "prompt_cache_min_tokens": 512
+ },
+ "kyma/claude-opus-5.5": {
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "input_cost_per_token": 0.0000054,
+ "cache_read_input_token_cost": 2.7e-7,
+ "output_cost_per_token": 0.000027,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true,
+ "supports_adaptive_thinking": true,
+ "thinking_always_on": true,
+ "prompt_cache_min_tokens": 512
+ },
+ "kyma/claude-sonnet-4-6": {
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "input_cost_per_token": 0.00000405,
+ "cache_read_input_token_cost": 4.05e-7,
+ "output_cost_per_token": 0.00002025,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false,
+ "supports_adaptive_thinking": true,
+ "prompt_cache_min_tokens": 1024
+ },
+ "kyma/claude-sonnet-5": {
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "input_cost_per_token": 0.0000027,
+ "cache_read_input_token_cost": 2.7e-7,
+ "output_cost_per_token": 0.0000135,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true,
+ "supports_adaptive_thinking": true,
+ "prompt_cache_min_tokens": 1024
+ },
+ "kyma/claude-sonnet-5.5": {
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 128000,
+ "input_cost_per_token": 0.0000027,
+ "cache_read_input_token_cost": 1.35e-7,
+ "output_cost_per_token": 0.0000135,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true,
+ "supports_adaptive_thinking": true,
+ "thinking_always_on": true,
+ "prompt_cache_min_tokens": 512
+ },
+ "kyma/deepseek-r1": {
+ "max_input_tokens": 64000,
+ "max_output_tokens": 32768,
+ "input_cost_per_token": 7.425e-7,
+ "output_cost_per_token": 0.000002957,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": false,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/deepseek-v3": {
+ "max_input_tokens": 160000,
+ "max_output_tokens": 8192,
+ "input_cost_per_token": 5.18e-7,
+ "output_cost_per_token": 7.571e-7,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": false,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/deepseek-v4-flash": {
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 65536,
+ "input_cost_per_token": 1.23e-7,
+ "cache_read_input_token_cost": 2.43e-8,
+ "output_cost_per_token": 2.458e-7,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": false,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/deepseek-v4-flash-vision-exp": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 384000,
+ "input_cost_per_token": 3.892e-7,
+ "output_cost_per_token": 0.000001168,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/deepseek-v4.1-flash": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 131072,
+ "input_cost_per_token": 2.7e-7,
+ "output_cost_per_token": 8.1e-7,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/gemini-3-flash": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 8192,
+ "input_cost_per_token": 6.75e-7,
+ "cache_read_input_token_cost": 6.75e-8,
+ "output_cost_per_token": 0.00000405,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/gemini-3.1-pro": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 65536,
+ "input_cost_per_token": 0.0000027,
+ "cache_read_input_token_cost": 2.7e-7,
+ "output_cost_per_token": 0.0000162,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true
+ },
+ "kyma/gemini-3.5-flash": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 8192,
+ "input_cost_per_token": 0.000002025,
+ "cache_read_input_token_cost": 2.025e-7,
+ "output_cost_per_token": 0.00001215,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/gemini-3.5-flash-lite": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 8192,
+ "input_cost_per_token": 4.05e-7,
+ "cache_read_input_token_cost": 4.05e-8,
+ "output_cost_per_token": 0.000003375,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/gemini-3.6-flash": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 8192,
+ "input_cost_per_token": 0.000001013,
+ "cache_read_input_token_cost": 1.0125e-7,
+ "output_cost_per_token": 0.000005063,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": false,
+ "supports_pdf_input": false
+ },
+ "kyma/gemini-3.7-flash": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 65536,
+ "input_cost_per_token": 0.000002026,
+ "cache_read_input_token_cost": 1.0125e-7,
+ "output_cost_per_token": 0.000010126,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true
+ },
+ "kyma/gemini-3.8-flash": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 65536,
+ "input_cost_per_token": 0.000002026,
+ "output_cost_per_token": 0.000010126,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true
+ },
+ "kyma/gemini-4-argon": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 65536,
+ "input_cost_per_token": 0.0000054,
+ "cache_read_input_token_cost": 2.7e-7,
+ "output_cost_per_token": 0.000027,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true
+ },
+ "kyma/gemma-4-31b": {
+ "max_input_tokens": 128000,
+ "max_output_tokens": 8192,
+ "input_cost_per_token": 1.642e-7,
+ "cache_read_input_token_cost": 1.642e-7,
+ "output_cost_per_token": 4.689e-7,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/glm-4.5-air": {
+ "max_input_tokens": 131072,
+ "max_output_tokens": 8192,
+ "input_cost_per_token": 1.797e-7,
+ "cache_read_input_token_cost": 3.375e-8,
+ "output_cost_per_token": 0.000001175,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": false,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/glm-4.7-flash": {
+ "max_input_tokens": 203000,
+ "max_output_tokens": 65536,
+ "input_cost_per_token": 8.1e-8,
+ "cache_read_input_token_cost": 1.35e-8,
+ "output_cost_per_token": 5.4e-7,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": false,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/glm-5.1": {
+ "max_input_tokens": 203000,
+ "max_output_tokens": 65536,
+ "input_cost_per_token": 0.00000189,
+ "cache_read_input_token_cost": 2.7675e-7,
+ "output_cost_per_token": 0.00000594,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": false,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/glm-5.2": {
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 131072,
+ "input_cost_per_token": 9.029e-7,
+ "cache_read_input_token_cost": 2.9835e-7,
+ "output_cost_per_token": 0.000003083,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": false,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/glm-5.3": {
+ "max_input_tokens": 1310720,
+ "max_output_tokens": 131072,
+ "input_cost_per_token": 0.000001178,
+ "output_cost_per_token": 0.000003702,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": false,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/glm-5.3-flash": {
+ "max_input_tokens": 1310720,
+ "max_output_tokens": 65536,
+ "input_cost_per_token": 1.72e-7,
+ "output_cost_per_token": 5.733e-7,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/gpt-5.6-luna": {
+ "max_input_tokens": 1050000,
+ "max_output_tokens": 128000,
+ "input_cost_per_token": 2.944e-7,
+ "cache_read_input_token_cost": 2.7e-8,
+ "output_cost_per_token": 0.000001767,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true
+ },
+ "kyma/gpt-5.6-luna-pro": {
+ "max_input_tokens": 1050000,
+ "max_output_tokens": 128000,
+ "input_cost_per_token": 2.703e-7,
+ "cache_read_input_token_cost": 2.7e-8,
+ "output_cost_per_token": 0.000001621,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true
+ },
+ "kyma/gpt-5.6-sol": {
+ "max_input_tokens": 1050000,
+ "max_output_tokens": 128000,
+ "input_cost_per_token": 0.0000054,
+ "cache_read_input_token_cost": 6.75e-7,
+ "output_cost_per_token": 0.000027,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true
+ },
+ "kyma/gpt-5.6-sol-pro": {
+ "max_input_tokens": 1050000,
+ "max_output_tokens": 128000,
+ "input_cost_per_token": 0.0000054,
+ "cache_read_input_token_cost": 6.75e-7,
+ "output_cost_per_token": 0.000027,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true
+ },
+ "kyma/gpt-5.6-terra": {
+ "max_input_tokens": 1050000,
+ "max_output_tokens": 8192,
+ "input_cost_per_token": 0.0000027,
+ "cache_read_input_token_cost": 2.7e-7,
+ "output_cost_per_token": 0.0000162,
+ "input_cost_per_token_above_272k_tokens": 0.0000054,
+ "output_cost_per_token_above_272k_tokens": 0.0000243,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/gpt-5.6-terra-pro": {
+ "max_input_tokens": 1050000,
+ "max_output_tokens": 128000,
+ "input_cost_per_token": 0.0000027,
+ "cache_read_input_token_cost": 2.7e-7,
+ "output_cost_per_token": 0.0000162,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true
+ },
+ "kyma/gpt-6-astra": {
+ "max_input_tokens": 1050000,
+ "max_output_tokens": 128000,
+ "input_cost_per_token": 0.0000135,
+ "cache_read_input_token_cost": 0.00000135,
+ "output_cost_per_token": 0.0000675,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/gpt-6-luna": {
+ "max_input_tokens": 1050000,
+ "max_output_tokens": 128000,
+ "input_cost_per_token": 1.639e-7,
+ "cache_read_input_token_cost": 1.35e-8,
+ "output_cost_per_token": 8.195e-7,
+ "input_cost_per_token_above_272k_tokens": 2.7e-7,
+ "output_cost_per_token_above_272k_tokens": 0.0000010125,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true
+ },
+ "kyma/gpt-6.1-sol": {
+ "max_input_tokens": 1050000,
+ "max_output_tokens": 128000,
+ "input_cost_per_token": 0.0000027,
+ "cache_read_input_token_cost": 1.35e-7,
+ "output_cost_per_token": 0.0000135,
+ "input_cost_per_token_above_272k_tokens": 0.0000054,
+ "output_cost_per_token_above_272k_tokens": 0.00002025,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true
+ },
+ "kyma/gpt-oss-120b": {
+ "max_input_tokens": 128000,
+ "max_output_tokens": 8192,
+ "input_cost_per_token": 4.73e-8,
+ "output_cost_per_token": 2.303e-7,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": false,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/grok-4.20": {
+ "max_input_tokens": 2000000,
+ "max_output_tokens": 8192,
+ "input_cost_per_token": 0.000001763,
+ "output_cost_per_token": 0.000003528,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true
+ },
+ "kyma/grok-4.20-multi-agent": {
+ "max_input_tokens": 2000000,
+ "max_output_tokens": 8192,
+ "input_cost_per_token": 0.000001767,
+ "output_cost_per_token": 0.000003534,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": false,
+ "supports_vision": true,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true
+ },
+ "kyma/grok-4.3": {
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 32768,
+ "input_cost_per_token": 0.00000192,
+ "cache_read_input_token_cost": 2.7e-7,
+ "output_cost_per_token": 0.000003838,
+ "input_cost_per_token_above_200k_tokens": 0.000003375,
+ "output_cost_per_token_above_200k_tokens": 0.00000675,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/grok-4.5": {
+ "max_input_tokens": 500000,
+ "max_output_tokens": 8192,
+ "input_cost_per_token": 0.00000273,
+ "output_cost_per_token": 0.000008189,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true
+ },
+ "kyma/grok-4.6": {
+ "max_input_tokens": 500000,
+ "max_output_tokens": 8192,
+ "input_cost_per_token": 0.000002758,
+ "output_cost_per_token": 0.000008274,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true
+ },
+ "kyma/grok-4.7": {
+ "max_input_tokens": 500000,
+ "max_output_tokens": 450000,
+ "input_cost_per_token": 0.00000216,
+ "cache_read_input_token_cost": 5.4e-7,
+ "output_cost_per_token": 0.00000648,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true
+ },
+ "kyma/grok-build": {
+ "max_input_tokens": 256000,
+ "max_output_tokens": 32768,
+ "input_cost_per_token": 0.000001389,
+ "cache_read_input_token_cost": 2.7e-7,
+ "output_cost_per_token": 0.000002777,
+ "input_cost_per_token_above_200k_tokens": 0.0000027,
+ "output_cost_per_token_above_200k_tokens": 0.0000054,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/hy3": {
+ "max_input_tokens": 262144,
+ "max_output_tokens": 8192,
+ "input_cost_per_token": 1.594e-7,
+ "output_cost_per_token": 6.576e-7,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": false,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/hy4-preview": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 64000,
+ "input_cost_per_token": 0.0000011259,
+ "output_cost_per_token": 0.0000033764,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": false,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/kimi-k2.6": {
+ "max_input_tokens": 262144,
+ "max_output_tokens": 32768,
+ "input_cost_per_token": 5.909e-7,
+ "output_cost_per_token": 0.000002758,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/kimi-k2.7-code": {
+ "max_input_tokens": 262144,
+ "max_output_tokens": 16384,
+ "input_cost_per_token": 0.000001009,
+ "output_cost_per_token": 0.000004774,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/kimi-k3": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 32768,
+ "input_cost_per_token": 0.000003052,
+ "cache_read_input_token_cost": 4.05e-7,
+ "output_cost_per_token": 0.000015258,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/kimi-k3.1-pro": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 943718,
+ "input_cost_per_token": 0.0000027,
+ "cache_read_input_token_cost": 2.7e-7,
+ "output_cost_per_token": 0.0000135,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/llama-3.3-70b": {
+ "max_input_tokens": 128000,
+ "max_output_tokens": 8192,
+ "input_cost_per_token": 1.35e-7,
+ "output_cost_per_token": 4.32e-7,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": false,
+ "supports_prompt_caching": true,
+ "supports_reasoning": false,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/llama-4-maverick": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 16384,
+ "input_cost_per_token": 3.344e-7,
+ "output_cost_per_token": 0.000001337,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": false,
+ "supports_reasoning": false,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/mimo-v2.5": {
+ "max_input_tokens": 1050000,
+ "max_output_tokens": 16384,
+ "input_cost_per_token": 1.859e-7,
+ "output_cost_per_token": 3.718e-7,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/mimo-v2.6-flash": {
+ "max_input_tokens": 1050000,
+ "max_output_tokens": 131072,
+ "input_cost_per_token": 1.89e-7,
+ "output_cost_per_token": 3.78e-7,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/mimo-v2.6-pro": {
+ "max_input_tokens": 1050000,
+ "max_output_tokens": 131072,
+ "input_cost_per_token": 5.805e-7,
+ "output_cost_per_token": 0.0000011745,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/minimax-m2.5": {
+ "max_input_tokens": 196608,
+ "max_output_tokens": 32768,
+ "input_cost_per_token": 4.188e-7,
+ "output_cost_per_token": 0.000001675,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": false,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/minimax-m2.7": {
+ "max_input_tokens": 204800,
+ "max_output_tokens": 32768,
+ "input_cost_per_token": 4.05e-7,
+ "output_cost_per_token": 0.00000162,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": false,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/minimax-m3": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 32768,
+ "input_cost_per_token": 3.956e-7,
+ "cache_read_input_token_cost": 7.56e-8,
+ "output_cost_per_token": 0.000001582,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/minimax-m3.1-flash": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 524288,
+ "input_cost_per_token": 2.025e-7,
+ "cache_read_input_token_cost": 2.025e-8,
+ "output_cost_per_token": 8.1e-7,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/muse-glimmer-30b": {
+ "max_input_tokens": 131072,
+ "max_output_tokens": 8192,
+ "input_cost_per_token": 4.554e-7,
+ "output_cost_per_token": 0.000001821,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/muse-spark-1.1": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 8192,
+ "input_cost_per_token": 0.000001542,
+ "output_cost_per_token": 0.000005243,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true
+ },
+ "kyma/muse-spark-1.2": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 8192,
+ "input_cost_per_token": 0.000001773,
+ "output_cost_per_token": 0.000006025,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true
+ },
+ "kyma/muse-spark-1.3": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 8192,
+ "input_cost_per_token": 0.000001688,
+ "output_cost_per_token": 0.000005738,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true
+ },
+ "kyma/muse-spark-open": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 943718,
+ "input_cost_per_token": 0.000001688,
+ "output_cost_per_token": 0.000005738,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/muse-wonder": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 943718,
+ "input_cost_per_token": 0.0000054,
+ "output_cost_per_token": 0.000027,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": true
+ },
+ "kyma/nemotron-3-ultra-550b": {
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 32768,
+ "input_cost_per_token": 6.75e-7,
+ "cache_read_input_token_cost": 1.35e-7,
+ "output_cost_per_token": 0.000003375,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": false,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/nemotron-3.5-super-vl": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 235929,
+ "input_cost_per_token": 8.1e-8,
+ "cache_read_input_token_cost": 1.35e-8,
+ "output_cost_per_token": 4.725e-7,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/qwen-3-32b": {
+ "max_input_tokens": 32768,
+ "max_output_tokens": 8192,
+ "input_cost_per_token": 1.08e-7,
+ "output_cost_per_token": 3.78e-7,
+ "litellm_provider": "kyma",
+ "mode": "chat",
"supports_function_calling": true,
- "supports_pdf_input": true,
+ "supports_vision": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
- "supports_sampling_params": false,
- "supports_tool_choice": true,
- "supports_vision": true,
- "supports_xhigh_reasoning_effort": true,
- "supports_native_structured_output": false,
- "supports_max_reasoning_effort": true,
- "supports_minimal_reasoning_effort": true,
- "supports_parallel_tool_use_config": true,
- "prompt_cache_min_tokens": 2048,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "supports_pdf_input": false
},
- "jp.anthropic.claude-opus-4-8": {
- "bedrock_converse_supports_strict_tools": false,
- "supports_adaptive_thinking": true,
- "supports_mid_conversation_system": true,
- "cache_creation_input_token_cost": 0.000006875,
- "cache_creation_input_token_cost_above_1hr": 0.000011,
- "cache_read_input_token_cost": 5.5e-7,
- "input_cost_per_token": 0.0000055,
- "litellm_provider": "bedrock_converse",
- "supports_tool_search": true,
+ "kyma/qwen-3-coder": {
+ "max_input_tokens": 131072,
+ "max_output_tokens": 32768,
+ "input_cost_per_token": 3.546e-7,
+ "cache_read_input_token_cost": 1.35e-7,
+ "output_cost_per_token": 0.000001612,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_vision": false,
+ "supports_prompt_caching": true,
+ "supports_reasoning": false,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
+ },
+ "kyma/qwen-3.6-plus": {
"max_input_tokens": 1000000,
- "max_output_tokens": 128000,
- "max_tokens": 128000,
+ "max_output_tokens": 65536,
+ "input_cost_per_token": 4.388e-7,
+ "output_cost_per_token": 0.000002633,
+ "input_cost_per_token_above_256k_tokens": 0.000001755,
+ "output_cost_per_token_above_256k_tokens": 0.000005265,
+ "litellm_provider": "kyma",
"mode": "chat",
- "output_cost_per_token": 0.0000275,
- "search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
- },
- "supports_assistant_prefill": false,
- "supports_computer_use": true,
"supports_function_calling": true,
- "supports_pdf_input": true,
+ "supports_vision": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
- "supports_sampling_params": false,
- "supports_tool_choice": true,
- "supports_vision": true,
- "supports_xhigh_reasoning_effort": true,
- "supports_native_structured_output": false,
- "supports_bedrock_native_structured_output": true,
- "supports_max_reasoning_effort": true,
- "supports_output_config": true,
- "bedrock_output_config_effort_ceiling": "xhigh",
- "supports_parallel_tool_use_config": true,
- "prompt_cache_min_tokens": 1024,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "supports_pdf_input": false
},
- "jp.anthropic.claude-opus-5": {
- "bedrock_converse_supports_strict_tools": false,
- "supports_adaptive_thinking": true,
- "supports_mid_conversation_system": true,
- "cache_creation_input_token_cost": 0.000006875,
- "cache_creation_input_token_cost_above_1hr": 0.000011,
- "cache_read_input_token_cost": 5.5e-7,
- "input_cost_per_token": 0.0000055,
- "litellm_provider": "bedrock_converse",
- "supports_tool_search": true,
+ "kyma/qwen-3.7-max": {
"max_input_tokens": 1000000,
- "max_output_tokens": 128000,
- "max_tokens": 128000,
+ "max_output_tokens": 32768,
+ "input_cost_per_token": 0.000002071,
+ "cache_read_input_token_cost": 1.6875e-7,
+ "output_cost_per_token": 0.000006207,
+ "litellm_provider": "kyma",
"mode": "chat",
- "output_cost_per_token": 0.0000275,
- "search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
- },
- "supports_assistant_prefill": false,
- "supports_computer_use": true,
"supports_function_calling": true,
- "supports_pdf_input": true,
+ "supports_vision": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
- "supports_sampling_params": false,
- "supports_tool_choice": true,
- "supports_vision": true,
- "supports_xhigh_reasoning_effort": true,
- "supports_native_structured_output": false,
- "supports_max_reasoning_effort": true,
- "supports_output_config": true,
- "supports_parallel_tool_use_config": true,
- "prompt_cache_min_tokens": 512,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "supports_pdf_input": false
},
- "jp.anthropic.claude-opus-5-5": {
- "bedrock_converse_supports_strict_tools": false,
- "supports_adaptive_thinking": true,
- "supports_mid_conversation_system": true,
- "cache_creation_input_token_cost": 0.0000055,
- "cache_creation_input_token_cost_above_1hr": 0.0000088,
- "cache_read_input_token_cost": 2.2e-7,
- "input_cost_per_token": 0.0000044,
- "litellm_provider": "bedrock_converse",
- "supports_tool_search": true,
+ "kyma/qwen-3.7-plus": {
"max_input_tokens": 1000000,
- "max_output_tokens": 128000,
- "max_tokens": 128000,
+ "max_output_tokens": 32768,
+ "input_cost_per_token": 4.325e-7,
+ "cache_read_input_token_cost": 8.64e-8,
+ "output_cost_per_token": 0.000001731,
+ "input_cost_per_token_above_256k_tokens": 0.000001296,
+ "output_cost_per_token_above_256k_tokens": 0.000005184,
+ "litellm_provider": "kyma",
"mode": "chat",
- "output_cost_per_token": 0.000022,
- "search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
- },
- "supports_assistant_prefill": false,
- "supports_computer_use": true,
"supports_function_calling": true,
- "supports_pdf_input": true,
+ "supports_vision": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
- "supports_sampling_params": false,
- "supports_tool_choice": true,
- "supports_vision": true,
- "supports_xhigh_reasoning_effort": true,
- "supports_native_structured_output": false,
- "supports_max_reasoning_effort": true,
- "supports_output_config": true,
- "supports_parallel_tool_use_config": true,
- "prompt_cache_min_tokens": 512,
- "thinking_always_on": true,
- "supports_forced_tool_use": false,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "supports_pdf_input": false
},
- "jp.anthropic.claude-sonnet-4-5-20250929-v1:0": {
- "cache_creation_input_token_cost": 0.000004125,
- "cache_creation_input_token_cost_above_1hr": 0.0000066,
- "cache_read_input_token_cost": 3.3e-7,
- "input_cost_per_token": 0.0000033,
- "input_cost_per_token_above_200k_tokens": 0.0000066,
- "output_cost_per_token_above_200k_tokens": 0.00002475,
- "cache_creation_input_token_cost_above_200k_tokens": 0.00000825,
- "cache_creation_input_token_cost_above_1hr_above_200k_tokens": 0.0000132,
- "cache_read_input_token_cost_above_200k_tokens": 6.6e-7,
- "deprecation_date": "2027-04-08",
- "litellm_provider": "bedrock_converse",
- "supports_tool_search": true,
- "max_input_tokens": 200000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "kyma/qwen-3.8-max": {
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 131072,
+ "input_cost_per_token": 0.000002228,
+ "cache_read_input_token_cost": 2.781e-7,
+ "output_cost_per_token": 0.000006684,
+ "litellm_provider": "kyma",
"mode": "chat",
- "output_cost_per_token": 0.0000165,
- "search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
- },
- "supports_assistant_prefill": true,
- "supports_computer_use": true,
"supports_function_calling": true,
- "supports_pdf_input": true,
+ "supports_vision": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
- "supports_tool_choice": true,
- "supports_vision": true,
- "supports_native_structured_output": true,
- "supports_parallel_tool_use_config": true,
- "prompt_cache_min_tokens": 1024,
- "input_cost_per_token_batches": 0.00000165,
- "output_cost_per_token_batches": 0.00000825,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "supports_pdf_input": false
},
- "jp.anthropic.claude-sonnet-4-6": {
- "supports_adaptive_thinking": true,
- "supports_legacy_thinking": true,
- "cache_creation_input_token_cost": 0.000004125,
- "cache_creation_input_token_cost_above_1hr": 0.0000066,
- "cache_read_input_token_cost": 3.3e-7,
- "input_cost_per_token": 0.0000033,
- "litellm_provider": "bedrock_converse",
- "supports_tool_search": true,
+ "kyma/qwen3.7-flash": {
"max_input_tokens": 1000000,
- "max_output_tokens": 64000,
- "max_tokens": 64000,
+ "max_output_tokens": 8192,
+ "input_cost_per_token": 4.35e-8,
+ "cache_read_input_token_cost": 8.1e-9,
+ "output_cost_per_token": 1.886e-7,
+ "input_cost_per_token_above_32k_tokens": 1.35e-7,
+ "output_cost_per_token_above_32k_tokens": 5.4e-7,
+ "input_cost_per_token_above_256k_tokens": 2.7e-7,
+ "output_cost_per_token_above_256k_tokens": 0.00000108,
+ "litellm_provider": "kyma",
"mode": "chat",
- "output_cost_per_token": 0.0000165,
- "search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
- },
- "supports_assistant_prefill": false,
- "supports_computer_use": true,
"supports_function_calling": true,
- "supports_pdf_input": true,
+ "supports_vision": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
- "supports_max_reasoning_effort": true,
- "supports_tool_choice": true,
+ "supports_pdf_input": false
+ },
+ "kyma/qwen3.8-27b": {
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 131072,
+ "input_cost_per_token": 3.826e-7,
+ "output_cost_per_token": 0.000002732,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": true,
"supports_vision": true,
- "supports_native_structured_output": true,
- "supports_output_config": true,
- "supports_parallel_tool_use_config": true,
- "prompt_cache_min_tokens": 1024,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "supports_prompt_caching": false,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_pdf_input": false
},
- "jp.anthropic.claude-sonnet-5": {
- "bedrock_converse_supports_strict_tools": false,
- "cache_creation_input_token_cost": 0.00000275,
- "cache_creation_input_token_cost_above_1hr": 0.0000044,
- "cache_read_input_token_cost": 2.2e-7,
- "input_cost_per_token": 0.0000022,
- "litellm_provider": "bedrock_converse",
- "supports_tool_search": true,
+ "kyma/qwen3.8-flash": {
"max_input_tokens": 1000000,
- "max_output_tokens": 128000,
- "max_tokens": 128000,
+ "max_output_tokens": 131072,
+ "input_cost_per_token": 2.045e-7,
+ "output_cost_per_token": 6.41e-7,
+ "litellm_provider": "kyma",
"mode": "chat",
- "output_cost_per_token": 0.000011,
- "search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
- },
- "supports_adaptive_thinking": true,
- "supports_mid_conversation_system": true,
- "supports_assistant_prefill": false,
- "supports_computer_use": true,
"supports_function_calling": true,
- "supports_pdf_input": true,
+ "supports_vision": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
- "supports_sampling_params": false,
- "supports_tool_choice": true,
+ "supports_pdf_input": false
+ },
+ "kyma/sonar": {
+ "max_input_tokens": 127072,
+ "max_output_tokens": 4096,
+ "input_cost_per_token": 0.00000135,
+ "output_cost_per_token": 0.00000135,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": false,
"supports_vision": true,
- "supports_xhigh_reasoning_effort": true,
- "supports_native_structured_output": false,
- "supports_bedrock_native_structured_output": true,
- "supports_max_reasoning_effort": true,
- "supports_output_config": true,
- "bedrock_output_config_effort_ceiling": "xhigh",
- "supports_parallel_tool_use_config": true,
- "prompt_cache_min_tokens": 1024,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "supports_prompt_caching": true,
+ "supports_reasoning": false,
+ "supports_response_schema": false,
+ "supports_pdf_input": false
},
- "jp.anthropic.claude-sonnet-5-5": {
- "bedrock_converse_supports_strict_tools": false,
- "cache_creation_input_token_cost": 0.00000275,
- "cache_creation_input_token_cost_above_1hr": 0.0000044,
- "cache_read_input_token_cost": 1.1e-7,
- "input_cost_per_token": 0.0000022,
- "litellm_provider": "bedrock_converse",
- "supports_tool_search": true,
- "max_input_tokens": 1000000,
- "max_output_tokens": 128000,
- "max_tokens": 128000,
+ "kyma/sonar-pro": {
+ "max_input_tokens": 200000,
+ "max_output_tokens": 8000,
+ "input_cost_per_token": 0.00000405,
+ "output_cost_per_token": 0.00002025,
+ "litellm_provider": "kyma",
+ "mode": "chat",
+ "supports_function_calling": false,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": false,
+ "supports_response_schema": false,
+ "supports_pdf_input": false
+ },
+ "kyma/step-3.7-flash": {
+ "max_input_tokens": 256000,
+ "max_output_tokens": 8192,
+ "input_cost_per_token": 2.229e-7,
+ "cache_read_input_token_cost": 5.4e-8,
+ "output_cost_per_token": 0.000001282,
+ "litellm_provider": "kyma",
"mode": "chat",
- "output_cost_per_token": 0.000011,
- "search_context_cost_per_query": {
- "search_context_size_high": 0.01,
- "search_context_size_low": 0.01,
- "search_context_size_medium": 0.01
- },
- "supports_adaptive_thinking": true,
- "supports_mid_conversation_system": true,
- "supports_assistant_prefill": false,
- "supports_computer_use": true,
"supports_function_calling": true,
- "supports_pdf_input": true,
+ "supports_vision": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
- "supports_sampling_params": false,
- "supports_tool_choice": true,
- "supports_vision": true,
- "supports_xhigh_reasoning_effort": true,
- "supports_native_structured_output": false,
- "supports_bedrock_native_structured_output": true,
- "supports_max_reasoning_effort": true,
- "supports_output_config": true,
- "bedrock_output_config_effort_ceiling": "xhigh",
- "supports_parallel_tool_use_config": true,
- "supports_forced_tool_use": false,
- "thinking_always_on": true,
- "prompt_cache_min_tokens": 512,
- "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json"
+ "supports_pdf_input": false
},
- "kimi-k2-thinking-251104": {
- "input_cost_per_token": 0,
- "litellm_provider": "volcengine",
- "max_input_tokens": 229376,
- "max_output_tokens": 32768,
- "max_tokens": 32768,
+ "kyma/step-5-preview": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 64000,
+ "input_cost_per_token": 0.00000135,
+ "cache_read_input_token_cost": 1.35e-7,
+ "output_cost_per_token": 0.000003645,
+ "litellm_provider": "kyma",
"mode": "chat",
- "output_cost_per_token": 0,
- "supports_assistant_prefill": true,
"supports_function_calling": true,
+ "supports_vision": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
- "supports_tool_choice": true
+ "supports_response_schema": true,
+ "supports_pdf_input": false
},
"lambda_ai/deepseek-llama3.3-70b": {
"input_cost_per_token": 2e-7,
"litellm_provider": "lambda_ai",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 6e-7,
"supports_function_calling": true,
@@ -38969,7 +43589,6 @@
"litellm_provider": "lambda_ai",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 6e-7,
"supports_function_calling": true,
@@ -38983,7 +43602,6 @@
"litellm_provider": "lambda_ai",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 8e-7,
"supports_function_calling": true,
@@ -38997,7 +43615,6 @@
"litellm_provider": "lambda_ai",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 6e-7,
"supports_function_calling": true,
@@ -39010,7 +43627,6 @@
"litellm_provider": "lambda_ai",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 8e-7,
"supports_function_calling": true,
@@ -39023,7 +43639,6 @@
"litellm_provider": "lambda_ai",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 3e-7,
"supports_function_calling": true,
@@ -39036,7 +43651,6 @@
"litellm_provider": "lambda_ai",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 4e-8,
"supports_function_calling": true,
@@ -39049,7 +43663,6 @@
"litellm_provider": "lambda_ai",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 2e-7,
"supports_function_calling": true,
@@ -39062,7 +43675,6 @@
"litellm_provider": "lambda_ai",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 4e-8,
"supports_function_calling": true,
@@ -39075,7 +43687,6 @@
"litellm_provider": "lambda_ai",
"max_input_tokens": 131072,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 1e-7,
"supports_function_calling": true,
@@ -39088,7 +43699,6 @@
"litellm_provider": "lambda_ai",
"max_input_tokens": 16384,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 1e-7,
"supports_function_calling": true,
@@ -39101,7 +43711,6 @@
"litellm_provider": "lambda_ai",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 8e-7,
"supports_function_calling": true,
@@ -39114,7 +43723,6 @@
"litellm_provider": "lambda_ai",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 3e-7,
"supports_function_calling": true,
@@ -39127,7 +43735,6 @@
"litellm_provider": "lambda_ai",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 4e-8,
"supports_function_calling": true,
@@ -39140,7 +43747,6 @@
"litellm_provider": "lambda_ai",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 3e-7,
"supports_function_calling": true,
@@ -39153,7 +43759,6 @@
"litellm_provider": "lambda_ai",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 2.5e-8,
"supports_function_calling": true,
@@ -39167,7 +43772,6 @@
"litellm_provider": "lambda_ai",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 2.5e-8,
"supports_function_calling": true,
@@ -39180,7 +43784,6 @@
"litellm_provider": "lambda_ai",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 3e-7,
"supports_function_calling": true,
@@ -39193,7 +43796,6 @@
"litellm_provider": "lambda_ai",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 1e-7,
"supports_function_calling": true,
@@ -39206,7 +43808,6 @@
"litellm_provider": "lambda_ai",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 1e-7,
"supports_function_calling": true,
@@ -39218,7 +43819,6 @@
"lemonade/Gemma-3-4b-it-GGUF": {
"input_cost_per_token": 0,
"litellm_provider": "lemonade",
- "max_tokens": 8192,
"max_input_tokens": 128000,
"max_output_tokens": 8192,
"mode": "chat",
@@ -39230,7 +43830,6 @@
"lemonade/Qwen3-4B-Instruct-2507-GGUF": {
"input_cost_per_token": 0,
"litellm_provider": "lemonade",
- "max_tokens": 32768,
"max_input_tokens": 262144,
"max_output_tokens": 32768,
"mode": "chat",
@@ -39242,7 +43841,6 @@
"lemonade/Qwen3-Coder-30B-A3B-Instruct-GGUF": {
"input_cost_per_token": 0,
"litellm_provider": "lemonade",
- "max_tokens": 32768,
"max_input_tokens": 262144,
"max_output_tokens": 32768,
"mode": "chat",
@@ -39254,7 +43852,6 @@
"lemonade/gpt-oss-120b-mxfp-GGUF": {
"input_cost_per_token": 0,
"litellm_provider": "lemonade",
- "max_tokens": 32768,
"max_input_tokens": 131072,
"max_output_tokens": 32768,
"mode": "chat",
@@ -39266,7 +43863,6 @@
"lemonade/gpt-oss-20b-mxfp4-GGUF": {
"input_cost_per_token": 0,
"litellm_provider": "lemonade",
- "max_tokens": 32768,
"max_input_tokens": 131072,
"max_output_tokens": 32768,
"mode": "chat",
@@ -39276,7 +43872,6 @@
"supports_tool_choice": true
},
"libertai/deepseek-v4-flash": {
- "max_tokens": 200000,
"max_input_tokens": 200000,
"max_output_tokens": 200000,
"input_cost_per_token": 2.5e-7,
@@ -39290,7 +43885,6 @@
"source": "https://docs.libertai.io/apis/text/"
},
"libertai/deepseek-v4-flash-thinking": {
- "max_tokens": 200000,
"max_input_tokens": 200000,
"max_output_tokens": 200000,
"input_cost_per_token": 2.5e-7,
@@ -39305,7 +43899,6 @@
"source": "https://docs.libertai.io/apis/text/"
},
"libertai/gemma-4-31b-it": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 1.5e-7,
@@ -39319,7 +43912,6 @@
"source": "https://docs.libertai.io/apis/text/"
},
"libertai/gemma-4-31b-it-thinking": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 1.5e-7,
@@ -39334,7 +43926,6 @@
"source": "https://docs.libertai.io/apis/text/"
},
"libertai/hermes-3-8b-tee": {
- "max_tokens": 16000,
"max_input_tokens": 16000,
"max_output_tokens": 16000,
"input_cost_per_token": 1.5e-7,
@@ -39348,7 +43939,6 @@
"source": "https://docs.libertai.io/apis/text/"
},
"libertai/qwen3.5-122b-a10b": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 2.5e-7,
@@ -39362,7 +43952,6 @@
"source": "https://docs.libertai.io/apis/text/"
},
"libertai/qwen3.5-122b-a10b-thinking": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 2.5e-7,
@@ -39377,7 +43966,6 @@
"source": "https://docs.libertai.io/apis/text/"
},
"libertai/qwen3.6-27b": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 1.5e-7,
@@ -39391,7 +43979,6 @@
"source": "https://docs.libertai.io/apis/text/"
},
"libertai/qwen3.6-27b-thinking": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 1.5e-7,
@@ -39406,7 +43993,6 @@
"source": "https://docs.libertai.io/apis/text/"
},
"libertai/qwen3.6-35b-a3b": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 1.5e-7,
@@ -39420,7 +44006,6 @@
"source": "https://docs.libertai.io/apis/text/"
},
"libertai/qwen3.6-35b-a3b-thinking": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 1.5e-7,
@@ -39435,7 +44020,6 @@
"source": "https://docs.libertai.io/apis/text/"
},
"llamagate/codellama-7b": {
- "max_tokens": 4096,
"max_input_tokens": 16384,
"max_output_tokens": 4096,
"input_cost_per_token": 6e-8,
@@ -39446,7 +44030,6 @@
"supports_response_schema": true
},
"llamagate/deepseek-coder-6.7b": {
- "max_tokens": 4096,
"max_input_tokens": 16384,
"max_output_tokens": 4096,
"input_cost_per_token": 6e-8,
@@ -39457,7 +44040,6 @@
"supports_response_schema": true
},
"llamagate/deepseek-r1-7b-qwen": {
- "max_tokens": 16384,
"max_input_tokens": 131072,
"max_output_tokens": 16384,
"input_cost_per_token": 8e-8,
@@ -39469,7 +44051,6 @@
"supports_reasoning": true
},
"llamagate/deepseek-r1-8b": {
- "max_tokens": 16384,
"max_input_tokens": 65536,
"max_output_tokens": 16384,
"input_cost_per_token": 1e-7,
@@ -39481,7 +44062,6 @@
"supports_reasoning": true
},
"llamagate/dolphin3-8b": {
- "max_tokens": 8192,
"max_input_tokens": 128000,
"max_output_tokens": 8192,
"input_cost_per_token": 8e-8,
@@ -39492,7 +44072,6 @@
"supports_response_schema": true
},
"llamagate/gemma3-4b": {
- "max_tokens": 8192,
"max_input_tokens": 128000,
"max_output_tokens": 8192,
"input_cost_per_token": 3e-8,
@@ -39504,7 +44083,6 @@
"supports_vision": true
},
"llamagate/llama-3.1-8b": {
- "max_tokens": 8192,
"max_input_tokens": 131072,
"max_output_tokens": 8192,
"input_cost_per_token": 3e-8,
@@ -39515,7 +44093,6 @@
"supports_response_schema": true
},
"llamagate/llama-3.2-3b": {
- "max_tokens": 8192,
"max_input_tokens": 131072,
"max_output_tokens": 8192,
"input_cost_per_token": 4e-8,
@@ -39526,7 +44103,6 @@
"supports_response_schema": true
},
"llamagate/llava-7b": {
- "max_tokens": 2048,
"max_input_tokens": 4096,
"max_output_tokens": 2048,
"input_cost_per_token": 1e-7,
@@ -39537,7 +44113,6 @@
"supports_vision": true
},
"llamagate/mistral-7b-v0.3": {
- "max_tokens": 8192,
"max_input_tokens": 32768,
"max_output_tokens": 8192,
"input_cost_per_token": 1e-7,
@@ -39548,7 +44123,6 @@
"supports_response_schema": true
},
"llamagate/openthinker-7b": {
- "max_tokens": 8192,
"max_input_tokens": 32768,
"max_output_tokens": 8192,
"input_cost_per_token": 8e-8,
@@ -39560,7 +44134,6 @@
"supports_reasoning": true
},
"llamagate/qwen2.5-coder-7b": {
- "max_tokens": 8192,
"max_input_tokens": 32768,
"max_output_tokens": 8192,
"input_cost_per_token": 6e-8,
@@ -39571,7 +44144,6 @@
"supports_response_schema": true
},
"llamagate/qwen3-8b": {
- "max_tokens": 8192,
"max_input_tokens": 32768,
"max_output_tokens": 8192,
"input_cost_per_token": 4e-8,
@@ -39582,7 +44154,6 @@
"supports_response_schema": true
},
"llamagate/qwen3-vl-8b": {
- "max_tokens": 8192,
"max_input_tokens": 32768,
"max_output_tokens": 8192,
"input_cost_per_token": 1.5e-7,
@@ -39598,7 +44169,6 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 8192,
"max_output_tokens": 1024,
- "max_tokens": 1024,
"mode": "chat",
"output_cost_per_character": 0.000015,
"source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#foundation_models",
@@ -39609,7 +44179,6 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 32768,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_character": 0.000001,
"source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#foundation_models",
@@ -39620,7 +44189,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000001,
"source": "https://aws.amazon.com/bedrock/pricing/"
@@ -39630,18 +44198,17 @@
"litellm_provider": "bedrock",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.00000256,
"source": "https://aws.amazon.com/bedrock/pricing/"
},
"meta.llama3-1-405b-instruct-v1:0": {
"deprecation_date": "2026-07-07",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 0.0000024,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.0000024,
"source": "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/bedrock/USD/current/bedrock.json",
@@ -39650,12 +44217,12 @@
},
"meta.llama3-1-70b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 7.2e-7,
"input_cost_per_token_batches": 3.6e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 7.2e-7,
"output_cost_per_token_batches": 3.6e-7,
@@ -39665,12 +44232,12 @@
},
"meta.llama3-1-8b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 2.2e-7,
"input_cost_per_token_batches": 1.1e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 2.2e-7,
"output_cost_per_token_batches": 1.1e-7,
@@ -39680,11 +44247,11 @@
},
"meta.llama3-2-11b-instruct-v1:0": {
"deprecation_date": "2026-07-07",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 1.6e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 1.6e-7,
"source": "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/bedrock/USD/current/bedrock.json",
@@ -39694,11 +44261,11 @@
},
"meta.llama3-2-1b-instruct-v1:0": {
"deprecation_date": "2026-07-07",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-2-1b-instruct.md",
"input_cost_per_token": 1e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 1e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-2-1b-instruct.md",
@@ -39707,11 +44274,11 @@
},
"meta.llama3-2-3b-instruct-v1:0": {
"deprecation_date": "2026-07-07",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-2-3b-instruct.md",
"input_cost_per_token": 1.5e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 1.5e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-2-3b-instruct.md",
@@ -39720,11 +44287,11 @@
},
"meta.llama3-2-90b-instruct-v1:0": {
"deprecation_date": "2026-07-07",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 7.2e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 7.2e-7,
"source": "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/bedrock/USD/current/bedrock.json",
@@ -39734,12 +44301,12 @@
},
"meta.llama3-3-70b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 7.2e-7,
"input_cost_per_token_batches": 3.6e-7,
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 7.2e-7,
"output_cost_per_token_batches": 3.6e-7,
@@ -39749,34 +44316,34 @@
},
"meta.llama3-70b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-70b-instruct.md",
"input_cost_per_token": 0.00000265,
"litellm_provider": "bedrock",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000035,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-70b-instruct.md"
},
"meta.llama3-8b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-8b-instruct.md",
"input_cost_per_token": 3e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 6e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-8b-instruct.md"
},
"meta.llama4-maverick-17b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-4-maverick-17b-instruct.md",
"input_cost_per_token": 2.4e-7,
"input_cost_per_token_batches": 1.2e-7,
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 9.7e-7,
"output_cost_per_token_batches": 4.85e-7,
@@ -39794,12 +44361,12 @@
},
"meta.llama4-scout-17b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-4-scout-17b-instruct.md",
"input_cost_per_token": 1.7e-7,
"input_cost_per_token_batches": 8.5e-8,
"litellm_provider": "bedrock_converse",
"max_input_tokens": 10000000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 6.6e-7,
"output_cost_per_token_batches": 3.3e-7,
@@ -39821,7 +44388,6 @@
"litellm_provider": "meta",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.00000425,
"search_context_cost_per_query": {
@@ -39862,7 +44428,6 @@
"litellm_provider": "meta",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.00000425,
"search_context_cost_per_query": {
@@ -39903,7 +44468,6 @@
"litellm_provider": "meta",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 2e-7,
"search_context_cost_per_query": {
@@ -39944,7 +44508,6 @@
"litellm_provider": "meta",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.00000425,
"search_context_cost_per_query": {
@@ -39985,7 +44548,6 @@
"litellm_provider": "meta",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 2e-7,
"search_context_cost_per_query": {
@@ -40026,7 +44588,6 @@
"litellm_provider": "meta",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.00002,
"search_context_cost_per_query": {
@@ -40067,7 +44628,6 @@
"litellm_provider": "meta_llama",
"max_input_tokens": 128000,
"max_output_tokens": 4028,
- "max_tokens": 4028,
"mode": "chat",
"source": "https://ai.developer.meta.com/docs/models",
"supported_modalities": [
@@ -40083,7 +44643,6 @@
"litellm_provider": "meta_llama",
"max_input_tokens": 128000,
"max_output_tokens": 4028,
- "max_tokens": 4028,
"mode": "chat",
"source": "https://ai.developer.meta.com/docs/models",
"supported_modalities": [
@@ -40099,7 +44658,6 @@
"litellm_provider": "meta_llama",
"max_input_tokens": 1000000,
"max_output_tokens": 4028,
- "max_tokens": 4028,
"mode": "chat",
"source": "https://ai.developer.meta.com/docs/models",
"supported_modalities": [
@@ -40116,7 +44674,6 @@
"litellm_provider": "meta_llama",
"max_input_tokens": 10000000,
"max_output_tokens": 4028,
- "max_tokens": 4028,
"mode": "chat",
"source": "https://ai.developer.meta.com/docs/models",
"supported_modalities": [
@@ -40138,6 +44695,7 @@
},
"minimax.minimax-m2": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 3e-7,
"input_cost_per_token_batches": 1.5e-7,
"input_cost_per_token_flex": 1.5e-7,
@@ -40145,7 +44703,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"output_cost_per_token_batches": 6e-7,
@@ -40161,6 +44718,7 @@
},
"minimax.minimax-m2.1": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 3e-7,
"input_cost_per_token_batches": 1.5e-7,
"input_cost_per_token_flex": 1.5e-7,
@@ -40168,7 +44726,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 196000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"output_cost_per_token_batches": 6e-7,
@@ -40192,7 +44749,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 196000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token_batches": 6e-7,
"output_cost_per_token_priority": 0.0000021,
@@ -40299,6 +44855,7 @@
},
"mistral.devstral-2-123b": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 4e-7,
"input_cost_per_token_batches": 2e-7,
"input_cost_per_token_flex": 2e-7,
@@ -40306,7 +44863,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 256000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.000002,
"output_cost_per_token_batches": 0.000001,
@@ -40328,7 +44884,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 40000,
- "max_tokens": 40000,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"output_cost_per_token_batches": 7.5e-7,
@@ -40350,7 +44905,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 2e-7,
"output_cost_per_token_batches": 1e-7,
@@ -40372,7 +44926,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 1e-7,
"output_cost_per_token_batches": 5e-8,
@@ -40394,7 +44947,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 1.5e-7,
"output_cost_per_token_batches": 7e-8,
@@ -40410,11 +44962,11 @@
},
"mistral.mistral-7b-instruct-v0:2": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-mistral-ai-mistral-7b-instruct.md",
"input_cost_per_token": 1.5e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 32000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 2e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-mistral-ai-mistral-7b-instruct.md",
@@ -40425,7 +44977,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 32000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000012,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-mistral-ai-mistral-large.md",
@@ -40436,7 +44987,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.000006,
"source": "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/bedrock/USD/current/bedrock.json",
@@ -40451,7 +45001,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 256000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"output_cost_per_token_batches": 7.5e-7,
@@ -40471,7 +45020,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 32000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000003,
"output_cost_per_token_batches": 0.0000015,
@@ -40480,11 +45028,11 @@
},
"mistral.mixtral-8x7b-instruct-v0:1": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-mistral-ai-mixtral-8x7b-instruct.md",
"input_cost_per_token": 4.5e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 32000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 7e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-mistral-ai-mixtral-8x7b-instruct.md",
@@ -40495,7 +45043,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.000006,
"source": "https://aws.amazon.com/bedrock/pricing/",
@@ -40504,6 +45051,7 @@
},
"mistral.voxtral-mini-3b-2507": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 4e-8,
"input_cost_per_token_batches": 2e-8,
"input_cost_per_token_flex": 2e-8,
@@ -40511,7 +45059,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 32768,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 4e-8,
"output_cost_per_token_batches": 2e-8,
@@ -40524,6 +45071,7 @@
},
"mistral.voxtral-small-24b-2507": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 1e-7,
"input_cost_per_token_batches": 5e-8,
"input_cost_per_token_flex": 5e-8,
@@ -40531,7 +45079,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 32768,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 3e-7,
"output_cost_per_token_batches": 1.5e-7,
@@ -40548,7 +45095,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 9e-7,
"source": "https://docs.mistral.ai/models/model-cards/codestral-25-08",
@@ -40563,7 +45109,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 9e-7,
"source": "https://docs.mistral.ai/models/model-cards/codestral-25-08",
@@ -40578,25 +45123,44 @@
"litellm_provider": "mistral",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 2.5e-7,
"source": "https://mistral.ai/technology/",
"supports_assistant_prefill": true,
"supports_tool_choice": true
},
+ "mistral/deepseek-v4-1-flash-1017": {
+ "cache_read_input_token_cost": 7e-9,
+ "input_cost_per_token": 3e-7,
+ "litellm_provider": "mistral",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 131072,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000012,
+ "source": "https://docs.mistral.ai/models/deepseek-v4-flash-1017",
+ "supports_assistant_prefill": true,
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true
+ },
"mistral/devstral-latest": {
"cache_read_input_token_cost": 4e-8,
"input_cost_per_token": 4e-7,
"litellm_provider": "mistral",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 0.000002,
+ "reasoning_effort_levels": [
+ "none",
+ "high"
+ ],
"source": "https://mistral.ai/news/devstral-2-vibe-cli",
"supports_assistant_prefill": true,
"supports_function_calling": true,
+ "supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true
},
@@ -40606,12 +45170,16 @@
"litellm_provider": "mistral",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 0.000002,
+ "reasoning_effort_levels": [
+ "none",
+ "high"
+ ],
"source": "https://mistral.ai/news/devstral-2-vibe-cli",
"supports_assistant_prefill": true,
"supports_function_calling": true,
+ "supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true
},
@@ -40621,12 +45189,16 @@
"litellm_provider": "mistral",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 3e-7,
+ "reasoning_effort_levels": [
+ "none",
+ "high"
+ ],
"source": "https://docs.mistral.ai/models/devstral-small-2-25-12",
"supports_assistant_prefill": true,
"supports_function_calling": true,
+ "supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true
},
@@ -40636,7 +45208,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"reasoning_effort_levels": [
@@ -40662,7 +45233,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://docs.mistral.ai/models/model-cards/leanstral-1-5",
@@ -40675,7 +45245,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://docs.mistral.ai/models/model-cards/leanstral-1-5",
@@ -40689,7 +45258,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000075,
"source": "https://docs.mistral.ai/models/model-cards/mistral-medium-3-5-26-04",
@@ -40706,7 +45274,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 6e-7,
"source": "https://docs.mistral.ai/models/model-cards/mistral-small-4-0-26-03",
@@ -40722,7 +45289,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 2e-7,
"source": "https://docs.mistral.ai/models/ministral-3-14b-25-12",
@@ -40738,7 +45304,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 2e-7,
"source": "https://docs.mistral.ai/models/ministral-3-14b-25-12",
@@ -40755,7 +45320,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 2e-7,
"source": "https://mistral.ai/pricing",
@@ -40771,7 +45335,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 1e-7,
"source": "https://mistral.ai/pricing",
@@ -40787,7 +45350,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 1.5e-7,
"source": "https://mistral.ai/pricing",
@@ -40802,7 +45364,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 1e-7,
"source": "https://docs.mistral.ai/models/ministral-3-3b-25-12",
@@ -40818,7 +45379,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 1e-7,
"source": "https://docs.mistral.ai/models/ministral-3-3b-25-12",
@@ -40835,7 +45395,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 1.5e-7,
"source": "https://mistral.ai/pricing",
@@ -40851,7 +45410,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 1.5e-7,
"source": "https://mistral.ai/pricing",
@@ -40867,12 +45425,16 @@
"litellm_provider": "mistral",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 0.000002,
+ "reasoning_effort_levels": [
+ "none",
+ "high"
+ ],
"source": "https://mistral.ai/news/devstral-2-vibe-cli",
"supports_assistant_prefill": true,
"supports_function_calling": true,
+ "supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true
},
@@ -40882,7 +45444,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 9e-7,
"source": "https://docs.mistral.ai/models/model-cards/codestral-25-08",
@@ -40897,7 +45458,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 9e-7,
"source": "https://docs.mistral.ai/models/model-cards/codestral-25-08",
@@ -40912,7 +45472,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"source": "https://docs.mistral.ai/models/mistral-large-3-25-12",
@@ -40928,7 +45487,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"source": "https://docs.mistral.ai/models/mistral-large-3-25-12",
@@ -40939,18 +45497,18 @@
"supports_vision": true
},
"mistral/mistral-large-4": {
- "cache_read_input_token_cost": 6.8e-8,
- "input_cost_per_token": 6.8e-7,
+ "cache_read_input_token_cost": 7e-8,
+ "input_cost_per_token": 7e-7,
"litellm_provider": "mistral",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
- "output_cost_per_token": 0.00000209,
+ "output_cost_per_token": 0.0000021,
"reasoning_effort_levels": [
"none",
"high"
],
- "source": "https://docs.mistral.ai/models/mistral-large-4",
+ "source": "https://docs.mistral.ai/models/mistral-large-4-0",
"supports_assistant_prefill": true,
"supports_function_calling": true,
"supports_prompt_caching": true,
@@ -40960,18 +45518,18 @@
"supports_vision": true
},
"mistral/mistral-large-4-0": {
- "cache_read_input_token_cost": 6.8e-8,
- "input_cost_per_token": 6.8e-7,
+ "cache_read_input_token_cost": 7e-8,
+ "input_cost_per_token": 7e-7,
"litellm_provider": "mistral",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
- "output_cost_per_token": 0.00000209,
+ "output_cost_per_token": 0.0000021,
"reasoning_effort_levels": [
"none",
"high"
],
- "source": "https://docs.mistral.ai/models/mistral-large-4",
+ "source": "https://docs.mistral.ai/models/mistral-large-4-0",
"supports_assistant_prefill": true,
"supports_function_calling": true,
"supports_prompt_caching": true,
@@ -40986,7 +45544,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"source": "https://docs.mistral.ai/models/mistral-large-3-25-12",
@@ -41002,7 +45559,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000075,
"reasoning_effort_levels": [
@@ -41023,7 +45579,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000075,
"reasoning_effort_levels": [
@@ -41044,7 +45599,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000075,
"reasoning_effort_levels": [
@@ -41065,7 +45619,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000075,
"reasoning_effort_levels": [
@@ -41086,7 +45639,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000075,
"reasoning_effort_levels": [
@@ -41107,7 +45659,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000075,
"reasoning_effort_levels": [
@@ -41128,11 +45679,15 @@
"litellm_provider": "mistral",
"max_input_tokens": 32000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 3e-7,
+ "reasoning_effort_levels": [
+ "none",
+ "high"
+ ],
"supports_assistant_prefill": true,
"supports_function_calling": true,
+ "supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true
},
@@ -41142,7 +45697,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 6e-7,
"reasoning_effort_levels": [
@@ -41163,7 +45717,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 6e-7,
"reasoning_effort_levels": [
@@ -41184,7 +45737,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 32000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 2.5e-7,
"supports_assistant_prefill": true,
@@ -41197,7 +45749,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 6e-7,
"reasoning_effort_levels": [
@@ -41218,7 +45769,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000075,
"reasoning_effort_levels": [
@@ -41239,7 +45789,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000075,
"reasoning_effort_levels": [
@@ -41260,7 +45809,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 3e-7,
"source": "https://mistral.ai/technology/",
@@ -41274,7 +45822,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000006,
"supports_assistant_prefill": true,
@@ -41289,7 +45836,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 4e-7,
"source": "https://docs.mistral.ai/models/voxtral-small-25-07",
@@ -41304,7 +45850,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 4e-7,
"source": "https://docs.mistral.ai/models/voxtral-small-25-07",
@@ -41319,7 +45864,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"reasoning_effort_levels": [
@@ -41338,11 +45882,11 @@
"mistral/zai-glm-5-2": {
"cache_read_input_token_cost": 1.4e-7,
"deprecation_date": "2026-10-31",
+ "deprecation_source": "https://docs.mistral.ai/getting-started/models/models_overview",
"input_cost_per_token": 0.0000014,
"litellm_provider": "mistral",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"reasoning_effort_levels": [
@@ -41368,7 +45912,6 @@
"litellm_provider": "mistral",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"reasoning_effort_levels": [
@@ -41384,13 +45927,34 @@
"supports_response_schema": true,
"supports_tool_choice": true
},
+ "mistral/zai-glm-5-3-flash": {
+ "cache_read_input_token_cost": 3e-8,
+ "input_cost_per_token": 1.5e-7,
+ "litellm_provider": "mistral",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 131072,
+ "mode": "chat",
+ "output_cost_per_token": 5e-7,
+ "reasoning_effort_levels": [
+ "low",
+ "high",
+ "max"
+ ],
+ "source": "https://docs.mistral.ai/models/zai-glm-5-3-flash",
+ "supports_assistant_prefill": true,
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
"mistral/zai-glm-latest": {
"cache_read_input_token_cost": 1.4e-7,
"input_cost_per_token": 0.0000014,
"litellm_provider": "mistral",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"reasoning_effort_levels": [
@@ -41408,13 +45972,13 @@
},
"moonshot.kimi-k2-thinking": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 6e-7,
"input_cost_per_token_batches": 3e-7,
"input_cost_per_token_priority": 0.00000105,
"litellm_provider": "bedrock_converse",
"max_input_tokens": 256000,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_batches": 0.00000125,
@@ -41430,11 +45994,11 @@
},
"moonshot/kimi-k2.5": {
"cache_read_input_token_cost": 1e-7,
+ "deprecation_date": "2026-08-31",
"input_cost_per_token": 6e-7,
"litellm_provider": "moonshot",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.000003,
"source": "https://platform.moonshot.ai/docs/guide/kimi-k2-5-quickstart",
@@ -41451,7 +46015,6 @@
"litellm_provider": "moonshot",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.000004,
"source": "https://platform.kimi.ai/docs/pricing/chat-k26",
@@ -41468,7 +46031,6 @@
"litellm_provider": "moonshot",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.000004,
"source": "https://platform.kimi.ai/docs/pricing/chat-k27-code",
@@ -41481,12 +46043,13 @@
"supports_vision": true
},
"moonshot/kimi-k3": {
+ "cache_creation_input_token_cost": 0.000003,
+ "cache_creation_input_token_cost_above_1hr": 0.000006,
"cache_read_input_token_cost": 3e-7,
"input_cost_per_token": 0.000003,
"litellm_provider": "moonshot",
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
- "max_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.000015,
"reasoning_effort_levels": [
@@ -41496,18 +46059,41 @@
],
"source": "https://platform.kimi.ai/docs/pricing/chat-k3",
"supports_function_calling": true,
+ "supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
"supports_tool_choice": true,
"supports_video_input": true,
"supports_vision": true
},
+ "moonshot/kimi-k3.1-pro": {
+ "cache_creation_input_token_cost": 0.000002,
+ "cache_creation_input_token_cost_above_1hr": 0.000004,
+ "cache_read_input_token_cost": 2e-7,
+ "input_cost_per_token": 0.000002,
+ "litellm_provider": "moonshot",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 1048576,
+ "mode": "chat",
+ "output_cost_per_token": 0.00001,
+ "reasoning_effort_levels": [
+ "low",
+ "high",
+ "max"
+ ],
+ "source": "https://platform.kimi.ai/docs/pricing/chat",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_vision": true
+ },
"moonshot/moonshot-v1-128k": {
+ "deprecation_date": "2026-08-31",
"input_cost_per_token": 0.000002,
"litellm_provider": "moonshot",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000005,
"source": "https://platform.moonshot.ai/docs/pricing",
@@ -41516,11 +46102,11 @@
"supports_tool_choice": true
},
"moonshot/moonshot-v1-128k-vision-preview": {
+ "deprecation_date": "2026-08-31",
"input_cost_per_token": 0.000002,
"litellm_provider": "moonshot",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000005,
"source": "https://platform.moonshot.ai/docs/pricing",
@@ -41530,11 +46116,11 @@
"supports_vision": true
},
"moonshot/moonshot-v1-32k": {
+ "deprecation_date": "2026-08-31",
"input_cost_per_token": 0.000001,
"litellm_provider": "moonshot",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000003,
"source": "https://platform.moonshot.ai/docs/pricing",
@@ -41543,11 +46129,11 @@
"supports_tool_choice": true
},
"moonshot/moonshot-v1-32k-vision-preview": {
+ "deprecation_date": "2026-08-31",
"input_cost_per_token": 0.000001,
"litellm_provider": "moonshot",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000003,
"source": "https://platform.moonshot.ai/docs/pricing",
@@ -41557,11 +46143,11 @@
"supports_vision": true
},
"moonshot/moonshot-v1-8k": {
+ "deprecation_date": "2026-08-31",
"input_cost_per_token": 2e-7,
"litellm_provider": "moonshot",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000002,
"source": "https://platform.moonshot.ai/docs/pricing",
@@ -41570,11 +46156,11 @@
"supports_tool_choice": true
},
"moonshot/moonshot-v1-8k-vision-preview": {
+ "deprecation_date": "2026-08-31",
"input_cost_per_token": 2e-7,
"litellm_provider": "moonshot",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000002,
"source": "https://platform.moonshot.ai/docs/pricing",
@@ -41584,11 +46170,11 @@
"supports_vision": true
},
"moonshot/moonshot-v1-auto": {
+ "deprecation_date": "2026-08-31",
"input_cost_per_token": 0.000002,
"litellm_provider": "moonshot",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000005,
"source": "https://platform.moonshot.ai/docs/pricing",
@@ -41604,7 +46190,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 256000,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 0.000003,
"output_cost_per_token_batches": 0.0000015,
@@ -41634,7 +46219,6 @@
"token_count_tokenizer": "kimi_k3",
"max_input_tokens": 1000000,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000165,
"output_cost_per_token_flex": 0.00000825,
@@ -41650,12 +46234,137 @@
"supports_tool_choice": true,
"supports_vision": true
},
+ "morph/morph-dsv41flash": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 1048576,
+ "input_cost_per_token": 1.2e-7,
+ "output_cost_per_token": 8e-7,
+ "cache_read_input_token_cost": 8e-9,
+ "litellm_provider": "morph",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_response_schema": true,
+ "supports_reasoning": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.morphllm.com/pricing",
+ "supports_vision": true
+ },
+ "morph/morph-dsv41flash-1017": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 1048576,
+ "input_cost_per_token": 1.2e-7,
+ "output_cost_per_token": 8e-7,
+ "cache_read_input_token_cost": 8e-9,
+ "litellm_provider": "morph",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_response_schema": true,
+ "supports_reasoning": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.morphllm.com/pricing",
+ "supports_vision": true
+ },
+ "morph/morph-dsv41flash-abliterated": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 1048576,
+ "input_cost_per_token": 3e-7,
+ "output_cost_per_token": 0.0000012,
+ "cache_read_input_token_cost": 3e-8,
+ "litellm_provider": "morph",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_response_schema": true,
+ "supports_reasoning": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.morphllm.com/pricing",
+ "supports_vision": true
+ },
+ "morph/morph-dsv4flash": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 1048576,
+ "input_cost_per_token": 1.41953125e-7,
+ "output_cost_per_token": 3.99625e-7,
+ "cache_read_input_token_cost": 3.59375e-8,
+ "litellm_provider": "morph",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_response_schema": true,
+ "supports_reasoning": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.morphllm.com/pricing"
+ },
+ "morph/morph-glm53-744b": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 1048576,
+ "input_cost_per_token": 0.00000119,
+ "output_cost_per_token": 0.000006,
+ "cache_read_input_token_cost": 1.955e-7,
+ "litellm_provider": "morph",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_response_schema": true,
+ "supports_reasoning": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.morphllm.com/pricing"
+ },
+ "morph/morph-glm53flash": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 1048576,
+ "input_cost_per_token": 2e-7,
+ "output_cost_per_token": 7e-7,
+ "cache_read_input_token_cost": 4e-8,
+ "litellm_provider": "morph",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_response_schema": true,
+ "supports_reasoning": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.morphllm.com/pricing",
+ "supports_vision": true
+ },
+ "morph/morph-kimik3": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 1048576,
+ "input_cost_per_token": 0.0000025,
+ "output_cost_per_token": 0.000014,
+ "cache_read_input_token_cost": 2.9e-7,
+ "litellm_provider": "morph",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_response_schema": true,
+ "supports_reasoning": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.morphllm.com/pricing",
+ "supports_vision": true
+ },
+ "morph/morph-kimik3-fast": {
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 1048576,
+ "input_cost_per_token": 0.000006,
+ "output_cost_per_token": 0.0000225,
+ "cache_read_input_token_cost": 6e-7,
+ "litellm_provider": "morph",
+ "mode": "chat",
+ "supports_function_calling": true,
+ "supports_parallel_function_calling": true,
+ "supports_response_schema": true,
+ "supports_reasoning": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.morphllm.com/pricing",
+ "supports_vision": true
+ },
"morph/morph-v3-fast": {
"input_cost_per_token": 8e-7,
"litellm_provider": "morph",
"max_input_tokens": 16000,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"supports_function_calling": false,
@@ -41669,7 +46378,6 @@
"litellm_provider": "morph",
"max_input_tokens": 16000,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 0.0000019,
"supports_function_calling": false,
@@ -41679,7 +46387,6 @@
"supports_vision": false
},
"nebius/MiniMaxAI/MiniMax-M2.5": {
- "max_tokens": 196608,
"max_input_tokens": 196608,
"max_output_tokens": 196608,
"input_cost_per_token": 3e-7,
@@ -41691,7 +46398,6 @@
"source": "https://tokenfactory.nebius.com/models/catalog/text2text/MiniMaxAI%2FMiniMax-M2.5"
},
"nebius/MiniMaxAI/MiniMax-M3": {
- "max_tokens": 1048576,
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
"input_cost_per_token": 3e-7,
@@ -41701,10 +46407,22 @@
"supports_function_calling": true,
"supports_reasoning": true,
"supports_vision": true,
- "source": "https://tokenfactory.nebius.com/models/catalog/text2text/MiniMaxAI%2FMiniMax-M3"
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
+ "cache_read_input_token_cost": 6e-8
+ },
+ "nebius/MiniMaxAI/MiniMax-M3.1-Flash": {
+ "max_input_tokens": 1048576,
+ "input_cost_per_token": 1.5e-7,
+ "cache_read_input_token_cost": 1.5e-8,
+ "output_cost_per_token": 6e-7,
+ "litellm_provider": "nebius",
+ "mode": "chat",
+ "supports_vision": true,
+ "supports_reasoning": true,
+ "supports_function_calling": true,
+ "source": "https://tokenfactory.nebius.com/api/public/models_info"
},
"nebius/NousResearch/Hermes-3-Llama-3.1-405B": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 0.000001,
@@ -41715,7 +46433,6 @@
"source": "https://nebius.com/prices"
},
"nebius/NousResearch/Hermes-4-405B": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 0.000001,
@@ -41724,10 +46441,10 @@
"mode": "chat",
"supports_function_calling": true,
"supports_reasoning": true,
- "source": "https://tokenfactory.nebius.com/models/catalog/text2text/NousResearch%2FHermes-4-405B"
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
+ "cache_read_input_token_cost": 2e-7
},
"nebius/NousResearch/Hermes-4-70B": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 1.3e-7,
@@ -41739,7 +46456,6 @@
"source": "https://tokenfactory.nebius.com/models/catalog/text2text/NousResearch%2FHermes-4-70B"
},
"nebius/Qwen/QwQ-32B": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 1.5e-7,
@@ -41751,7 +46467,6 @@
"source": "https://nebius.com/prices"
},
"nebius/Qwen/Qwen2-VL-72B-Instruct": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 1.3e-7,
@@ -41763,7 +46478,6 @@
"source": "https://nebius.com/prices"
},
"nebius/Qwen/Qwen2-VL-7B-Instruct": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 2e-8,
@@ -41774,7 +46488,6 @@
"source": "https://nebius.com/prices"
},
"nebius/Qwen/Qwen2.5-32B-Instruct": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 6e-8,
@@ -41785,7 +46498,6 @@
"source": "https://nebius.com/prices"
},
"nebius/Qwen/Qwen2.5-72B-Instruct": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 1.3e-7,
@@ -41796,7 +46508,6 @@
"source": "https://nebius.com/prices"
},
"nebius/Qwen/Qwen2.5-Coder-7B": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 1e-8,
@@ -41807,7 +46518,6 @@
"source": "https://nebius.com/prices"
},
"nebius/Qwen/Qwen2.5-VL-72B-Instruct": {
- "max_tokens": 32000,
"max_input_tokens": 32000,
"max_output_tokens": 32000,
"input_cost_per_token": 2.5e-7,
@@ -41819,7 +46529,6 @@
"source": "https://tokenfactory.nebius.com/models/catalog/image2text/Qwen%2FQwen2.5-VL-72B-Instruct"
},
"nebius/Qwen/Qwen3-14B": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 8e-8,
@@ -41830,7 +46539,6 @@
"source": "https://nebius.com/prices"
},
"nebius/Qwen/Qwen3-235B-A22B": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 2e-7,
@@ -41841,7 +46549,6 @@
"source": "https://nebius.com/prices"
},
"nebius/Qwen/Qwen3-235B-A22B-Instruct-2507": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 2e-7,
@@ -41849,10 +46556,10 @@
"litellm_provider": "nebius",
"mode": "chat",
"supports_function_calling": true,
- "source": "https://tokenfactory.nebius.com/models/catalog/text2text/Qwen%2FQwen3-235B-A22B-Instruct-2507"
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
+ "cache_read_input_token_cost": 5e-8
},
"nebius/Qwen/Qwen3-30B-A3B": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 1e-7,
@@ -41863,7 +46570,6 @@
"source": "https://nebius.com/prices"
},
"nebius/Qwen/Qwen3-30B-A3B-Instruct-2507": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 1e-7,
@@ -41871,10 +46577,10 @@
"litellm_provider": "nebius",
"mode": "chat",
"supports_function_calling": true,
- "source": "https://tokenfactory.nebius.com/models/catalog/text2text/Qwen%2FQwen3-30B-A3B-Instruct-2507"
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
+ "cache_read_input_token_cost": 1e-7
},
"nebius/Qwen/Qwen3-32B": {
- "max_tokens": 40960,
"max_input_tokens": 40960,
"max_output_tokens": 40960,
"input_cost_per_token": 1e-7,
@@ -41885,7 +46591,6 @@
"source": "https://tokenfactory.nebius.com/models/catalog/text2text/Qwen%2FQwen3-32B"
},
"nebius/Qwen/Qwen3-4B": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 8e-8,
@@ -41896,7 +46601,6 @@
"source": "https://nebius.com/prices"
},
"nebius/Qwen/Qwen3-Next-80B-A3B-Thinking": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 1.5e-7,
@@ -41908,7 +46612,6 @@
"source": "https://tokenfactory.nebius.com/models/catalog/text2text/Qwen%2FQwen3-Next-80B-A3B-Thinking"
},
"nebius/Qwen/Qwen3.5-397B-A17B": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 6e-7,
@@ -41917,7 +46620,8 @@
"mode": "chat",
"supports_function_calling": true,
"supports_reasoning": true,
- "source": "https://tokenfactory.nebius.com/models/catalog/text2text/Qwen%2FQwen3.5-397B-A17B"
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
+ "cache_read_input_token_cost": 1.2e-7
},
"nebius/Qwen/Qwen3.8-27B": {
"input_cost_per_token": 4.5e-7,
@@ -41925,12 +46629,12 @@
"max_input_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.000003,
- "source": "https://tokenfactory.nebius.com/models/catalog/text2text/Qwen%2FQwen3.8-27B",
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
"supports_function_calling": true,
- "supports_reasoning": true
+ "supports_reasoning": true,
+ "cache_read_input_token_cost": 1e-7
},
"nebius/deepseek-ai/DeepSeek-R1": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 8e-7,
@@ -41942,7 +46646,6 @@
"source": "https://nebius.com/prices"
},
"nebius/deepseek-ai/DeepSeek-R1-0528": {
- "max_tokens": 164000,
"max_input_tokens": 164000,
"max_output_tokens": 164000,
"input_cost_per_token": 8e-7,
@@ -41954,7 +46657,6 @@
"source": "https://nebius.com/prices"
},
"nebius/deepseek-ai/DeepSeek-R1-Distill-Llama-70B": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 2.5e-7,
@@ -41965,7 +46667,6 @@
"source": "https://nebius.com/prices"
},
"nebius/deepseek-ai/DeepSeek-V3": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 5e-7,
@@ -41976,7 +46677,6 @@
"source": "https://nebius.com/prices"
},
"nebius/deepseek-ai/DeepSeek-V3-0324": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 5e-7,
@@ -41987,7 +46687,6 @@
"source": "https://nebius.com/prices"
},
"nebius/deepseek-ai/DeepSeek-V4-Flash": {
- "max_tokens": 1048576,
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
"input_cost_per_token": 1.4e-7,
@@ -41999,8 +46698,7 @@
"source": "https://tokenfactory.nebius.com/models/catalog/text2text/deepseek-ai%2FDeepSeek-V4-Flash"
},
"nebius/deepseek-ai/DeepSeek-V4-Flash-0731": {
- "max_tokens": 1024000,
- "max_input_tokens": 1024000,
+ "max_input_tokens": 1048576,
"max_output_tokens": 1024000,
"input_cost_per_token": 1.4e-7,
"output_cost_per_token": 2.8e-7,
@@ -42008,10 +46706,10 @@
"mode": "chat",
"supports_function_calling": true,
"supports_reasoning": true,
- "source": "https://tokenfactory.nebius.com/models/catalog/text2text/deepseek-ai%2FDeepSeek-V4-Flash-0731"
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
+ "cache_read_input_token_cost": 1e-8
},
"nebius/deepseek-ai/DeepSeek-V4-Pro": {
- "max_tokens": 1048576,
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
"input_cost_per_token": 0.00000175,
@@ -42020,33 +46718,46 @@
"mode": "chat",
"supports_function_calling": true,
"supports_reasoning": true,
- "source": "https://tokenfactory.nebius.com/models/catalog/text2text/deepseek-ai%2FDeepSeek-V4-Pro"
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
+ "cache_read_input_token_cost": 1.4e-7
},
"nebius/deepseek-ai/DeepSeek-V4-Pro-0813": {
"input_cost_per_token": 0.00000132,
"litellm_provider": "nebius",
- "max_input_tokens": 979000,
+ "max_input_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.00000396,
- "source": "https://tokenfactory.nebius.com/models/catalog/text2text/deepseek-ai%2FDeepSeek-V4-Pro-0813",
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
"supports_function_calling": true,
- "supports_reasoning": true
+ "supports_reasoning": true,
+ "cache_read_input_token_cost": 4e-8
},
"nebius/deepseek-ai/DeepSeek-V4.1-Flash": {
"input_cost_per_token": 3e-7,
"litellm_provider": "nebius",
- "max_input_tokens": 1048000,
+ "max_input_tokens": 1048576,
"max_output_tokens": 384000,
- "max_tokens": 384000,
"mode": "chat",
"output_cost_per_token": 0.0000012,
- "source": "https://tokenfactory.nebius.com/endpoints?modals=endpoint-details&model-id=deepseek-ai/DeepSeek-V4.1-Flash",
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
"supports_function_calling": true,
"supports_reasoning": true,
- "supports_vision": true
+ "supports_vision": true,
+ "cache_read_input_token_cost": 1e-8
+ },
+ "nebius/deepseek-ai/DeepSeek-V4.1-Flash-1017": {
+ "max_input_tokens": 1048576,
+ "input_cost_per_token": 3e-7,
+ "cache_read_input_token_cost": 6e-9,
+ "output_cost_per_token": 0.0000012,
+ "litellm_provider": "nebius",
+ "mode": "chat",
+ "supports_vision": true,
+ "supports_reasoning": true,
+ "supports_function_calling": true,
+ "source": "https://tokenfactory.nebius.com/api/public/models_info"
},
"nebius/google/gemma-3-27b-it": {
- "max_tokens": 110000,
"max_input_tokens": 110000,
"max_output_tokens": 110000,
"input_cost_per_token": 1e-7,
@@ -42055,10 +46766,10 @@
"mode": "chat",
"supports_function_calling": true,
"supports_vision": true,
- "source": "https://tokenfactory.nebius.com/models/catalog/text2text/google%2Fgemma-3-27b-it"
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
+ "cache_read_input_token_cost": 4e-8
},
"nebius/meta-llama/Llama-3.3-70B-Instruct": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 1.3e-7,
@@ -42069,7 +46780,6 @@
"source": "https://nebius.com/prices"
},
"nebius/meta-llama/Llama-Guard-3-8B": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 2e-8,
@@ -42079,7 +46789,6 @@
"source": "https://nebius.com/prices"
},
"nebius/meta-llama/Meta-Llama-3.1-405B-Instruct": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 0.000001,
@@ -42090,7 +46799,6 @@
"source": "https://nebius.com/prices"
},
"nebius/meta-llama/Meta-Llama-3.1-70B-Instruct": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 1.3e-7,
@@ -42101,7 +46809,6 @@
"source": "https://nebius.com/prices"
},
"nebius/meta-llama/Meta-Llama-3.1-8B-Instruct": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 2e-8,
@@ -42111,8 +46818,20 @@
"supports_function_calling": true,
"source": "https://nebius.com/prices"
},
+ "nebius/meta-models/muse-spark-open": {
+ "max_input_tokens": 1048576,
+ "input_cost_per_token": 0.00000125,
+ "cache_read_input_token_cost": 1.5e-7,
+ "output_cost_per_token": 0.00000425,
+ "litellm_provider": "nebius",
+ "mode": "chat",
+ "supports_vision": true,
+ "supports_video_input": true,
+ "supports_reasoning": true,
+ "supports_function_calling": true,
+ "source": "https://tokenfactory.nebius.com/api/public/models_info"
+ },
"nebius/mistralai/Mistral-Nemo-Instruct-2407": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 4e-8,
@@ -42123,7 +46842,6 @@
"source": "https://nebius.com/prices"
},
"nebius/moonshotai/Kimi-K2.6": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 9.5e-7,
@@ -42133,10 +46851,10 @@
"supports_function_calling": true,
"supports_reasoning": true,
"supports_vision": true,
- "source": "https://tokenfactory.nebius.com/models/catalog/image2text/moonshotai%2FKimi-K2.6"
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
+ "cache_read_input_token_cost": 1.6e-7
},
"nebius/moonshotai/Kimi-K2.7-Code": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 9.5e-7,
@@ -42146,11 +46864,11 @@
"supports_function_calling": true,
"supports_reasoning": true,
"supports_vision": true,
- "source": "https://tokenfactory.nebius.com/models/catalog/text2text/moonshotai%2FKimi-K2.7-Code"
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
+ "cache_read_input_token_cost": 1.5e-7
},
"nebius/moonshotai/Kimi-K3": {
- "max_tokens": 1024000,
- "max_input_tokens": 1024000,
+ "max_input_tokens": 1048576,
"max_output_tokens": 1024000,
"input_cost_per_token": 0.000003,
"output_cost_per_token": 0.000015,
@@ -42159,10 +46877,10 @@
"supports_function_calling": true,
"supports_reasoning": true,
"supports_vision": true,
- "source": "https://tokenfactory.nebius.com/models/catalog/image2text/moonshotai%2FKimi-K3"
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
+ "cache_read_input_token_cost": 3e-7
},
"nebius/nvidia/Cosmos3-Super-Reasoner": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 1e-7,
@@ -42175,7 +46893,6 @@
"source": "https://tokenfactory.nebius.com/models/catalog/image2text/nvidia%2FCosmos3-Super-Reasoner"
},
"nebius/nvidia/Llama-3.1-Nemotron-Ultra-253B-v1": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 6e-7,
@@ -42186,7 +46903,6 @@
"source": "https://nebius.com/prices"
},
"nebius/nvidia/Llama-3.3-Nemotron-Super-49B-v1": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 1e-7,
@@ -42197,7 +46913,6 @@
"source": "https://nebius.com/prices"
},
"nebius/nvidia/Llama-3_1-Nemotron-Ultra-253B-v1": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 6e-7,
@@ -42208,7 +46923,6 @@
"source": "https://tokenfactory.nebius.com/models/catalog/text2text/nvidia%2FLlama-3_1-Nemotron-Ultra-253B-v1"
},
"nebius/nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 6e-8,
@@ -42217,10 +46931,10 @@
"mode": "chat",
"supports_function_calling": true,
"supports_reasoning": true,
- "source": "https://tokenfactory.nebius.com/models/catalog/text2text/nvidia%2FNVIDIA-Nemotron-3-Nano-30B-A3B"
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
+ "cache_read_input_token_cost": 1.2e-8
},
"nebius/nvidia/Nemotron-3-Nano-Omni": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 6e-8,
@@ -42233,7 +46947,6 @@
"source": "https://tokenfactory.nebius.com/models/catalog/text2text/nvidia%2FNemotron-3-Nano-Omni"
},
"nebius/nvidia/Nemotron-3-Ultra-550b-a55b": {
- "max_tokens": 1048576,
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
"input_cost_per_token": 0.000001,
@@ -42242,10 +46955,23 @@
"mode": "chat",
"supports_function_calling": true,
"supports_reasoning": true,
- "source": "https://tokenfactory.nebius.com/models/catalog/text2text/nvidia%2FNemotron-3-Ultra-550b-a55b"
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
+ "cache_read_input_token_cost": 1.2e-7
+ },
+ "nebius/nvidia/Nemotron-3.5-Super-VL": {
+ "max_input_tokens": 1048576,
+ "input_cost_per_token": 3e-7,
+ "cache_read_input_token_cost": 6e-8,
+ "output_cost_per_token": 9e-7,
+ "litellm_provider": "nebius",
+ "mode": "chat",
+ "supports_vision": true,
+ "supports_video_input": true,
+ "supports_reasoning": true,
+ "supports_function_calling": true,
+ "source": "https://tokenfactory.nebius.com/api/public/models_info"
},
"nebius/nvidia/Nemotron-3_5-Lightning": {
- "max_tokens": 1048576,
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
"input_cost_per_token": 6e-8,
@@ -42254,10 +46980,10 @@
"mode": "chat",
"supports_function_calling": true,
"supports_reasoning": true,
- "source": "https://tokenfactory.nebius.com/models/catalog/text2text/nvidia%2FNemotron-3_5-Lightning"
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
+ "cache_read_input_token_cost": 3e-8
},
"nebius/nvidia/nemotron-3-super-120b-a12b": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 3e-7,
@@ -42266,10 +46992,10 @@
"mode": "chat",
"supports_function_calling": true,
"supports_reasoning": true,
- "source": "https://tokenfactory.nebius.com/models/catalog/text2text/nvidia%2Fnemotron-3-super-120b-a12b"
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
+ "cache_read_input_token_cost": 6e-8
},
"nebius/openai/gpt-oss-120b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 1.5e-7,
@@ -42278,10 +47004,10 @@
"mode": "chat",
"supports_function_calling": true,
"supports_reasoning": true,
- "source": "https://tokenfactory.nebius.com/models/catalog/text2text/openai%2Fgpt-oss-120b"
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
+ "cache_read_input_token_cost": 1e-7
},
"nebius/openbmb/MiniCPM-V-4_5": {
- "max_tokens": 32000,
"max_input_tokens": 32000,
"max_output_tokens": 32000,
"input_cost_per_token": 6.58e-7,
@@ -42289,21 +47015,22 @@
"litellm_provider": "nebius",
"mode": "chat",
"supports_vision": true,
- "source": "https://tokenfactory.nebius.com/models/catalog/image2text/openbmb%2FMiniCPM-V-4_5"
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
+ "cache_read_input_token_cost": 1.3e-7
},
"nebius/reflection/beam": {
"input_cost_per_token": 2.5e-7,
"litellm_provider": "nebius",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.000001,
- "source": "https://tokenfactory.nebius.com/models/catalog/text2text/reflection%2Fbeam",
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
"supports_function_calling": true,
- "supports_reasoning": true
+ "supports_reasoning": true,
+ "cache_read_input_token_cost": 5e-8
},
"nebius/zai-org/GLM-5.1": {
- "max_tokens": 202752,
"max_input_tokens": 202752,
"max_output_tokens": 202752,
"input_cost_per_token": 0.0000014,
@@ -42312,10 +47039,10 @@
"mode": "chat",
"supports_function_calling": true,
"supports_reasoning": true,
- "source": "https://tokenfactory.nebius.com/models/catalog/text2text/zai-org%2FGLM-5.1"
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
+ "cache_read_input_token_cost": 2.6e-7
},
"nebius/zai-org/GLM-5.2": {
- "max_tokens": 1048576,
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
"input_cost_per_token": 0.0000014,
@@ -42324,22 +47051,23 @@
"mode": "chat",
"supports_function_calling": true,
"supports_reasoning": true,
- "source": "https://tokenfactory.nebius.com/models/catalog/text2text/zai-org%2FGLM-5.2"
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
+ "cache_read_input_token_cost": 1.4e-7
},
"nebius/zai-org/GLM-5.3": {
"input_cost_per_token": 0.0000014,
"litellm_provider": "nebius",
- "max_input_tokens": 1024000,
- "max_tokens": 1024000,
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 1024000,
"mode": "chat",
"output_cost_per_token": 0.0000044,
- "source": "https://tokenfactory.nebius.com/models/catalog/text2text/zai-org%2FGLM-5.3",
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
"supports_function_calling": true,
- "supports_reasoning": true
+ "supports_reasoning": true,
+ "cache_read_input_token_cost": 2.6e-7
},
"nebius/zai-org/GLM-5.3-Flash": {
- "max_tokens": 1024000,
- "max_input_tokens": 1024000,
+ "max_input_tokens": 1048576,
"max_output_tokens": 1024000,
"input_cost_per_token": 1.5e-7,
"output_cost_per_token": 5e-7,
@@ -42347,8 +47075,9 @@
"mode": "chat",
"supports_function_calling": true,
"supports_reasoning": true,
- "source": "https://tokenfactory.nebius.com/models/catalog/text2text/zai-org%2FGLM-5.3-Flash",
- "supports_vision": true
+ "source": "https://tokenfactory.nebius.com/api/public/models_info",
+ "supports_vision": true,
+ "cache_read_input_token_cost": 3e-8
},
"novita/Sao10K/L3-8B-Stheno-v3.2": {
"litellm_provider": "novita",
@@ -42357,7 +47086,6 @@
"output_cost_per_token": 5e-8,
"max_input_tokens": 8192,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -42370,7 +47098,6 @@
"output_cost_per_token": 7e-8,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"supports_system_messages": true
},
"novita/baidu/cobuddy": {
@@ -42379,7 +47106,6 @@
"litellm_provider": "novita",
"max_input_tokens": 131072,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.00000113,
"source": "https://novita.ai/pricing",
@@ -42396,7 +47122,6 @@
"output_cost_per_token": 2.8e-7,
"max_input_tokens": 120000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -42409,7 +47134,6 @@
"output_cost_per_token": 2.8e-7,
"max_input_tokens": 131072,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"supports_system_messages": true,
"supports_reasoning": true
},
@@ -42420,7 +47144,6 @@
"output_cost_per_token": 0.0000011,
"max_input_tokens": 123000,
"max_output_tokens": 12000,
- "max_tokens": 12000,
"supports_tool_choice": true,
"supports_system_messages": true,
"supports_response_schema": true
@@ -42432,7 +47155,6 @@
"output_cost_per_token": 5.6e-7,
"max_input_tokens": 30000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -42447,7 +47169,6 @@
"output_cost_per_token": 3.9e-7,
"max_input_tokens": 131072,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -42463,7 +47184,6 @@
"output_cost_per_token": 0.00000125,
"max_input_tokens": 123000,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"supports_vision": true,
"supports_system_messages": true,
"supports_reasoning": true
@@ -42475,7 +47195,6 @@
"output_cost_per_token": 3e-8,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"supports_tool_choice": true,
"supports_vision": true,
"supports_system_messages": true,
@@ -42486,7 +47205,6 @@
"litellm_provider": "novita",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 3e-8,
"source": "https://novita.ai/pricing",
@@ -42499,7 +47217,6 @@
"output_cost_per_token": 0.0000025,
"max_input_tokens": 160000,
"max_output_tokens": 160000,
- "max_tokens": 160000,
"supports_system_messages": true
},
"novita/deepseek/deepseek-r1": {
@@ -42507,7 +47224,6 @@
"litellm_provider": "novita",
"max_input_tokens": 64000,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 0.000004,
"source": "https://api.novita.ai/v3/openai/models",
@@ -42523,7 +47239,6 @@
"output_cost_per_token": 0.0000025,
"max_input_tokens": 163840,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -42540,7 +47255,6 @@
"output_cost_per_token": 9e-8,
"max_input_tokens": 128000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"supports_system_messages": true,
"supports_reasoning": true
},
@@ -42551,7 +47265,6 @@
"output_cost_per_token": 8e-7,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"supports_tool_choice": true,
"supports_system_messages": true,
"supports_response_schema": true,
@@ -42564,7 +47277,6 @@
"output_cost_per_token": 1.5e-7,
"max_input_tokens": 32768,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"supports_tool_choice": true,
"supports_system_messages": true,
"supports_response_schema": true,
@@ -42577,7 +47289,6 @@
"output_cost_per_token": 3e-7,
"max_input_tokens": 64000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"supports_tool_choice": true,
"supports_system_messages": true,
"supports_response_schema": true,
@@ -42590,7 +47301,6 @@
"output_cost_per_token": 0.0000025,
"max_input_tokens": 64000,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -42603,7 +47313,6 @@
"litellm_provider": "novita",
"max_input_tokens": 64000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.000004,
"source": "https://api.novita.ai/v3/openai/models",
@@ -42619,7 +47328,6 @@
"output_cost_per_token": 0.00000112,
"max_input_tokens": 163840,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -42635,7 +47343,6 @@
"output_cost_per_token": 0.0000013,
"max_input_tokens": 64000,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -42648,7 +47355,6 @@
"output_cost_per_token": 0.000001,
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -42665,7 +47371,6 @@
"output_cost_per_token": 0.000001,
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -42682,7 +47387,6 @@
"output_cost_per_token": 4e-7,
"max_input_tokens": 163840,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -42699,7 +47403,6 @@
"output_cost_per_token": 4.1e-7,
"max_input_tokens": 163840,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -42712,7 +47415,6 @@
"litellm_provider": "novita",
"max_input_tokens": 64000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 8.900000000000001e-7,
"source": "https://api.novita.ai/v3/openai/models",
@@ -42726,7 +47428,6 @@
"litellm_provider": "novita",
"max_input_tokens": 1048576,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"output_cost_per_token": 2.8e-7,
"source": "https://novita.ai/pricing",
@@ -42743,7 +47444,6 @@
"litellm_provider": "novita",
"max_input_tokens": 1048576,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"output_cost_per_token": 0.00000132,
"source": "https://novita.ai/pricing",
@@ -42760,7 +47460,6 @@
"litellm_provider": "novita",
"max_input_tokens": 1048576,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"output_cost_per_token": 0.00000132,
"source": "https://api.novita.ai/v3/openai/models",
@@ -42777,7 +47476,6 @@
"litellm_provider": "novita",
"max_input_tokens": 1048576,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"output_cost_per_token": 0.0000032000000000000003,
"source": "https://novita.ai/pricing",
@@ -42789,12 +47487,11 @@
"supports_vision": false
},
"novita/deepseek/deepseek-v4-pro-0813": {
- "cache_read_input_token_cost": 1.3200000000000002e-7,
+ "cache_read_input_token_cost": 4.4e-8,
"input_cost_per_token": 0.00000132,
"litellm_provider": "novita",
"max_input_tokens": 1048576,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"output_cost_per_token": 0.00000396,
"source": "https://novita.ai/pricing",
@@ -42810,7 +47507,6 @@
"litellm_provider": "novita",
"max_input_tokens": 64000,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 8.900000000000001e-7,
"source": "https://api.novita.ai/v3/openai/models",
@@ -42825,7 +47521,6 @@
"output_cost_per_token": 1e-7,
"max_input_tokens": 131072,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"supports_tool_choice": true,
"supports_vision": true,
"supports_system_messages": true,
@@ -42838,7 +47533,6 @@
"output_cost_per_token": 2e-7,
"max_input_tokens": 98304,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"supports_vision": true,
"supports_system_messages": true
},
@@ -42847,7 +47541,6 @@
"litellm_provider": "novita",
"max_input_tokens": 262144,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 4.0000000000000003e-7,
"source": "https://novita.ai/pricing",
@@ -42862,7 +47555,6 @@
"litellm_provider": "novita",
"max_input_tokens": 262144,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 4.0000000000000003e-7,
"source": "https://novita.ai/pricing",
@@ -42879,7 +47571,6 @@
"output_cost_per_token": 9e-8,
"max_input_tokens": 4096,
"max_output_tokens": 3200,
- "max_tokens": 3200,
"supports_system_messages": true
},
"novita/inclusionai/ling-3.0-flash": {
@@ -42888,7 +47579,6 @@
"litellm_provider": "novita",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 1.8e-7,
"source": "https://novita.ai/pricing",
@@ -42904,7 +47594,6 @@
"litellm_provider": "novita",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 1.8e-7,
"source": "https://novita.ai/pricing",
@@ -42921,7 +47610,6 @@
"output_cost_per_token": 0.0000012,
"max_input_tokens": 256000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -42937,7 +47625,6 @@
"output_cost_per_token": 7.4e-7,
"max_input_tokens": 8192,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"supports_tool_choice": true,
"supports_system_messages": true,
"supports_response_schema": true
@@ -42949,7 +47636,6 @@
"output_cost_per_token": 4e-8,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"supports_system_messages": true,
"supports_response_schema": true
},
@@ -42960,7 +47646,6 @@
"output_cost_per_token": 5e-8,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"supports_system_messages": true,
"supports_response_schema": true
},
@@ -42969,7 +47654,6 @@
"litellm_provider": "novita",
"max_input_tokens": 131000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 2e-8,
"source": "https://api.novita.ai/v3/openai/models",
@@ -42983,7 +47667,6 @@
"output_cost_per_token": 5e-8,
"max_input_tokens": 32768,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -42996,7 +47679,6 @@
"output_cost_per_token": 4e-7,
"max_input_tokens": 12288,
"max_output_tokens": 12288,
- "max_tokens": 12288,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43010,7 +47692,6 @@
"output_cost_per_token": 8.5e-7,
"max_input_tokens": 1048576,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"supports_vision": true,
"supports_system_messages": true,
"supports_response_schema": true
@@ -43022,7 +47703,6 @@
"output_cost_per_token": 5.9e-7,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"supports_vision": true,
"supports_system_messages": true
},
@@ -43033,19 +47713,17 @@
"output_cost_per_token": 6.2e-7,
"max_input_tokens": 65535,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"supports_system_messages": true,
"supports_response_schema": true
},
"novita/mindai/macaron-v1-tall": {
- "cache_read_input_token_cost": 8e-8,
- "input_cost_per_token": 4.5000000000000003e-7,
+ "cache_read_input_token_cost": 4.4e-8,
+ "input_cost_per_token": 2.475e-7,
"litellm_provider": "novita",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
- "output_cost_per_token": 0.0000026,
+ "output_cost_per_token": 0.00000143,
"source": "https://novita.ai/pricing",
"supports_function_calling": true,
"supports_prompt_caching": true,
@@ -43054,14 +47732,13 @@
"supports_vision": false
},
"novita/mindai/macaron-v1-venti": {
- "cache_read_input_token_cost": 3e-7,
- "input_cost_per_token": 0.0000015,
+ "cache_read_input_token_cost": 1.65e-7,
+ "input_cost_per_token": 8.25e-7,
"litellm_provider": "novita",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
- "output_cost_per_token": 0.0000045,
+ "output_cost_per_token": 0.000002475,
"source": "https://novita.ai/pricing",
"supports_function_calling": true,
"supports_prompt_caching": true,
@@ -43076,7 +47753,6 @@
"output_cost_per_token": 0.0000012,
"max_input_tokens": 204800,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43093,7 +47769,6 @@
"output_cost_per_token": 0.0000012,
"max_input_tokens": 204800,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43108,7 +47783,6 @@
"litellm_provider": "novita",
"max_input_tokens": 204800,
"max_output_tokens": 131100,
- "max_tokens": 131100,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://novita.ai/pricing",
@@ -43125,7 +47799,6 @@
"litellm_provider": "novita",
"max_input_tokens": 204800,
"max_output_tokens": 131100,
- "max_tokens": 131100,
"mode": "chat",
"output_cost_per_token": 0.0000024,
"source": "https://novita.ai/pricing",
@@ -43142,7 +47815,6 @@
"litellm_provider": "novita",
"max_input_tokens": 204800,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://novita.ai/pricing",
@@ -43159,7 +47831,6 @@
"litellm_provider": "novita",
"max_input_tokens": 204800,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000024,
"source": "https://api.novita.ai/v3/openai/models",
@@ -43176,7 +47847,6 @@
"litellm_provider": "novita",
"max_input_tokens": 1000000,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://novita.ai/pricing",
@@ -43194,7 +47864,6 @@
"output_cost_per_token": 0.0000022,
"max_input_tokens": 1000000,
"max_output_tokens": 40000,
- "max_tokens": 40000,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43209,7 +47878,6 @@
"output_cost_per_token": 1.7e-7,
"max_input_tokens": 60288,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"supports_tool_choice": true,
"supports_system_messages": true,
"supports_response_schema": true
@@ -43221,7 +47889,6 @@
"output_cost_per_token": 0.0000025,
"max_input_tokens": 262144,
"max_output_tokens": 100352,
- "max_tokens": 100352,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43235,7 +47902,6 @@
"output_cost_per_token": 0.0000023,
"max_input_tokens": 131072,
"max_output_tokens": 100352,
- "max_tokens": 100352,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43249,7 +47915,6 @@
"output_cost_per_token": 0.0000025,
"max_input_tokens": 262144,
"max_output_tokens": 100352,
- "max_tokens": 100352,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43265,7 +47930,6 @@
"litellm_provider": "novita",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.000003,
"source": "https://novita.ai/pricing",
@@ -43282,7 +47946,6 @@
"litellm_provider": "novita",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000034,
"source": "https://novita.ai/pricing",
@@ -43299,7 +47962,6 @@
"litellm_provider": "novita",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.000004,
"source": "https://novita.ai/pricing",
@@ -43316,7 +47978,6 @@
"litellm_provider": "novita",
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
- "max_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.000015,
"source": "https://novita.ai/pricing",
@@ -43334,7 +47995,6 @@
"output_cost_per_token": 1.4e-7,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"supports_tool_choice": true,
"supports_system_messages": true,
"supports_response_schema": true
@@ -43344,7 +48004,6 @@
"litellm_provider": "novita",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 2.0000000000000002e-7,
"source": "https://novita.ai/pricing",
@@ -43361,7 +48020,6 @@
"output_cost_per_token": 2.5e-7,
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43377,7 +48035,6 @@
"output_cost_per_token": 1.5e-7,
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"supports_tool_choice": true,
"supports_vision": false,
"supports_system_messages": true,
@@ -43391,7 +48048,6 @@
"output_cost_per_token": 2e-8,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"supports_vision": true,
"supports_system_messages": true
},
@@ -43402,7 +48058,6 @@
"output_cost_per_token": 4e-7,
"max_input_tokens": 32000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43416,7 +48071,6 @@
"output_cost_per_token": 7.5e-7,
"max_input_tokens": 16384,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"supports_system_messages": true
},
"novita/qwen/qwen2.5-7b-instruct": {
@@ -43426,7 +48080,6 @@
"output_cost_per_token": 7e-8,
"max_input_tokens": 32000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43440,7 +48093,6 @@
"output_cost_per_token": 8e-7,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"supports_vision": true,
"supports_system_messages": true
},
@@ -43451,7 +48103,6 @@
"output_cost_per_token": 8e-7,
"max_input_tokens": 40960,
"max_output_tokens": 20000,
- "max_tokens": 20000,
"supports_system_messages": true,
"supports_reasoning": true,
"supports_response_schema": true
@@ -43463,7 +48114,6 @@
"output_cost_per_token": 5.8e-7,
"max_input_tokens": 131072,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43477,7 +48127,6 @@
"output_cost_per_token": 0.000003,
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43491,7 +48140,6 @@
"output_cost_per_token": 4.5e-7,
"max_input_tokens": 40960,
"max_output_tokens": 20000,
- "max_tokens": 20000,
"supports_system_messages": true,
"supports_reasoning": true,
"supports_function_calling": true,
@@ -43504,7 +48152,6 @@
"output_cost_per_token": 4.5e-7,
"max_input_tokens": 40960,
"max_output_tokens": 20000,
- "max_tokens": 20000,
"supports_system_messages": true,
"supports_reasoning": true
},
@@ -43515,7 +48162,6 @@
"output_cost_per_token": 3e-8,
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"supports_system_messages": true,
"supports_reasoning": true,
"supports_function_calling": true,
@@ -43528,7 +48174,6 @@
"output_cost_per_token": 1.38e-7,
"max_input_tokens": 128000,
"max_output_tokens": 20000,
- "max_tokens": 20000,
"supports_system_messages": true,
"supports_reasoning": true
},
@@ -43539,7 +48184,6 @@
"output_cost_per_token": 2.7e-7,
"max_input_tokens": 160000,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43553,7 +48197,6 @@
"output_cost_per_token": 0.00000155,
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43565,7 +48208,6 @@
"litellm_provider": "novita",
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"source": "https://novita.ai/pricing",
@@ -43581,7 +48223,6 @@
"output_cost_per_token": 0.00000845,
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43595,7 +48236,6 @@
"output_cost_per_token": 0.0000015,
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43610,7 +48250,6 @@
"output_cost_per_token": 0.0000015,
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43625,7 +48264,6 @@
"output_cost_per_token": 9.7e-7,
"max_input_tokens": 65536,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43642,7 +48280,6 @@
"output_cost_per_token": 9.7e-7,
"max_input_tokens": 65536,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43659,7 +48296,6 @@
"output_cost_per_token": 0.0000015,
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43674,7 +48310,6 @@
"output_cost_per_token": 0.00000395,
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"supports_vision": true,
"supports_system_messages": true,
"supports_reasoning": true,
@@ -43688,7 +48323,6 @@
"output_cost_per_token": 7e-7,
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43703,7 +48337,6 @@
"output_cost_per_token": 0.000001,
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43718,7 +48351,6 @@
"output_cost_per_token": 5e-7,
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43731,7 +48363,6 @@
"litellm_provider": "novita",
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.0000032000000000000003,
"source": "https://novita.ai/pricing",
@@ -43746,7 +48377,6 @@
"litellm_provider": "novita",
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.0000024,
"source": "https://novita.ai/pricing",
@@ -43761,7 +48391,6 @@
"litellm_provider": "novita",
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.000002,
"source": "https://novita.ai/pricing",
@@ -43776,7 +48405,6 @@
"litellm_provider": "novita",
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.0000036000000000000003,
"source": "https://novita.ai/pricing",
@@ -43791,7 +48419,6 @@
"litellm_provider": "novita",
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.0000036000000000000003,
"source": "https://novita.ai/pricing",
@@ -43806,7 +48433,6 @@
"litellm_provider": "novita",
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.0000014850000000000002,
"source": "https://novita.ai/pricing",
@@ -43822,7 +48448,6 @@
"litellm_provider": "novita",
"max_input_tokens": 1000000,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.00000375,
"source": "https://novita.ai/pricing",
@@ -43839,7 +48464,6 @@
"litellm_provider": "novita",
"max_input_tokens": 1000000,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000006,
"source": "https://novita.ai/pricing",
@@ -43857,7 +48481,6 @@
"output_cost_per_token": 0.00000148,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43870,7 +48493,6 @@
"output_cost_per_token": 5e-8,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"supports_tool_choice": true,
"supports_system_messages": true,
"supports_response_schema": true
@@ -43882,7 +48504,6 @@
"output_cost_per_token": 0.00000148,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43895,7 +48516,6 @@
"output_cost_per_token": 6e-7,
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"supports_tool_choice": true,
"supports_vision": true,
"supports_system_messages": true,
@@ -43907,7 +48527,6 @@
"litellm_provider": "novita",
"max_input_tokens": 262144,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 0.00000115,
"source": "https://novita.ai/pricing",
@@ -43924,7 +48543,6 @@
"litellm_provider": "novita",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 5.8e-7,
"source": "https://novita.ai/pricing",
@@ -43940,7 +48558,6 @@
"litellm_provider": "novita",
"max_input_tokens": 32000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.00000166,
"source": "https://api.novita.ai/v3/openai/models",
@@ -43956,7 +48573,6 @@
"output_cost_per_token": 3.3e-7,
"max_input_tokens": 262144,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -43972,7 +48588,6 @@
"litellm_provider": "novita",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 3.3600000000000004e-7,
"source": "https://novita.ai/pricing",
@@ -43989,7 +48604,6 @@
"litellm_provider": "novita",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000001044,
"source": "https://novita.ai/pricing",
@@ -44007,7 +48621,6 @@
"output_cost_per_token": 1.38e-7,
"max_input_tokens": 65536,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"supports_vision": true,
"supports_system_messages": true
},
@@ -44018,7 +48631,6 @@
"output_cost_per_token": 0.0000022,
"max_input_tokens": 131072,
"max_output_tokens": 98304,
- "max_tokens": 98304,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -44034,7 +48646,6 @@
"output_cost_per_token": 8.5e-7,
"max_input_tokens": 131072,
"max_output_tokens": 98304,
- "max_tokens": 98304,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -44050,7 +48661,6 @@
"output_cost_per_token": 0.0000018,
"max_input_tokens": 65536,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -44068,7 +48678,6 @@
"output_cost_per_token": 0.0000022,
"max_input_tokens": 204800,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -44085,7 +48694,6 @@
"output_cost_per_token": 9e-7,
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -44103,7 +48711,6 @@
"output_cost_per_token": 0.0000022,
"max_input_tokens": 204800,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
@@ -44119,7 +48726,6 @@
"litellm_provider": "novita",
"max_input_tokens": 200000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 4.0000000000000003e-7,
"source": "https://novita.ai/pricing",
@@ -44136,7 +48742,6 @@
"litellm_provider": "novita",
"max_input_tokens": 204800,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000022,
"source": "https://api.novita.ai/v3/openai/models",
@@ -44153,7 +48758,6 @@
"litellm_provider": "novita",
"max_input_tokens": 202800,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000032000000000000003,
"source": "https://novita.ai/pricing",
@@ -44170,7 +48774,6 @@
"litellm_provider": "novita",
"max_input_tokens": 202800,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000004,
"source": "https://api.novita.ai/v3/openai/models",
@@ -44187,7 +48790,6 @@
"litellm_provider": "novita",
"max_input_tokens": 204800,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://novita.ai/pricing",
@@ -44204,7 +48806,6 @@
"litellm_provider": "novita",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://novita.ai/pricing",
@@ -44221,7 +48822,6 @@
"litellm_provider": "novita",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://api.novita.ai/v3/openai/models",
@@ -44238,7 +48838,6 @@
"litellm_provider": "novita",
"max_input_tokens": 204800,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000004,
"source": "https://api.novita.ai/v3/openai/models",
@@ -44376,6 +48975,7 @@
},
"nvidia.nemotron-nano-12b-v2": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 2e-7,
"input_cost_per_token_batches": 1e-7,
"input_cost_per_token_flex": 1e-7,
@@ -44383,7 +48983,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 6e-7,
"output_cost_per_token_batches": 3e-7,
@@ -44404,7 +49003,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 256000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 2.4e-7,
"output_cost_per_token_batches": 1.2e-7,
@@ -44421,6 +49019,7 @@
},
"nvidia.nemotron-nano-9b-v2": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 6e-8,
"input_cost_per_token_batches": 3e-8,
"input_cost_per_token_flex": 3e-8,
@@ -44428,7 +49027,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 2.3e-7,
"output_cost_per_token_batches": 1.2e-7,
@@ -44449,7 +49047,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 256000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 6.5e-7,
"output_cost_per_token_batches": 3.25e-7,
@@ -44467,12 +49064,12 @@
"o1": {
"cache_read_input_token_cost": 0.0000075,
"deprecation_date": "2026-10-23",
+ "successor_model": "gpt-5.6-sol",
"input_cost_per_token": 0.000015,
"input_cost_per_token_batches": 0.0000075,
"litellm_provider": "openai",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.00006,
"output_cost_per_token_batches": 0.00003,
@@ -44490,12 +49087,13 @@
"o1-2024-12-17": {
"cache_read_input_token_cost": 0.0000075,
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-sol",
"input_cost_per_token": 0.000015,
"input_cost_per_token_batches": 0.0000075,
"litellm_provider": "openai",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.00006,
"output_cost_per_token_batches": 0.00003,
@@ -44514,6 +49112,8 @@
"cache_read_input_token_cost": 5e-7,
"cache_read_input_token_cost_flex": 2.5e-7,
"cache_read_input_token_cost_priority": 8.75e-7,
+ "deprecation_date": "2026-12-11",
+ "successor_model": "gpt-5.6-sol",
"input_cost_per_token": 0.000002,
"input_cost_per_token_batches": 0.000001,
"input_cost_per_token_flex": 0.000001,
@@ -44521,12 +49121,18 @@
"litellm_provider": "openai",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.000008,
"output_cost_per_token_batches": 0.000004,
"output_cost_per_token_flex": 0.000004,
"output_cost_per_token_priority": 0.000014,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn"
+ ],
+ "reasoning_modes": [
+ "standard"
+ ],
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
@@ -44561,6 +49167,8 @@
"cache_read_input_token_cost_flex": 2.5e-7,
"cache_read_input_token_cost_priority": 8.75e-7,
"deprecation_date": "2026-12-11",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-sol",
"input_cost_per_token": 0.000002,
"input_cost_per_token_batches": 0.000001,
"input_cost_per_token_flex": 0.000001,
@@ -44568,12 +49176,18 @@
"litellm_provider": "openai",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.000008,
"output_cost_per_token_batches": 0.000004,
"output_cost_per_token_flex": 0.000004,
"output_cost_per_token_priority": 0.000014,
+ "reasoning_contexts": [
+ "auto",
+ "current_turn"
+ ],
+ "reasoning_modes": [
+ "standard"
+ ],
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
@@ -44606,12 +49220,13 @@
"o3-mini": {
"cache_read_input_token_cost": 5.5e-7,
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-sol",
"input_cost_per_token": 0.0000011,
"input_cost_per_token_batches": 5.5e-7,
"litellm_provider": "openai",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"output_cost_per_token_batches": 0.0000022,
@@ -44627,12 +49242,13 @@
"o3-mini-2025-01-31": {
"cache_read_input_token_cost": 5.5e-7,
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-sol",
"input_cost_per_token": 0.0000011,
"input_cost_per_token_batches": 5.5e-7,
"litellm_provider": "openai",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"output_cost_per_token_batches": 0.0000022,
@@ -44650,6 +49266,8 @@
"cache_read_input_token_cost_flex": 1.38e-7,
"cache_read_input_token_cost_priority": 5e-7,
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-terra",
"input_cost_per_token": 0.0000011,
"input_cost_per_token_batches": 5.5e-7,
"input_cost_per_token_flex": 5.5e-7,
@@ -44657,7 +49275,6 @@
"litellm_provider": "openai",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"output_cost_per_token_batches": 0.0000022,
@@ -44684,6 +49301,8 @@
"cache_read_input_token_cost_flex": 1.38e-7,
"cache_read_input_token_cost_priority": 5e-7,
"deprecation_date": "2026-10-23",
+ "deprecation_source": "https://developers.openai.com/api/docs/deprecations",
+ "successor_model": "gpt-5.6-terra",
"input_cost_per_token": 0.0000011,
"input_cost_per_token_batches": 5.5e-7,
"input_cost_per_token_flex": 5.5e-7,
@@ -44691,7 +49310,6 @@
"litellm_provider": "openai",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"output_cost_per_token_batches": 0.0000022,
@@ -44718,7 +49336,6 @@
"litellm_provider": "oci",
"max_input_tokens": 256000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 0.00000156,
"source": "https://www.oracle.com/artificial-intelligence/enterprise-ai/cost-estimator/",
@@ -44731,7 +49348,6 @@
"litellm_provider": "oci",
"max_input_tokens": 256000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000156,
"source": "https://www.oracle.com/artificial-intelligence/enterprise-ai/cost-estimator/",
@@ -44744,7 +49360,6 @@
"litellm_provider": "oci",
"max_input_tokens": 256000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 0.00000156,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -44756,7 +49371,6 @@
"litellm_provider": "oci",
"max_input_tokens": 256000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 9e-8,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -44768,7 +49382,6 @@
"litellm_provider": "oci",
"max_input_tokens": 256000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000156,
"source": "https://www.oracle.com/artificial-intelligence/enterprise-ai/cost-estimator/",
@@ -44782,7 +49395,6 @@
"litellm_provider": "oci",
"max_input_tokens": 128000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 0.00000156,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -44795,7 +49407,6 @@
"litellm_provider": "oci",
"max_input_tokens": 128000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 0.00000156,
"source": "https://www.oracle.com/artificial-intelligence/enterprise-ai/cost-estimator/",
@@ -44808,7 +49419,6 @@
"litellm_provider": "oci",
"max_input_tokens": 128000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 0.00000156,
"source": "https://www.oracle.com/artificial-intelligence/enterprise-ai/cost-estimator/",
@@ -44821,7 +49431,6 @@
"litellm_provider": "oci",
"max_input_tokens": 128000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 1.5e-7,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -44833,7 +49442,6 @@
"litellm_provider": "oci",
"max_input_tokens": 128000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 0.00000156,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -44845,7 +49453,6 @@
"litellm_provider": "oci",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 6e-7,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -44865,7 +49472,6 @@
"litellm_provider": "oci",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 3e-7,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -44885,7 +49491,6 @@
"litellm_provider": "oci",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.00001,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -44904,7 +49509,6 @@
"litellm_provider": "oci",
"max_input_tokens": 128000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 0.00001068,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -44917,7 +49521,6 @@
"litellm_provider": "oci",
"max_input_tokens": 128000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 7.2e-7,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -44930,7 +49533,6 @@
"litellm_provider": "oci",
"max_input_tokens": 128000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 7.2e-7,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -44943,7 +49545,6 @@
"litellm_provider": "oci",
"max_input_tokens": 128000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 0.000002,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -44956,7 +49557,6 @@
"litellm_provider": "oci",
"max_input_tokens": 128000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 0.000002,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -44970,7 +49570,6 @@
"litellm_provider": "oci",
"max_input_tokens": 128000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 7.2e-7,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -44983,7 +49582,6 @@
"litellm_provider": "oci",
"max_input_tokens": 128000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 7.2e-7,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -44995,7 +49593,6 @@
"litellm_provider": "oci",
"max_input_tokens": 1048576,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 7.2e-7,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -45009,7 +49606,6 @@
"litellm_provider": "oci",
"max_input_tokens": 10485760,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 7.2e-7,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -45022,7 +49618,6 @@
"litellm_provider": "oci",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -45037,7 +49632,6 @@
"litellm_provider": "oci",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000002,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -45052,7 +49646,6 @@
"litellm_provider": "oci",
"max_input_tokens": 272000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 4e-7,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -45067,7 +49660,6 @@
"litellm_provider": "oci",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 6e-7,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -45080,7 +49672,6 @@
"litellm_provider": "oci",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 3e-7,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -45093,7 +49684,6 @@
"litellm_provider": "oci",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000015,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -45106,7 +49696,6 @@
"litellm_provider": "oci",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000025,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -45119,7 +49708,6 @@
"litellm_provider": "oci",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 5e-7,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -45132,7 +49720,6 @@
"litellm_provider": "oci",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000004,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -45145,7 +49732,6 @@
"litellm_provider": "oci",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -45158,7 +49744,6 @@
"litellm_provider": "oci",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000025,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -45170,7 +49755,6 @@
"litellm_provider": "oci",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000025,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -45182,7 +49766,6 @@
"litellm_provider": "oci",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000015,
"reasoning_effort_levels": [],
@@ -45198,7 +49781,6 @@
"litellm_provider": "oci",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_above_200k_tokens": 0.000005,
@@ -45214,7 +49796,6 @@
"litellm_provider": "oci",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_above_200k_tokens": 0.000005,
@@ -45228,7 +49809,6 @@
"litellm_provider": "oci",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000015,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -45243,7 +49823,6 @@
"litellm_provider": "oci",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_above_200k_tokens": 0.000005,
@@ -45259,7 +49838,6 @@
"litellm_provider": "oci",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_above_200k_tokens": 0.000005,
@@ -45273,7 +49851,6 @@
"litellm_provider": "oci",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000025,
"source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing",
@@ -45285,7 +49862,6 @@
"litellm_provider": "ollama",
"max_input_tokens": 32768,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0,
"supports_function_calling": false
@@ -45295,7 +49871,6 @@
"litellm_provider": "ollama",
"max_input_tokens": 32768,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0,
"supports_function_calling": true
@@ -45305,7 +49880,6 @@
"litellm_provider": "ollama",
"max_input_tokens": 32768,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0,
"supports_function_calling": true
@@ -45315,7 +49889,6 @@
"litellm_provider": "ollama",
"max_input_tokens": 163840,
"max_output_tokens": 163840,
- "max_tokens": 163840,
"mode": "chat",
"output_cost_per_token": 0,
"supports_function_calling": true
@@ -45325,7 +49898,6 @@
"litellm_provider": "ollama",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0,
"supports_function_calling": true
@@ -45335,7 +49907,6 @@
"litellm_provider": "ollama",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0,
"supports_function_calling": true
@@ -45345,7 +49916,6 @@
"litellm_provider": "ollama",
"max_input_tokens": 32768,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0,
"supports_function_calling": true
@@ -45355,7 +49925,6 @@
"litellm_provider": "ollama",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0
},
@@ -45364,7 +49933,6 @@
"litellm_provider": "ollama",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0
},
@@ -45373,7 +49941,6 @@
"litellm_provider": "ollama",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0
},
@@ -45382,7 +49949,6 @@
"litellm_provider": "ollama",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0
},
@@ -45391,7 +49957,6 @@
"litellm_provider": "ollama",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0
},
@@ -45400,7 +49965,6 @@
"litellm_provider": "ollama",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0,
"supports_function_calling": true
@@ -45410,7 +49974,6 @@
"litellm_provider": "ollama",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0
},
@@ -45419,7 +49982,6 @@
"litellm_provider": "ollama",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0
},
@@ -45428,7 +49990,6 @@
"litellm_provider": "ollama",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0,
"supports_function_calling": true
@@ -45438,7 +49999,6 @@
"litellm_provider": "ollama",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0,
"supports_function_calling": true
@@ -45448,7 +50008,6 @@
"litellm_provider": "ollama",
"max_input_tokens": 65536,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0,
"supports_function_calling": true
@@ -45458,7 +50017,6 @@
"litellm_provider": "ollama",
"max_input_tokens": 65536,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0,
"supports_function_calling": true
@@ -45468,7 +50026,6 @@
"litellm_provider": "ollama",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0,
"supports_function_calling": true
@@ -45478,7 +50035,6 @@
"litellm_provider": "ollama",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0,
"supports_function_calling": true
@@ -45494,9 +50050,8 @@
"output_cost_per_token_above_272k_tokens": 7.5e-7,
"litellm_provider": "bedrock_converse",
"supports_bedrock_converse_tool_result_images": false,
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"supported_modalities": [
"text",
@@ -45528,9 +50083,8 @@
"output_cost_per_token_above_272k_tokens": 0.000015,
"litellm_provider": "bedrock_converse",
"supports_bedrock_converse_tool_result_images": false,
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"supported_modalities": [
"text",
@@ -45552,6 +50106,7 @@
"source": "https://aws.amazon.com/bedrock/pricing/"
},
"openai.gpt-oss-120b-1:0": {
+ "supports_vision": false,
"supported_endpoints": [
"/v1/chat/completions"
],
@@ -45564,7 +50119,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 6e-7,
"output_cost_per_token_batches": 3e-7,
@@ -45577,6 +50131,7 @@
"supports_tool_choice": true
},
"openai.gpt-oss-20b-1:0": {
+ "supports_vision": false,
"supported_endpoints": [
"/v1/chat/completions"
],
@@ -45589,7 +50144,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 3e-7,
"output_cost_per_token_batches": 1.5e-7,
@@ -45609,7 +50163,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 6e-7,
"output_cost_per_token_batches": 3e-7,
@@ -45631,7 +50184,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 2e-7,
"output_cost_per_token_batches": 1e-7,
@@ -45837,270 +50389,719 @@
"supports_tool_choice": true,
"supports_vision": false
},
- "opencode-go/kimi-k2.5": {
- "litellm_provider": "opencode-go",
- "max_input_tokens": 262144,
- "max_output_tokens": 262144,
- "max_tokens": 262144,
+ "opencode-go/kimi-k2.5": {
+ "litellm_provider": "opencode-go",
+ "max_input_tokens": 262144,
+ "max_output_tokens": 262144,
+ "max_tokens": 262144,
+ "mode": "chat",
+ "source": "https://opencode.ai",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_video_input": true,
+ "supports_vision": true
+ },
+ "opencode-go/kimi-k2.6": {
+ "litellm_provider": "opencode-go",
+ "max_input_tokens": 262144,
+ "max_output_tokens": 262144,
+ "max_tokens": 262144,
+ "mode": "chat",
+ "source": "https://opencode.ai",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_video_input": true,
+ "supports_vision": true
+ },
+ "opencode-go/kimi-k2.7-code": {
+ "litellm_provider": "opencode-go",
+ "max_input_tokens": 262144,
+ "max_output_tokens": 262144,
+ "max_tokens": 262144,
+ "mode": "chat",
+ "source": "https://opencode.ai",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "supports_function_calling": true,
+ "supports_reasoning": true
+ },
+ "opencode-go/kimi-k3": {
+ "litellm_provider": "opencode-go",
+ "max_input_tokens": 262144,
+ "max_output_tokens": 262144,
+ "max_tokens": 262144,
+ "mode": "chat",
+ "source": "https://opencode.ai",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_video_input": true,
+ "supports_vision": true
+ },
+ "opencode-go/mimo-v2-omni": {
+ "litellm_provider": "opencode-go",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 131072,
+ "max_tokens": 131072,
+ "mode": "chat",
+ "source": "https://opencode.ai",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "supports_audio_input": true,
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_video_input": true,
+ "supports_vision": true
+ },
+ "opencode-go/mimo-v2-pro": {
+ "litellm_provider": "opencode-go",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 16384,
+ "max_tokens": 16384,
+ "mode": "chat",
+ "source": "https://opencode.ai",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": false
+ },
+ "opencode-go/mimo-v2.5": {
+ "litellm_provider": "opencode-go",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 131072,
+ "max_tokens": 131072,
+ "mode": "chat",
+ "source": "https://opencode.ai",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "supports_audio_input": true,
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_video_input": true,
+ "supports_vision": true
+ },
+ "opencode-go/mimo-v2.5-pro": {
+ "litellm_provider": "opencode-go",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 16384,
+ "max_tokens": 16384,
+ "mode": "chat",
+ "source": "https://opencode.ai",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": false
+ },
+ "opencode-go/minimax-m2.5": {
+ "litellm_provider": "opencode-go",
+ "max_input_tokens": 196608,
+ "max_output_tokens": 65536,
+ "max_tokens": 65536,
+ "mode": "chat",
+ "source": "https://opencode.ai",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "supports_computer_use": false,
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": false
+ },
+ "opencode-go/minimax-m2.7": {
+ "litellm_provider": "opencode-go",
+ "max_input_tokens": 1000192,
+ "max_output_tokens": 1000192,
+ "max_tokens": 1000192,
+ "mode": "chat",
+ "source": "https://opencode.ai",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "supports_assistant_prefill": true,
+ "supports_function_calling": true,
+ "supports_reasoning": false
+ },
+ "opencode-go/minimax-m3": {
+ "litellm_provider": "opencode-go",
+ "max_input_tokens": 512000,
+ "max_output_tokens": 512000,
+ "max_tokens": 512000,
+ "mode": "chat",
+ "source": "https://opencode.ai",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
+ "opencode-go/qwen3.5-plus": {
+ "litellm_provider": "opencode-go",
+ "max_input_tokens": 991808,
+ "max_output_tokens": 65536,
+ "max_tokens": 65536,
+ "mode": "chat",
+ "source": "https://opencode.ai",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
+ "opencode-go/qwen3.6-plus": {
+ "litellm_provider": "opencode-go",
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 65536,
+ "max_tokens": 65536,
+ "mode": "chat",
+ "source": "https://opencode.ai",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
+ "opencode-go/qwen3.7-max": {
+ "litellm_provider": "opencode-go",
+ "max_input_tokens": 991808,
+ "max_output_tokens": 65536,
+ "max_tokens": 65536,
+ "mode": "chat",
+ "source": "https://opencode.ai",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true
+ },
+ "opencode-go/qwen3.7-plus": {
+ "litellm_provider": "opencode-go",
+ "max_input_tokens": 991808,
+ "max_output_tokens": 65536,
+ "max_tokens": 65536,
+ "mode": "chat",
+ "source": "https://opencode.ai",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
+ "opencode-go/qwen3.8-max": {
+ "litellm_provider": "opencode-go",
+ "max_input_tokens": 991808,
+ "max_output_tokens": 65536,
+ "max_tokens": 65536,
+ "mode": "chat",
+ "source": "https://opencode.ai",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true
+ },
+ "opencode_go/beam-free": {
+ "litellm_provider": "opencode_go",
+ "mode": "chat",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "input_cost_per_token": 0,
+ "output_cost_per_token": 0,
+ "cache_read_input_token_cost": 0,
+ "max_output_tokens": 131072,
+ "max_input_tokens": 1048576,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_vision": false,
+ "source": "https://opencode.ai/v2/docs/console/go/"
+ },
+ "opencode_go/claude-haiku-5-5": {
+ "litellm_provider": "opencode_go",
+ "mode": "chat",
+ "supported_endpoints": [
+ "/v1/messages"
+ ],
+ "input_cost_per_token": 1.0000000000000001e-7,
+ "output_cost_per_token": 5e-7,
+ "cache_read_input_token_cost": 1e-8,
+ "cache_creation_input_token_cost": 1.25e-7,
+ "max_output_tokens": 128000,
+ "max_input_tokens": 1000000,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_vision": true,
+ "tiered_pricing": [
+ {
+ "range": [
+ 0,
+ 100000
+ ],
+ "input_cost_per_token": 1.0000000000000001e-7,
+ "output_cost_per_token": 5e-7,
+ "cache_read_input_token_cost": 1e-8,
+ "cache_creation_input_token_cost": 1.25e-7
+ },
+ {
+ "range": [
+ 100000,
+ 1000000
+ ],
+ "input_cost_per_token": 5e-7,
+ "output_cost_per_token": 0.0000025,
+ "cache_read_input_token_cost": 5.0000000000000004e-8,
+ "cache_creation_input_token_cost": 6.25e-7
+ }
+ ],
+ "source": "https://opencode.ai/v2/docs/console/go/"
+ },
+ "opencode_go/deepseek-v4-pro": {
+ "litellm_provider": "opencode_go",
+ "mode": "chat",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "input_cost_per_token": 0.00000132,
+ "output_cost_per_token": 0.00000396,
+ "cache_read_input_token_cost": 4.4e-8,
+ "max_output_tokens": 384000,
+ "max_input_tokens": 1000000,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_vision": false,
+ "source": "https://opencode.ai/v2/docs/console/go/"
+ },
+ "opencode_go/deepseek-v4.1-flash": {
+ "litellm_provider": "opencode_go",
+ "mode": "chat",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "input_cost_per_token": 3e-7,
+ "output_cost_per_token": 0.0000012,
+ "cache_read_input_token_cost": 6e-9,
+ "max_output_tokens": 384000,
+ "max_input_tokens": 1000000,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_vision": true,
+ "source": "https://opencode.ai/v2/docs/console/go/"
+ },
+ "opencode_go/gemini-4-argon": {
+ "litellm_provider": "opencode_go",
+ "mode": "chat",
+ "supported_endpoints": [
+ "/v1beta/models"
+ ],
+ "input_cost_per_token": 0.000002,
+ "output_cost_per_token": 0.00001,
+ "cache_read_input_token_cost": 1e-7,
+ "max_output_tokens": 65536,
+ "max_input_tokens": 1048576,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_vision": true,
+ "source": "https://opencode.ai/v2/docs/console/go/"
+ },
+ "opencode_go/glm-5.2": {
+ "litellm_provider": "opencode_go",
+ "mode": "chat",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "input_cost_per_token": 0.0000014,
+ "output_cost_per_token": 0.0000044,
+ "cache_read_input_token_cost": 2.6e-7,
+ "max_output_tokens": 131072,
+ "max_input_tokens": 1000000,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_vision": false,
+ "source": "https://opencode.ai/v2/docs/console/go/"
+ },
+ "opencode_go/glm-5.3": {
+ "litellm_provider": "opencode_go",
+ "mode": "chat",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "input_cost_per_token": 0.0000014,
+ "output_cost_per_token": 0.0000044,
+ "cache_read_input_token_cost": 2.6e-7,
+ "max_output_tokens": 131072,
+ "max_input_tokens": 1000000,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_vision": false,
+ "source": "https://opencode.ai/v2/docs/console/go/"
+ },
+ "opencode_go/glm-5.3-flash": {
+ "litellm_provider": "opencode_go",
+ "mode": "chat",
+ "supported_endpoints": [
+ "/v1/chat/completions"
+ ],
+ "input_cost_per_token": 1.5e-7,
+ "output_cost_per_token": 5e-7,
+ "cache_read_input_token_cost": 3e-8,
+ "max_output_tokens": 131072,
+ "max_input_tokens": 1000000,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_vision": true,
+ "source": "https://opencode.ai/v2/docs/console/go/"
+ },
+ "opencode_go/hy3": {
+ "litellm_provider": "opencode_go",
"mode": "chat",
- "source": "https://opencode.ai",
"supported_endpoints": [
"/v1/chat/completions"
],
+ "input_cost_per_token": 1.4e-7,
+ "output_cost_per_token": 5.8e-7,
+ "cache_read_input_token_cost": 3.5e-8,
+ "max_output_tokens": 128000,
+ "max_input_tokens": 192000,
"supports_function_calling": true,
"supports_reasoning": true,
- "supports_response_schema": true,
- "supports_tool_choice": true,
- "supports_video_input": true,
- "supports_vision": true
+ "supports_vision": false,
+ "source": "https://opencode.ai/v2/docs/console/go/"
},
- "opencode-go/kimi-k2.6": {
- "litellm_provider": "opencode-go",
- "max_input_tokens": 262144,
- "max_output_tokens": 262144,
- "max_tokens": 262144,
+ "opencode_go/hy4-preview": {
+ "litellm_provider": "opencode_go",
"mode": "chat",
- "source": "https://opencode.ai",
"supported_endpoints": [
"/v1/chat/completions"
],
+ "input_cost_per_token": 8.34e-7,
+ "output_cost_per_token": 0.000002501,
+ "cache_read_input_token_cost": 4.2000000000000006e-8,
+ "max_output_tokens": 64000,
+ "max_input_tokens": 1024000,
"supports_function_calling": true,
"supports_reasoning": true,
- "supports_response_schema": true,
- "supports_tool_choice": true,
- "supports_video_input": true,
- "supports_vision": true
+ "supports_vision": false,
+ "source": "https://opencode.ai/v2/docs/console/go/"
},
- "opencode-go/kimi-k2.7-code": {
- "litellm_provider": "opencode-go",
- "max_input_tokens": 262144,
- "max_output_tokens": 262144,
- "max_tokens": 262144,
+ "opencode_go/kimi-k2.7-code": {
+ "litellm_provider": "opencode_go",
"mode": "chat",
- "source": "https://opencode.ai",
"supported_endpoints": [
"/v1/chat/completions"
],
+ "input_cost_per_token": 9.499999999999999e-7,
+ "output_cost_per_token": 0.000004,
+ "cache_read_input_token_cost": 1.9e-7,
+ "max_output_tokens": 262144,
+ "max_input_tokens": 262144,
"supports_function_calling": true,
- "supports_reasoning": true
+ "supports_reasoning": true,
+ "supports_vision": true,
+ "source": "https://opencode.ai/v2/docs/console/go/"
},
- "opencode-go/kimi-k3": {
- "litellm_provider": "opencode-go",
- "max_input_tokens": 262144,
- "max_output_tokens": 262144,
- "max_tokens": 262144,
+ "opencode_go/kimi-k3": {
+ "litellm_provider": "opencode_go",
"mode": "chat",
- "source": "https://opencode.ai",
"supported_endpoints": [
"/v1/chat/completions"
],
+ "input_cost_per_token": 0.000003,
+ "output_cost_per_token": 0.000015,
+ "cache_read_input_token_cost": 3e-7,
+ "cache_creation_input_token_cost": 0.000003,
+ "max_output_tokens": 131072,
+ "max_input_tokens": 1048576,
"supports_function_calling": true,
"supports_reasoning": true,
- "supports_response_schema": true,
- "supports_tool_choice": true,
- "supports_video_input": true,
- "supports_vision": true
+ "supports_vision": true,
+ "source": "https://opencode.ai/v2/docs/console/go/"
},
- "opencode-go/mimo-v2-omni": {
- "litellm_provider": "opencode-go",
- "max_input_tokens": 1048576,
- "max_output_tokens": 131072,
- "max_tokens": 131072,
+ "opencode_go/kimi-k3.1-pro": {
+ "litellm_provider": "opencode_go",
"mode": "chat",
- "source": "https://opencode.ai",
"supported_endpoints": [
"/v1/chat/completions"
],
- "supports_audio_input": true,
+ "input_cost_per_token": 0.000002,
+ "output_cost_per_token": 0.00001,
+ "cache_read_input_token_cost": 2.0000000000000002e-7,
+ "cache_creation_input_token_cost": 0.000002,
+ "max_output_tokens": 131072,
+ "max_input_tokens": 1048576,
"supports_function_calling": true,
- "supports_prompt_caching": true,
"supports_reasoning": true,
- "supports_response_schema": true,
- "supports_tool_choice": true,
- "supports_video_input": true,
- "supports_vision": true
+ "supports_vision": true,
+ "source": "https://opencode.ai/v2/docs/console/go/"
},
- "opencode-go/mimo-v2-pro": {
- "litellm_provider": "opencode-go",
- "max_input_tokens": 1048576,
- "max_output_tokens": 16384,
- "max_tokens": 16384,
+ "opencode_go/longcat-2.0": {
+ "litellm_provider": "opencode_go",
"mode": "chat",
- "source": "https://opencode.ai",
"supported_endpoints": [
"/v1/chat/completions"
],
+ "input_cost_per_token": 3e-7,
+ "output_cost_per_token": 0.0000012,
+ "cache_read_input_token_cost": 6e-9,
+ "max_output_tokens": 131072,
+ "max_input_tokens": 1000000,
"supports_function_calling": true,
- "supports_prompt_caching": true,
"supports_reasoning": true,
- "supports_response_schema": true,
- "supports_tool_choice": true,
- "supports_vision": false
+ "supports_vision": false,
+ "source": "https://opencode.ai/v2/docs/console/go/"
},
- "opencode-go/mimo-v2.5": {
- "litellm_provider": "opencode-go",
- "max_input_tokens": 1048576,
- "max_output_tokens": 131072,
- "max_tokens": 131072,
+ "opencode_go/longcat-2.5-preview-free": {
+ "litellm_provider": "opencode_go",
"mode": "chat",
- "source": "https://opencode.ai",
"supported_endpoints": [
"/v1/chat/completions"
],
- "supports_audio_input": true,
+ "input_cost_per_token": 0,
+ "output_cost_per_token": 0,
+ "cache_read_input_token_cost": 0,
+ "max_output_tokens": 131072,
+ "max_input_tokens": 1000000,
"supports_function_calling": true,
- "supports_prompt_caching": true,
"supports_reasoning": true,
- "supports_response_schema": true,
- "supports_tool_choice": true,
- "supports_video_input": true,
- "supports_vision": true
+ "supports_vision": true,
+ "source": "https://opencode.ai/v2/docs/console/go/"
},
- "opencode-go/mimo-v2.5-pro": {
- "litellm_provider": "opencode-go",
- "max_input_tokens": 1048576,
- "max_output_tokens": 16384,
- "max_tokens": 16384,
+ "opencode_go/mimo-v2.5": {
+ "litellm_provider": "opencode_go",
"mode": "chat",
- "source": "https://opencode.ai",
"supported_endpoints": [
"/v1/chat/completions"
],
+ "input_cost_per_token": 1.4e-7,
+ "output_cost_per_token": 2.8e-7,
+ "cache_read_input_token_cost": 2.8e-9,
+ "max_output_tokens": 128000,
+ "max_input_tokens": 1000000,
"supports_function_calling": true,
- "supports_prompt_caching": true,
"supports_reasoning": true,
- "supports_response_schema": true,
- "supports_tool_choice": true,
- "supports_vision": false
+ "supports_vision": true,
+ "source": "https://opencode.ai/v2/docs/console/go/"
},
- "opencode-go/minimax-m2.5": {
- "litellm_provider": "opencode-go",
- "max_input_tokens": 196608,
- "max_output_tokens": 65536,
- "max_tokens": 65536,
+ "opencode_go/mimo-v2.5-pro": {
+ "litellm_provider": "opencode_go",
"mode": "chat",
- "source": "https://opencode.ai",
"supported_endpoints": [
"/v1/chat/completions"
],
- "supports_computer_use": false,
+ "input_cost_per_token": 4.35e-7,
+ "output_cost_per_token": 8.7e-7,
+ "cache_read_input_token_cost": 3.625e-9,
+ "max_output_tokens": 128000,
+ "max_input_tokens": 1048576,
"supports_function_calling": true,
- "supports_prompt_caching": true,
"supports_reasoning": true,
- "supports_tool_choice": true,
- "supports_vision": false
+ "supports_vision": false,
+ "source": "https://opencode.ai/v2/docs/console/go/"
},
- "opencode-go/minimax-m2.7": {
- "litellm_provider": "opencode-go",
- "max_input_tokens": 1000192,
- "max_output_tokens": 1000192,
- "max_tokens": 1000192,
+ "opencode_go/mimo-v2.6-flash": {
+ "litellm_provider": "opencode_go",
"mode": "chat",
- "source": "https://opencode.ai",
"supported_endpoints": [
"/v1/chat/completions"
],
- "supports_assistant_prefill": true,
+ "input_cost_per_token": 1.4e-7,
+ "output_cost_per_token": 2.8e-7,
+ "cache_read_input_token_cost": 2.8e-9,
+ "max_output_tokens": 131072,
+ "max_input_tokens": 1048576,
"supports_function_calling": true,
- "supports_reasoning": false
+ "supports_reasoning": true,
+ "supports_vision": true,
+ "source": "https://opencode.ai/v2/docs/console/go/"
},
- "opencode-go/minimax-m3": {
- "litellm_provider": "opencode-go",
- "max_input_tokens": 512000,
- "max_output_tokens": 512000,
- "max_tokens": 512000,
+ "opencode_go/mimo-v2.6-pro": {
+ "litellm_provider": "opencode_go",
"mode": "chat",
- "source": "https://opencode.ai",
"supported_endpoints": [
"/v1/chat/completions"
],
+ "input_cost_per_token": 4.35e-7,
+ "output_cost_per_token": 8.7e-7,
+ "cache_read_input_token_cost": 3.625e-9,
+ "max_output_tokens": 131072,
+ "max_input_tokens": 1048576,
"supports_function_calling": true,
"supports_reasoning": true,
- "supports_response_schema": true,
- "supports_tool_choice": true,
- "supports_vision": true
+ "supports_vision": true,
+ "source": "https://opencode.ai/v2/docs/console/go/"
},
- "opencode-go/qwen3.5-plus": {
- "litellm_provider": "opencode-go",
- "max_input_tokens": 991808,
- "max_output_tokens": 65536,
- "max_tokens": 65536,
+ "opencode_go/minimax-m3": {
+ "litellm_provider": "opencode_go",
"mode": "chat",
- "source": "https://opencode.ai",
"supported_endpoints": [
- "/v1/chat/completions"
+ "/v1/messages"
],
+ "input_cost_per_token": 3e-7,
+ "output_cost_per_token": 0.0000012,
+ "cache_read_input_token_cost": 6e-8,
+ "max_output_tokens": 131072,
+ "max_input_tokens": 1000000,
"supports_function_calling": true,
"supports_reasoning": true,
- "supports_tool_choice": true,
- "supports_vision": true
+ "supports_vision": true,
+ "source": "https://opencode.ai/v2/docs/console/go/"
},
- "opencode-go/qwen3.6-plus": {
- "litellm_provider": "opencode-go",
- "max_input_tokens": 1000000,
- "max_output_tokens": 65536,
- "max_tokens": 65536,
+ "opencode_go/minimax-m3.1-flash": {
+ "litellm_provider": "opencode_go",
"mode": "chat",
- "source": "https://opencode.ai",
"supported_endpoints": [
"/v1/chat/completions"
],
+ "input_cost_per_token": 1.5e-7,
+ "output_cost_per_token": 6e-7,
+ "cache_read_input_token_cost": 1.5e-8,
+ "max_output_tokens": 512000,
+ "max_input_tokens": 1000000,
"supports_function_calling": true,
"supports_reasoning": true,
- "supports_tool_choice": true,
- "supports_vision": true
+ "supports_vision": true,
+ "source": "https://opencode.ai/v2/docs/console/go/"
},
- "opencode-go/qwen3.7-max": {
- "litellm_provider": "opencode-go",
- "max_input_tokens": 991808,
+ "opencode_go/qwen3.7-plus": {
+ "litellm_provider": "opencode_go",
+ "mode": "chat",
+ "supported_endpoints": [
+ "/v1/messages"
+ ],
+ "input_cost_per_token": 4.0000000000000003e-7,
+ "output_cost_per_token": 0.0000016000000000000001,
+ "cache_read_input_token_cost": 4e-8,
+ "cache_creation_input_token_cost": 5e-7,
"max_output_tokens": 65536,
- "max_tokens": 65536,
+ "max_input_tokens": 1000000,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_vision": true,
+ "tiered_pricing": [
+ {
+ "range": [
+ 0,
+ 256000
+ ],
+ "input_cost_per_token": 4.0000000000000003e-7,
+ "output_cost_per_token": 0.0000016000000000000001,
+ "cache_read_input_token_cost": 4e-8,
+ "cache_creation_input_token_cost": 5e-7
+ },
+ {
+ "range": [
+ 256000,
+ 1000000
+ ],
+ "input_cost_per_token": 0.0000012,
+ "output_cost_per_token": 0.0000048,
+ "cache_read_input_token_cost": 1.2e-7,
+ "cache_creation_input_token_cost": 0.0000015
+ }
+ ],
+ "source": "https://opencode.ai/v2/docs/console/go/"
+ },
+ "opencode_go/qwen3.8-flash": {
+ "litellm_provider": "opencode_go",
"mode": "chat",
- "source": "https://opencode.ai",
"supported_endpoints": [
- "/v1/chat/completions"
+ "/v1/messages"
],
+ "input_cost_per_token": 1.5e-7,
+ "output_cost_per_token": 4.6999999999999995e-7,
+ "cache_read_input_token_cost": 1.6e-8,
+ "cache_creation_input_token_cost": 2.0000000000000002e-7,
+ "max_output_tokens": 131072,
+ "max_input_tokens": 1000000,
"supports_function_calling": true,
- "supports_prompt_caching": true,
"supports_reasoning": true,
- "supports_response_schema": true,
- "supports_tool_choice": true
+ "supports_vision": true,
+ "source": "https://opencode.ai/v2/docs/console/go/"
},
- "opencode-go/qwen3.7-plus": {
- "litellm_provider": "opencode-go",
- "max_input_tokens": 991808,
- "max_output_tokens": 65536,
- "max_tokens": 65536,
+ "opencode_go/qwen3.8-max": {
+ "litellm_provider": "opencode_go",
"mode": "chat",
- "source": "https://opencode.ai",
"supported_endpoints": [
- "/v1/chat/completions"
+ "/v1/messages"
],
+ "input_cost_per_token": 0.000002,
+ "output_cost_per_token": 0.000006,
+ "cache_read_input_token_cost": 2.5e-7,
+ "cache_creation_input_token_cost": 0.0000025,
+ "max_output_tokens": 131072,
+ "max_input_tokens": 1000000,
"supports_function_calling": true,
- "supports_prompt_caching": true,
"supports_reasoning": true,
- "supports_response_schema": true,
- "supports_tool_choice": true,
- "supports_vision": true
+ "supports_vision": true,
+ "source": "https://opencode.ai/v2/docs/console/go/"
},
- "opencode-go/qwen3.8-max": {
- "litellm_provider": "opencode-go",
- "max_input_tokens": 991808,
- "max_output_tokens": 65536,
- "max_tokens": 65536,
+ "opencode_go/step-5-preview": {
+ "litellm_provider": "opencode_go",
"mode": "chat",
- "source": "https://opencode.ai",
"supported_endpoints": [
"/v1/chat/completions"
],
+ "input_cost_per_token": 0.000001,
+ "output_cost_per_token": 0.0000027,
+ "cache_read_input_token_cost": 1.0000000000000001e-7,
+ "max_output_tokens": 65536,
+ "max_input_tokens": 1000000,
"supports_function_calling": true,
- "supports_prompt_caching": true,
"supports_reasoning": true,
- "supports_response_schema": true,
- "supports_tool_choice": true
+ "supports_vision": true,
+ "source": "https://opencode.ai/v2/docs/console/go/"
},
"openinfer/@oi/GLM-5.3-Flash": {
- "max_tokens": 393216,
"max_input_tokens": 393216,
"max_output_tokens": 393216,
"input_cost_per_token": 1.95e-7,
@@ -46112,7 +51113,6 @@
"source": "https://api.openinfer.ai/v1/models"
},
"openinfer/@oi/Qwen3.5-27B": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 1.95e-7,
@@ -46124,7 +51124,6 @@
"source": "https://api.openinfer.ai/v1/models"
},
"openinfer/@oi/Qwen3.5-9B": {
- "max_tokens": 100000,
"max_input_tokens": 100000,
"max_output_tokens": 100000,
"input_cost_per_token": 0.000005,
@@ -46140,7 +51139,6 @@
"litellm_provider": "ovhcloud",
"max_input_tokens": 131000,
"max_output_tokens": 131000,
- "max_tokens": 131000,
"mode": "chat",
"output_cost_per_token": 6.7e-7,
"source": "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog/",
@@ -46154,7 +51152,6 @@
"litellm_provider": "ovhcloud",
"max_input_tokens": 131000,
"max_output_tokens": 131000,
- "max_tokens": 131000,
"mode": "chat",
"output_cost_per_token": 1e-7,
"source": "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog/",
@@ -46167,7 +51164,6 @@
"litellm_provider": "ovhcloud",
"max_input_tokens": 131000,
"max_output_tokens": 131000,
- "max_tokens": 131000,
"mode": "chat",
"output_cost_per_token": 6.7e-7,
"source": "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog/",
@@ -46180,7 +51176,6 @@
"litellm_provider": "ovhcloud",
"max_input_tokens": 131000,
"max_output_tokens": 131000,
- "max_tokens": 131000,
"mode": "chat",
"output_cost_per_token": 6.7e-7,
"source": "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog/",
@@ -46193,7 +51188,6 @@
"litellm_provider": "ovhcloud",
"max_input_tokens": 127000,
"max_output_tokens": 127000,
- "max_tokens": 127000,
"mode": "chat",
"output_cost_per_token": 1e-7,
"source": "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog/",
@@ -46206,7 +51200,6 @@
"litellm_provider": "ovhcloud",
"max_input_tokens": 118000,
"max_output_tokens": 118000,
- "max_tokens": 118000,
"mode": "chat",
"output_cost_per_token": 1.3e-7,
"source": "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog/",
@@ -46219,7 +51212,6 @@
"litellm_provider": "ovhcloud",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 2.8e-7,
"source": "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog/",
@@ -46233,7 +51225,6 @@
"litellm_provider": "ovhcloud",
"max_input_tokens": 32000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 6.3e-7,
"source": "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog/",
@@ -46246,7 +51237,6 @@
"litellm_provider": "ovhcloud",
"max_input_tokens": 32000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 8.7e-7,
"source": "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog/",
@@ -46259,7 +51249,6 @@
"litellm_provider": "ovhcloud",
"max_input_tokens": 32000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 9.1e-7,
"source": "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog/",
@@ -46273,7 +51262,6 @@
"litellm_provider": "ovhcloud",
"max_input_tokens": 32000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 2.3e-7,
"source": "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog/",
@@ -46287,7 +51275,6 @@
"litellm_provider": "ovhcloud",
"max_input_tokens": 131000,
"max_output_tokens": 131000,
- "max_tokens": 131000,
"mode": "chat",
"output_cost_per_token": 4e-7,
"source": "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog/",
@@ -46301,7 +51288,6 @@
"litellm_provider": "ovhcloud",
"max_input_tokens": 131000,
"max_output_tokens": 131000,
- "max_tokens": 131000,
"mode": "chat",
"output_cost_per_token": 1.5e-7,
"source": "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog/",
@@ -46315,7 +51301,6 @@
"litellm_provider": "ovhcloud",
"max_input_tokens": 32000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 2.9e-7,
"source": "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog/",
@@ -46329,7 +51314,6 @@
"litellm_provider": "ovhcloud",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 1.9e-7,
"source": "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog/",
@@ -46342,7 +51326,6 @@
"litellm_provider": "perplexity",
"max_input_tokens": 16384,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000014
},
@@ -46351,7 +51334,6 @@
"litellm_provider": "perplexity",
"max_input_tokens": 16384,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000028
},
@@ -46360,7 +51342,6 @@
"litellm_provider": "perplexity",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.0000028
},
@@ -46369,7 +51350,6 @@
"litellm_provider": "perplexity",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000001
},
@@ -46378,7 +51358,6 @@
"litellm_provider": "perplexity",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 2e-7
},
@@ -46387,7 +51366,6 @@
"litellm_provider": "perplexity",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 2.8e-7
},
@@ -46396,7 +51374,6 @@
"litellm_provider": "perplexity",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 2.8e-7
},
@@ -46405,7 +51382,6 @@
"litellm_provider": "perplexity",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.0000028
},
@@ -46415,7 +51391,6 @@
"litellm_provider": "perplexity",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.0000028
},
@@ -46424,7 +51399,6 @@
"litellm_provider": "perplexity",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 2.8e-7
},
@@ -46434,7 +51408,6 @@
"litellm_provider": "perplexity",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 2.8e-7
},
@@ -46442,7 +51415,7 @@
"input_cost_per_token": 0.000001,
"litellm_provider": "perplexity",
"max_input_tokens": 128000,
- "max_tokens": 128000,
+ "max_output_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000001,
"search_context_cost_per_query": {
@@ -46457,7 +51430,7 @@
"input_cost_per_token": 0.000002,
"litellm_provider": "perplexity",
"max_input_tokens": 128000,
- "max_tokens": 128000,
+ "max_output_tokens": 128000,
"mode": "chat",
"output_cost_per_reasoning_token": 0.000003,
"output_cost_per_token": 0.000008,
@@ -46474,7 +51447,6 @@
"litellm_provider": "perplexity",
"max_input_tokens": 16384,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000018
},
@@ -46484,7 +51456,6 @@
"litellm_provider": "perplexity",
"max_input_tokens": 12000,
"max_output_tokens": 12000,
- "max_tokens": 12000,
"mode": "chat",
"output_cost_per_token": 0.0000018
},
@@ -46493,7 +51464,6 @@
"litellm_provider": "perplexity",
"max_input_tokens": 200000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"search_context_cost_per_query": {
@@ -46507,7 +51477,7 @@
"input_cost_per_token": 0.000001,
"litellm_provider": "perplexity",
"max_input_tokens": 128000,
- "max_tokens": 128000,
+ "max_output_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000005,
"search_context_cost_per_query": {
@@ -46522,7 +51492,7 @@
"input_cost_per_token": 0.000002,
"litellm_provider": "perplexity",
"max_input_tokens": 128000,
- "max_tokens": 128000,
+ "max_output_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000008,
"search_context_cost_per_query": {
@@ -46538,7 +51508,6 @@
"litellm_provider": "perplexity",
"max_input_tokens": 16384,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 2.8e-7
},
@@ -46548,12 +51517,10 @@
"litellm_provider": "perplexity",
"max_input_tokens": 12000,
"max_output_tokens": 12000,
- "max_tokens": 12000,
"mode": "chat",
"output_cost_per_token": 2.8e-7
},
"pinstripes/ps/deepseek-v4-flash": {
- "max_tokens": 163840,
"max_input_tokens": 163840,
"max_output_tokens": 163840,
"input_cost_per_token": 1e-7,
@@ -46566,7 +51533,6 @@
"source": "https://pinstripes.io/"
},
"pinstripes/ps/glm-4.5-air": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 1.25e-7,
@@ -46579,7 +51545,6 @@
"source": "https://pinstripes.io/"
},
"pinstripes/ps/minimax-m2.7": {
- "max_tokens": 1000192,
"max_input_tokens": 1000192,
"max_output_tokens": 1000192,
"input_cost_per_token": 2.55e-7,
@@ -46592,7 +51557,6 @@
"source": "https://pinstripes.io/"
},
"pinstripes/ps/qwen3-30b-a3b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 9e-8,
@@ -46605,7 +51569,6 @@
"source": "https://pinstripes.io/"
},
"pinstripes/ps/qwen3-coder-30b-a3b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 3e-7,
@@ -46618,7 +51581,6 @@
"source": "https://pinstripes.io/"
},
"pinstripes/ps/qwen3.6-35b-a3b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 1.4e-7,
@@ -46636,7 +51598,6 @@
"litellm_provider": "prism",
"max_input_tokens": 1000000,
"max_output_tokens": 384000,
- "max_tokens": 384000,
"mode": "chat",
"output_cost_per_token": 2.1e-7,
"source": "https://prisminference.com/pricing",
@@ -46661,7 +51622,6 @@
"litellm_provider": "prism",
"max_input_tokens": 1000000,
"max_output_tokens": 384000,
- "max_tokens": 384000,
"mode": "chat",
"output_cost_per_token": 6.3e-7,
"source": "https://prisminference.com/pricing",
@@ -46685,7 +51645,6 @@
"litellm_provider": "publicai",
"max_input_tokens": 8192,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://platform.publicai.co/docs",
@@ -46697,7 +51656,6 @@
"litellm_provider": "publicai",
"max_input_tokens": 16384,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://platform.publicai.co/docs",
@@ -46709,7 +51667,6 @@
"litellm_provider": "publicai",
"max_input_tokens": 8192,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://platform.publicai.co/docs",
@@ -46721,7 +51678,6 @@
"litellm_provider": "publicai",
"max_input_tokens": 32768,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://platform.publicai.co/docs",
@@ -46733,7 +51689,6 @@
"litellm_provider": "publicai",
"max_input_tokens": 32768,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://platform.publicai.co/docs",
@@ -46746,7 +51701,6 @@
"litellm_provider": "publicai",
"max_input_tokens": 32768,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://platform.publicai.co/docs",
@@ -46758,7 +51712,6 @@
"litellm_provider": "publicai",
"max_input_tokens": 32768,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://platform.publicai.co/docs",
@@ -46771,7 +51724,6 @@
"litellm_provider": "publicai",
"max_input_tokens": 8192,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://platform.publicai.co/docs",
@@ -46783,7 +51735,6 @@
"litellm_provider": "publicai",
"max_input_tokens": 8192,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://platform.publicai.co/docs",
@@ -46796,7 +51747,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 8.8e-7,
"output_cost_per_token_flex": 4.4e-7,
@@ -46816,7 +51766,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 32768,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 6e-7,
"output_cost_per_token_batches": 3e-7,
@@ -46830,13 +51779,13 @@
},
"qwen.qwen3-coder-30b-a3b-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 1.5e-7,
"input_cost_per_token_batches": 7.5e-8,
"input_cost_per_token_priority": 2.625e-7,
"litellm_provider": "bedrock_converse",
"max_input_tokens": 262144,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 6e-7,
"output_cost_per_token_batches": 3e-7,
@@ -46849,11 +51798,11 @@
},
"qwen.qwen3-coder-480b-a35b-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-qwen-qwen3-coder-480b-a35b-instruct.html",
"input_cost_per_token": 4.5e-7,
"litellm_provider": "bedrock_converse",
"max_input_tokens": 262144,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000018,
"supports_function_calling": true,
@@ -46870,7 +51819,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 256000,
"max_output_tokens": 16000,
- "max_tokens": 16000,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"output_cost_per_token_batches": 6e-7,
@@ -46886,13 +51834,16 @@
},
"qwen.qwen3-next-80b-a3b": {
"input_cost_per_token": 1.5e-7,
+ "input_cost_per_token_flex": 7e-8,
+ "input_cost_per_token_priority": 2.6e-7,
"litellm_provider": "bedrock_converse",
"max_input_tokens": 256000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.0000012,
- "source": "https://aws.amazon.com/bedrock/pricing/",
+ "output_cost_per_token_flex": 6e-7,
+ "output_cost_per_token_priority": 0.0000021,
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/index.json",
"supports_audio_input": false,
"supports_function_calling": true,
"supports_system_messages": true,
@@ -46907,7 +51858,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 256000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.00000266,
"output_cost_per_token_batches": 0.00000133,
@@ -46926,7 +51876,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 1000000,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"output_cost_per_token": 4e-7,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -46942,7 +51891,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 1000000,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"output_cost_per_token": 4e-7,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -46958,7 +51906,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 1000000,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"output_cost_per_token": 0.0000048,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -46974,7 +51921,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 202745,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -46990,7 +51936,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -47006,7 +51951,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 229376,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.000004,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -47022,7 +51966,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 1000000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -47034,7 +51977,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 997952,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -47063,7 +52005,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 997952,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -47093,7 +52034,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 30720,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000064,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -47106,7 +52046,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 129024,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -47119,7 +52058,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 129024,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -47132,7 +52070,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 129024,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_reasoning_token": 0.000004,
"output_cost_per_token": 0.0000012,
@@ -47146,7 +52083,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 129024,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_reasoning_token": 0.000004,
"output_cost_per_token": 0.0000012,
@@ -47159,7 +52095,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 997952,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -47190,7 +52125,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 997952,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -47221,7 +52155,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 997952,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -47253,7 +52186,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 129024,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_reasoning_token": 5e-7,
"output_cost_per_token": 2e-7,
@@ -47267,7 +52199,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 1000000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 2e-7,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -47280,7 +52211,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 1000000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_reasoning_token": 5e-7,
"output_cost_per_token": 2e-7,
@@ -47294,7 +52224,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 1000000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_reasoning_token": 5e-7,
"output_cost_per_token": 2e-7,
@@ -47307,7 +52236,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 129024,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -47318,7 +52246,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 997952,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -47367,7 +52294,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 997952,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -47412,7 +52338,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 997952,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -47461,7 +52386,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 997952,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -47506,7 +52430,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 258048,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -47543,7 +52466,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 258048,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -47580,7 +52502,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 258048,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -47618,7 +52539,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://www.alibabacloud.com/help/en/model-studio/model-pricing",
@@ -47630,7 +52550,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://www.alibabacloud.com/help/en/model-studio/model-pricing",
@@ -47643,7 +52562,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.0000016,
"source": "https://www.alibabacloud.com/help/en/model-studio/model-pricing",
@@ -47656,7 +52574,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000004,
"source": "https://www.alibabacloud.com/help/en/model-studio/model-pricing",
@@ -47670,7 +52587,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 6.4e-7,
"source": "https://www.alibabacloud.com/help/en/model-studio/model-pricing",
@@ -47683,7 +52599,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.00000287,
"source": "https://www.alibabacloud.com/help/en/model-studio/model-pricing",
@@ -47696,7 +52611,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 260096,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -47734,7 +52648,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 991808,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -47761,12 +52674,13 @@
]
},
"qwen_ai_platform/qwen3.7-max": {
+ "cache_creation_input_token_cost": 0.000003125,
"cache_read_input_token_cost": 5e-7,
+ "explicit_cache_read_input_token_cost": 2.5e-7,
"input_cost_per_token": 0.0000025,
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 991808,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.0000075,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -47780,7 +52694,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 991808,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
"supports_function_calling": true,
@@ -47817,7 +52730,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 991808,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 4.7e-7,
"source": "https://docs.modelstudio.console.alibabacloud.com/en/model-studio/model-pricing",
@@ -47836,7 +52748,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 991808,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000006,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -47853,7 +52764,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 991808,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 4.7e-7,
"source": "https://docs.modelstudio.console.alibabacloud.com/en/model-studio/model-pricing",
@@ -47872,7 +52782,6 @@
"litellm_provider": "qwen_ai_platform",
"max_input_tokens": 98304,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000024,
"source": "https://www.alibabacloud.com/help/en/model-studio/models",
@@ -47886,7 +52795,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 1000000,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"output_cost_per_token": 4e-7,
"source": "https://www.qwencloud.com/models",
@@ -47902,7 +52810,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 1000000,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"output_cost_per_token": 4e-7,
"source": "https://www.qwencloud.com/models",
@@ -47918,7 +52825,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 1000000,
"max_output_tokens": 393216,
- "max_tokens": 393216,
"mode": "chat",
"output_cost_per_token": 0.0000048,
"source": "https://www.qwencloud.com/models",
@@ -47934,7 +52840,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 202745,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://www.qwencloud.com/models",
@@ -47950,7 +52855,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://www.qwencloud.com/models",
@@ -47966,7 +52870,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 229376,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.000004,
"source": "https://www.qwencloud.com/models",
@@ -47982,7 +52885,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 1000000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"source": "https://www.qwencloud.com/models",
@@ -47994,7 +52896,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 997952,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"source": "https://www.qwencloud.com/models",
"supports_function_calling": true,
@@ -48023,7 +52924,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 997952,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"source": "https://www.qwencloud.com/models",
"supports_function_calling": true,
@@ -48053,7 +52953,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 30720,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000064,
"source": "https://www.qwencloud.com/models",
@@ -48066,7 +52965,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 129024,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://www.qwencloud.com/models",
@@ -48079,7 +52977,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 129024,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://www.qwencloud.com/models",
@@ -48092,7 +52989,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 129024,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_reasoning_token": 0.000004,
"output_cost_per_token": 0.0000012,
@@ -48106,7 +53002,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 129024,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_reasoning_token": 0.000004,
"output_cost_per_token": 0.0000012,
@@ -48119,7 +53014,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 997952,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"source": "https://www.qwencloud.com/models",
"supports_function_calling": true,
@@ -48150,7 +53044,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 997952,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"source": "https://www.qwencloud.com/models",
"supports_function_calling": true,
@@ -48181,7 +53074,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 997952,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"source": "https://www.qwencloud.com/models",
"supports_function_calling": true,
@@ -48213,7 +53105,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 129024,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_reasoning_token": 5e-7,
"output_cost_per_token": 2e-7,
@@ -48227,7 +53118,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 1000000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 2e-7,
"source": "https://www.qwencloud.com/models",
@@ -48240,7 +53130,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 1000000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_reasoning_token": 5e-7,
"output_cost_per_token": 2e-7,
@@ -48254,7 +53143,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 1000000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_reasoning_token": 5e-7,
"output_cost_per_token": 2e-7,
@@ -48267,7 +53155,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 129024,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"source": "https://www.qwencloud.com/models",
"supports_function_calling": true,
@@ -48278,7 +53165,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 997952,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.qwencloud.com/models",
"supports_function_calling": true,
@@ -48327,7 +53213,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 997952,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.qwencloud.com/models",
"supports_function_calling": true,
@@ -48372,7 +53257,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 997952,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.qwencloud.com/models",
"supports_function_calling": true,
@@ -48421,7 +53305,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 997952,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.qwencloud.com/models",
"supports_function_calling": true,
@@ -48466,7 +53349,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 258048,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.qwencloud.com/models",
"supports_function_calling": true,
@@ -48503,7 +53385,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 258048,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.qwencloud.com/models",
"supports_function_calling": true,
@@ -48540,7 +53421,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 258048,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.qwencloud.com/models",
"supports_function_calling": true,
@@ -48578,7 +53458,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://www.qwencloud.com/models",
@@ -48590,7 +53469,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 262144,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://www.qwencloud.com/models",
@@ -48603,7 +53481,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.0000016,
"source": "https://www.qwencloud.com/models",
@@ -48616,7 +53493,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000004,
"source": "https://www.qwencloud.com/models",
@@ -48630,7 +53506,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 6.4e-7,
"source": "https://www.qwencloud.com/models",
@@ -48643,7 +53518,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.00000287,
"source": "https://www.qwencloud.com/models",
@@ -48656,7 +53530,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 260096,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"source": "https://www.qwencloud.com/models",
"supports_function_calling": true,
@@ -48694,7 +53567,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 991808,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.qwencloud.com/models",
"supports_function_calling": true,
@@ -48721,12 +53593,13 @@
]
},
"qwencloud/qwen3.7-max": {
+ "cache_creation_input_token_cost": 0.000003125,
"cache_read_input_token_cost": 5e-7,
+ "explicit_cache_read_input_token_cost": 2.5e-7,
"input_cost_per_token": 0.0000025,
"litellm_provider": "qwencloud",
"max_input_tokens": 991808,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.0000075,
"source": "https://www.qwencloud.com/models",
@@ -48740,7 +53613,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 991808,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"source": "https://www.qwencloud.com/models",
"supports_function_calling": true,
@@ -48776,7 +53648,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 991808,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000006,
"source": "https://www.qwencloud.com/models",
@@ -48792,7 +53663,6 @@
"litellm_provider": "qwencloud",
"max_input_tokens": 98304,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000024,
"source": "https://www.qwencloud.com/models",
@@ -48800,6 +53670,111 @@
"supports_reasoning": true,
"supports_tool_choice": true
},
+ "refuseless/deepseek-v4.1-flash-abliterated": {
+ "cache_read_input_token_cost": 3.5e-8,
+ "input_cost_per_token": 1.4e-7,
+ "litellm_provider": "refuseless",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 130000,
+ "mode": "chat",
+ "output_cost_per_token": 5e-7,
+ "source": "https://refuseless.com/pricing",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": false,
+ "reasoning_effort_levels": [
+ "low",
+ "high",
+ "max"
+ ]
+ },
+ "refuseless/deepseek-v4.1-flash-fast": {
+ "cache_read_input_token_cost": 3e-9,
+ "input_cost_per_token": 5e-8,
+ "litellm_provider": "refuseless",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 262144,
+ "mode": "chat",
+ "output_cost_per_token": 1.5e-7,
+ "source": "https://refuseless.com/pricing",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": false,
+ "reasoning_effort_levels": [
+ "low",
+ "high",
+ "max"
+ ]
+ },
+ "refuseless/glm-5.3-abliterated": {
+ "cache_read_input_token_cost": 1.5e-7,
+ "input_cost_per_token": 0.000001,
+ "litellm_provider": "refuseless",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 131072,
+ "mode": "chat",
+ "output_cost_per_token": 0.000002,
+ "source": "https://refuseless.com/pricing",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": false,
+ "reasoning_effort_levels": [
+ "low",
+ "high",
+ "max"
+ ]
+ },
+ "refuseless/glm-5.3-flash-abliterated": {
+ "cache_read_input_token_cost": 4e-8,
+ "input_cost_per_token": 1.2e-7,
+ "litellm_provider": "refuseless",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 131072,
+ "mode": "chat",
+ "output_cost_per_token": 5e-7,
+ "source": "https://refuseless.com/pricing",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": false,
+ "reasoning_effort_levels": [
+ "low",
+ "high",
+ "max"
+ ]
+ },
+ "refuseless/minimax-m3.1-flash": {
+ "cache_read_input_token_cost": 2e-9,
+ "input_cost_per_token": 5e-8,
+ "litellm_provider": "refuseless",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 512000,
+ "mode": "chat",
+ "output_cost_per_token": 2.5e-7,
+ "source": "https://refuseless.com/pricing",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": false,
+ "reasoning_effort_levels": [
+ "low",
+ "high",
+ "max"
+ ]
+ },
"replicate/anthropic/claude-3.5-haiku": {
"input_cost_per_token": 0.000001,
"output_cost_per_token": 0.000005,
@@ -48889,7 +53864,6 @@
"mode": "chat",
"max_input_tokens": 65536,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"supports_reasoning": true,
"supports_system_messages": true
},
@@ -48900,7 +53874,6 @@
"mode": "chat",
"max_input_tokens": 65536,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"supports_function_calling": true,
"supports_system_messages": true
},
@@ -48911,7 +53884,6 @@
"mode": "chat",
"max_input_tokens": 163840,
"max_output_tokens": 163840,
- "max_tokens": 163840,
"supports_function_calling": true,
"supports_reasoning": true,
"supports_system_messages": true
@@ -48960,7 +53932,6 @@
"litellm_provider": "replicate",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 5e-7,
"supports_tool_choice": true
@@ -48970,7 +53941,6 @@
"litellm_provider": "replicate",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 5e-7,
"supports_tool_choice": true
@@ -48980,7 +53950,6 @@
"litellm_provider": "replicate",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.00000275,
"supports_tool_choice": true
@@ -48990,7 +53959,6 @@
"litellm_provider": "replicate",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.00000275,
"supports_tool_choice": true
@@ -49000,7 +53968,6 @@
"litellm_provider": "replicate",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 2.5e-7,
"supports_tool_choice": true
@@ -49010,7 +53977,6 @@
"litellm_provider": "replicate",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 2.5e-7,
"supports_tool_choice": true
@@ -49020,7 +53986,6 @@
"litellm_provider": "replicate",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000275,
"supports_tool_choice": true
@@ -49030,7 +53995,6 @@
"litellm_provider": "replicate",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000275,
"supports_tool_choice": true
@@ -49040,7 +54004,6 @@
"litellm_provider": "replicate",
"max_input_tokens": 8086,
"max_output_tokens": 8086,
- "max_tokens": 8086,
"mode": "chat",
"output_cost_per_token": 2.5e-7,
"supports_tool_choice": true
@@ -49050,7 +54013,6 @@
"litellm_provider": "replicate",
"max_input_tokens": 8086,
"max_output_tokens": 8086,
- "max_tokens": 8086,
"mode": "chat",
"output_cost_per_token": 2.5e-7,
"supports_tool_choice": true
@@ -49060,7 +54022,6 @@
"litellm_provider": "replicate",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 2.5e-7,
"supports_tool_choice": true
@@ -49070,7 +54031,6 @@
"litellm_provider": "replicate",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 2.5e-7,
"supports_tool_choice": true
@@ -49080,7 +54040,6 @@
"litellm_provider": "replicate",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000001,
"supports_tool_choice": true
@@ -49239,7 +54198,6 @@
"litellm_provider": "sagemaker",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0
},
@@ -49248,7 +54206,6 @@
"litellm_provider": "sagemaker",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0
},
@@ -49257,12 +54214,10 @@
"litellm_provider": "sagemaker",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0
},
"sail/Qwen/Qwen3.6-35B-A3B": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 5e-8,
@@ -49282,7 +54237,6 @@
"source": "https://docs.sailresearch.com/models"
},
"sail/deepseek-ai/DeepSeek-V4-Flash-0731": {
- "max_tokens": 1048576,
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
"input_cost_per_token": 9e-8,
@@ -49304,7 +54258,6 @@
"source": "https://docs.sailresearch.com/models"
},
"sail/deepseek-ai/DeepSeek-V4-Pro-0813": {
- "max_tokens": 1048576,
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
"input_cost_per_token": 9.2e-7,
@@ -49326,7 +54279,6 @@
"source": "https://docs.sailresearch.com/models"
},
"sail/deepseek-ai/DeepSeek-V4.1-Flash": {
- "max_tokens": 1048576,
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
"input_cost_per_token": 9e-8,
@@ -49348,7 +54300,6 @@
"source": "https://docs.sailresearch.com/models"
},
"sail/google/gemma-4-12B-it": {
- "max_tokens": 16384,
"max_input_tokens": 16384,
"max_output_tokens": 16384,
"input_cost_per_token": 3e-7,
@@ -49370,7 +54321,6 @@
"source": "https://docs.sailresearch.com/models"
},
"sail/google/gemma-4-31B-it": {
- "max_tokens": 256000,
"max_input_tokens": 256000,
"max_output_tokens": 256000,
"input_cost_per_token": 4e-7,
@@ -49393,7 +54343,6 @@
"source": "https://docs.sailresearch.com/models"
},
"sail/moonshotai/Kimi-K2.6": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 0.000001,
@@ -49416,7 +54365,6 @@
"source": "https://docs.sailresearch.com/models"
},
"sail/moonshotai/Kimi-K3": {
- "max_tokens": 1048576,
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
"input_cost_per_token": 0.0000025,
@@ -49438,7 +54386,6 @@
"source": "https://docs.sailresearch.com/models"
},
"sail/nvidia/Gemma-4-31B-IT-NVFP4": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"input_cost_per_token": 1.4e-7,
@@ -49461,7 +54408,6 @@
"source": "https://docs.sailresearch.com/models"
},
"sail/openai/gpt-oss-120b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 6e-8,
@@ -49477,7 +54423,6 @@
"source": "https://docs.sailresearch.com/models"
},
"sail/zai-org/GLM-5.3": {
- "max_tokens": 1048576,
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
"input_cost_per_token": 9.8e-7,
@@ -49499,7 +54444,6 @@
"source": "https://docs.sailresearch.com/models"
},
"sail/zai-org/GLM-5.3-Flash": {
- "max_tokens": 1048576,
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
"input_cost_per_token": 1.1e-7,
@@ -49525,13 +54469,11 @@
"litellm_provider": "sambanova",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000007,
"source": "https://cloud.sambanova.ai/plans/pricing"
},
"sambanova/DeepSeek-V3.1": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 0.000003,
@@ -49544,7 +54486,6 @@
"source": "https://cloud.sambanova.ai/plans/pricing"
},
"sambanova/DeepSeek-V3.2": {
- "max_tokens": 32768,
"max_input_tokens": 32768,
"max_output_tokens": 32768,
"input_cost_per_token": 0.000003,
@@ -49560,7 +54501,6 @@
"litellm_provider": "sambanova",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"metadata": {
"notes": "For vision models, images are converted to 6432 input tokens and are billed at that amount"
},
@@ -49577,7 +54517,6 @@
"litellm_provider": "sambanova",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://cloud.sambanova.ai/plans/pricing",
@@ -49590,7 +54529,6 @@
"litellm_provider": "sambanova",
"max_input_tokens": 196608,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000024,
"source": "https://cloud.sambanova.ai/plans/pricing",
@@ -49599,7 +54537,6 @@
"supports_tool_choice": true
},
"sambanova/gemma-4-31B-it": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 3.8e-7,
@@ -49610,7 +54547,6 @@
"source": "https://cloud.sambanova.ai/plans/pricing"
},
"sambanova/gpt-oss-120b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 2.2e-7,
@@ -49630,7 +54566,6 @@
"litellm_provider": "sarvam",
"max_input_tokens": 8192,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0,
"supports_reasoning": true
@@ -49687,7 +54622,6 @@
"litellm_provider": "scaleway",
"max_input_tokens": 256000,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 8e-7,
"source": "https://www.scaleway.com/en/pricing/model-as-a-service/",
@@ -49697,11 +54631,11 @@
"supports_vision": false
},
"scaleway/glm-5.2": {
+ "deprecation_date": "2026-11-16",
"input_cost_per_token": 0.0000018,
"litellm_provider": "scaleway",
"max_input_tokens": 256000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000055,
"source": "https://www.scaleway.com/en/pricing/model-as-a-service/",
@@ -49714,7 +54648,6 @@
"litellm_provider": "scaleway",
"max_input_tokens": 256000,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 5e-7,
"supports_function_calling": true,
@@ -49726,7 +54659,6 @@
"litellm_provider": "scaleway",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 9e-7,
"supports_function_calling": true
@@ -49736,7 +54668,6 @@
"litellm_provider": "scaleway",
"max_input_tokens": 256000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000075,
"supports_reasoning": true,
@@ -49749,7 +54680,6 @@
"litellm_provider": "scaleway",
"max_input_tokens": 128000,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 3.5e-7,
"supports_function_calling": true,
@@ -49760,7 +54690,6 @@
"litellm_provider": "scaleway",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 2e-7,
"supports_vision": true,
@@ -49772,7 +54701,6 @@
"litellm_provider": "scaleway",
"max_input_tokens": 128000,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 6e-7,
"supports_function_calling": true
@@ -49782,7 +54710,6 @@
"litellm_provider": "scaleway",
"max_input_tokens": 256000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00000225,
"supports_function_calling": true
@@ -49792,7 +54719,6 @@
"litellm_provider": "scaleway",
"max_input_tokens": 128000,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 8e-7,
"supports_function_calling": true,
@@ -49803,7 +54729,6 @@
"litellm_provider": "scaleway",
"max_input_tokens": 256000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000036,
"supports_function_calling": true,
@@ -49815,7 +54740,6 @@
"litellm_provider": "scaleway",
"max_input_tokens": 256000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"supports_function_calling": true,
@@ -49828,7 +54752,6 @@
"litellm_provider": "scx-ai",
"max_input_tokens": 1000000,
"max_output_tokens": 375000,
- "max_tokens": 375000,
"mode": "chat",
"output_cost_per_token": 6e-7,
"source": "https://scx.ai/models/deepseek-v4-1-flash",
@@ -49843,7 +54766,6 @@
"litellm_provider": "scx-ai",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.00000198,
"source": "https://scx.ai/pricing",
@@ -49860,7 +54782,6 @@
"litellm_provider": "scx-ai",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00000308,
"source": "https://scx.ai/models/glm-5-3",
@@ -49876,7 +54797,6 @@
"litellm_provider": "scx-ai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.00001413,
"source": "https://scx.ai/models/kimi-k3",
@@ -49892,7 +54812,6 @@
"litellm_provider": "scx-ai",
"max_input_tokens": 1000000,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.00000499,
"source": "https://scx.ai/pricing",
@@ -49907,7 +54826,6 @@
"litellm_provider": "snowflake",
"max_input_tokens": 200000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"input_cost_per_token": 0.000003,
"output_cost_per_token": 0.000015,
@@ -49920,7 +54838,6 @@
"supports_response_schema": true
},
"snowflake/claude-3-7-sonnet": {
- "max_tokens": 16384,
"max_input_tokens": 200000,
"max_output_tokens": 16384,
"input_cost_per_token": 0.000003,
@@ -49936,7 +54853,6 @@
"supports_response_schema": true
},
"snowflake/claude-4-opus": {
- "max_tokens": 16384,
"max_input_tokens": 200000,
"max_output_tokens": 16384,
"input_cost_per_token": 0.000005,
@@ -49953,7 +54869,6 @@
"prompt_cache_min_tokens": 1024
},
"snowflake/claude-4-sonnet": {
- "max_tokens": 16384,
"max_input_tokens": 200000,
"max_output_tokens": 16384,
"input_cost_per_token": 0.000003,
@@ -49969,7 +54884,6 @@
"prompt_cache_min_tokens": 1024
},
"snowflake/claude-haiku-4-5": {
- "max_tokens": 16384,
"max_input_tokens": 200000,
"max_output_tokens": 16384,
"input_cost_per_token": 0.000001,
@@ -49985,7 +54899,6 @@
"prompt_cache_min_tokens": 4096
},
"snowflake/claude-sonnet-4-5": {
- "max_tokens": 16384,
"max_input_tokens": 200000,
"max_output_tokens": 16384,
"input_cost_per_token": 0.000003,
@@ -50003,7 +54916,6 @@
"snowflake/claude-sonnet-4-6": {
"supports_adaptive_thinking": true,
"supports_legacy_thinking": true,
- "max_tokens": 16384,
"max_input_tokens": 200000,
"max_output_tokens": 16384,
"input_cost_per_token": 0.000003,
@@ -50022,7 +54934,6 @@
"litellm_provider": "snowflake",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"input_cost_per_token": 0.00000135,
"output_cost_per_token": 0.0000054,
@@ -50033,56 +54944,48 @@
"litellm_provider": "snowflake",
"max_input_tokens": 8000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat"
},
"snowflake/jamba-1.5-large": {
"litellm_provider": "snowflake",
"max_input_tokens": 256000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat"
},
"snowflake/jamba-1.5-mini": {
"litellm_provider": "snowflake",
"max_input_tokens": 256000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat"
},
"snowflake/jamba-instruct": {
"litellm_provider": "snowflake",
"max_input_tokens": 256000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat"
},
"snowflake/llama2-70b-chat": {
"litellm_provider": "snowflake",
"max_input_tokens": 4096,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat"
},
"snowflake/llama3-70b": {
"litellm_provider": "snowflake",
"max_input_tokens": 8000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat"
},
"snowflake/llama3-8b": {
"litellm_provider": "snowflake",
"max_input_tokens": 8000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat"
},
"snowflake/llama3.1-405b": {
"litellm_provider": "snowflake",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"input_cost_per_token": 0.0000012,
"output_cost_per_token": 0.0000012,
@@ -50093,7 +54996,6 @@
"litellm_provider": "snowflake",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"input_cost_per_token": 7.2e-7,
"output_cost_per_token": 7.2e-7,
@@ -50104,7 +55006,6 @@
"litellm_provider": "snowflake",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"input_cost_per_token": 2.4e-7,
"output_cost_per_token": 2.4e-7,
@@ -50114,18 +55015,15 @@
"litellm_provider": "snowflake",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat"
},
"snowflake/llama3.2-3b": {
"litellm_provider": "snowflake",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat"
},
"snowflake/llama3.3-70b": {
- "max_tokens": 16384,
"max_input_tokens": 128000,
"max_output_tokens": 16384,
"input_cost_per_token": 7.2e-7,
@@ -50136,7 +55034,6 @@
"supports_system_messages": true
},
"snowflake/llama4-maverick": {
- "max_tokens": 16384,
"max_input_tokens": 128000,
"max_output_tokens": 16384,
"input_cost_per_token": 2.4e-7,
@@ -50150,21 +55047,18 @@
"litellm_provider": "snowflake",
"max_input_tokens": 32000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat"
},
"snowflake/mistral-large": {
"litellm_provider": "snowflake",
"max_input_tokens": 32000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat"
},
"snowflake/mistral-large2": {
"litellm_provider": "snowflake",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"input_cost_per_token": 0.000002,
"output_cost_per_token": 0.000006,
@@ -50176,11 +55070,9 @@
"litellm_provider": "snowflake",
"max_input_tokens": 32000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat"
},
"snowflake/openai-gpt-4.1": {
- "max_tokens": 16384,
"max_input_tokens": 300000,
"max_output_tokens": 16384,
"input_cost_per_token": 0.000002,
@@ -50195,7 +55087,6 @@
"supports_response_schema": true
},
"snowflake/openai-gpt-5": {
- "max_tokens": 16384,
"max_input_tokens": 300000,
"max_output_tokens": 16384,
"input_cost_per_token": 0.00000125,
@@ -50211,7 +55102,6 @@
"supports_response_schema": true
},
"snowflake/openai-gpt-5-mini": {
- "max_tokens": 16384,
"max_input_tokens": 1000000,
"max_output_tokens": 16384,
"input_cost_per_token": 3e-7,
@@ -50223,7 +55113,6 @@
"supports_response_schema": true
},
"snowflake/openai-gpt-5-nano": {
- "max_tokens": 16384,
"max_input_tokens": 5000000,
"max_output_tokens": 16384,
"input_cost_per_token": 1.5e-7,
@@ -50238,32 +55127,27 @@
"litellm_provider": "snowflake",
"max_input_tokens": 32000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat"
},
"snowflake/reka-flash": {
"litellm_provider": "snowflake",
"max_input_tokens": 100000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat"
},
"snowflake/snowflake-arctic": {
"litellm_provider": "snowflake",
"max_input_tokens": 4096,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat"
},
"snowflake/snowflake-llama-3.1-405b": {
"litellm_provider": "snowflake",
"max_input_tokens": 8000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat"
},
"snowflake/snowflake-llama-3.3-70b": {
- "max_tokens": 16384,
"max_input_tokens": 128000,
"max_output_tokens": 16384,
"input_cost_per_token": 7.2e-7,
@@ -50273,6 +55157,359 @@
"supports_function_calling": true,
"supports_system_messages": true
},
+ "streamlake/DeepSeek-V3": {
+ "cache_read_input_token_cost": 1.14e-7,
+ "input_cost_per_token": 2.86e-7,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 56000,
+ "max_output_tokens": 8000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000001143,
+ "supports_function_calling": true,
+ "supports_reasoning": false,
+ "supports_prompt_caching": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/DeepSeek-V4-Pro-0813": {
+ "cache_read_input_token_cost": 4.4e-8,
+ "input_cost_per_token": 0.00000132,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 1048566,
+ "max_output_tokens": 384000,
+ "mode": "chat",
+ "output_cost_per_token": 0.00000396,
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/GLM-5.3": {
+ "cache_read_input_token_cost": 2.6e-7,
+ "input_cost_per_token": 0.0000014,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000044,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_assistant_prefill": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/GLM-5.3-Flash": {
+ "cache_read_input_token_cost": 3e-8,
+ "input_cost_per_token": 1.5e-7,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 5e-7,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_vision": true,
+ "supports_assistant_prefill": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/Kimi-K2-Instruct-0905": {
+ "cache_read_input_token_cost": 1.43e-7,
+ "input_cost_per_token": 5.71e-7,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 224000,
+ "max_output_tokens": 32000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000002286,
+ "supports_function_calling": true,
+ "supports_reasoning": false,
+ "supports_prompt_caching": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/deepseek-r1": {
+ "cache_read_input_token_cost": 2.29e-7,
+ "input_cost_per_token": 5.71e-7,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 98304,
+ "max_output_tokens": 16000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000002286,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/deepseek-v3.1": {
+ "cache_read_input_token_cost": 2.29e-7,
+ "input_cost_per_token": 5.71e-7,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 98304,
+ "max_output_tokens": 32000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000001714,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/deepseek-v4-flash": {
+ "cache_read_input_token_cost": 2.8e-8,
+ "input_cost_per_token": 1.4e-7,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 384000,
+ "mode": "chat",
+ "output_cost_per_token": 2.8e-7,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/deepseek-v4-flash-0731": {
+ "cache_read_input_token_cost": 1.4e-8,
+ "input_cost_per_token": 4.4e-7,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 384000,
+ "mode": "chat",
+ "output_cost_per_token": 0.00000132,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/deepseek-v4-pro": {
+ "cache_read_input_token_cost": 1.45e-7,
+ "input_cost_per_token": 0.00000174,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 384000,
+ "mode": "chat",
+ "output_cost_per_token": 0.00000348,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/deepseek-v4.1-flash-1017": {
+ "cache_read_input_token_cost": 6e-9,
+ "input_cost_per_token": 3e-7,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 384000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000012,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/deepseek-v4.1-flash-260910": {
+ "cache_read_input_token_cost": 6e-9,
+ "input_cost_per_token": 3e-7,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 1048568,
+ "max_output_tokens": 384000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000012,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/glm-5": {
+ "cache_read_input_token_cost": 2e-7,
+ "input_cost_per_token": 0.000001,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 202752,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000032,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/glm-5.1": {
+ "cache_read_input_token_cost": 2.6e-7,
+ "input_cost_per_token": 0.0000014,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 202752,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000044,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/glm-5.2": {
+ "cache_read_input_token_cost": 2.6e-7,
+ "input_cost_per_token": 0.0000014,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 1048566,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000044,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/kimi-k2.6": {
+ "cache_read_input_token_cost": 1.6e-7,
+ "input_cost_per_token": 9.5e-7,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 262144,
+ "max_output_tokens": 256000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000004,
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_reasoning": false,
+ "supports_prompt_caching": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/kimi-k2.7-code": {
+ "cache_read_input_token_cost": 1.9e-7,
+ "input_cost_per_token": 9.5e-7,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 262144,
+ "max_output_tokens": 32000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000004,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/mimo-v2.6-flash": {
+ "cache_read_input_token_cost": 2.8e-9,
+ "input_cost_per_token": 1.4e-7,
+ "litellm_provider": "streamlake",
+ "mode": "chat",
+ "output_cost_per_token": 2.8e-7,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/mimo-v2.6-pro": {
+ "cache_read_input_token_cost": 3.6e-9,
+ "input_cost_per_token": 4.35e-7,
+ "litellm_provider": "streamlake",
+ "mode": "chat",
+ "output_cost_per_token": 8.7e-7,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/minimax-m2.5": {
+ "cache_creation_input_token_cost": 3.75e-7,
+ "cache_read_input_token_cost": 3e-8,
+ "input_cost_per_token": 3e-7,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 196608,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000012,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/minimax-m3": {
+ "cache_read_input_token_cost": 1.2e-7,
+ "cache_read_input_token_cost_above_512k_tokens": 2.4e-7,
+ "input_cost_per_token": 6e-7,
+ "input_cost_per_token_above_512k_tokens": 0.0000012,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 1000000,
+ "max_output_tokens": 512000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000024,
+ "output_cost_per_token_above_512k_tokens": 0.0000048,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/qwen3.5-397b-a17b": {
+ "cache_read_input_token_cost": 1.2e-7,
+ "input_cost_per_token": 6e-7,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 258048,
+ "max_output_tokens": 64000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000036,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_vision": true,
+ "supports_prompt_caching": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/qwen3.6-27b": {
+ "input_cost_per_token": 6e-7,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 229376,
+ "max_output_tokens": 64000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000036,
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_reasoning": false,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/qwen3.6-35b-a3b": {
+ "input_cost_per_token": 3.75e-7,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 229376,
+ "max_output_tokens": 64000,
+ "mode": "chat",
+ "output_cost_per_token": 0.00000225,
+ "supports_function_calling": true,
+ "supports_vision": true,
+ "supports_reasoning": false,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/qwen3.8-2.4t-a95b": {
+ "cache_read_input_token_cost": 2.5e-7,
+ "input_cost_per_token": 0.000002,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 983616,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000006,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_vision": true,
+ "cache_creation_input_token_cost": 0.0000025,
+ "explicit_cache_read_input_token_cost": 1.7e-7,
+ "supports_prompt_caching": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
+ "streamlake/qwen3.8-27b": {
+ "cache_read_input_token_cost": 1e-7,
+ "input_cost_per_token": 5e-7,
+ "litellm_provider": "streamlake",
+ "max_input_tokens": 983616,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000003,
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_vision": true,
+ "cache_creation_input_token_cost": 6.25e-7,
+ "explicit_cache_read_input_token_cost": 5e-8,
+ "supports_prompt_caching": true,
+ "source": "https://www.streamlake.ai/document/DOC/mgrnm4xm362hvp5wyce"
+ },
"tencent/deepseek-v4-flash": {
"cache_creation_input_token_cost": 0,
"cache_read_input_token_cost": 2.8e-9,
@@ -50281,7 +55518,6 @@
"litellm_provider": "tencent",
"max_input_tokens": 1000000,
"max_output_tokens": 384000,
- "max_tokens": 384000,
"mode": "chat",
"output_cost_per_token": 2.8e-7,
"source": "https://www.tencentcloud.com/document/product/1300/78937",
@@ -50307,7 +55543,6 @@
"litellm_provider": "tencent",
"max_input_tokens": 1000000,
"max_output_tokens": 384000,
- "max_tokens": 384000,
"mode": "chat",
"output_cost_per_token": 0.00000348,
"source": "https://www.tencentcloud.com/document/product/1300/78937",
@@ -50333,7 +55568,6 @@
"litellm_provider": "tencent",
"max_input_tokens": 1000000,
"max_output_tokens": 384000,
- "max_tokens": 384000,
"mode": "chat",
"off_peak_pricing": {
"cache_read_input_token_cost": 2.2e-8,
@@ -50388,7 +55622,6 @@
"litellm_provider": "tencent",
"max_input_tokens": 1000000,
"max_output_tokens": 384000,
- "max_tokens": 384000,
"mode": "chat",
"off_peak_pricing": {
"cache_read_input_token_cost": 3e-9,
@@ -50443,7 +55676,6 @@
"litellm_provider": "tencent",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://www.tencentcloud.com/document/product/1300/78937",
@@ -50467,7 +55699,6 @@
"litellm_provider": "tencent",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://www.tencentcloud.com/document/product/1300/78937",
@@ -50491,7 +55722,6 @@
"litellm_provider": "tencent",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 5e-7,
"source": "https://www.tencentcloud.com/document/product/1300/78937",
@@ -50516,7 +55746,6 @@
"litellm_provider": "tencent",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00000125,
"source": "https://www.tencentcloud.com/document/product/1300/78937",
@@ -50541,7 +55770,6 @@
"litellm_provider": "tencent",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 0.000004,
"source": "https://www.tencentcloud.com/document/product/1300/78937",
@@ -50565,7 +55793,6 @@
"litellm_provider": "tencent",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 0.000008,
"source": "https://www.tencentcloud.com/document/product/1300/78937",
@@ -50589,7 +55816,6 @@
"litellm_provider": "tencent",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.000004,
"source": "https://www.tencentcloud.com/document/product/1300/78937",
@@ -50613,7 +55839,6 @@
"litellm_provider": "tencent",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"source": "https://www.tencentcloud.com/document/product/1300/78937",
@@ -50829,7 +56054,8 @@
"together-ai-8.1b-21b": {
"input_cost_per_token": 3e-7,
"litellm_provider": "together_ai",
- "max_tokens": 1000,
+ "max_output_tokens": 1000,
+ "max_input_tokens": 1000,
"mode": "chat",
"output_cost_per_token": 3e-7
},
@@ -50856,13 +56082,16 @@
},
"together_ai/MiniMaxAI/MiniMax-M3": {
"cache_read_input_token_cost": 6e-8,
+ "deprecation_date": "2026-11-06",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 3e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 524288,
- "max_tokens": 524288,
+ "max_output_tokens": 524288,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://api.together.ai/v1/models",
+ "successor_model": "together_ai/MiniMaxAI/MiniMax-M3.1-Flash",
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_prompt_caching": true,
@@ -50871,35 +56100,26 @@
"supports_tool_choice": true,
"supports_vision": true
},
- "together_ai/NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO": {
- "deprecation_date": "2025-08-28",
- "input_cost_per_token": 6e-7,
+ "together_ai/MiniMaxAI/MiniMax-M3.1-Flash": {
+ "cache_read_input_token_cost": 1.5e-8,
+ "input_cost_per_token": 1.5e-7,
"litellm_provider": "together_ai",
- "max_input_tokens": 32768,
- "max_tokens": 32768,
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 6e-7,
- "source": "https://api.together.ai/v1/models"
+ "source": "https://www.together.ai/pricing",
+ "supports_prompt_caching": true
},
"together_ai/Prism-ML/Ternary-Bonsai-27B": {
"input_cost_per_token": 0,
"litellm_provider": "together_ai",
"max_input_tokens": 262144,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://docs.together.ai/docs/serverless-models"
},
- "together_ai/Qwen/QwQ-32B": {
- "deprecation_date": "2025-11-13",
- "input_cost_per_token": 0.0000012,
- "litellm_provider": "together_ai",
- "max_input_tokens": 131072,
- "max_tokens": 131072,
- "mode": "chat",
- "output_cost_per_token": 0.0000012,
- "source": "https://api.together.ai/v1/models"
- },
"together_ai/Qwen/Qwen2-1.5B-Instruct": {
"input_cost_per_token": 2e-8,
"litellm_provider": "together_ai",
@@ -50907,27 +56127,7 @@
"output_cost_per_token": 2e-8,
"source": "https://api.together.ai/v1/models",
"max_input_tokens": 32768,
- "max_tokens": 32768
- },
- "together_ai/Qwen/Qwen2-72B-Instruct": {
- "deprecation_date": "2025-08-28",
- "input_cost_per_token": 9e-7,
- "litellm_provider": "together_ai",
- "max_input_tokens": 32768,
- "max_tokens": 32768,
- "mode": "chat",
- "output_cost_per_token": 9e-7,
- "source": "https://api.together.ai/v1/models"
- },
- "together_ai/Qwen/Qwen2-VL-72B-Instruct": {
- "deprecation_date": "2025-08-28",
- "input_cost_per_token": 0.0000012,
- "litellm_provider": "together_ai",
- "max_input_tokens": 32768,
- "max_tokens": 32768,
- "mode": "chat",
- "output_cost_per_token": 0.0000012,
- "source": "https://api.together.ai/v1/models"
+ "max_output_tokens": 32768
},
"together_ai/Qwen/Qwen2.5-14B-Instruct": {
"input_cost_per_token": 8e-7,
@@ -50936,7 +56136,7 @@
"output_cost_per_token": 8e-7,
"source": "https://api.together.ai/v1/models",
"max_input_tokens": 32768,
- "max_tokens": 32768
+ "max_output_tokens": 32768
},
"together_ai/Qwen/Qwen2.5-72B-Instruct": {
"input_cost_per_token": 0.0000012,
@@ -50945,14 +56145,15 @@
"output_cost_per_token": 0.0000012,
"source": "https://api.together.ai/v1/models",
"max_input_tokens": 32768,
- "max_tokens": 32768
+ "max_output_tokens": 32768
},
"together_ai/Qwen/Qwen2.5-72B-Instruct-Turbo": {
"deprecation_date": "2026-02-06",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 0.0000012,
"litellm_provider": "together_ai",
"max_input_tokens": 131072,
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://api.together.ai/v1/models"
@@ -50969,82 +56170,79 @@
"max_input_tokens": 32768,
"source": "https://api.together.ai/v1/models"
},
- "together_ai/Qwen/Qwen2.5-Coder-32B-Instruct": {
- "deprecation_date": "2025-11-13",
- "input_cost_per_token": 8e-7,
- "litellm_provider": "together_ai",
- "max_input_tokens": 16384,
- "max_tokens": 16384,
- "mode": "chat",
- "output_cost_per_token": 8e-7,
- "source": "https://api.together.ai/v1/models"
- },
"together_ai/Qwen/Qwen2.5-VL-72B-Instruct": {
"deprecation_date": "2026-01-05",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 0.00000195,
"litellm_provider": "together_ai",
"max_input_tokens": 32768,
- "max_tokens": 32768,
+ "max_output_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000008,
"source": "https://api.together.ai/v1/models"
},
"together_ai/Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8": {
"deprecation_date": "2026-06-04",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 0.000002,
"litellm_provider": "together_ai",
"max_input_tokens": 262144,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.000002,
"source": "https://api.together.ai/v1/models"
},
"together_ai/Qwen/Qwen3-Coder-Next-FP8": {
"deprecation_date": "2026-05-14",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 5e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 262144,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://api.together.ai/v1/models"
},
"together_ai/Qwen/Qwen3-Next-80B-A3B-Instruct": {
"deprecation_date": "2026-04-02",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 1.5e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 262144,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"source": "https://api.together.ai/v1/models"
},
"together_ai/Qwen/Qwen3-Next-80B-A3B-Thinking": {
"deprecation_date": "2026-02-25",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 1.5e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 262144,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"source": "https://api.together.ai/v1/models"
},
"together_ai/Qwen/Qwen3-VL-32B-Instruct": {
"deprecation_date": "2026-02-25",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 5e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 262144,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"source": "https://api.together.ai/v1/models"
},
"together_ai/Qwen/Qwen3-VL-8B-Instruct": {
"deprecation_date": "2026-04-16",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 1.8e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 262144,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 6.8e-7,
"source": "https://api.together.ai/v1/models"
@@ -51052,10 +56250,11 @@
"together_ai/Qwen/Qwen3.5-397B-A17B": {
"cache_read_input_token_cost": 3.5e-7,
"deprecation_date": "2026-06-29",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 6e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 262144,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000036,
"source": "https://api.together.ai/v1/models"
@@ -51064,7 +56263,7 @@
"input_cost_per_token": 1.7e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 262144,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 2.5e-7,
"source": "https://api.together.ai/v1/models",
@@ -51079,7 +56278,7 @@
"input_cost_per_token": 5e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 1000000,
- "max_tokens": 1000000,
+ "max_output_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.000003,
"source": "https://api.together.ai/v1/models",
@@ -51090,7 +56289,7 @@
"input_cost_per_token": 0.0000015,
"litellm_provider": "together_ai",
"max_input_tokens": 1000000,
- "max_tokens": 1000000,
+ "max_output_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000045,
"source": "https://www.together.ai/pricing",
@@ -51100,27 +56299,30 @@
"input_cost_per_token": 3.2e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 1000000,
- "max_tokens": 1000000,
+ "max_output_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.00000128,
"source": "https://api.together.ai/v1/models"
},
"together_ai/Qwen/Qwen3.8-2.4T-A95B": {
"cache_read_input_token_cost": 2.5e-7,
+ "deprecation_date": "2026-11-04",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 0.000002,
"litellm_provider": "together_ai",
"max_input_tokens": 1010000,
- "max_tokens": 1010000,
+ "max_output_tokens": 1010000,
"mode": "chat",
"output_cost_per_token": 0.000006,
"source": "https://api.together.ai/v1/models",
+ "successor_model": "together_ai/Qwen/Qwen3.7-Max",
"supports_prompt_caching": true
},
"together_ai/Qwen/Qwen3.8-Flash": {
"input_cost_per_token": 1.5e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 1000000,
- "max_tokens": 1000000,
+ "max_output_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 4.7e-7,
"source": "https://api.together.ai/v1/models"
@@ -51132,13 +56334,13 @@
"output_cost_per_token": 1.5e-7,
"source": "https://api.together.ai/v1/models",
"max_input_tokens": 128000,
- "max_tokens": 128000
+ "max_output_tokens": 128000
},
"together_ai/arize-ai/qwen-2-1.5b-instruct": {
"input_cost_per_token": 1e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 32768,
- "max_tokens": 32768,
+ "max_output_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 1e-7,
"source": "https://api.together.ai/v1/models"
@@ -51151,42 +56353,11 @@
"mode": "chat",
"source": "https://api.together.ai/v1/models"
},
- "together_ai/deepseek-ai/DeepSeek-R1-Distill-Llama-70B": {
- "deprecation_date": "2025-12-23",
- "input_cost_per_token": 0.000002,
- "litellm_provider": "together_ai",
- "max_input_tokens": 131072,
- "max_tokens": 131072,
- "mode": "chat",
- "output_cost_per_token": 0.000002,
- "source": "https://api.together.ai/v1/models"
- },
- "together_ai/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B": {
- "deprecation_date": "2025-08-28",
- "input_cost_per_token": 1.8e-7,
- "litellm_provider": "together_ai",
- "max_input_tokens": 131072,
- "max_tokens": 131072,
- "mode": "chat",
- "output_cost_per_token": 1.8e-7,
- "source": "https://api.together.ai/v1/models"
- },
- "together_ai/deepseek-ai/DeepSeek-R1-Distill-Qwen-14B": {
- "deprecation_date": "2025-11-13",
- "input_cost_per_token": 0.0000016,
- "litellm_provider": "together_ai",
- "max_input_tokens": 131072,
- "max_tokens": 131072,
- "mode": "chat",
- "output_cost_per_token": 0.0000016,
- "source": "https://api.together.ai/v1/models"
- },
"together_ai/deepseek-ai/DeepSeek-V3": {
"input_cost_per_token": 0.00000125,
"litellm_provider": "together_ai",
"max_input_tokens": 65536,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"metadata": {
"successor": "together_ai/deepseek-ai/DeepSeek-V4-Pro-0813"
},
@@ -51199,10 +56370,11 @@
},
"together_ai/deepseek-ai/DeepSeek-V3.1": {
"deprecation_date": "2026-05-14",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 6e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 131072,
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000017,
"source": "https://api.together.ai/v1/models"
@@ -51210,13 +56382,15 @@
"together_ai/deepseek-ai/DeepSeek-V4-Flash-0731": {
"cache_read_input_token_cost": 3e-8,
"deprecation_date": "2026-10-22",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 1.4e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 2.8e-7,
"source": "https://api.together.ai/v1/models",
+ "successor_model": "together_ai/deepseek-ai/DeepSeek-V4.1-Flash-1017",
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_prompt_caching": true,
@@ -51228,7 +56402,7 @@
"input_cost_per_token": 0.00000132,
"litellm_provider": "together_ai",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.00000396,
"source": "https://api.together.ai/v1/models",
@@ -51243,7 +56417,7 @@
"input_cost_per_token": 3e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://api.together.ai/v1/models",
@@ -51252,45 +56426,33 @@
"supports_response_schema": true,
"supports_tool_choice": true
},
- "together_ai/deepseek-ai/deepseek-coder-33b-instruct": {
- "deprecation_date": "2024-08-22",
- "input_cost_per_token": 8e-7,
- "litellm_provider": "together_ai",
- "max_input_tokens": 16384,
- "max_tokens": 16384,
- "mode": "chat",
- "output_cost_per_token": 8e-7,
- "source": "https://api.together.ai/v1/models"
- },
- "together_ai/google/gemma-2-27b-it": {
- "deprecation_date": "2025-08-28",
- "input_cost_per_token": 8e-7,
+ "together_ai/deepseek-ai/DeepSeek-V4.1-Flash-1017": {
+ "cache_read_input_token_cost": 6e-9,
+ "input_cost_per_token": 3e-7,
"litellm_provider": "together_ai",
- "max_input_tokens": 8192,
- "max_tokens": 8192,
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
- "output_cost_per_token": 8e-7,
- "source": "https://api.together.ai/v1/models"
+ "output_cost_per_token": 0.0000012,
+ "source": "https://api.together.ai/v1/models",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
},
"together_ai/google/gemma-4-31B-it": {
"deprecation_date": "2026-09-15",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 3.9e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 262144,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 9.7e-7,
- "source": "https://api.together.ai/v1/models"
- },
- "together_ai/meta-llama/Llama-3-8b-chat-hf": {
- "deprecation_date": "2025-08-28",
- "input_cost_per_token": 2e-7,
- "litellm_provider": "together_ai",
- "max_input_tokens": 8192,
- "max_tokens": 8192,
- "mode": "chat",
- "output_cost_per_token": 2e-7,
- "source": "https://api.together.ai/v1/models"
+ "source": "https://api.together.ai/v1/models",
+ "successor_model": "together_ai/zai-org/GLM-5.3-Flash"
},
"together_ai/meta-llama/Llama-3.1-405B-Instruct": {
"input_cost_per_token": 0.0000035,
@@ -51299,7 +56461,7 @@
"output_cost_per_token": 0.0000035,
"source": "https://api.together.ai/v1/models",
"max_input_tokens": 4096,
- "max_tokens": 4096
+ "max_output_tokens": 4096
},
"together_ai/meta-llama/Llama-3.2-1B-Instruct": {
"input_cost_per_token": 6e-8,
@@ -51308,7 +56470,7 @@
"output_cost_per_token": 6e-8,
"source": "https://api.together.ai/v1/models",
"max_input_tokens": 131072,
- "max_tokens": 131072
+ "max_output_tokens": 131072
},
"together_ai/meta-llama/Llama-3.2-3B-Instruct": {
"input_cost_per_token": 6e-8,
@@ -51317,17 +56479,19 @@
"output_cost_per_token": 6e-8,
"source": "https://api.together.ai/v1/models",
"max_input_tokens": 131072,
- "max_tokens": 131072
+ "max_output_tokens": 131072
},
"together_ai/meta-llama/Llama-3.3-70B-Instruct-Turbo": {
"deprecation_date": "2026-10-22",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 0.00000104,
"litellm_provider": "together_ai",
"max_input_tokens": 131072,
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.00000104,
"source": "https://api.together.ai/v1/models",
+ "successor_model": "together_ai/meta-models/Muse-Glimmer-30B",
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_response_schema": true,
@@ -51335,50 +56499,33 @@
},
"together_ai/meta-llama/Llama-4-Scout-17B-16E-Instruct": {
"deprecation_date": "2026-02-06",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 1.8e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 5.9e-7,
"source": "https://api.together.ai/v1/models"
},
- "together_ai/meta-llama/Meta-Llama-3-70B-Instruct-Turbo": {
- "deprecation_date": "2025-12-23",
- "input_cost_per_token": 8.8e-7,
- "litellm_provider": "together_ai",
- "max_input_tokens": 8192,
- "max_tokens": 8192,
- "mode": "chat",
- "output_cost_per_token": 8.8e-7,
- "source": "https://api.together.ai/v1/models"
- },
- "together_ai/meta-llama/Meta-Llama-3-8B-Instruct": {
- "deprecation_date": "2025-08-28",
- "input_cost_per_token": 2e-7,
- "litellm_provider": "together_ai",
- "max_input_tokens": 8192,
- "max_tokens": 8192,
- "mode": "chat",
- "output_cost_per_token": 2e-7,
- "source": "https://api.together.ai/v1/models"
- },
"together_ai/meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo": {
"deprecation_date": "2026-02-25",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 8.8e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 131072,
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 8.8e-7,
"source": "https://api.together.ai/v1/models"
},
"together_ai/meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo": {
"deprecation_date": "2026-03-06",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 1.8e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 131072,
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 1.8e-7,
"source": "https://api.together.ai/v1/models"
@@ -51388,7 +56535,7 @@
"input_cost_per_token": 3.5e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 131072,
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"source": "https://api.together.ai/v1/models",
@@ -51399,7 +56546,7 @@
"input_cost_per_token": 0.00000125,
"litellm_provider": "together_ai",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.00000425,
"source": "https://docs.together.ai/docs/serverless-models",
@@ -51415,16 +56562,6 @@
"mode": "chat",
"source": "https://api.together.ai/v1/models"
},
- "together_ai/mistralai/Mistral-7B-Instruct-v0.1": {
- "deprecation_date": "2025-11-13",
- "input_cost_per_token": 2e-7,
- "litellm_provider": "together_ai",
- "max_input_tokens": 32768,
- "max_tokens": 32768,
- "mode": "chat",
- "output_cost_per_token": 2e-7,
- "source": "https://api.together.ai/v1/models"
- },
"together_ai/mistralai/Mistral-7B-Instruct-v0.3": {
"input_cost_per_token": 2e-7,
"output_cost_per_token": 2e-7,
@@ -51435,20 +56572,22 @@
},
"together_ai/mistralai/Mistral-Small-24B-Instruct-2501": {
"deprecation_date": "2026-04-02",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 1e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 32768,
- "max_tokens": 32768,
+ "max_output_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 3e-7,
"source": "https://api.together.ai/v1/models"
},
"together_ai/mistralai/Mixtral-8x7B-Instruct-v0.1": {
"deprecation_date": "2026-04-16",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 6e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 32768,
- "max_tokens": 32768,
+ "max_output_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 6e-7,
"source": "https://api.together.ai/v1/models"
@@ -51478,10 +56617,11 @@
"together_ai/moonshotai/Kimi-K2.6": {
"cache_read_input_token_cost": 2e-7,
"deprecation_date": "2026-08-19",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 0.0000012,
"litellm_provider": "together_ai",
"max_input_tokens": 262144,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000045,
"source": "https://api.together.ai/v1/models"
@@ -51489,10 +56629,11 @@
"together_ai/moonshotai/Kimi-K2.7-Code": {
"cache_read_input_token_cost": 1.9e-7,
"deprecation_date": "2026-08-27",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 9.5e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 262144,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.000004,
"source": "https://api.together.ai/v1/models"
@@ -51502,7 +56643,7 @@
"input_cost_per_token": 0.000003,
"litellm_provider": "together_ai",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.000015,
"reasoning_effort_levels": [
@@ -51519,22 +56660,12 @@
"supports_tool_choice": true,
"supports_vision": true
},
- "together_ai/nvidia/Llama-3.1-Nemotron-70B-Instruct-HF": {
- "deprecation_date": "2025-08-28",
- "input_cost_per_token": 8.8e-7,
- "litellm_provider": "together_ai",
- "max_input_tokens": 32768,
- "max_tokens": 32768,
- "mode": "chat",
- "output_cost_per_token": 8.8e-7,
- "source": "https://api.together.ai/v1/models"
- },
"together_ai/nvidia/NVIDIA-Nemotron-3.5-Super-VL": {
"cache_read_input_token_cost": 2e-8,
"input_cost_per_token": 1.5e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 262144,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 5e-7,
"source": "https://api.together.ai/v1/models",
@@ -51548,6 +56679,7 @@
},
"together_ai/nvidia/NVIDIA-Nemotron-Nano-9B-v2": {
"deprecation_date": "2026-02-25",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 6e-8,
"output_cost_per_token": 2.5e-7,
"litellm_provider": "together_ai",
@@ -51558,10 +56690,11 @@
"together_ai/nvidia/nemotron-3-ultra-550b-a55b": {
"cache_read_input_token_cost": 2e-7,
"deprecation_date": "2026-08-27",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 6e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 512288,
- "max_tokens": 512288,
+ "max_output_tokens": 512288,
"mode": "chat",
"output_cost_per_token": 0.0000036,
"source": "https://api.together.ai/v1/models"
@@ -51570,7 +56703,7 @@
"input_cost_per_token": 1.5e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 131072,
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 6e-7,
"source": "https://api.together.ai/v1/models",
@@ -51582,20 +56715,22 @@
},
"together_ai/openai/gpt-oss-20b": {
"deprecation_date": "2026-09-15",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 5e-8,
"litellm_provider": "together_ai",
"max_input_tokens": 131072,
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 2e-7,
- "source": "https://api.together.ai/v1/models"
+ "source": "https://api.together.ai/v1/models",
+ "successor_model": "together_ai/Qwen/Qwen3.5-9B"
},
"together_ai/reflection/Beam-1.0-501B-A23B": {
"cache_read_input_token_cost": 4e-8,
"input_cost_per_token": 4e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 1048576,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://api.together.ai/v1/models",
@@ -51605,13 +56740,16 @@
},
"together_ai/thinkingmachines/Inkling": {
"cache_read_input_token_cost": 1.7e-7,
+ "deprecation_date": "2026-11-06",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 0.000001,
"litellm_provider": "together_ai",
"max_input_tokens": 524288,
- "max_tokens": 524288,
+ "max_output_tokens": 524288,
"mode": "chat",
"output_cost_per_token": 0.00000405,
"source": "https://api.together.ai/v1/models",
+ "successor_model": "together_ai/meta-models/Muse-Spark-Open-816B-A42B",
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_prompt_caching": true,
@@ -51635,10 +56773,11 @@
},
"together_ai/zai-org/GLM-4.5-Air-FP8": {
"deprecation_date": "2026-04-02",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 2e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 131072,
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000011,
"source": "https://api.together.ai/v1/models"
@@ -51647,7 +56786,7 @@
"input_cost_per_token": 6e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 202752,
- "max_tokens": 202752,
+ "max_output_tokens": 202752,
"metadata": {
"successor": "together_ai/zai-org/GLM-5.2"
},
@@ -51661,20 +56800,22 @@
},
"together_ai/zai-org/GLM-4.7": {
"deprecation_date": "2026-04-02",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 4.5e-7,
"litellm_provider": "together_ai",
"max_input_tokens": 202752,
- "max_tokens": 202752,
+ "max_output_tokens": 202752,
"mode": "chat",
"output_cost_per_token": 0.000002,
"source": "https://api.together.ai/v1/models"
},
"together_ai/zai-org/GLM-5": {
"deprecation_date": "2026-06-22",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 0.000001,
"litellm_provider": "together_ai",
"max_input_tokens": 202752,
- "max_tokens": 202752,
+ "max_output_tokens": 202752,
"mode": "chat",
"output_cost_per_token": 0.0000032,
"source": "https://api.together.ai/v1/models"
@@ -51682,10 +56823,11 @@
"together_ai/zai-org/GLM-5.1": {
"cache_read_input_token_cost": 2.6e-7,
"deprecation_date": "2026-07-10",
+ "deprecation_source": "https://docs.together.ai/docs/deprecations",
"input_cost_per_token": 0.0000014,
"litellm_provider": "together_ai",
"max_input_tokens": 202752,
- "max_tokens": 202752,
+ "max_output_tokens": 202752,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://api.together.ai/v1/models"
@@ -51696,7 +56838,6 @@
"litellm_provider": "together_ai",
"max_input_tokens": 1048575,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://api.together.ai/v1/models",
@@ -51713,7 +56854,6 @@
"litellm_provider": "together_ai",
"max_input_tokens": 1048575,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://api.together.ai/v1/models",
@@ -51730,7 +56870,6 @@
"litellm_provider": "together_ai",
"max_input_tokens": 1048575,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 5e-7,
"source": "https://api.together.ai/v1/models",
@@ -51743,10 +56882,13 @@
"supports_vision": true
},
"twelvelabs.pegasus-1-2-v1:0": {
+ "deprecation_date": "2027-03-22",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-twelvelabs-pegasus-v1-2.md",
"input_cost_per_video_per_second": 0.00049,
"output_cost_per_token": 0.0000075,
"litellm_provider": "bedrock",
"mode": "chat",
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-twelvelabs-pegasus-v1-2.md",
"supports_video_input": true
},
"twelvelabs.pegasus-1-5-v1:0": {
@@ -51754,7 +56896,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 261120,
"max_output_tokens": 98304,
- "max_tokens": 98304,
"mode": "chat",
"output_cost_per_token": 0.0000075,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-twelvelabs-pegasus-v1-5.html",
@@ -51768,7 +56909,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00006,
"supports_adaptive_thinking": true,
@@ -51787,12 +56927,18 @@
"supports_vision": true,
"supports_xhigh_reasoning_effort": true,
"supports_native_structured_output": false,
+ "supports_bedrock_native_structured_output": false,
"supports_max_reasoning_effort": true,
"supports_output_config": true,
"bedrock_output_config_effort_ceiling": "xhigh",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 512,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-fable-5-1",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-gov-west-1"
+ }
},
"us-gov.anthropic.claude-haiku-5-5": {
"input_cost_per_token_above_100k_tokens": 6e-7,
@@ -51810,7 +56956,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 6e-7,
"supports_forced_tool_use": true,
@@ -51834,7 +56979,12 @@
"supports_sampling_params": false,
"supports_tool_choice": true,
"supports_vision": true,
- "supports_xhigh_reasoning_effort": true
+ "supports_xhigh_reasoning_effort": true,
+ "token_count_model": {
+ "model": "anthropic.claude-haiku-5-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-gov-west-1"
+ }
},
"us-gov.anthropic.claude-opus-4-8": {
"bedrock_converse_supports_strict_tools": false,
@@ -51847,7 +56997,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00003,
"prompt_cache_min_tokens": 1024,
@@ -51869,7 +57018,12 @@
"supports_sampling_params": false,
"supports_tool_choice": true,
"supports_vision": true,
- "supports_xhigh_reasoning_effort": true
+ "supports_xhigh_reasoning_effort": true,
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-8",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-gov-west-1"
+ }
},
"us-gov.anthropic.claude-opus-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -51881,11 +57035,10 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00003,
"prompt_cache_min_tokens": 512,
- "source": "https://aws.amazon.com/bedrock/pricing/",
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/us-gov-west-1/index.json",
"supports_adaptive_thinking": true,
"supports_assistant_prefill": false,
"supports_computer_use": true,
@@ -51902,7 +57055,14 @@
"supports_sampling_params": false,
"supports_tool_choice": true,
"supports_vision": true,
- "supports_xhigh_reasoning_effort": true
+ "supports_xhigh_reasoning_effort": true,
+ "token_count_model": {
+ "model": "anthropic.claude-opus-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-gov-west-1"
+ },
+ "input_cost_per_token_batches": 0.000003,
+ "output_cost_per_token_batches": 0.000015
},
"us-gov.anthropic.claude-opus-5-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -51914,7 +57074,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000024,
"prompt_cache_min_tokens": 512,
@@ -51926,6 +57085,7 @@
"supports_max_reasoning_effort": true,
"supports_mid_conversation_system": true,
"supports_native_structured_output": false,
+ "supports_bedrock_native_structured_output": false,
"supports_output_config": true,
"supports_parallel_tool_use_config": true,
"supports_pdf_input": true,
@@ -51937,7 +57097,12 @@
"supports_vision": true,
"supports_xhigh_reasoning_effort": true,
"thinking_always_on": true,
- "supports_forced_tool_use": false
+ "supports_forced_tool_use": false,
+ "token_count_model": {
+ "model": "anthropic.claude-opus-5-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-gov-west-1"
+ }
},
"us-gov.anthropic.claude-sonnet-4-5-20250929-v1:0": {
"cache_creation_input_token_cost": 0.0000045,
@@ -51949,11 +57114,13 @@
"cache_creation_input_token_cost_above_200k_tokens": 0.000009,
"cache_creation_input_token_cost_above_1hr_above_200k_tokens": 0.0000144,
"cache_read_input_token_cost_above_200k_tokens": 7.2e-7,
+ "deprecation_date": "2027-04-08",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-sonnet-4-5.md",
+ "successor_model": "us-gov.anthropic.claude-sonnet-5-5",
"litellm_provider": "bedrock_converse",
"supports_tool_search": true,
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000018,
"supports_assistant_prefill": true,
@@ -51968,7 +57135,11 @@
"supports_native_structured_output": true,
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 1024,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-sonnet-4-5.md",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-5-20250929-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"us-gov.anthropic.claude-sonnet-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -51981,7 +57152,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000012,
"prompt_cache_min_tokens": 1024,
@@ -52003,7 +57173,12 @@
"supports_sampling_params": false,
"supports_tool_choice": true,
"supports_vision": true,
- "supports_xhigh_reasoning_effort": true
+ "supports_xhigh_reasoning_effort": true,
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-gov-west-1"
+ }
},
"us-gov.anthropic.claude-sonnet-5-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -52016,7 +57191,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000012,
"supports_forced_tool_use": false,
@@ -52040,15 +57214,20 @@
"supports_sampling_params": false,
"supports_tool_choice": true,
"supports_vision": true,
- "supports_xhigh_reasoning_effort": true
+ "supports_xhigh_reasoning_effort": true,
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-5-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-gov-west-1"
+ }
},
"us-gov.nvidia.nemotron-nano-12b-v2": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-nvidia-nvidia-nemotron-nano-12b-v2-vl-bf16.html",
"input_cost_per_token": 2.4e-7,
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 7.2e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-nvidia-nvidia-nemotron-nano-12b-v2-vl-bf16.html",
@@ -52063,7 +57242,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 2.88e-7,
"source": "https://aws.amazon.com/bedrock/pricing/",
@@ -52077,11 +57255,11 @@
},
"us-gov.nvidia.nemotron-nano-9b-v2": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-nvidia-nvidia-nemotron-nano-9b-v2.html",
"input_cost_per_token": 7.2e-8,
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 2.76e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-nvidia-nvidia-nemotron-nano-9b-v2.html",
@@ -52096,7 +57274,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 256000,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 7.8e-7,
"source": "https://aws.amazon.com/bedrock/pricing/",
@@ -52109,11 +57286,11 @@
"supports_vision": false
},
"us-gov.openai.gpt-oss-120b-1:0": {
+ "supports_vision": false,
"input_cost_per_token": 1.8e-7,
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 7.2e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-oss-120b.html",
@@ -52128,11 +57305,11 @@
"supports_tool_choice": true
},
"us-gov.openai.gpt-oss-20b-1:0": {
+ "supports_vision": false,
"input_cost_per_token": 8.4e-8,
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 3.6e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-oss-20b.html",
@@ -52159,7 +57336,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 500000,
"max_output_tokens": 500000,
- "max_tokens": 500000,
"mode": "chat",
"supports_function_calling": true,
"supports_prompt_caching": false,
@@ -52178,7 +57354,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.00000275,
"output_cost_per_token_batches": 0.000001375,
@@ -52204,7 +57379,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000011,
"output_cost_per_token_batches": 0.0000055,
@@ -52226,7 +57400,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 300000,
"max_output_tokens": 10000,
- "max_tokens": 10000,
"mode": "chat",
"output_cost_per_token": 2.4e-7,
"output_cost_per_token_batches": 1.2e-7,
@@ -52245,7 +57418,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 10000,
- "max_tokens": 10000,
"mode": "chat",
"output_cost_per_token": 1.4e-7,
"output_cost_per_token_batches": 7e-8,
@@ -52266,7 +57438,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 300000,
"max_output_tokens": 10000,
- "max_tokens": 10000,
"mode": "chat",
"output_cost_per_token": 0.0000032,
"output_cost_per_token_batches": 0.0000016,
@@ -52287,7 +57458,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 200000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000004,
"supports_assistant_prefill": true,
@@ -52303,7 +57473,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 200000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_function_calling": true,
@@ -52321,7 +57490,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 200000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_assistant_prefill": true,
@@ -52340,7 +57508,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 200000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_assistant_prefill": true,
@@ -52358,7 +57525,6 @@
"litellm_provider": "bedrock",
"max_input_tokens": 200000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000075,
"supports_function_calling": true,
@@ -52376,7 +57542,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000055,
"search_context_cost_per_query": {
@@ -52404,7 +57569,12 @@
"bedrock_output_config_effort_ceiling": "xhigh",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 512,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-fable-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-east-1"
+ }
},
"us.anthropic.claude-fable-5-1": {
"cache_creation_input_token_cost": 0.00001375,
@@ -52414,7 +57584,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000055,
"search_context_cost_per_query": {
@@ -52454,7 +57623,6 @@
"supports_tool_search": true,
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.0000055,
"source": "https://aws.amazon.com/bedrock/pricing/",
@@ -52471,7 +57639,11 @@
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 4096,
"input_cost_per_token_batches": 5.5e-7,
- "output_cost_per_token_batches": 0.00000275
+ "output_cost_per_token_batches": 0.00000275,
+ "token_count_model": {
+ "model": "anthropic.claude-haiku-4-5-20251001-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"us.anthropic.claude-haiku-5-5": {
"input_cost_per_token_above_100k_tokens": 5.5e-7,
@@ -52487,12 +57659,12 @@
"litellm_provider": "bedrock_converse",
"token_count_model": {
"model": "us.anthropic.claude-opus-5-5",
+ "litellm_provider": "bedrock_mantle",
"region": "us-east-1"
},
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 5.5e-7,
"search_context_cost_per_query": {
@@ -52528,7 +57700,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"supports_adaptive_thinking": true,
"thinking_always_on": true,
@@ -52555,13 +57726,17 @@
"cache_read_input_token_cost": 0.0000011,
"output_cost_per_token": 0.000055,
"cache_creation_input_token_cost_above_1hr": 0.000022,
- "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json",
+ "token_count_model": {
+ "model": "anthropic.claude-mythos-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-east-1"
+ }
},
"us.anthropic.claude-mythos-5-1": {
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"supports_adaptive_thinking": true,
"thinking_always_on": true,
@@ -52594,7 +57769,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"thinking_always_on": true,
"supports_function_calling": true,
@@ -52614,11 +57788,11 @@
"cache_creation_input_token_cost": 0.00001875,
"cache_read_input_token_cost": 0.0000015,
"deprecation_date": "2027-01-08",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 0.000015,
"litellm_provider": "bedrock_converse",
"max_input_tokens": 200000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.000075,
"search_context_cost_per_query": {
@@ -52636,7 +57810,11 @@
"supports_tool_choice": true,
"supports_vision": true,
"prompt_cache_min_tokens": 1024,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-1-20250805-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"us.anthropic.claude-opus-4-20250514-v1:0": {
"cache_creation_input_token_cost": 0.00001875,
@@ -52645,7 +57823,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 200000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.000075,
"search_context_cost_per_query": {
@@ -52673,7 +57850,6 @@
"supports_tool_search": true,
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.0000275,
"search_context_cost_per_query": {
@@ -52695,7 +57871,11 @@
"bedrock_output_config_effort_ceiling": "high",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 4096,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-5-20251101-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"us.anthropic.claude-opus-4-6-v1": {
"supports_adaptive_thinking": true,
@@ -52708,7 +57888,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000275,
"search_context_cost_per_query": {
@@ -52731,7 +57910,11 @@
"bedrock_output_config_effort_ceiling": "max",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 4096,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-6-v1",
+ "litellm_provider": "bedrock"
+ }
},
"us.anthropic.claude-opus-4-7": {
"bedrock_converse_supports_strict_tools": false,
@@ -52744,7 +57927,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000275,
"search_context_cost_per_query": {
@@ -52769,7 +57951,12 @@
"bedrock_output_config_effort_ceiling": "xhigh",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 2048,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-7",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-east-1"
+ }
},
"us.anthropic.claude-opus-4-8": {
"bedrock_converse_supports_strict_tools": false,
@@ -52783,7 +57970,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000275,
"search_context_cost_per_query": {
@@ -52809,7 +57995,12 @@
"bedrock_output_config_effort_ceiling": "xhigh",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 1024,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-4-8",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-east-1"
+ }
},
"us.anthropic.claude-opus-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -52823,7 +58014,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000275,
"search_context_cost_per_query": {
@@ -52847,7 +58037,14 @@
"supports_output_config": true,
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 512,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/us-east-1/index.json",
+ "token_count_model": {
+ "model": "anthropic.claude-opus-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-east-1"
+ },
+ "input_cost_per_token_batches": 0.00000275,
+ "output_cost_per_token_batches": 0.00001375
},
"us.anthropic.claude-opus-5-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -52861,7 +58058,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000022,
"search_context_cost_per_query": {
@@ -52887,12 +58083,19 @@
"prompt_cache_min_tokens": 512,
"source": "https://aws.amazon.com/bedrock/pricing/",
"thinking_always_on": true,
- "supports_forced_tool_use": false
+ "supports_forced_tool_use": false,
+ "token_count_model": {
+ "model": "anthropic.claude-opus-5-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-east-1"
+ }
},
"us.anthropic.claude-sonnet-4-20250514-v1:0": {
"cache_creation_input_token_cost": 0.00000375,
"cache_read_input_token_cost": 3e-7,
"deprecation_date": "2026-10-14",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
+ "successor_model": "us.anthropic.claude-sonnet-5",
"input_cost_per_token": 0.000003,
"input_cost_per_token_above_200k_tokens": 0.000006,
"output_cost_per_token_above_200k_tokens": 0.0000225,
@@ -52901,7 +58104,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"search_context_cost_per_query": {
@@ -52920,7 +58122,11 @@
"supports_vision": true,
"bedrock_converse_supports_strict_tools": false,
"prompt_cache_min_tokens": 1024,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-20250514-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"us.anthropic.claude-sonnet-4-5-20250929-v1:0": {
"cache_creation_input_token_cost": 0.000004125,
@@ -52933,11 +58139,12 @@
"cache_creation_input_token_cost_above_1hr_above_200k_tokens": 0.0000132,
"cache_read_input_token_cost_above_200k_tokens": 6.6e-7,
"deprecation_date": "2027-04-08",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
+ "successor_model": "us.anthropic.claude-sonnet-5-5",
"litellm_provider": "bedrock_converse",
"supports_tool_search": true,
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.0000165,
"search_context_cost_per_query": {
@@ -52959,7 +58166,11 @@
"prompt_cache_min_tokens": 1024,
"input_cost_per_token_batches": 0.00000165,
"output_cost_per_token_batches": 0.00000825,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-5-20250929-v1:0",
+ "litellm_provider": "bedrock"
+ }
},
"us.anthropic.claude-sonnet-4-6": {
"supports_adaptive_thinking": true,
@@ -52972,7 +58183,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.0000165,
"search_context_cost_per_query": {
@@ -52994,7 +58204,11 @@
"supports_output_config": true,
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 1024,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-4-6",
+ "litellm_provider": "bedrock"
+ }
},
"us.anthropic.claude-sonnet-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -53006,7 +58220,6 @@
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000011,
"search_context_cost_per_query": {
@@ -53034,7 +58247,12 @@
"bedrock_output_config_effort_ceiling": "xhigh",
"supports_parallel_tool_use_config": true,
"prompt_cache_min_tokens": 1024,
- "source": "https://aws.amazon.com/bedrock/pricing/"
+ "source": "https://aws.amazon.com/bedrock/pricing/",
+ "token_count_model": {
+ "model": "anthropic.claude-sonnet-5",
+ "litellm_provider": "bedrock_mantle",
+ "region": "us-east-1"
+ }
},
"us.anthropic.claude-sonnet-5-5": {
"bedrock_converse_supports_strict_tools": false,
@@ -53045,12 +58263,12 @@
"litellm_provider": "bedrock_converse",
"token_count_model": {
"model": "us.anthropic.claude-opus-5-5",
+ "litellm_provider": "bedrock_mantle",
"region": "us-east-1"
},
"supports_tool_search": true,
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000011,
"search_context_cost_per_query": {
@@ -53084,11 +58302,11 @@
},
"us.deepseek.r1-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-deepseek-deepseek-r1.html",
"input_cost_per_token": 0.00000135,
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000054,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-deepseek-deepseek-r1.html",
@@ -53104,7 +58322,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 163840,
"max_output_tokens": 163840,
- "max_tokens": 163840,
"mode": "chat",
"output_cost_per_token": 0.00000185,
"output_cost_per_token_batches": 9.25e-7,
@@ -53121,11 +58338,11 @@
},
"us.meta.llama3-1-405b-instruct-v1:0": {
"deprecation_date": "2026-07-07",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 0.0000024,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.0000024,
"source": "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/bedrock/USD/current/bedrock.json",
@@ -53134,12 +58351,12 @@
},
"us.meta.llama3-1-70b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 7.2e-7,
"input_cost_per_token_batches": 3.6e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 7.2e-7,
"output_cost_per_token_batches": 3.6e-7,
@@ -53149,12 +58366,12 @@
},
"us.meta.llama3-1-8b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 2.2e-7,
"input_cost_per_token_batches": 1.1e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 2.2e-7,
"output_cost_per_token_batches": 1.1e-7,
@@ -53164,11 +58381,11 @@
},
"us.meta.llama3-2-11b-instruct-v1:0": {
"deprecation_date": "2026-07-07",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 1.6e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 1.6e-7,
"source": "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/bedrock/USD/current/bedrock.json",
@@ -53178,11 +58395,11 @@
},
"us.meta.llama3-2-1b-instruct-v1:0": {
"deprecation_date": "2026-07-07",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-2-1b-instruct.md",
"input_cost_per_token": 1e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 1e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-2-1b-instruct.md",
@@ -53191,11 +58408,11 @@
},
"us.meta.llama3-2-3b-instruct-v1:0": {
"deprecation_date": "2026-07-07",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-2-3b-instruct.md",
"input_cost_per_token": 1.5e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 1.5e-7,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-3-2-3b-instruct.md",
@@ -53204,11 +58421,11 @@
},
"us.meta.llama3-2-90b-instruct-v1:0": {
"deprecation_date": "2026-07-07",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 7.2e-7,
"litellm_provider": "bedrock",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 7.2e-7,
"source": "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/bedrock/USD/current/bedrock.json",
@@ -53218,12 +58435,12 @@
},
"us.meta.llama3-3-70b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 7.2e-7,
"input_cost_per_token_batches": 3.6e-7,
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 7.2e-7,
"output_cost_per_token_batches": 3.6e-7,
@@ -53233,12 +58450,12 @@
},
"us.meta.llama4-maverick-17b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-4-maverick-17b-instruct.md",
"input_cost_per_token": 2.4e-7,
"input_cost_per_token_batches": 1.2e-7,
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 9.7e-7,
"output_cost_per_token_batches": 4.85e-7,
@@ -53256,12 +58473,12 @@
},
"us.meta.llama4-scout-17b-instruct-v1:0": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-meta-llama-4-scout-17b-instruct.md",
"input_cost_per_token": 1.7e-7,
"input_cost_per_token_batches": 8.5e-8,
"litellm_provider": "bedrock_converse",
"max_input_tokens": 10000000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 6.6e-7,
"output_cost_per_token_batches": 3.3e-7,
@@ -53282,7 +58499,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.000006,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-mistral-ai-pixtral-large.md",
@@ -53305,7 +58521,6 @@
"token_count_tokenizer": "kimi_k3",
"max_input_tokens": 1000000,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000165,
"output_cost_per_token_flex": 0.00000825,
@@ -53330,9 +58545,8 @@
"output_cost_per_token_above_272k_tokens": 0.00002475,
"litellm_provider": "bedrock_converse",
"supports_bedrock_converse_tool_result_images": false,
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-54.html",
"supported_modalities": [
@@ -53362,9 +58576,8 @@
"output_cost_per_token_above_272k_tokens": 0.0000495,
"litellm_provider": "bedrock_converse",
"supports_bedrock_converse_tool_result_images": false,
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-55.html",
"supported_modalities": [
@@ -53397,9 +58610,8 @@
"output_cost_per_token_above_272k_tokens": 0.00000198,
"litellm_provider": "bedrock_converse",
"supports_bedrock_converse_tool_result_images": false,
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-56-luna.html",
"supported_modalities": [
@@ -53434,9 +58646,8 @@
"output_cost_per_token_above_272k_tokens": 0.000033,
"litellm_provider": "bedrock_converse",
"supports_bedrock_converse_tool_result_images": false,
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-56-sol.html",
"supported_modalities": [
@@ -53471,9 +58682,8 @@
"output_cost_per_token_above_272k_tokens": 0.0000198,
"litellm_provider": "bedrock_converse",
"supports_bedrock_converse_tool_result_images": false,
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-56-terra.html",
"supported_modalities": [
@@ -53514,9 +58724,8 @@
"output_cost_per_token_above_272k_tokens": 0.0000825,
"litellm_provider": "bedrock_converse",
"supports_bedrock_converse_tool_result_images": false,
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token_above_272k_tokens_ultrafast": 0.000495,
"output_cost_per_token_ultrafast": 0.00033,
@@ -53555,9 +58764,8 @@
"output_cost_per_token_above_272k_tokens": 8.25e-7,
"litellm_provider": "bedrock_converse",
"supports_bedrock_converse_tool_result_images": false,
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"supported_modalities": [
"text",
@@ -53594,9 +58802,8 @@
"output_cost_per_token_above_272k_tokens": 0.0000165,
"litellm_provider": "bedrock_converse",
"supports_bedrock_converse_tool_result_images": false,
- "max_input_tokens": 1050000,
+ "max_input_tokens": 922000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"supported_modalities": [
"text",
@@ -53638,7 +58845,6 @@
"supports_bedrock_converse_tool_result_images": false,
"max_input_tokens": 1000000,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000011,
"output_cost_per_token_above_272k_tokens": 0.0000165,
@@ -53668,11 +58874,52 @@
"supports_sampling_params": false,
"supports_xhigh_reasoning_effort": true
},
+ "us.openai.gpt-6.1-terra": {
+ "cache_creation_input_token_cost": 0.000001375,
+ "cache_creation_input_token_cost_above_272k_tokens": 0.00000275,
+ "cache_read_input_token_cost": 5.5e-8,
+ "cache_read_input_token_cost_above_272k_tokens": 1.1e-7,
+ "input_cost_per_token": 0.0000011,
+ "input_cost_per_token_above_272k_tokens": 0.0000022,
+ "litellm_provider": "bedrock_converse",
+ "max_input_tokens": 922000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000055,
+ "output_cost_per_token_above_272k_tokens": 0.00000825,
+ "source": "https://developers.openai.com/api/docs/models/gpt-6.1-terra",
+ "supported_endpoints": [
+ "/v1/chat/completions",
+ "/v1/responses"
+ ],
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_bedrock_converse_tool_result_images": false,
+ "supports_bedrock_runtime_chat_completions_response_format": true,
+ "supports_function_calling": true,
+ "supports_max_reasoning_effort": true,
+ "supports_minimal_reasoning_effort": false,
+ "supports_none_reasoning_effort": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_sampling_params": false,
+ "supports_tool_choice": true,
+ "supports_vision": true,
+ "supports_xhigh_reasoning_effort": true
+ },
"us.twelvelabs.pegasus-1-2-v1:0": {
+ "deprecation_date": "2027-03-22",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-twelvelabs-pegasus-v1-2.md",
"input_cost_per_video_per_second": 0.00049,
"output_cost_per_token": 0.0000075,
"litellm_provider": "bedrock",
"mode": "chat",
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-twelvelabs-pegasus-v1-2.md",
"supports_video_input": true
},
"us.twelvelabs.pegasus-1-5-v1:0": {
@@ -53680,30 +58927,31 @@
"litellm_provider": "bedrock",
"max_input_tokens": 261120,
"max_output_tokens": 98304,
- "max_tokens": 98304,
"mode": "chat",
"output_cost_per_token": 0.0000075,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-twelvelabs-pegasus-v1-5.html",
"supports_video_input": true
},
"us.writer.palmyra-x4-v1:0": {
+ "deprecation_date": "2027-03-09",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-writer-palmyra-x4.md",
"input_cost_per_token": 0.0000025,
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00001,
- "source": "https://aws.amazon.com/bedrock/pricing/",
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-writer-palmyra-x4.md",
"supports_function_calling": true,
"supports_pdf_input": true
},
"us.writer.palmyra-x5-v1:0": {
+ "deprecation_date": "2027-03-21",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-writer-palmyra-x5.md",
"input_cost_per_token": 6e-7,
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000006,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-writer-palmyra-x5.md",
@@ -53727,7 +58975,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 500000,
"max_output_tokens": 500000,
- "max_tokens": 500000,
"mode": "chat",
"output_cost_per_token_flex": 0.0000033,
"output_cost_per_token_priority": 0.00001155,
@@ -53754,7 +59001,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 524288,
"max_output_tokens": 524288,
- "max_tokens": 524288,
"mode": "chat",
"output_cost_per_token": 0.0000066,
"output_cost_per_token_flex": 0.0000033,
@@ -53782,7 +59028,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000005808,
"output_cost_per_token_batches": 0.000002904,
@@ -53804,7 +59049,6 @@
"litellm_provider": "v0",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_function_calling": true,
@@ -53818,7 +59062,6 @@
"litellm_provider": "v0",
"max_input_tokens": 512000,
"max_output_tokens": 512000,
- "max_tokens": 512000,
"mode": "chat",
"output_cost_per_token": 0.000075,
"supports_function_calling": true,
@@ -53832,7 +59075,6 @@
"litellm_provider": "v0",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_function_calling": true,
@@ -53846,7 +59088,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 40960,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 2.4e-7
},
@@ -53855,7 +59096,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 40960,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 6e-7
},
@@ -53864,7 +59104,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 40960,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 3e-7
},
@@ -53873,7 +59112,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 40960,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 3e-7,
"supports_function_calling": true,
@@ -53884,7 +59122,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 262144,
"max_output_tokens": 66536,
- "max_tokens": 66536,
"mode": "chat",
"output_cost_per_token": 0.0000016,
"supports_function_calling": true,
@@ -53895,7 +59132,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 300000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 2.4e-7,
"supports_vision": true,
@@ -53907,7 +59143,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 1.4e-7,
"supports_function_calling": true,
@@ -53918,7 +59153,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 300000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000032,
"supports_vision": true,
@@ -53930,7 +59164,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 0,
"max_output_tokens": 0,
- "max_tokens": 0,
"mode": "chat",
"output_cost_per_token": 0
},
@@ -53941,7 +59174,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 200000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_assistant_prefill": true,
@@ -53959,7 +59191,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 200000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_assistant_prefill": true,
@@ -53977,7 +59208,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_assistant_prefill": true,
@@ -53996,7 +59226,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 200000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.00000125,
"supports_vision": true,
@@ -54011,7 +59240,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 200000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000075,
"supports_vision": true,
@@ -54026,7 +59254,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 200000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000004,
"supports_vision": true,
@@ -54041,7 +59268,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 200000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_vision": true,
@@ -54056,7 +59282,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_vision": true,
@@ -54071,7 +59296,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 200000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.000075,
"supports_vision": true,
@@ -54086,7 +59310,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_function_calling": true,
@@ -54099,7 +59322,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000005,
"supports_assistant_prefill": true,
@@ -54119,7 +59341,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 200000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.000075,
"supports_assistant_prefill": true,
@@ -54139,7 +59360,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 200000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.000075,
"supports_assistant_prefill": true,
@@ -54159,7 +59379,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"supports_assistant_prefill": true,
@@ -54182,7 +59401,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"supports_assistant_prefill": false,
@@ -54203,7 +59421,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_assistant_prefill": true,
@@ -54223,7 +59440,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 1000000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_assistant_prefill": true,
@@ -54240,7 +59456,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 256000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"supports_function_calling": true,
@@ -54252,7 +59467,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 6e-7,
"supports_function_calling": true,
@@ -54263,7 +59477,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.00001,
"supports_function_calling": true,
@@ -54274,7 +59487,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 0,
"max_output_tokens": 0,
- "max_tokens": 0,
"mode": "chat",
"output_cost_per_token": 0
},
@@ -54283,7 +59495,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00000219,
"supports_tool_choice": true
@@ -54293,7 +59504,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 9.9e-7,
"supports_function_calling": true,
@@ -54305,7 +59515,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 9e-7,
"supports_tool_choice": true
@@ -54315,7 +59524,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 1000000,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"supports_vision": true,
@@ -54334,7 +59542,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.00001,
"supports_vision": true,
@@ -54355,7 +59562,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 2e-7,
"supports_vision": true,
@@ -54367,7 +59573,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 32000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.000001
},
@@ -54376,7 +59581,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 7.9e-7,
"supports_tool_choice": true
@@ -54386,7 +59590,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 8192,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 8e-8,
"supports_tool_choice": true
@@ -54396,7 +59599,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 7.2e-7,
"supports_tool_choice": true
@@ -54406,7 +59608,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 131000,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 8e-8,
"supports_function_calling": true,
@@ -54417,7 +59618,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 1.6e-7,
"supports_vision": true,
@@ -54429,7 +59629,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 1e-7
},
@@ -54438,7 +59637,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 1.5e-7,
"supports_function_calling": true,
@@ -54449,7 +59647,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 7.2e-7,
"supports_vision": true,
@@ -54461,7 +59658,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 7.2e-7,
"supports_function_calling": true,
@@ -54472,7 +59668,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 131072,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 6e-7,
"supports_tool_choice": true
@@ -54482,7 +59677,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 131072,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 3e-7,
"supports_vision": true,
@@ -54494,7 +59688,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 256000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 9e-7,
"supports_function_calling": true,
@@ -54505,7 +59698,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 0,
"max_output_tokens": 0,
- "max_tokens": 0,
"mode": "chat",
"output_cost_per_token": 0
},
@@ -54514,7 +59706,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 2.8e-7,
"supports_function_calling": true,
@@ -54526,7 +59717,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000005,
"supports_function_calling": true,
@@ -54538,7 +59728,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"supports_function_calling": true
@@ -54548,7 +59737,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 4e-8,
"supports_function_calling": true,
@@ -54559,7 +59747,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 1e-7,
"supports_vision": true,
@@ -54571,7 +59758,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 0,
"max_output_tokens": 0,
- "max_tokens": 0,
"mode": "chat",
"output_cost_per_token": 0
},
@@ -54580,7 +59766,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 32000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 0.000006,
"supports_function_calling": true,
@@ -54591,7 +59776,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 7.9e-7
},
@@ -54600,7 +59784,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 32000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 3e-7,
"supports_function_calling": true,
@@ -54612,7 +59795,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 65536,
"max_output_tokens": 2048,
- "max_tokens": 2048,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"supports_function_calling": true
@@ -54622,7 +59804,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 1.5e-7,
"supports_vision": true,
@@ -54635,7 +59816,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 0.000006,
"supports_vision": true,
@@ -54648,7 +59828,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 131072,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000022,
"supports_function_calling": true,
@@ -54659,7 +59838,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 32768,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000012
},
@@ -54668,7 +59846,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 32768,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.0000019
},
@@ -54677,7 +59854,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 16385,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.0000015,
"supports_function_calling": true,
@@ -54688,7 +59864,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 8192,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000002
},
@@ -54697,7 +59872,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.00003,
"supports_vision": true,
@@ -54711,7 +59885,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000008,
"supports_vision": true,
@@ -54726,7 +59899,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.0000016,
"supports_vision": true,
@@ -54741,7 +59913,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 4e-7,
"supports_vision": true,
@@ -54756,7 +59927,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00001,
"supports_vision": true,
@@ -54771,7 +59941,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 6e-7,
"supports_vision": true,
@@ -54786,7 +59955,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.00006,
"supports_vision": true,
@@ -54801,7 +59969,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.000008,
"supports_vision": true,
@@ -54816,7 +59983,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"supports_function_calling": true,
@@ -54830,7 +59996,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 200000,
"max_output_tokens": 100000,
- "max_tokens": 100000,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"supports_vision": true,
@@ -54843,7 +60008,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 127000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.000001
},
@@ -54852,7 +60016,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 200000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.000015
},
@@ -54861,7 +60024,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 127000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.000005
},
@@ -54870,7 +60032,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 127000,
"max_output_tokens": 8000,
- "max_tokens": 8000,
"mode": "chat",
"output_cost_per_token": 0.000008
},
@@ -54879,7 +60040,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_vision": true,
@@ -54891,7 +60051,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_vision": true,
@@ -54903,7 +60062,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 131072,
"max_output_tokens": 4000,
- "max_tokens": 4000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"supports_function_calling": true,
@@ -54914,7 +60072,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.00001,
"supports_vision": true,
@@ -54926,7 +60083,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_function_calling": true,
@@ -54937,7 +60093,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000025,
"supports_function_calling": true
@@ -54947,7 +60102,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 5e-7,
"supports_function_calling": true,
@@ -54958,7 +60112,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.000004,
"supports_function_calling": true,
@@ -54969,7 +60122,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_function_calling": true,
@@ -54980,7 +60132,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 131072,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 0.0000022,
"supports_function_calling": true,
@@ -54991,7 +60142,6 @@
"litellm_provider": "vercel_ai_gateway",
"max_input_tokens": 128000,
"max_output_tokens": 96000,
- "max_tokens": 96000,
"mode": "chat",
"output_cost_per_token": 0.0000011,
"supports_function_calling": true,
@@ -55003,7 +60153,6 @@
"input_cost_per_token": 4.5e-7,
"max_input_tokens": 200000,
"max_output_tokens": 200000,
- "max_tokens": 200000,
"mode": "chat",
"output_cost_per_token": 0.0000018,
"source": "https://vercel.com/ai-gateway/models/glm-4.6",
@@ -55017,7 +60166,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 200000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000005,
"supports_assistant_prefill": true,
@@ -55031,7 +60179,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 200000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000005,
"supports_assistant_prefill": true,
@@ -55045,7 +60192,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 200000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_assistant_prefill": true,
@@ -55061,7 +60207,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 200000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_assistant_prefill": true,
@@ -55076,7 +60221,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 200000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.00000125,
"supports_assistant_prefill": true,
@@ -55090,7 +60234,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 200000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.00000125,
"supports_assistant_prefill": true,
@@ -55098,40 +60241,11 @@
"supports_tool_choice": true,
"supports_vision": true
},
- "vertex_ai/claude-3-opus": {
- "deprecation_date": "2025-08-01",
- "input_cost_per_token": 0.000015,
- "litellm_provider": "vertex_ai-anthropic_models",
- "max_input_tokens": 200000,
- "max_output_tokens": 4096,
- "max_tokens": 4096,
- "mode": "chat",
- "output_cost_per_token": 0.000075,
- "supports_assistant_prefill": true,
- "supports_function_calling": true,
- "supports_tool_choice": true,
- "supports_vision": true
- },
- "vertex_ai/claude-3-opus@20240229": {
- "deprecation_date": "2025-08-01",
- "input_cost_per_token": 0.000015,
- "litellm_provider": "vertex_ai-anthropic_models",
- "max_input_tokens": 200000,
- "max_output_tokens": 4096,
- "max_tokens": 4096,
- "mode": "chat",
- "output_cost_per_token": 0.000075,
- "supports_assistant_prefill": true,
- "supports_function_calling": true,
- "supports_tool_choice": true,
- "supports_vision": true
- },
"vertex_ai/claude-3-sonnet": {
"input_cost_per_token": 0.000003,
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 200000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_assistant_prefill": true,
@@ -55144,7 +60258,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 200000,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 0.000015,
"supports_assistant_prefill": true,
@@ -55166,7 +60279,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00005,
"output_cost_per_token_batches": 0.000025,
@@ -55204,7 +60316,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00005,
"search_context_cost_per_query": {
@@ -55246,7 +60357,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00005,
"search_context_cost_per_query": {
@@ -55290,7 +60400,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00005,
"output_cost_per_token_batches": 0.000025,
@@ -55318,6 +60427,7 @@
},
"vertex_ai/claude-haiku-4-5": {
"deprecation_date": "2026-10-15",
+ "successor_model": "vertex_ai/claude-haiku-5-5",
"cache_creation_input_token_cost": 0.00000125,
"cache_creation_input_token_cost_above_1hr": 0.000002,
"cache_creation_input_token_cost_batches": 6.25e-7,
@@ -55328,8 +60438,12 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
"output_cost_per_token": 0.000005,
"output_cost_per_token_batches": 0.0000025,
"regional_endpoint_uplift_multiplier": 1.1,
@@ -55357,8 +60471,12 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
"output_cost_per_token": 0.000005,
"output_cost_per_token_batches": 0.0000025,
"regional_endpoint_uplift_multiplier": 1.1,
@@ -55392,7 +60510,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 5e-7,
"output_cost_per_token_batches": 2.5e-7,
@@ -55437,7 +60554,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 5e-7,
"output_cost_per_token_batches": 2.5e-7,
@@ -55466,6 +60582,7 @@
},
"vertex_ai/claude-opus-4-5": {
"deprecation_date": "2026-11-24",
+ "successor_model": "vertex_ai/claude-opus-5-5",
"cache_creation_input_token_cost": 0.00000625,
"cache_creation_input_token_cost_above_1hr": 0.00001,
"cache_creation_input_token_cost_batches": 0.000003125,
@@ -55476,7 +60593,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"output_cost_per_token_batches": 0.0000125,
@@ -55511,7 +60627,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"output_cost_per_token_batches": 0.0000125,
@@ -55550,7 +60665,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"output_cost_per_token_batches": 0.0000125,
@@ -55588,7 +60702,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"output_cost_per_token_batches": 0.0000125,
@@ -55625,7 +60738,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"output_cost_per_token_batches": 0.0000125,
@@ -55663,7 +60775,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"output_cost_per_token_batches": 0.0000125,
@@ -55702,7 +60813,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"output_cost_per_token_batches": 0.0000125,
@@ -55741,7 +60851,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"output_cost_per_token_batches": 0.0000125,
@@ -55780,7 +60889,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"output_cost_per_token_batches": 0.0000125,
@@ -55817,7 +60925,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00002,
"output_cost_per_token_batches": 0.0000125,
@@ -55858,7 +60965,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00002,
"output_cost_per_token_batches": 0.0000125,
@@ -55901,7 +61007,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000025,
"output_cost_per_token_batches": 0.0000125,
@@ -55927,6 +61032,7 @@
},
"vertex_ai/claude-sonnet-4-5": {
"deprecation_date": "2026-09-29",
+ "successor_model": "vertex_ai/claude-sonnet-5-5",
"cache_creation_input_token_cost": 0.00000375,
"cache_creation_input_token_cost_above_1hr": 0.000006,
"cache_creation_input_token_cost_above_1hr_above_200k_tokens": 0.000012,
@@ -55941,8 +61047,12 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
"output_cost_per_token": 0.000015,
"output_cost_per_token_batches": 0.0000075,
"regional_endpoint_uplift_multiplier": 1.1,
@@ -55975,8 +61085,12 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 200000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
+ "search_context_cost_per_query": {
+ "search_context_size_high": 0.01,
+ "search_context_size_low": 0.01,
+ "search_context_size_medium": 0.01
+ },
"output_cost_per_token": 0.000015,
"output_cost_per_token_batches": 0.0000075,
"regional_endpoint_uplift_multiplier": 1.1,
@@ -56008,7 +61122,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 1000000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"output_cost_per_token_batches": 0.0000075,
@@ -56045,7 +61158,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 1000000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.000015,
"output_cost_per_token_batches": 0.0000075,
@@ -56080,7 +61192,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_batches": 0.000005,
@@ -56118,7 +61229,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_batches": 0.000005,
@@ -56158,7 +61268,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_batches": 0.000005,
@@ -56197,7 +61306,6 @@
"litellm_provider": "vertex_ai-anthropic_models",
"max_input_tokens": 1000000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.00001,
"output_cost_per_token_batches": 0.000005,
@@ -56227,7 +61335,6 @@
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 9e-7,
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
@@ -56239,7 +61346,6 @@
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 6e-7,
"supports_function_calling": true,
@@ -56250,7 +61356,6 @@
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 9e-7,
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
@@ -56262,7 +61367,6 @@
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 6e-7,
"supports_function_calling": true,
@@ -56273,7 +61377,6 @@
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 6e-7,
"supports_function_calling": true,
@@ -56288,7 +61391,6 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 65536,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_image": 0.134,
"output_cost_per_image_token": 0.00012,
@@ -56303,7 +61405,6 @@
"litellm_provider": "vertex_ai-deepseek_models",
"max_input_tokens": 65336,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.0000054,
"output_cost_per_token_batches": 0.0000027,
@@ -56313,6 +61414,7 @@
],
"supports_assistant_prefill": false,
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true
@@ -56325,7 +61427,6 @@
"litellm_provider": "vertex_ai-deepseek_models",
"max_input_tokens": 163840,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.0000017,
"output_cost_per_token_batches": 8.5e-7,
@@ -56347,7 +61448,6 @@
"litellm_provider": "vertex_ai-deepseek_models",
"max_input_tokens": 163840,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.00000168,
"output_cost_per_token_batches": 8.4e-7,
@@ -56357,6 +61457,7 @@
],
"supports_assistant_prefill": false,
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true
@@ -56367,7 +61468,6 @@
"litellm_provider": "vertex_ai-deepseek_models",
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
- "max_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
@@ -56384,6 +61484,8 @@
},
"vertex_ai/gemini-2.0-flash": {
"deprecation_date": "2026-06-01",
+ "deprecation_source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions",
+ "successor_model": "vertex_ai/gemini-3.5-flash-lite",
"input_cost_per_audio_token": 0.000001,
"input_cost_per_audio_token_batches": 5e-7,
"input_cost_per_character": 3.75e-8,
@@ -56397,6 +61499,8 @@
},
"vertex_ai/gemini-2.0-flash-lite": {
"deprecation_date": "2026-06-01",
+ "deprecation_source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions",
+ "successor_model": "vertex_ai/gemini-3.5-flash-lite",
"input_cost_per_audio_token": 7.5e-8,
"input_cost_per_audio_token_batches": 3.75e-8,
"input_cost_per_character": 1.875e-8,
@@ -56410,6 +61514,8 @@
},
"vertex_ai/gemini-2.5-flash-image": {
"deprecation_date": "2027-03-15",
+ "deprecation_source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions",
+ "successor_model": "vertex_ai/gemini-3.1-flash-lite-image",
"input_cost_per_audio_token": 0.000001,
"input_cost_per_token": 3e-7,
"input_cost_per_token_batches": 1.5e-7,
@@ -56417,10 +61523,10 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 32768,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "image_generation",
"output_cost_per_image": 0.039,
"output_cost_per_image_token": 0.00003,
+ "output_cost_per_image_token_batches": 0.000015,
"output_cost_per_reasoning_token": 0.0000025,
"output_cost_per_token": 0.0000025,
"output_cost_per_token_batches": 0.00000125,
@@ -56460,11 +61566,17 @@
},
"vertex_ai/gemini-3-flash-preview": {
"cache_read_input_audio_token_cost": 1e-7,
+ "cache_read_input_audio_token_cost_priority": 1.8e-7,
"cache_read_input_token_cost": 5e-8,
"cache_read_input_token_cost_priority": 9e-8,
"google_maps_grounding_cost_per_query": 0.014,
"input_cost_per_audio_token": 0.000001,
+ "input_cost_per_audio_token_above_200k_tokens": 0.000001,
+ "input_cost_per_audio_token_above_200k_tokens_batches": 5e-7,
+ "input_cost_per_audio_token_above_200k_tokens_flex": 5e-7,
+ "input_cost_per_audio_token_above_200k_tokens_priority": 0.0000018,
"input_cost_per_audio_token_batches": 5e-7,
+ "input_cost_per_audio_token_flex": 5e-7,
"input_cost_per_audio_token_priority": 0.0000018,
"input_cost_per_token": 5e-7,
"input_cost_per_token_batches": 2.5e-7,
@@ -56473,7 +61585,6 @@
"litellm_provider": "vertex_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 65535,
- "max_tokens": 65535,
"mode": "chat",
"output_cost_per_token": 0.000003,
"output_cost_per_token_batches": 0.0000015,
@@ -56484,6 +61595,11 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
"supported_endpoints": [
"/v1/chat/completions",
@@ -56500,6 +61616,7 @@
"text"
],
"supports_audio_input": true,
+ "supports_computer_use": true,
"supports_function_calling": true,
"supports_native_streaming": true,
"supports_pdf_input": true,
@@ -56515,12 +61632,13 @@
},
"vertex_ai/gemini-3-pro-image": {
"cache_read_input_token_cost": 2e-7,
+ "cache_read_input_token_cost_batches": 1e-7,
"cache_read_input_token_cost_above_200k_tokens": 4e-7,
"cache_read_input_token_cost_above_200k_tokens_priority": 7.2e-7,
- "cache_read_input_token_cost_batches": 1e-7,
"cache_read_input_token_cost_flex": 1e-7,
"cache_read_input_token_cost_priority": 3.6e-7,
"deprecation_date": "2027-05-28",
+ "deprecation_source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions",
"input_cost_per_image": 0.0011,
"input_cost_per_token": 0.000002,
"input_cost_per_token_above_200k_tokens": 0.000004,
@@ -56531,10 +61649,11 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 65536,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "image_generation",
"output_cost_per_image": 0.134,
"output_cost_per_image_token": 0.00012,
+ "output_cost_per_image_token_batches": 0.00006,
+ "output_cost_per_image_token_priority": 0.000216,
"output_cost_per_token": 0.000012,
"output_cost_per_token_above_200k_tokens": 0.000018,
"output_cost_per_token_above_200k_tokens_priority": 0.0000324,
@@ -56565,17 +61684,18 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 65536,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "image_generation",
"output_cost_per_image": 0.134,
"output_cost_per_image_token": 0.00012,
+ "output_cost_per_image_token_batches": 0.00006,
+ "output_cost_per_image_token_priority": 0.000216,
"output_cost_per_token": 0.000012,
"output_cost_per_token_priority": 0.0000216,
"output_cost_per_token_above_200k_tokens": 0.000018,
"output_cost_per_token_above_200k_tokens_priority": 0.0000324,
"output_cost_per_token_batches": 0.000006,
"supports_reasoning": false,
- "source": "https://docs.cloud.google.com/vertex-ai/generative-ai/docs/models/gemini/3-pro-image",
+ "source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
"supported_endpoints": [
"/v1/chat/completions",
"/v1/images/generations",
@@ -56593,7 +61713,6 @@
"litellm_provider": "vertex_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 65535,
- "max_tokens": 65535,
"mode": "chat",
"output_cost_per_token": 0.000012,
"output_cost_per_token_above_200k_tokens": 0.000018,
@@ -56636,6 +61755,11 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query"
},
"vertex_ai/gemini-3.1-flash-image": {
@@ -56644,6 +61768,7 @@
"cache_read_input_token_cost_flex": 2.5e-8,
"cache_read_input_token_cost_priority": 9e-8,
"deprecation_date": "2027-05-28",
+ "deprecation_source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions",
"input_cost_per_image": 0.00056,
"input_cost_per_token": 5e-7,
"input_cost_per_token_batches": 2.5e-7,
@@ -56652,10 +61777,11 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 65536,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "image_generation",
"output_cost_per_image": 0.0672,
"output_cost_per_image_token": 0.00006,
+ "output_cost_per_image_token_batches": 0.00003,
+ "output_cost_per_image_token_priority": 0.000108,
"output_cost_per_token": 0.000003,
"output_cost_per_token_batches": 0.0000015,
"output_cost_per_token_flex": 0.0000015,
@@ -56679,14 +61805,15 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 65536,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "image_generation",
"output_cost_per_image": 0.0672,
"output_cost_per_image_token": 0.00006,
+ "output_cost_per_image_token_batches": 0.00003,
+ "output_cost_per_image_token_priority": 0.000108,
"output_cost_per_token": 0.000003,
"output_cost_per_token_batches": 0.0000015,
"supports_reasoning": false,
- "source": "https://cloud.google.com/vertex-ai/generative-ai/pricing#gemini-models",
+ "source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
"supported_endpoints": [
"/v1/chat/completions",
"/v1/images/generations",
@@ -56696,21 +61823,31 @@
},
"vertex_ai/gemini-3.1-flash-lite": {
"cache_read_input_audio_token_cost": 5e-8,
- "deprecation_date": "2027-05-07",
+ "deprecation_source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions",
+ "cache_read_input_audio_token_cost_batches": 2.5e-8,
+ "cache_read_input_audio_token_cost_flex": 2.5e-8,
+ "cache_read_input_audio_token_cost_priority": 9e-8,
"cache_read_input_token_cost": 2.5e-8,
"cache_read_input_token_cost_batches": 1.25e-8,
"cache_read_input_token_cost_flex": 1.25e-8,
"cache_read_input_token_cost_priority": 4.5e-8,
+ "deprecation_date": "2027-05-07",
+ "google_maps_grounding_cost_per_query": 0.014,
"input_cost_per_audio_token": 5e-7,
+ "input_cost_per_audio_token_above_200k_tokens": 5e-7,
+ "input_cost_per_audio_token_above_200k_tokens_batches": 2.5e-7,
+ "input_cost_per_audio_token_above_200k_tokens_flex": 2.5e-7,
+ "input_cost_per_audio_token_above_200k_tokens_priority": 9e-7,
+ "input_cost_per_audio_token_batches": 2.5e-7,
+ "input_cost_per_audio_token_flex": 2.5e-7,
+ "input_cost_per_audio_token_priority": 9e-7,
"input_cost_per_token": 2.5e-7,
"input_cost_per_token_batches": 1.25e-7,
"input_cost_per_token_flex": 1.25e-7,
"input_cost_per_token_priority": 4.5e-7,
- "input_cost_per_audio_token_priority": 9e-7,
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.0000015,
"output_cost_per_token": 0.0000015,
@@ -56718,7 +61855,18 @@
"output_cost_per_token_flex": 7.5e-7,
"output_cost_per_token_priority": 0.0000027,
"regional_endpoint_uplift_multiplier": 1.1,
+ "search_context_cost_per_query": {
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014,
+ "search_context_size_high": 0.014
+ },
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
+ "successor_model": "vertex_ai/gemini-3.5-flash-lite",
"supported_endpoints": [
"/v1/chat/completions",
"/v1/completions",
@@ -56736,6 +61884,7 @@
"supports_audio_input": true,
"supports_audio_output": false,
"supports_function_calling": true,
+ "supports_native_streaming": true,
"supports_parallel_function_calling": true,
"supports_pdf_input": true,
"supports_prompt_caching": true,
@@ -56747,22 +61896,13 @@
"supports_video_input": true,
"supports_vision": true,
"supports_web_search": true,
- "supports_native_streaming": true,
- "search_context_cost_per_query": {
- "search_context_size_low": 0.014,
- "search_context_size_medium": 0.014,
- "search_context_size_high": 0.014
- },
- "web_search_billing_unit": "per_query",
- "google_maps_grounding_cost_per_query": 0.014,
- "input_cost_per_audio_token_batches": 2.5e-7
+ "web_search_billing_unit": "per_query"
},
"vertex_ai/gemini-3.1-flash-lite-image": {
"cache_read_input_token_cost": 2.5e-8,
"cache_read_input_token_cost_batches": 1.25e-8,
"cache_read_input_token_cost_flex": 1.25e-8,
"cache_read_input_token_cost_priority": 4.5e-8,
- "deprecation_date": "2027-06-28",
"input_cost_per_image": 0.00028,
"input_cost_per_token": 2.5e-7,
"input_cost_per_token_batches": 1.25e-7,
@@ -56771,10 +61911,11 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 65536,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "image_generation",
"output_cost_per_image": 0.0336,
"output_cost_per_image_token": 0.00003,
+ "output_cost_per_image_token_batches": 0.000015,
+ "output_cost_per_image_token_priority": 0.000054,
"output_cost_per_token": 0.0000015,
"output_cost_per_token_batches": 7.5e-7,
"output_cost_per_token_flex": 7.5e-7,
@@ -56811,7 +61952,6 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.0000015,
"output_cost_per_token": 0.0000015,
@@ -56850,6 +61990,11 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
"google_maps_grounding_cost_per_query": 0.014
},
@@ -56862,6 +62007,8 @@
"google_maps_grounding_cost_per_query": 0.014,
"input_cost_per_token": 0.000002,
"input_cost_per_token_above_200k_tokens": 0.000004,
+ "input_cost_per_token_above_200k_tokens_batches": 0.000002,
+ "input_cost_per_token_above_200k_tokens_flex": 0.000002,
"input_cost_per_token_above_200k_tokens_priority": 0.0000072,
"input_cost_per_token_batches": 0.000001,
"input_cost_per_token_flex": 0.000001,
@@ -56869,11 +62016,12 @@
"litellm_provider": "vertex_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_image": 0.00012,
"output_cost_per_token": 0.000012,
"output_cost_per_token_above_200k_tokens": 0.000018,
+ "output_cost_per_token_above_200k_tokens_batches": 0.000009,
+ "output_cost_per_token_above_200k_tokens_flex": 0.000009,
"output_cost_per_token_above_200k_tokens_priority": 0.0000324,
"output_cost_per_token_batches": 0.000006,
"output_cost_per_token_flex": 0.000006,
@@ -56884,6 +62032,11 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
"supported_endpoints": [
"/v1/chat/completions",
@@ -56925,7 +62078,6 @@
"litellm_provider": "vertex_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0.000012,
"output_cost_per_token_above_200k_tokens": 0.000018,
@@ -56970,12 +62122,19 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
"google_maps_grounding_cost_per_query": 0.014
},
"vertex_ai/gemini-3.5-flash": {
"prompt_cache_min_tokens": 4096,
"deprecation_date": "2027-05-19",
+ "deprecation_source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions",
+ "successor_model": "vertex_ai/gemini-3.8-flash",
"cache_read_input_token_cost": 1.5e-7,
"cache_read_input_token_cost_batches": 7.5e-8,
"input_cost_per_token": 0.0000015,
@@ -56983,7 +62142,6 @@
"litellm_provider": "vertex_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 65535,
- "max_tokens": 65535,
"mode": "chat",
"output_cost_per_reasoning_token": 0.000009,
"output_cost_per_token": 0.000009,
@@ -57004,6 +62162,7 @@
"text"
],
"supports_audio_input": true,
+ "supports_computer_use": true,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_pdf_input": true,
@@ -57026,6 +62185,11 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
"google_maps_grounding_cost_per_query": 0.014,
"input_cost_per_token_batches": 7.5e-7,
@@ -57036,6 +62200,7 @@
},
"vertex_ai/gemini-3.5-flash-lite": {
"deprecation_date": "2027-07-21",
+ "deprecation_source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions",
"cache_read_input_token_cost": 3e-8,
"cache_read_input_token_cost_batches": 1.5e-8,
"cache_read_input_token_cost_flex": 1.5e-8,
@@ -57047,7 +62212,6 @@
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.0000025,
"output_cost_per_token": 0.0000025,
@@ -57072,12 +62236,14 @@
],
"supports_audio_input": true,
"supports_audio_output": false,
+ "supports_computer_use": true,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_pdf_input": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
+ "supports_sampling_params": false,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_url_context": true,
@@ -57090,6 +62256,11 @@
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
"google_maps_grounding_cost_per_query": 0.014
},
@@ -57104,7 +62275,6 @@
"litellm_provider": "vertex_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.00000375,
"output_cost_per_token": 0.00000375,
@@ -57127,12 +62297,14 @@
"text"
],
"supports_audio_input": true,
+ "supports_computer_use": true,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_pdf_input": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
+ "supports_sampling_params": false,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_url_context": true,
@@ -57144,11 +62316,18 @@
"output_cost_per_token_priority": 0.00000675,
"cache_read_input_token_cost_priority": 1.35e-7,
"deprecation_date": "2026-11-19",
+ "deprecation_source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions",
+ "successor_model": "vertex_ai/gemini-3.8-flash",
"search_context_cost_per_query": {
"search_context_size_low": 0.014,
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
"google_maps_grounding_cost_per_query": 0.014
},
@@ -57163,7 +62342,6 @@
"litellm_provider": "vertex_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.00000375,
"output_cost_per_token": 0.00000375,
@@ -57186,6 +62364,7 @@
"text"
],
"supports_audio_input": true,
+ "supports_computer_use": true,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_pdf_input": true,
@@ -57193,6 +62372,7 @@
"supports_reasoning": true,
"supports_minimal_reasoning_effort": false,
"supports_response_schema": true,
+ "supports_sampling_params": false,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_url_context": true,
@@ -57204,33 +62384,52 @@
"output_cost_per_token_priority": 0.00000675,
"cache_read_input_token_cost_priority": 1.35e-7,
"deprecation_date": "2027-01-28",
+ "deprecation_source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions",
+ "successor_model": "vertex_ai/gemini-3.8-flash",
"search_context_cost_per_query": {
"search_context_size_low": 0.014,
"search_context_size_medium": 0.014,
"search_context_size_high": 0.014
},
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"web_search_billing_unit": "per_query",
"google_maps_grounding_cost_per_query": 0.014
},
"vertex_ai/gemini-3.8-flash": {
- "prompt_cache_min_tokens": 4096,
- "deprecation_date": "2027-09-02",
"cache_read_input_token_cost": 7.5e-8,
"cache_read_input_token_cost_batches": 3.75e-8,
"cache_read_input_token_cost_flex": 3.75e-8,
+ "cache_read_input_token_cost_priority": 1.35e-7,
+ "google_maps_grounding_cost_per_query": 0.014,
"input_cost_per_token": 7.5e-7,
"input_cost_per_token_batches": 3.75e-7,
"input_cost_per_token_flex": 3.75e-7,
+ "input_cost_per_token_priority": 0.00000135,
"litellm_provider": "vertex_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.00000375,
"output_cost_per_token": 0.00000375,
"output_cost_per_token_batches": 0.000001875,
"output_cost_per_token_flex": 0.000001875,
+ "output_cost_per_token_priority": 0.00000675,
+ "prompt_cache_min_tokens": 4096,
"regional_endpoint_uplift_multiplier": 1.1,
+ "search_context_cost_per_query": {
+ "search_context_size_low": 0.014,
+ "search_context_size_medium": 0.014,
+ "search_context_size_high": 0.014
+ },
+ "search_free_requests": {
+ "count": 5000,
+ "period": "month",
+ "shared_group": "gemini-3"
+ },
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
"supported_endpoints": [
"/v1/chat/completions",
@@ -57247,30 +62446,23 @@
"text"
],
"supports_audio_input": true,
+ "supports_computer_use": true,
"supports_function_calling": true,
+ "supports_minimal_reasoning_effort": false,
+ "supports_native_streaming": true,
"supports_parallel_function_calling": true,
"supports_pdf_input": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
- "supports_minimal_reasoning_effort": false,
"supports_response_schema": true,
+ "supports_sampling_params": false,
"supports_system_messages": true,
"supports_tool_choice": true,
"supports_url_context": true,
"supports_video_input": true,
"supports_vision": true,
"supports_web_search": true,
- "supports_native_streaming": true,
- "input_cost_per_token_priority": 0.00000135,
- "output_cost_per_token_priority": 0.00000675,
- "cache_read_input_token_cost_priority": 1.35e-7,
- "search_context_cost_per_query": {
- "search_context_size_low": 0.014,
- "search_context_size_medium": 0.014,
- "search_context_size_high": 0.014
- },
- "web_search_billing_unit": "per_query",
- "google_maps_grounding_cost_per_query": 0.014
+ "web_search_billing_unit": "per_query"
},
"vertex_ai/gemini-3.8-flash-cyber": {
"cache_read_input_token_cost": 1.5e-7,
@@ -57284,7 +62476,6 @@
"litellm_provider": "vertex_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.0000075,
"output_cost_per_token": 0.0000075,
@@ -57313,6 +62504,7 @@
"supports_reasoning": true,
"supports_minimal_reasoning_effort": false,
"supports_response_schema": true,
+ "supports_sampling_params": false,
"supports_system_messages": true,
"supports_tool_choice": false,
"supports_url_context": false,
@@ -57322,7 +62514,6 @@
"supports_native_streaming": true
},
"vertex_ai/gemini-4-argon": {
- "deprecation_date": "2027-10-13",
"cache_read_input_token_cost": 1e-7,
"cache_read_input_token_cost_batches": 5e-8,
"cache_read_input_token_cost_flex": 5e-8,
@@ -57338,7 +62529,6 @@
"litellm_provider": "vertex_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
- "max_tokens": 1048576,
"mode": "chat",
"output_cost_per_reasoning_token": 0.00001,
"output_cost_per_token": 0.00001,
@@ -57368,6 +62558,8 @@
"text"
],
"supports_audio_input": true,
+ "supports_computer_use": true,
+ "supports_continuation": true,
"supports_function_calling": true,
"supports_minimal_reasoning_effort": false,
"supports_native_streaming": true,
@@ -57400,7 +62592,6 @@
"litellm_provider": "vertex_ai",
"max_input_tokens": 1048576,
"max_output_tokens": 1048576,
- "max_tokens": 1048576,
"mode": "chat",
"output_cost_per_reasoning_token": 0.00002,
"output_cost_per_token": 0.00002,
@@ -57430,6 +62621,7 @@
"text"
],
"supports_audio_input": true,
+ "supports_continuation": true,
"supports_function_calling": true,
"supports_minimal_reasoning_effort": false,
"supports_native_streaming": true,
@@ -57449,23 +62641,21 @@
"vertex_ai/gemini-nano-banana-2.1": {
"cache_read_input_token_cost": 1.5e-7,
"cache_read_input_token_cost_batches": 7.5e-8,
- "cache_read_input_token_cost_flex": 7.5e-8,
"cache_read_input_token_cost_priority": 2.7e-7,
"input_cost_per_image": 0.00168,
"input_cost_per_token": 0.0000015,
"input_cost_per_token_batches": 7.5e-7,
- "input_cost_per_token_flex": 7.5e-7,
"input_cost_per_token_priority": 0.0000027,
"litellm_provider": "vertex_ai-language-models",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "image_generation",
"output_cost_per_image": 0.0336,
"output_cost_per_image_token": 0.00003,
+ "output_cost_per_image_token_batches": 0.000015,
+ "output_cost_per_image_token_priority": 0.000054,
"output_cost_per_token": 0.0000075,
"output_cost_per_token_batches": 0.00000375,
- "output_cost_per_token_flex": 0.00000375,
"output_cost_per_token_priority": 0.0000135,
"search_context_cost_per_query": {
"search_context_size_low": 0.014,
@@ -57512,12 +62702,12 @@
"input_cost_per_token": 0.0000015,
"litellm_provider": "vertex_ai",
"max_output_tokens": 57920,
- "max_tokens": 57920,
+ "max_input_tokens": 131072,
"mode": "chat",
"output_cost_per_reasoning_token": 0.000009,
"output_cost_per_token": 0.000009,
"output_cost_per_video_token": 0.0000175,
- "source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
+ "source": "https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/gemini/omni-1-1-flash",
"supported_endpoints": [
"/v1beta/interactions"
],
@@ -57536,18 +62726,14 @@
},
"vertex_ai/gemini-robotics-er-2-preview": {
"cache_read_input_token_cost": 1e-7,
- "cache_read_input_token_cost_batches": 5e-8,
"input_cost_per_audio_token": 0.000001,
"input_cost_per_token": 0.000001,
- "input_cost_per_token_batches": 5e-7,
"litellm_provider": "vertex_ai",
"max_input_tokens": 131072,
"max_output_tokens": 65536,
- "max_tokens": 65536,
"mode": "chat",
"output_cost_per_reasoning_token": 0.000005,
"output_cost_per_token": 0.000005,
- "output_cost_per_token_batches": 0.0000025,
"search_context_cost_per_query": {
"search_context_size_low": 0.014,
"search_context_size_medium": 0.014,
@@ -57556,8 +62742,7 @@
"source": "https://ai.google.dev/gemini-api/docs/pricing",
"supported_endpoints": [
"/v1/chat/completions",
- "/v1/completions",
- "/v1/batch"
+ "/v1/completions"
],
"supported_modalities": [
"text",
@@ -57570,6 +62755,7 @@
],
"supports_audio_input": true,
"supports_audio_output": false,
+ "supports_computer_use": true,
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_pdf_input": true,
@@ -57598,7 +62784,6 @@
"litellm_provider": "vertex_ai-openai_models",
"max_input_tokens": 262144,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 6e-7,
"source": "https://cloud.google.com/vertex-ai/generative-ai/docs/maas/google/gemma-4-26b-a4b-it",
@@ -57615,7 +62800,6 @@
"litellm_provider": "vertex_ai-ai21_models",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 4e-7,
"supports_tool_choice": true
@@ -57626,7 +62810,6 @@
"litellm_provider": "vertex_ai-ai21_models",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 0.000008,
"supports_tool_choice": true
@@ -57637,7 +62820,6 @@
"litellm_provider": "vertex_ai-ai21_models",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 0.000008,
"supports_tool_choice": true
@@ -57648,7 +62830,6 @@
"litellm_provider": "vertex_ai-ai21_models",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 4e-7,
"supports_tool_choice": true
@@ -57659,7 +62840,6 @@
"litellm_provider": "vertex_ai-ai21_models",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 4e-7,
"supports_tool_choice": true
@@ -57669,7 +62849,6 @@
"litellm_provider": "vertex_ai-llama_models",
"max_input_tokens": 128000,
"max_output_tokens": 2048,
- "max_tokens": 2048,
"mode": "chat",
"output_cost_per_token": 0.000016,
"source": "https://console.cloud.google.com/vertex-ai/publishers/meta/model-garden/llama-3.2-90b-vision-instruct-maas",
@@ -57682,7 +62861,6 @@
"litellm_provider": "vertex_ai-llama_models",
"max_input_tokens": 128000,
"max_output_tokens": 2048,
- "max_tokens": 2048,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://console.cloud.google.com/vertex-ai/publishers/meta/model-garden/llama-3.2-90b-vision-instruct-maas",
@@ -57695,7 +62873,6 @@
"litellm_provider": "vertex_ai-llama_models",
"max_input_tokens": 128000,
"max_output_tokens": 2048,
- "max_tokens": 2048,
"metadata": {
"notes": "VertexAI states that The Llama 3.1 API service for llama-3.1-70b-instruct-maas and llama-3.1-8b-instruct-maas are in public preview and at no cost."
},
@@ -57711,7 +62888,6 @@
"litellm_provider": "vertex_ai-llama_models",
"max_input_tokens": 128000,
"max_output_tokens": 2048,
- "max_tokens": 2048,
"metadata": {
"notes": "VertexAI states that The Llama 3.2 API service is at no cost during public preview, and will be priced as per dollar-per-1M-tokens at GA."
},
@@ -57729,7 +62905,6 @@
"litellm_provider": "vertex_ai-llama_models",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 7.2e-7,
"output_cost_per_token_batches": 3.6e-7,
@@ -57750,7 +62925,6 @@
"litellm_provider": "vertex_ai-llama_models",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.00000115,
"output_cost_per_token_batches": 5.75e-7,
@@ -57768,12 +62942,13 @@
},
"vertex_ai/meta/llama-4-maverick-17b-16e-instruct-maas": {
"input_cost_per_token": 3.5e-7,
+ "input_cost_per_token_batches": 1.75e-7,
"litellm_provider": "vertex_ai-llama_models",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.00000115,
+ "output_cost_per_token_batches": 5.75e-7,
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing#partner-models",
"supported_modalities": [
"text",
@@ -57788,12 +62963,13 @@
},
"vertex_ai/meta/llama-4-scout-17b-128e-instruct-maas": {
"input_cost_per_token": 2.5e-7,
+ "input_cost_per_token_batches": 1.25e-7,
"litellm_provider": "vertex_ai-llama_models",
"max_input_tokens": 10000000,
"max_output_tokens": 10000000,
- "max_tokens": 10000000,
"mode": "chat",
"output_cost_per_token": 7e-7,
+ "output_cost_per_token_batches": 3.5e-7,
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing#partner-models",
"supported_modalities": [
"text",
@@ -57812,7 +62988,6 @@
"litellm_provider": "vertex_ai-llama_models",
"max_input_tokens": 10000000,
"max_output_tokens": 10000000,
- "max_tokens": 10000000,
"mode": "chat",
"output_cost_per_token": 7e-7,
"output_cost_per_token_batches": 3.5e-7,
@@ -57833,7 +63008,6 @@
"litellm_provider": "vertex_ai-llama_models",
"max_input_tokens": 32000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing#partner-models",
@@ -57844,7 +63018,6 @@
"litellm_provider": "vertex_ai-llama_models",
"max_input_tokens": 32000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing#partner-models",
@@ -57855,7 +63028,6 @@
"litellm_provider": "vertex_ai-llama_models",
"max_input_tokens": 32000,
"max_output_tokens": 32000,
- "max_tokens": 32000,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing#partner-models",
@@ -57868,7 +63040,6 @@
"litellm_provider": "vertex_ai-minimax_models",
"max_input_tokens": 196608,
"max_output_tokens": 196608,
- "max_tokens": 196608,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
@@ -57880,7 +63051,6 @@
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.000006,
"supports_function_calling": true,
@@ -57891,7 +63061,6 @@
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.000006,
"supports_function_calling": true,
@@ -57902,7 +63071,6 @@
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.000006,
"supports_function_calling": true,
@@ -57913,7 +63081,6 @@
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.000006,
"supports_function_calling": true,
@@ -57924,7 +63091,6 @@
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.000002,
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
@@ -57936,7 +63102,6 @@
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.000002,
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
@@ -57948,7 +63113,6 @@
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.000003,
"supports_function_calling": true,
@@ -57959,7 +63123,6 @@
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 1.5e-7,
"supports_function_calling": true,
@@ -57970,7 +63133,6 @@
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 3e-7,
"supports_function_calling": true,
@@ -57983,7 +63145,6 @@
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 32000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 3e-7,
"supports_function_calling": true,
@@ -57995,7 +63156,6 @@
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 9e-7,
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
@@ -58007,7 +63167,6 @@
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 9e-7,
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
@@ -58019,7 +63178,6 @@
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.000002,
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
@@ -58031,7 +63189,6 @@
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 8191,
- "max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 0.000002,
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
@@ -58045,11 +63202,11 @@
"litellm_provider": "vertex_ai-moonshot_models",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_tool_choice": true,
"supports_web_search": true
},
@@ -58059,11 +63216,11 @@
"litellm_provider": "vertex_ai-openai_models",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 3.6e-7,
"output_cost_per_token_batches": 1.8e-7,
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
+ "supports_pdf_input": false,
"supports_reasoning": true
},
"vertex_ai/openai/gpt-oss-20b-maas": {
@@ -58072,10 +63229,10 @@
"litellm_provider": "vertex_ai-openai_models",
"max_input_tokens": 131072,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 2.5e-7,
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
+ "supports_pdf_input": false,
"supports_reasoning": true,
"cache_read_input_token_cost": 7e-9,
"input_cost_per_token_batches": 3.5e-8,
@@ -58088,7 +63245,6 @@
"litellm_provider": "vertex_ai-qwen_models",
"max_input_tokens": 262144,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 8.8e-7,
"output_cost_per_token_batches": 4.4e-7,
@@ -58098,6 +63254,7 @@
"us-south1"
],
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_tool_choice": true
},
"vertex_ai/qwen/qwen3-coder-480b-a35b-instruct-maas": {
@@ -58108,7 +63265,6 @@
"litellm_provider": "vertex_ai-qwen_models",
"max_input_tokens": 262144,
"max_output_tokens": 32768,
- "max_tokens": 32768,
"mode": "chat",
"output_cost_per_token": 0.0000018,
"output_cost_per_token_batches": 9e-7,
@@ -58117,6 +63273,7 @@
"global"
],
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_tool_choice": true
},
"vertex_ai/qwen/qwen3-next-80b-a3b-instruct-maas": {
@@ -58125,7 +63282,6 @@
"litellm_provider": "vertex_ai-qwen_models",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
@@ -58133,6 +63289,7 @@
"global"
],
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_tool_choice": true
},
"vertex_ai/qwen/qwen3-next-80b-a3b-thinking-maas": {
@@ -58141,7 +63298,6 @@
"litellm_provider": "vertex_ai-qwen_models",
"max_input_tokens": 262144,
"max_output_tokens": 262144,
- "max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.0000012,
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
@@ -58149,6 +63305,7 @@
"global"
],
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_tool_choice": true
},
"vertex_ai/xai/grok-4.1-fast-non-reasoning": {
@@ -58157,7 +63314,6 @@
"litellm_provider": "vertex_ai",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 5e-7,
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
@@ -58174,7 +63330,6 @@
"litellm_provider": "vertex_ai",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 5e-7,
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
@@ -58194,7 +63349,6 @@
"litellm_provider": "vertex_ai",
"max_input_tokens": 2000000,
"max_output_tokens": 2000000,
- "max_tokens": 2000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_above_200k_tokens": 0.000005,
@@ -58214,7 +63368,6 @@
"litellm_provider": "vertex_ai",
"max_input_tokens": 2000000,
"max_output_tokens": 2000000,
- "max_tokens": 2000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_above_200k_tokens": 0.000005,
@@ -58235,7 +63388,6 @@
"litellm_provider": "vertex_ai",
"max_input_tokens": 200000,
"max_output_tokens": 200000,
- "max_tokens": 200000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_above_200k_tokens": 0.000005,
@@ -58255,7 +63407,6 @@
"litellm_provider": "vertex_ai",
"max_input_tokens": 524288,
"max_output_tokens": 524288,
- "max_tokens": 524288,
"mode": "chat",
"output_cost_per_token": 0.000006,
"output_cost_per_token_above_200k_tokens": 0.000012,
@@ -58275,7 +63426,6 @@
"litellm_provider": "vertex_ai",
"max_input_tokens": 524288,
"max_output_tokens": 524288,
- "max_tokens": 524288,
"mode": "chat",
"output_cost_per_token": 0.000006,
"output_cost_per_token_above_200k_tokens": 0.000012,
@@ -58290,11 +63440,11 @@
"vertex_ai/zai-org/glm-4.7-maas": {
"cache_read_input_token_cost": 6e-8,
"deprecation_date": "2026-10-21",
+ "successor_model": "vertex_ai/zai-org/glm-5.2-maas",
"input_cost_per_token": 6e-7,
"litellm_provider": "vertex_ai-zai_models",
"max_input_tokens": 200000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000022,
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
@@ -58302,17 +63452,18 @@
"global"
],
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_reasoning": true,
"supports_tool_choice": true
},
"vertex_ai/zai-org/glm-5-maas": {
"cache_read_input_token_cost": 1e-7,
"deprecation_date": "2026-10-21",
+ "successor_model": "vertex_ai/zai-org/glm-5.2-maas",
"input_cost_per_token": 0.000001,
"litellm_provider": "vertex_ai-zai_models",
"max_input_tokens": 200000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000032,
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
@@ -58320,6 +63471,7 @@
"global"
],
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true
@@ -58330,7 +63482,6 @@
"litellm_provider": "vertex_ai-zai_models",
"max_input_tokens": 1000000,
"max_output_tokens": 64000,
- "max_tokens": 64000,
"mode": "chat",
"output_cost_per_token": 0.0000044,
"source": "https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing",
@@ -58338,6 +63489,7 @@
"global"
],
"supports_function_calling": true,
+ "supports_pdf_input": false,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_response_schema": true,
@@ -58347,7 +63499,6 @@
"litellm_provider": "volcengine",
"max_input_tokens": 256000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"source": "https://docs.volcengine.com/docs/82379/1330310",
"supports_function_calling": true,
@@ -58381,155 +63532,493 @@
}
]
},
- "volcengine/doubao-seed-2-0-lite-260215": {
- "litellm_provider": "volcengine",
- "max_input_tokens": 256000,
- "max_output_tokens": 128000,
- "max_tokens": 128000,
+ "volcengine/doubao-seed-2-0-lite-260215": {
+ "litellm_provider": "volcengine",
+ "max_input_tokens": 256000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "source": "https://docs.volcengine.com/docs/82379/1330310",
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": false,
+ "supports_vision": true,
+ "tiered_pricing": [
+ {
+ "input_cost_per_token": 8.7e-8,
+ "output_cost_per_token": 5.2e-7,
+ "range": [
+ 0,
+ 32000
+ ]
+ },
+ {
+ "input_cost_per_token": 1.3e-7,
+ "output_cost_per_token": 7.8e-7,
+ "range": [
+ 32000,
+ 128000
+ ]
+ },
+ {
+ "input_cost_per_token": 2.6e-7,
+ "output_cost_per_token": 0.0000016,
+ "range": [
+ 128000,
+ 256000
+ ]
+ }
+ ]
+ },
+ "volcengine/doubao-seed-2-0-mini-260215": {
+ "litellm_provider": "volcengine",
+ "max_input_tokens": 256000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "source": "https://docs.volcengine.com/docs/82379/1330310",
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": false,
+ "supports_vision": true,
+ "tiered_pricing": [
+ {
+ "input_cost_per_token": 2.9e-8,
+ "output_cost_per_token": 2.9e-7,
+ "range": [
+ 0,
+ 32000
+ ]
+ },
+ {
+ "input_cost_per_token": 5.8e-8,
+ "output_cost_per_token": 5.8e-7,
+ "range": [
+ 32000,
+ 128000
+ ]
+ },
+ {
+ "input_cost_per_token": 1.2e-7,
+ "output_cost_per_token": 0.0000012,
+ "range": [
+ 128000,
+ 256000
+ ]
+ }
+ ]
+ },
+ "volcengine/doubao-seed-2-0-pro-260215": {
+ "litellm_provider": "volcengine",
+ "max_input_tokens": 256000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "source": "https://docs.volcengine.com/docs/82379/1330310",
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": false,
+ "supports_vision": true,
+ "tiered_pricing": [
+ {
+ "input_cost_per_token": 4.6e-7,
+ "output_cost_per_token": 0.0000023,
+ "range": [
+ 0,
+ 32000
+ ]
+ },
+ {
+ "input_cost_per_token": 7e-7,
+ "output_cost_per_token": 0.0000035,
+ "range": [
+ 32000,
+ 128000
+ ]
+ },
+ {
+ "input_cost_per_token": 0.0000014,
+ "output_cost_per_token": 0.000007,
+ "range": [
+ 128000,
+ 256000
+ ]
+ }
+ ]
+ },
+ "volcengine/doubao-seed-2-1-lite-260915": {
+ "cache_read_input_audio_token_cost": 3.45e-7,
+ "cache_read_input_token_cost": 2.3e-8,
+ "input_cost_per_audio_token": 0.000001725,
+ "input_cost_per_token": 1.15e-7,
+ "litellm_provider": "volcengine",
+ "max_input_tokens": 1024000,
+ "max_output_tokens": 256000,
+ "mode": "chat",
+ "output_cost_per_token": 3.88126e-7,
+ "source": "https://www.volcengine.com/docs/82379/1544106",
+ "supports_audio_input": true,
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": false,
+ "supports_vision": true
+ },
+ "volcengine/doubao-seed-2-1-pro-260628": {
+ "cache_read_input_token_cost": 1.725e-7,
+ "input_cost_per_token": 8.625e-7,
+ "litellm_provider": "volcengine",
+ "max_input_tokens": 256000,
+ "max_output_tokens": 256000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000043125,
+ "source": "https://www.volcengine.com/docs/82379/1544106",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": false,
+ "supports_vision": true
+ },
+ "volcengine/doubao-seed-2-1-pro-260915": {
+ "cache_read_input_token_cost": 1.725e-7,
+ "input_cost_per_token": 8.625e-7,
+ "litellm_provider": "volcengine",
+ "max_input_tokens": 1024000,
+ "max_output_tokens": 256000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000043125,
+ "source": "https://www.volcengine.com/docs/82379/1544106",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": false,
+ "supports_vision": true
+ },
+ "volcengine/doubao-seed-2-1-turbo-260628": {
+ "cache_read_input_token_cost": 8.625e-8,
+ "input_cost_per_token": 4.3125e-7,
+ "litellm_provider": "volcengine",
+ "max_input_tokens": 256000,
+ "max_output_tokens": 256000,
+ "mode": "chat",
+ "output_cost_per_token": 0.00000215625,
+ "source": "https://www.volcengine.com/docs/82379/1544106",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": false,
+ "supports_vision": true
+ },
+ "wally/deepseek-v4-flash-0731": {
+ "cache_read_input_token_cost": 1.4e-8,
+ "input_cost_per_token": 4.4e-7,
+ "litellm_provider": "wally",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 65536,
+ "mode": "chat",
+ "output_cost_per_token": 0.00000132,
+ "reasoning_effort_levels": [
+ "none",
+ "minimal",
+ "low",
+ "medium",
+ "high",
+ "max"
+ ],
+ "source": "https://www.runwally.com/pricing",
+ "supported_modalities": [
+ "text"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_tool_choice": true,
+ "supports_vision": false
+ },
+ "wally/deepseek-v4-pro-fast": {
+ "cache_read_input_token_cost": 1.6e-7,
+ "input_cost_per_token": 0.00000191,
+ "litellm_provider": "wally",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 65536,
+ "mode": "chat",
+ "output_cost_per_token": 0.00000383,
+ "reasoning_effort_levels": [
+ "none",
+ "minimal",
+ "low",
+ "medium",
+ "high",
+ "max"
+ ],
+ "source": "https://www.runwally.com/pricing",
+ "supported_modalities": [
+ "text"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_tool_choice": true,
+ "supports_vision": false
+ },
+ "wally/deepseek-v4.1-flash": {
+ "cache_read_input_token_cost": 6e-9,
+ "input_cost_per_token": 3e-7,
+ "litellm_provider": "wally",
+ "max_input_tokens": 1048569,
+ "max_output_tokens": 65536,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000012,
+ "reasoning_effort_levels": [
+ "none",
+ "low",
+ "medium",
+ "high",
+ "max"
+ ],
+ "source": "https://www.runwally.com/pricing",
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
+ "wally/deepseek-v4.1-flash-1017": {
+ "cache_read_input_token_cost": 8e-9,
+ "input_cost_per_token": 3.75e-7,
+ "litellm_provider": "wally",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 65536,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000015,
+ "reasoning_effort_levels": [
+ "none",
+ "minimal",
+ "low",
+ "medium",
+ "high",
+ "max"
+ ],
+ "source": "https://inference.runanywhere.ai/v1/models",
+ "supported_modalities": [
+ "text"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": false,
+ "supports_system_messages": true,
+ "supports_tool_choice": true,
+ "supports_vision": false
+ },
+ "wally/deepseek-v4.1-flash-f2": {
+ "cache_read_input_token_cost": 6e-9,
+ "input_cost_per_token": 3e-7,
+ "litellm_provider": "wally",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 65536,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000012,
+ "reasoning_effort_levels": [
+ "none",
+ "minimal",
+ "low",
+ "medium",
+ "high",
+ "max"
+ ],
+ "source": "https://inference.runanywhere.ai/v1/models",
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": false,
+ "supports_system_messages": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
+ "wally/deepseek-v4.1-flash-fast": {
+ "cache_read_input_token_cost": 1.4e-8,
+ "input_cost_per_token": 6e-7,
+ "litellm_provider": "wally",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 65536,
"mode": "chat",
- "source": "https://docs.volcengine.com/docs/82379/1330310",
+ "output_cost_per_token": 0.0000024,
+ "reasoning_effort_levels": [
+ "none",
+ "low",
+ "medium",
+ "high",
+ "max"
+ ],
+ "source": "https://www.runwally.com/pricing",
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
"supports_function_calling": true,
+ "supports_prompt_caching": true,
"supports_reasoning": true,
- "supports_tool_choice": false,
- "supports_vision": true,
- "tiered_pricing": [
- {
- "input_cost_per_token": 8.7e-8,
- "output_cost_per_token": 5.2e-7,
- "range": [
- 0,
- 32000
- ]
- },
- {
- "input_cost_per_token": 1.3e-7,
- "output_cost_per_token": 7.8e-7,
- "range": [
- 32000,
- 128000
- ]
- },
- {
- "input_cost_per_token": 2.6e-7,
- "output_cost_per_token": 0.0000016,
- "range": [
- 128000,
- 256000
- ]
- }
- ]
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
},
- "volcengine/doubao-seed-2-0-mini-260215": {
- "litellm_provider": "volcengine",
- "max_input_tokens": 256000,
- "max_output_tokens": 128000,
- "max_tokens": 128000,
+ "wally/glm-5.3-fast": {
+ "cache_read_input_token_cost": 3.9e-7,
+ "input_cost_per_token": 0.0000021,
+ "litellm_provider": "wally",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 131072,
"mode": "chat",
- "source": "https://docs.volcengine.com/docs/82379/1330310",
+ "output_cost_per_token": 0.0000066,
+ "reasoning_effort_levels": [
+ "low",
+ "medium",
+ "high",
+ "max"
+ ],
+ "source": "https://www.runwally.com/pricing",
+ "supported_modalities": [
+ "text"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
"supports_function_calling": true,
+ "supports_prompt_caching": true,
"supports_reasoning": true,
- "supports_tool_choice": false,
- "supports_vision": true,
- "tiered_pricing": [
- {
- "input_cost_per_token": 2.9e-8,
- "output_cost_per_token": 2.9e-7,
- "range": [
- 0,
- 32000
- ]
- },
- {
- "input_cost_per_token": 5.8e-8,
- "output_cost_per_token": 5.8e-7,
- "range": [
- 32000,
- 128000
- ]
- },
- {
- "input_cost_per_token": 1.2e-7,
- "output_cost_per_token": 0.0000012,
- "range": [
- 128000,
- 256000
- ]
- }
- ]
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_tool_choice": true,
+ "supports_vision": false
},
- "volcengine/doubao-seed-2-0-pro-260215": {
- "litellm_provider": "volcengine",
- "max_input_tokens": 256000,
- "max_output_tokens": 128000,
- "max_tokens": 128000,
+ "wally/glm-5.3-flash": {
+ "cache_read_input_token_cost": 7.6e-8,
+ "input_cost_per_token": 2.72e-7,
+ "litellm_provider": "wally",
+ "max_input_tokens": 1048567,
+ "max_output_tokens": 131072,
"mode": "chat",
- "source": "https://docs.volcengine.com/docs/82379/1330310",
+ "output_cost_per_token": 6.5e-7,
+ "reasoning_effort_levels": [
+ "minimal",
+ "low",
+ "medium",
+ "high",
+ "xhigh",
+ "max"
+ ],
+ "source": "https://www.runwally.com/pricing",
+ "supported_modalities": [
+ "text"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
"supports_function_calling": true,
+ "supports_prompt_caching": true,
"supports_reasoning": true,
- "supports_tool_choice": false,
- "supports_vision": true,
- "tiered_pricing": [
- {
- "input_cost_per_token": 4.6e-7,
- "output_cost_per_token": 0.0000023,
- "range": [
- 0,
- 32000
- ]
- },
- {
- "input_cost_per_token": 7e-7,
- "output_cost_per_token": 0.0000035,
- "range": [
- 32000,
- 128000
- ]
- },
- {
- "input_cost_per_token": 0.0000014,
- "output_cost_per_token": 0.000007,
- "range": [
- 128000,
- 256000
- ]
- }
- ]
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_tool_choice": true,
+ "supports_vision": false
},
- "volcengine/doubao-seed-2-1-pro-260628": {
- "cache_read_input_token_cost": 1.725e-7,
- "input_cost_per_token": 8.625e-7,
- "litellm_provider": "volcengine",
- "max_input_tokens": 256000,
- "max_output_tokens": 256000,
- "max_tokens": 256000,
+ "wally/kimi-k3": {
+ "cache_read_input_token_cost": 3e-7,
+ "input_cost_per_token": 0.000003,
+ "litellm_provider": "wally",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 65536,
"mode": "chat",
- "output_cost_per_token": 0.0000043125,
- "source": "https://www.volcengine.com/docs/82379/1544106",
+ "output_cost_per_token": 0.000015,
+ "reasoning_effort_levels": [
+ "none",
+ "low",
+ "medium",
+ "high",
+ "xhigh",
+ "max"
+ ],
+ "source": "https://www.runwally.com/pricing",
+ "supported_modalities": [
+ "text",
+ "image"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
"supports_function_calling": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
- "supports_tool_choice": false,
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_tool_choice": true,
"supports_vision": true
},
- "volcengine/doubao-seed-2-1-turbo-260628": {
- "cache_read_input_token_cost": 8.625e-8,
- "input_cost_per_token": 4.3125e-7,
- "litellm_provider": "volcengine",
- "max_input_tokens": 256000,
- "max_output_tokens": 256000,
- "max_tokens": 256000,
+ "wally/minimax-m3": {
+ "cache_read_input_token_cost": 6.6e-8,
+ "input_cost_per_token": 3.3e-7,
+ "litellm_provider": "wally",
+ "max_input_tokens": 524287,
+ "max_output_tokens": 131072,
"mode": "chat",
- "output_cost_per_token": 0.00000215625,
- "source": "https://www.volcengine.com/docs/82379/1544106",
+ "output_cost_per_token": 0.00000132,
+ "reasoning_effort_levels": [
+ "none",
+ "low",
+ "medium",
+ "high",
+ "xhigh",
+ "max"
+ ],
+ "source": "https://www.runwally.com/pricing",
+ "supported_modalities": [
+ "text"
+ ],
+ "supported_output_modalities": [
+ "text"
+ ],
"supports_function_calling": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
- "supports_tool_choice": false,
- "supports_vision": true
+ "supports_response_schema": true,
+ "supports_system_messages": true,
+ "supports_tool_choice": true,
+ "supports_vision": false
},
"wandb/JetBrains/Mellum2-12B-A2.5B-Instruct": {
"deprecation_date": "2026-10-05",
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"max_input_tokens": 131000,
"input_cost_per_token": 5e-8,
"output_cost_per_token": 1e-7,
@@ -58540,7 +64029,7 @@
},
"wandb/MiniMaxAI/MiniMax-M3": {
"supports_reasoning": true,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262000,
"input_cost_per_token": 2.3e-7,
"output_cost_per_token": 9.6e-7,
@@ -58553,7 +64042,7 @@
},
"wandb/OpenPipe/Qwen3-14B-Instruct": {
"deprecation_date": "2026-10-05",
- "max_tokens": 32768,
+ "max_output_tokens": 32768,
"max_input_tokens": 32800,
"input_cost_per_token": 5e-8,
"output_cost_per_token": 2.2e-7,
@@ -58564,7 +64053,7 @@
},
"wandb/Qwen/Qwen3-30B-A3B-Instruct-2507": {
"deprecation_date": "2026-10-05",
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262000,
"input_cost_per_token": 1e-7,
"output_cost_per_token": 3e-7,
@@ -58576,7 +64065,7 @@
"wandb/Qwen/Qwen3.5-35B-A3B": {
"deprecation_date": "2026-10-05",
"supports_reasoning": true,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262000,
"input_cost_per_token": 2.5e-7,
"output_cost_per_token": 0.00000125,
@@ -58587,7 +64076,7 @@
},
"wandb/Qwen/Qwen3.6-27B": {
"supports_reasoning": true,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262000,
"input_cost_per_token": 6e-7,
"output_cost_per_token": 0.0000036,
@@ -58601,7 +64090,7 @@
},
"wandb/Qwen/Qwen3.6-35B-A3B": {
"supports_reasoning": true,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262000,
"input_cost_per_token": 2.5e-7,
"output_cost_per_token": 0.00000125,
@@ -58612,7 +64101,7 @@
},
"wandb/Qwen/Qwen3.8-27B": {
"supports_reasoning": true,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262000,
"input_cost_per_token": 4e-7,
"output_cost_per_token": 0.000003,
@@ -58625,18 +64114,17 @@
},
"wandb/deepseek-ai/DeepSeek-V3.1": {
"supports_reasoning": true,
- "max_tokens": 128000,
- "max_input_tokens": 161000,
+ "max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 5.5e-7,
"output_cost_per_token": 0.00000165,
"litellm_provider": "wandb",
"mode": "chat",
- "source": "https://wandb.ai/site/pricing/tokens/"
+ "source": "https://www.coreweave.com/products/coreweave-forge/serverless-inference"
},
"wandb/deepseek-ai/DeepSeek-V4-Flash": {
"supports_reasoning": true,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"max_input_tokens": 1049000,
"input_cost_per_token": 1.4e-7,
"output_cost_per_token": 2.8e-7,
@@ -58650,7 +64138,7 @@
},
"wandb/deepseek-ai/DeepSeek-V4-Flash-0731": {
"supports_reasoning": true,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262000,
"input_cost_per_token": 1.3e-7,
"output_cost_per_token": 2.8e-7,
@@ -58663,7 +64151,7 @@
},
"wandb/deepseek-ai/DeepSeek-V4-Pro": {
"supports_reasoning": true,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"max_input_tokens": 1049000,
"input_cost_per_token": 0.00000115,
"output_cost_per_token": 0.00000255,
@@ -58691,7 +64179,7 @@
"input_cost_per_token": 2e-7,
"litellm_provider": "wandb",
"max_input_tokens": 1049000,
- "max_tokens": 1048576,
+ "max_output_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 6.5e-7,
"source": "https://wandb.ai/site/pricing/tokens/",
@@ -58704,7 +64192,7 @@
"input_cost_per_token": 1e-7,
"litellm_provider": "wandb",
"max_input_tokens": 262000,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 3e-7,
"source": "https://wandb.ai/site/pricing/tokens/",
@@ -58716,7 +64204,7 @@
},
"wandb/google/gemma-4-31B-it": {
"supports_reasoning": true,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262000,
"input_cost_per_token": 1e-7,
"output_cost_per_token": 3.4e-7,
@@ -58727,7 +64215,7 @@
},
"wandb/ibm-granite/granite-4.1-8b": {
"deprecation_date": "2026-10-05",
- "max_tokens": 131072,
+ "max_output_tokens": 131072,
"max_input_tokens": 131000,
"input_cost_per_token": 5e-8,
"output_cost_per_token": 1e-7,
@@ -58749,7 +64237,7 @@
},
"wandb/meta-llama/Llama-3.1-70B-Instruct": {
"deprecation_date": "2026-10-05",
- "max_tokens": 128000,
+ "max_output_tokens": 128000,
"max_input_tokens": 131000,
"input_cost_per_token": 8e-7,
"output_cost_per_token": 8e-7,
@@ -58759,17 +64247,15 @@
"source": "https://wandb.ai/site/pricing/tokens/"
},
"wandb/meta-llama/Llama-3.1-8B-Instruct": {
- "max_tokens": 128000,
- "max_input_tokens": 131000,
+ "max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 2.2e-7,
"output_cost_per_token": 2.2e-7,
"litellm_provider": "wandb",
"mode": "chat",
- "source": "https://wandb.ai/site/pricing/tokens/"
+ "source": "https://www.coreweave.com/products/coreweave-forge/serverless-inference"
},
"wandb/meta-llama/Llama-3.3-70B-Instruct": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 7.1e-7,
@@ -58779,7 +64265,6 @@
"source": "https://wandb.ai/site/pricing/tokens/"
},
"wandb/moonshotai/Kimi-K2.5": {
- "max_tokens": 262144,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"cache_read_input_token_cost": 1e-7,
@@ -58795,7 +64280,7 @@
},
"wandb/moonshotai/Kimi-K2.6": {
"supports_reasoning": true,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262000,
"input_cost_per_token": 6.5e-7,
"output_cost_per_token": 0.00000341,
@@ -58808,7 +64293,7 @@
},
"wandb/moonshotai/Kimi-K2.7-Code": {
"supports_reasoning": true,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262000,
"input_cost_per_token": 7.1e-7,
"output_cost_per_token": 0.0000035,
@@ -58821,7 +64306,7 @@
},
"wandb/nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B": {
"supports_reasoning": true,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262000,
"input_cost_per_token": 5e-7,
"output_cost_per_token": 0.00000215,
@@ -58834,7 +64319,7 @@
},
"wandb/nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B": {
"supports_reasoning": true,
- "max_tokens": 262144,
+ "max_output_tokens": 262144,
"max_input_tokens": 262000,
"input_cost_per_token": 7e-8,
"output_cost_per_token": 2e-7,
@@ -58846,14 +64331,14 @@
"source": "https://wandb.ai/site/pricing/tokens/"
},
"wandb/nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B": {
- "cache_read_input_token_cost": 2e-8,
- "input_cost_per_token": 1.5e-7,
+ "cache_read_input_token_cost": 5e-8,
+ "input_cost_per_token": 2.5e-7,
"litellm_provider": "wandb",
"max_input_tokens": 1049000,
- "max_tokens": 943718,
+ "max_output_tokens": 943718,
"mode": "chat",
- "output_cost_per_token": 7.5e-7,
- "source": "https://openrouter.ai/api/v1/models/nvidia/nemotron-3.5-super-vl/endpoints",
+ "output_cost_per_token": 0.0000015,
+ "source": "https://www.coreweave.com/products/coreweave-forge/serverless-inference",
"supports_function_calling": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
@@ -58863,7 +64348,6 @@
},
"wandb/openai/gpt-oss-120b": {
"supports_reasoning": true,
- "max_tokens": 131072,
"max_input_tokens": 131000,
"max_output_tokens": 131072,
"input_cost_per_token": 3e-8,
@@ -58874,7 +64358,6 @@
},
"wandb/openai/gpt-oss-20b": {
"supports_reasoning": true,
- "max_tokens": 131072,
"max_input_tokens": 131000,
"max_output_tokens": 131072,
"input_cost_per_token": 3e-8,
@@ -58883,10 +64366,25 @@
"mode": "chat",
"source": "https://wandb.ai/site/pricing/tokens/"
},
+ "wandb/reflection/Beam-1.0-501B-A23B": {
+ "cache_read_input_token_cost": 1e-7,
+ "input_cost_per_token": 0.000001,
+ "litellm_provider": "wandb",
+ "max_input_tokens": 1049000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000003,
+ "source": "https://www.coreweave.com/products/coreweave-forge/serverless-inference",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": false
+ },
"wandb/zai-org/GLM-5.2": {
"supports_reasoning": true,
- "max_tokens": 262144,
- "max_input_tokens": 1049000,
+ "max_output_tokens": 262144,
+ "max_input_tokens": 262000,
"input_cost_per_token": 7.6e-7,
"output_cost_per_token": 0.00000242,
"cache_read_input_token_cost": 1.4e-7,
@@ -58894,7 +64392,22 @@
"litellm_provider": "wandb",
"mode": "chat",
"supports_vision": false,
- "source": "https://wandb.ai/site/pricing/tokens/"
+ "source": "https://www.coreweave.com/products/coreweave-forge/serverless-inference"
+ },
+ "wandb/zai-org/GLM-5.3": {
+ "cache_read_input_token_cost": 1.9e-7,
+ "input_cost_per_token": 0.0000012,
+ "litellm_provider": "wandb",
+ "max_input_tokens": 1049000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000004,
+ "source": "https://www.coreweave.com/products/coreweave-forge/serverless-inference",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": false
},
"wandb/zai-org/GLM-5.3-Flash": {
"cache_read_input_token_cost": 5e-8,
@@ -58912,7 +64425,6 @@
"supports_vision": true
},
"watsonx/bigscience/mt0-xxl": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 0.000001908,
@@ -58925,7 +64437,6 @@
"source": "https://dataplatform.cloud.ibm.com/docs/content/wsj/analyze-data/fm-models.html?context=wx"
},
"watsonx/bigscience/mt0-xxl-13b": {
- "max_tokens": 4096,
"max_input_tokens": 4096,
"max_output_tokens": 4096,
"input_cost_per_token": 0.000001908,
@@ -58938,7 +64449,6 @@
"source": "https://dataplatform.cloud.ibm.com/docs/content/wsj/analyze-data/fm-models.html?context=wx"
},
"watsonx/core42/jais-13b-chat": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 0.0005,
@@ -58950,7 +64460,6 @@
"supports_vision": false
},
"watsonx/google/flan-t5-xl-3b": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 6e-7,
@@ -58962,7 +64471,6 @@
"supports_vision": false
},
"watsonx/ibm/granite-13b-chat-v2": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 6e-7,
@@ -58974,7 +64482,6 @@
"supports_vision": false
},
"watsonx/ibm/granite-13b-instruct-v2": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 6e-7,
@@ -58986,7 +64493,6 @@
"supports_vision": false
},
"watsonx/ibm/granite-3-3-8b-instruct": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 2e-7,
@@ -59002,7 +64508,6 @@
"litellm_provider": "watsonx",
"max_input_tokens": 8192,
"max_output_tokens": 1024,
- "max_tokens": 1024,
"mode": "chat",
"output_cost_per_token": 2e-7,
"supports_audio_input": false,
@@ -59016,7 +64521,6 @@
"supports_vision": false
},
"watsonx/ibm/granite-4-h-small": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 6.36e-8,
@@ -59029,7 +64533,6 @@
"source": "https://dataplatform.cloud.ibm.com/docs/content/wsj/analyze-data/fm-models.html?context=wx"
},
"watsonx/ibm/granite-guardian-3-2-2b": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 1e-7,
@@ -59041,7 +64544,6 @@
"supports_vision": false
},
"watsonx/ibm/granite-guardian-3-3-8b": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 2e-7,
@@ -59053,7 +64555,6 @@
"supports_vision": false
},
"watsonx/ibm/granite-ttm-1024-96-r2": {
- "max_tokens": 512,
"max_input_tokens": 512,
"max_output_tokens": 512,
"input_cost_per_token": 3.8e-7,
@@ -59065,7 +64566,6 @@
"supports_vision": false
},
"watsonx/ibm/granite-ttm-1536-96-r2": {
- "max_tokens": 512,
"max_input_tokens": 512,
"max_output_tokens": 512,
"input_cost_per_token": 3.8e-7,
@@ -59077,7 +64577,6 @@
"supports_vision": false
},
"watsonx/ibm/granite-ttm-512-96-r2": {
- "max_tokens": 512,
"max_input_tokens": 512,
"max_output_tokens": 512,
"input_cost_per_token": 3.8e-7,
@@ -59089,7 +64588,6 @@
"supports_vision": false
},
"watsonx/ibm/granite-vision-3-2-2b": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 1e-7,
@@ -59101,7 +64599,6 @@
"supports_vision": true
},
"watsonx/meta-llama/llama-3-2-11b-vision-instruct": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 3.5e-7,
@@ -59113,7 +64610,6 @@
"supports_vision": true
},
"watsonx/meta-llama/llama-3-2-1b-instruct": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 1e-7,
@@ -59125,7 +64621,6 @@
"supports_vision": false
},
"watsonx/meta-llama/llama-3-2-3b-instruct": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 1.5e-7,
@@ -59137,7 +64632,6 @@
"supports_vision": false
},
"watsonx/meta-llama/llama-3-2-90b-vision-instruct": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 0.000002,
@@ -59149,7 +64643,6 @@
"supports_vision": true
},
"watsonx/meta-llama/llama-3-3-70b-instruct": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 7.526e-7,
@@ -59162,7 +64655,6 @@
"source": "https://dataplatform.cloud.ibm.com/docs/content/wsj/analyze-data/fm-models.html?context=wx"
},
"watsonx/meta-llama/llama-4-maverick-17b": {
- "max_tokens": 8192,
"max_input_tokens": 131072,
"max_output_tokens": 8192,
"input_cost_per_token": 3.71e-7,
@@ -59175,7 +64667,6 @@
"source": "https://dataplatform.cloud.ibm.com/docs/content/wsj/analyze-data/fm-models.html?context=wx"
},
"watsonx/meta-llama/llama-4-maverick-17b-128e-instruct-fp8": {
- "max_tokens": 8192,
"max_input_tokens": 131072,
"max_output_tokens": 8192,
"input_cost_per_token": 3.71e-7,
@@ -59188,7 +64679,6 @@
"source": "https://dataplatform.cloud.ibm.com/docs/content/wsj/analyze-data/fm-models.html?context=wx"
},
"watsonx/meta-llama/llama-guard-3-11b-vision": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 3.5e-7,
@@ -59204,7 +64694,6 @@
"litellm_provider": "watsonx",
"max_input_tokens": 131072,
"max_output_tokens": 16384,
- "max_tokens": 16384,
"mode": "chat",
"output_cost_per_token": 0.00001,
"supports_audio_input": false,
@@ -59218,7 +64707,6 @@
"supports_vision": false
},
"watsonx/mistralai/mistral-medium-2505": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 0.000003,
@@ -59230,7 +64718,6 @@
"supports_vision": false
},
"watsonx/mistralai/mistral-small-2503": {
- "max_tokens": 32000,
"max_input_tokens": 32000,
"max_output_tokens": 32000,
"input_cost_per_token": 1e-7,
@@ -59242,7 +64729,6 @@
"supports_vision": false
},
"watsonx/mistralai/mistral-small-3-1-24b-instruct-2503": {
- "max_tokens": 16384,
"max_input_tokens": 131072,
"max_output_tokens": 16384,
"input_cost_per_token": 1.06e-7,
@@ -59255,7 +64741,6 @@
"source": "https://dataplatform.cloud.ibm.com/docs/content/wsj/analyze-data/fm-models.html?context=wx"
},
"watsonx/mistralai/pixtral-12b-2409": {
- "max_tokens": 128000,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"input_cost_per_token": 3.5e-7,
@@ -59267,7 +64752,6 @@
"supports_vision": true
},
"watsonx/openai/gpt-oss-120b": {
- "max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 1.59e-7,
@@ -59280,7 +64764,6 @@
"source": "https://dataplatform.cloud.ibm.com/docs/content/wsj/analyze-data/fm-models.html?context=wx"
},
"watsonx/sdaia/allam-1-13b-instruct": {
- "max_tokens": 8192,
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"input_cost_per_token": 0.0000018,
@@ -59299,7 +64782,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 4096,
"max_output_tokens": 4096,
- "max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 6e-7,
"output_cost_per_token_batches": 3e-7,
@@ -59309,23 +64791,25 @@
"supports_vision": true
},
"writer.palmyra-x4-v1:0": {
+ "deprecation_date": "2027-03-09",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-writer-palmyra-x4.md",
"input_cost_per_token": 0.0000025,
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.00001,
- "source": "https://aws.amazon.com/bedrock/pricing/",
+ "source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-writer-palmyra-x4.md",
"supports_function_calling": true,
"supports_pdf_input": true
},
"writer.palmyra-x5-v1:0": {
+ "deprecation_date": "2027-03-21",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-writer-palmyra-x5.md",
"input_cost_per_token": 6e-7,
"litellm_provider": "bedrock_converse",
"max_input_tokens": 128000,
"max_output_tokens": 8192,
- "max_tokens": 8192,
"mode": "chat",
"output_cost_per_token": 0.000006,
"source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-writer-palmyra-x5.md",
@@ -59419,7 +64903,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_batches": 0.000002,
@@ -59447,7 +64930,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_batches": 0.000002,
@@ -59475,7 +64957,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_batches": 0.000002,
@@ -59502,7 +64983,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_batches": 0.000002,
@@ -59528,7 +65008,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://api.x.ai/v1/language-models",
@@ -59550,7 +65029,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://api.x.ai/v1/language-models",
@@ -59572,7 +65050,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://api.x.ai/v1/language-models",
@@ -59593,7 +65070,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://api.x.ai/v1/language-models",
@@ -59615,7 +65091,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://api.x.ai/v1/language-models",
@@ -59637,7 +65112,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://api.x.ai/v1/language-models",
@@ -59658,7 +65132,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://api.x.ai/v1/language-models",
@@ -59680,7 +65153,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://api.x.ai/v1/language-models",
@@ -59701,7 +65173,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://api.x.ai/v1/language-models",
@@ -59723,7 +65194,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://api.x.ai/v1/language-models",
@@ -59745,7 +65215,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://api.x.ai/v1/language-models",
@@ -59766,7 +65235,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://api.x.ai/v1/language-models",
@@ -59788,7 +65256,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://api.x.ai/v1/language-models",
@@ -59810,7 +65277,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://api.x.ai/v1/language-models",
@@ -59831,7 +65297,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://api.x.ai/v1/language-models",
@@ -59855,7 +65320,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_batches": 0.000002,
@@ -59880,7 +65344,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://api.x.ai/v1/language-models",
@@ -59903,7 +65366,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_batches": 0.000002,
@@ -59930,7 +65392,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_batches": 0.000002,
@@ -59956,7 +65417,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"source": "https://api.x.ai/v1/language-models",
@@ -59980,7 +65440,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_batches": 0.000002,
@@ -60011,9 +65470,10 @@
"input_cost_per_token_above_200k_tokens_batches": 0.000002,
"input_cost_per_token_batches": 0.000001,
"litellm_provider": "xai",
+ "token_count_framing": 185,
+ "token_count_tool_framing": 214,
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_above_200k_tokens": 0.000005,
@@ -60041,7 +65501,6 @@
"litellm_provider": "xai",
"max_input_tokens": 1000000,
"max_output_tokens": 1000000,
- "max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 0.0000025,
"output_cost_per_token_above_200k_tokens": 0.000005,
@@ -60065,7 +65524,6 @@
"litellm_provider": "xai",
"max_input_tokens": 500000,
"max_output_tokens": 500000,
- "max_tokens": 500000,
"mode": "chat",
"output_cost_per_token": 0.000006,
"output_cost_per_token_above_200k_tokens": 0.000012,
@@ -60087,7 +65545,6 @@
"litellm_provider": "xai",
"max_input_tokens": 500000,
"max_output_tokens": 500000,
- "max_tokens": 500000,
"mode": "chat",
"output_cost_per_token": 0.000006,
"output_cost_per_token_above_200k_tokens": 0.000012,
@@ -60109,7 +65566,6 @@
"litellm_provider": "xai",
"max_input_tokens": 500000,
"max_output_tokens": 500000,
- "max_tokens": 500000,
"mode": "chat",
"output_cost_per_token": 0.000006,
"output_cost_per_token_above_200k_tokens": 0.000012,
@@ -60125,16 +65581,21 @@
"xai/grok-4.7": {
"cache_read_input_token_cost": 5e-7,
"cache_read_input_token_cost_above_200k_tokens": 0.000001,
+ "cache_read_input_token_cost_above_200k_tokens_batches": 8e-7,
+ "cache_read_input_token_cost_batches": 4e-7,
"input_cost_per_image_token": 0.000002,
"input_cost_per_token": 0.000002,
"input_cost_per_token_above_200k_tokens": 0.000004,
+ "input_cost_per_token_above_200k_tokens_batches": 0.0000032,
+ "input_cost_per_token_batches": 0.0000016,
"litellm_provider": "xai",
"max_input_tokens": 500000,
"max_output_tokens": 500000,
- "max_tokens": 500000,
"mode": "chat",
"output_cost_per_token": 0.000006,
"output_cost_per_token_above_200k_tokens": 0.000012,
+ "output_cost_per_token_above_200k_tokens_batches": 0.0000096,
+ "output_cost_per_token_batches": 0.0000048,
"source": "https://api.x.ai/v1/language-models",
"supports_function_calling": true,
"supports_prompt_caching": true,
@@ -60163,7 +65624,6 @@
"litellm_provider": "xai",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 0.000002,
"source": "https://api.x.ai/v1/language-models",
@@ -60187,7 +65647,6 @@
"litellm_provider": "xai",
"max_input_tokens": 500000,
"max_output_tokens": 500000,
- "max_tokens": 500000,
"mode": "chat",
"output_cost_per_token": 0.000006,
"output_cost_per_token_above_200k_tokens": 0.000012,
@@ -60209,7 +65668,6 @@
"litellm_provider": "xai",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 0.000002,
"output_cost_per_token_above_200k_tokens": 0.000004,
@@ -60224,13 +65682,13 @@
"xai/grok-code-fast-1": {
"cache_read_input_token_cost": 2e-7,
"cache_read_input_token_cost_above_200k_tokens": 4e-7,
+ "deprecation_date": "2026-05-15",
"input_cost_per_image_token": 0.000001,
"input_cost_per_token": 0.000001,
"input_cost_per_token_above_200k_tokens": 0.000002,
"litellm_provider": "xai",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 0.000002,
"output_cost_per_token_above_200k_tokens": 0.000004,
@@ -60251,7 +65709,6 @@
"litellm_provider": "xai",
"max_input_tokens": 256000,
"max_output_tokens": 256000,
- "max_tokens": 256000,
"mode": "chat",
"output_cost_per_token": 0.000002,
"output_cost_per_token_above_200k_tokens": 0.000004,
@@ -60283,7 +65740,6 @@
"litellm_provider": "xiaomi_mimo",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 2.8e-7,
"source": "https://platform.xiaomimimo.com/static/docs/price/pay-as-you-go.md",
@@ -60306,7 +65762,6 @@
"litellm_provider": "xiaomi_mimo",
"max_input_tokens": 1048576,
"max_output_tokens": 131072,
- "max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 8.7e-7,
"source": "https://platform.xiaomimimo.com/static/docs/price/pay-as-you-go.md",
@@ -60325,6 +65780,8 @@
},
"zai.glm-4.7": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
+ "successor_model": "zai.glm-5",
"input_cost_per_token": 6e-7,
"input_cost_per_token_batches": 3e-7,
"input_cost_per_token_flex": 3e-7,
@@ -60332,7 +65789,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 203000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 0.0000022,
"output_cost_per_token_batches": 0.0000011,
@@ -60349,6 +65805,7 @@
},
"zai.glm-4.7-flash": {
"deprecation_date": "2027-03-30",
+ "deprecation_source": "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html",
"input_cost_per_token": 7e-8,
"input_cost_per_token_batches": 3.5e-8,
"input_cost_per_token_flex": 3.5e-8,
@@ -60356,7 +65813,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 203000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 4e-7,
"output_cost_per_token_batches": 2e-7,
@@ -60379,7 +65835,6 @@
"litellm_provider": "bedrock_converse",
"max_input_tokens": 200000,
"max_output_tokens": 128000,
- "max_tokens": 128000,
"mode": "chat",
"output_cost_per_token_batches": 0.0000016,
"output_cost_per_token_priority": 0.0000056,
@@ -60589,6 +66044,7 @@
"supports_function_calling": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
+ "supports_response_schema": true,
"supports_tool_choice": true
},
"zai/glm-5.3-flash": {
@@ -60603,8 +66059,198 @@
"supports_function_calling": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
+ "supports_response_schema": true,
"supports_tool_choice": true,
"source": "https://docs.z.ai/guides/overview/pricing",
"supports_vision": true
+ },
+ "zai/glm-5v-turbo": {
+ "cache_read_input_token_cost": 2.4e-7,
+ "input_cost_per_token": 0.0000012,
+ "litellm_provider": "zai",
+ "max_input_tokens": 200000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.000004,
+ "source": "https://vercel.com/ai-gateway/models/glm-5v-turbo",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
+ "zerogpu/LFM2.5-1.2B-Instruct": {
+ "input_cost_per_token": 2e-8,
+ "litellm_provider": "zerogpu",
+ "max_input_tokens": 32768,
+ "max_output_tokens": 8192,
+ "mode": "chat",
+ "output_cost_per_token": 5e-8,
+ "source": "https://docs.zerogpu.ai/docs/model-catalog"
+ },
+ "zerogpu/LFM2.5-1.2B-Thinking": {
+ "input_cost_per_token": 2e-8,
+ "litellm_provider": "zerogpu",
+ "max_input_tokens": 32768,
+ "max_output_tokens": 8192,
+ "mode": "chat",
+ "output_cost_per_token": 5e-8,
+ "source": "https://docs.zerogpu.ai/docs/model-catalog"
+ },
+ "zerogpu/deepseek-v4.1-flash": {
+ "cache_read_input_token_cost": 3e-9,
+ "input_cost_per_token": 3e-7,
+ "litellm_provider": "zerogpu",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 65536,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000012,
+ "source": "https://docs.zerogpu.ai/docs/model-catalog",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true
+ },
+ "zerogpu/glm-5.3-flash": {
+ "cache_read_input_token_cost": 1.5e-8,
+ "input_cost_per_token": 1e-7,
+ "litellm_provider": "zerogpu",
+ "max_input_tokens": 1048576,
+ "max_output_tokens": 32768,
+ "mode": "chat",
+ "output_cost_per_token": 3.5e-7,
+ "source": "https://docs.zerogpu.ai/docs/model-catalog",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true
+ },
+ "zerogpu/gpt-4.1-mini": {
+ "cache_read_input_token_cost": 1e-7,
+ "input_cost_per_token": 4e-7,
+ "litellm_provider": "zerogpu",
+ "max_input_tokens": 1047576,
+ "max_output_tokens": 32768,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000016,
+ "source": "https://docs.zerogpu.ai/docs/model-catalog",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true
+ },
+ "zerogpu/gpt-5.4-nano": {
+ "cache_read_input_token_cost": 2e-8,
+ "input_cost_per_token": 2e-7,
+ "litellm_provider": "zerogpu",
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.00000125,
+ "source": "https://docs.zerogpu.ai/docs/model-catalog",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true
+ },
+ "zerogpu/gpt-5.6-luna": {
+ "cache_read_input_token_cost": 2e-7,
+ "input_cost_per_token": 2e-7,
+ "litellm_provider": "zerogpu",
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000012,
+ "source": "https://docs.zerogpu.ai/docs/model-catalog",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true
+ },
+ "zerogpu/gpt-6-luna": {
+ "cache_read_input_token_cost": 1e-8,
+ "input_cost_per_token": 1e-7,
+ "litellm_provider": "zerogpu",
+ "max_input_tokens": 272000,
+ "max_output_tokens": 128000,
+ "mode": "chat",
+ "output_cost_per_token": 5e-7,
+ "source": "https://docs.zerogpu.ai/docs/model-catalog",
+ "supports_function_calling": true,
+ "supports_prompt_caching": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
+ },
+ "zerogpu/gpt-oss-120b": {
+ "cache_read_input_token_cost": 3e-8,
+ "input_cost_per_token": 1.5e-7,
+ "litellm_provider": "zerogpu",
+ "max_input_tokens": 128000,
+ "max_output_tokens": 32768,
+ "mode": "chat",
+ "output_cost_per_token": 6e-7,
+ "source": "https://docs.zerogpu.ai/docs/model-catalog",
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true
+ },
+ "zerogpu/llama-3.1-8b-instruct-fast": {
+ "cache_read_input_token_cost": 2.5e-8,
+ "input_cost_per_token": 1.5e-7,
+ "litellm_provider": "zerogpu",
+ "max_input_tokens": 131072,
+ "max_output_tokens": 8192,
+ "mode": "chat",
+ "output_cost_per_token": 2.8e-7,
+ "source": "https://docs.zerogpu.ai/docs/model-catalog",
+ "supports_function_calling": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true
+ },
+ "zerogpu/llama-3.2-3b-instruct-fast": {
+ "cache_read_input_token_cost": 2.5e-8,
+ "input_cost_per_token": 5e-8,
+ "litellm_provider": "zerogpu",
+ "max_input_tokens": 131072,
+ "max_output_tokens": 8192,
+ "mode": "chat",
+ "output_cost_per_token": 3e-7,
+ "source": "https://docs.zerogpu.ai/docs/model-catalog"
+ },
+ "zerogpu/qwen3-30b-a3b-fp8": {
+ "cache_read_input_token_cost": 5e-8,
+ "input_cost_per_token": 1e-7,
+ "litellm_provider": "zerogpu",
+ "max_input_tokens": 32768,
+ "max_output_tokens": 16384,
+ "mode": "chat",
+ "output_cost_per_token": 4.5e-7,
+ "source": "https://docs.zerogpu.ai/docs/model-catalog",
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true
+ },
+ "zerogpu/qwen3.6-35b-a3b": {
+ "cache_read_input_token_cost": 2e-7,
+ "input_cost_per_token": 2e-7,
+ "litellm_provider": "zerogpu",
+ "max_input_tokens": 262144,
+ "max_output_tokens": 16384,
+ "mode": "chat",
+ "output_cost_per_token": 0.0000015,
+ "source": "https://docs.zerogpu.ai/docs/model-catalog",
+ "supports_function_calling": true,
+ "supports_reasoning": true,
+ "supports_response_schema": true,
+ "supports_tool_choice": true,
+ "supports_vision": true
}
}
\ No newline at end of file
diff --git a/cecli/resources/providers.json b/cecli/resources/providers.json
index e037a6bf452..60c369169ca 100644
--- a/cecli/resources/providers.json
+++ b/cecli/resources/providers.json
@@ -348,6 +348,15 @@
"display_name": "opencode-zen",
"session_header": "x-opencode-session"
},
+ "openrouter": {
+ "api_base": "https://openrouter.ai/api/v1",
+ "api_key_env": [
+ "OPENROUTER_API_KEY"
+ ],
+ "display_name": "openrouter",
+ "models_url": "https://openrouter.ai/api/v1/models",
+ "requires_api_key": false
+ },
"ovhcloud": {
"api_base": "https://oai.endpoints.kepler.ai.cloud.ovh.net/v1",
"api_key_env": [
diff --git a/cecli/tools/broadcast.py b/cecli/tools/broadcast.py
index fdc513cdbac..0b4215d276e 100644
--- a/cecli/tools/broadcast.py
+++ b/cecli/tools/broadcast.py
@@ -20,7 +20,8 @@ class Tool(BaseTool):
"function": {
"name": "Broadcast",
"description": (
- "Broadcast a message to one or more sub-agent instances. Sends the message to the "
+ "Broadcast a message to one or more sub-agent instances."
+ "This tool is useful for collaboration and coordination. Sends the message to the "
"specified target sub-agents, or to every active sub-agent when empty/omitted. "
"The message is queued into the target's context if it is actively generating, "
"and delivered immediately if the target is idle, waking them."
diff --git a/cecli/tools/delegate.py b/cecli/tools/delegate.py
index e5650f1b8f8..b0dafaf95d1 100644
--- a/cecli/tools/delegate.py
+++ b/cecli/tools/delegate.py
@@ -49,6 +49,13 @@ class Tool(BaseTool):
" If false, wait for the result."
),
},
+ "working_dir": {
+ "type": "string",
+ "description": (
+ "Optional working directory for this delegation. "
+ "Relative paths resolve against the dispatching agent's root."
+ ),
+ },
"persist": {
"type": "boolean",
"default": False,
@@ -76,7 +83,8 @@ async def execute(cls, coder, **kwargs):
if not delegations or not isinstance(delegations, list):
response.append_error(
- "'delegations' parameter must be a non-empty array of {name, prompt, async, persist} objects."
+ "'delegations' parameter must be a non-empty array of "
+ "{name, prompt, async, working_dir, persist} objects."
)
return response
@@ -106,33 +114,39 @@ async def execute(cls, coder, **kwargs):
# Separate async (fire-and-forget) and sync (blocking) delegations
async_delegations = [
- (d["name"], d["prompt"], d.get("persist", False))
+ (d["name"], d["prompt"], d.get("persist", False), d.get("working_dir"))
for d in delegations
if d.get("async", True)
]
sync_delegations = [
- (d["name"], d["prompt"], d.get("persist", False))
+ (d["name"], d["prompt"], d.get("persist", False), d.get("working_dir"))
for d in delegations
if not d.get("async", True)
]
- async def _spawn_one(name: str, prompt: str, persist: bool) -> tuple:
+ async def _spawn_one(name: str, prompt: str, persist: bool, working_dir=None) -> tuple:
"""Spawn a single sub-agent (fire-and-forget). Returns (name, uuid_or_error, error)."""
auto_reap = None if not persist else False
try:
+ spawn_kwargs = {}
+ if working_dir:
+ spawn_kwargs["root"] = working_dir
new_coder, info = await agent_service.spawn(
- name, prompt, parent=coder, auto_reap=auto_reap
+ name, prompt, parent=coder, auto_reap=auto_reap, **spawn_kwargs
)
return name, info.coder.uuid, None
except Exception as e:
return name, None, f"failed: {e}"
- async def _invoke_one(name: str, prompt: str, persist: bool) -> tuple:
+ async def _invoke_one(name: str, prompt: str, persist: bool, working_dir=None) -> tuple:
"""Invoke a single sub-agent (blocking). Returns (name, summary_or_error, error)."""
auto_reap = None if not persist else False
try:
+ invoke_kwargs = {}
+ if working_dir:
+ invoke_kwargs["root"] = working_dir
summary = await agent_service.invoke(
- name, prompt, parent=coder, auto_reap=auto_reap
+ name, prompt, parent=coder, auto_reap=auto_reap, **invoke_kwargs
)
return name, summary or "(no summary)", None
except Exception as e:
@@ -141,13 +155,19 @@ async def _invoke_one(name: str, prompt: str, persist: bool) -> tuple:
# Process async delegations (fire-and-forget spawn)
async_results = []
if async_delegations:
- tasks = [_spawn_one(n, p, persist) for n, p, persist in async_delegations]
+ tasks = [
+ _spawn_one(n, p, persist, working_dir)
+ for n, p, persist, working_dir in async_delegations
+ ]
async_results = list(await asyncio.gather(*tasks))
# Process sync delegations (blocking invoke)
sync_results = []
if sync_delegations:
- tasks = [_invoke_one(n, p, persist) for n, p, persist in sync_delegations]
+ tasks = [
+ _invoke_one(n, p, persist, working_dir)
+ for n, p, persist, working_dir in sync_delegations
+ ]
sync_results = list(await asyncio.gather(*tasks))
# Build response
@@ -213,10 +233,13 @@ def format_output(cls, coder, mcp_server, tool_response):
prompt = d.get("prompt", "")
is_async = d.get("async", True)
is_persist = d.get("persist", False)
+ working_dir = d.get("working_dir")
coder.io.tool_output(f"{color_start}delegation_{i + 1}:{color_end}")
coder.io.tool_output(f"agent: {name}")
coder.io.tool_output(f"mode: {'async' if is_async else 'sync'}")
coder.io.tool_output(f"persist: {'true' if is_persist else 'false'}")
+ if working_dir:
+ coder.io.tool_output(f"working_dir: {working_dir}")
coder.io.tool_output(f"task: {prompt}")
if i < len(delegations) - 1:
coder.io.tool_output("")
diff --git a/cecli/tools/edit_file.py b/cecli/tools/edit_file.py
index c9bc930e43d..82c1750c64d 100644
--- a/cecli/tools/edit_file.py
+++ b/cecli/tools/edit_file.py
@@ -1,3 +1,5 @@
+import re
+
from cecli.helpers import nested
from cecli.helpers.hashline import (
HASH_DELIMITER,
@@ -9,11 +11,16 @@
strip_hashline,
)
from cecli.helpers.hashpos.hashpos import HashPos
-from cecli.helpers.hashpos.transformations import resolve_at_l, strip_hashline_prefix
+from cecli.helpers.hashpos.transformations import (
+ extract_hint,
+ resolve_at_l,
+ strip_hashline_prefix,
+)
from cecli.tools.utils.base_tool import BaseTool
from cecli.tools.utils.helpers import (
ToolError,
apply_change,
+ read_text_preserving_newlines,
validate_file_for_edit,
)
from cecli.tools.utils.output import color_markers, tool_footer, tool_header
@@ -36,6 +43,10 @@
}
+READFILE_ONLY_HINT_RE = re.compile(r"(?:^|[ \t])@[CPN][0-9]*[ \t]*$")
+BARE_AB_HINT_RE = re.compile(r"(?:^|[ \t])@[AB][ \t]*$")
+
+
class Tool(BaseTool):
NORM_NAME = "editfile"
RESULT_TYPE = "list"
@@ -49,20 +60,27 @@ class Tool(BaseTool):
"function": {
"name": "EditFile",
"description": (
- "Modify text in one or more files by targeting lines with their virtual identifiers "
- "(as returned by ReadFile). You can batch multiple operations across files in one call."
- ""
- "Operations:"
- " - 'replace' — swap the targeted range with new text"
- " - 'delete' — remove the targeted range"
- ""
- "Start and end markers are inclusive: both referenced lines are modified or removed. "
- f"Reference unique lines (prefixed with '{UNIQUE_HASH_DELIMITER}') by their exact text, and "
- f"duplicate lines by their hashed prefix (e.g., '{HASH_DELIMITER}WecX{HASH_DELIMITER}'); use "
- "'@000' for empty files. Identifiers track content, so edits can re-prefix identical lines "
- "elsewhere — re-read the file after editing for fresh identifiers. Multiple edits to one "
- "file are applied bottom-to-top automatically; overlapping or contained ranges are merged "
- "or rejected automatically."
+ "Edit lines in one or more files by targeting lines with their virtual identifiers "
+ "(as returned by ReadFile); batch across files in one call. "
+ "'replace' swaps the range, 'delete' removes it, "
+ "'insert' adds text before/after the target line.\n"
+ "\n"
+ "start_line and end_line are inclusive; each is one single-line anchor:\n"
+ f"- unique lines (prefixed with '{UNIQUE_HASH_DELIMITER}') by exact text, "
+ "or duplicate lines by their hashed prefix "
+ f"'{HASH_DELIMITER}WecX{HASH_DELIMITER}' (text after it ignored)\n"
+ "- '@L' (1-based; '@L0' = top)\n"
+ "- 'text @L', 'text @A{{regex}}' (anchor text required; after regex hit), "
+ "or 'text @B{{regex}}' (before it); bare '@A'/'@B' is rejected\n"
+ "- '@C', '@P', and '@N' are ReadFile-only range markers; "
+ "EditFile rejects them (use '@L' or a content ID instead)\n"
+ "\n"
+ "Ambiguous text fails. '@000' = empty/top; '000@' = EOF. "
+ "Use '@000' for both start_line and end_line to prepend. "
+ "Use '000@' for both start_line and end_line to append at end of file. "
+ "end_line resolves nearest start_line. "
+ "Edits apply bottom-to-top; overlaps merge or reject. "
+ "Re-read before reusing IDs (they encode position)."
),
"parameters": {
"type": "object",
@@ -84,36 +102,39 @@ class Tool(BaseTool):
},
"operation": {
"type": "string",
- "enum": ["replace", "delete"],
+ "enum": ["replace", "delete", "insert"],
"description": (
- "The kind of edit: 'replace' swaps the targeted range with new text, "
- "'delete' removes it entirely."
+ "'replace' swaps the range with text; 'delete' removes it; "
+ "'insert' adds text before/after the target line."
),
},
"text": {
"type": "string",
"description": (
- "The replacement text for 'replace'. "
- "For 'delete' leave this as an empty string (\"\"). "
- "Supplied as-is; do not include identifier prefixes."
+ "Replacement/insertion text (non-empty); \"\" for 'delete'. "
+ "Prefixes are stripped."
+ ),
+ },
+ "position": {
+ "type": "string",
+ "enum": ["before", "after"],
+ "description": (
+ "For 'insert': place text before or after the target line. "
+ "Defaults to 'after'."
),
},
"start_line": {
"type": "string",
"description": (
- "The first line of the edit (inclusive): "
- "its exact text if unique, its hashed prefix "
- f"(e.g., '{HASH_DELIMITER}WecX{HASH_DELIMITER}') if duplicated, "
- "or '@000' for empty files."
+ "First line (inclusive). See anchor forms above; "
+ "'@000'/'@L0' = empty/top."
),
},
"end_line": {
"type": "string",
"description": (
- "The last line of the edit (inclusive): "
- "its exact text if unique, its hashed "
- f"prefix (e.g., '{HASH_DELIMITER}WecX{HASH_DELIMITER}') if duplicated, "
- "or '000@' for the end of the file."
+ "Last line (inclusive). Same forms; '000@' = EOF. "
+ "Optional for 'insert'."
),
},
},
@@ -122,7 +143,6 @@ class Tool(BaseTool):
"operation",
"text",
"start_line",
- "end_line",
],
},
},
@@ -225,7 +245,7 @@ def execute(
if operation not in VALID_OPERATIONS:
raise ToolError(
f"Edit {edit_index + 1}: Invalid operation '{operation}'. "
- "Must be 'replace' or 'delete'"
+ "Must be 'replace', 'delete', or 'insert'"
)
edit_file_raw = edit.get("text")
@@ -236,6 +256,19 @@ def execute(
edit, ["end_line", "range_end", "line_end", "end"]
)
+ for anchor_name, anchor_value in (
+ ("start_line", edit_start_line),
+ ("end_line", edit_end_line),
+ ):
+ if isinstance(anchor_value, str) and (
+ "\n" in anchor_value or "\r" in anchor_value
+ ):
+ raise ToolError(
+ f"Edit {edit_index + 1}: '{anchor_name}' must be a "
+ "single-line anchor; multi-line text is only supported "
+ "in 'text'. Use a content ID or '@L' to target one line."
+ )
+
# ---------------------------------------------------------
# DEFENSIVE FALLBACKS
# ---------------------------------------------------------
@@ -245,21 +278,25 @@ def execute(
edit_start_line = "@000"
edit_end_line = "@000"
- # Resolve @L{num} notation directly to content ID
- edit_start_line = cls._resolve_at_l_num(
- edit_start_line, hp, source_lines, file_path_key
+ # Resolve line hints (@L/@A/@B) and content references
+ edit_start_line, start_hint_line = cls._resolve_line_hint(
+ edit_start_line,
+ hp,
+ source_lines,
+ file_path_key,
)
- edit_end_line = cls._resolve_at_l_num(
- edit_end_line, hp, source_lines, file_path_key
+ edit_end_line, _ = cls._resolve_line_hint(
+ edit_end_line,
+ hp,
+ source_lines,
+ file_path_key,
)
- # Strip virtual prefixes from ReadFile output lines
- edit_start_line = cls._strip_readfile_prefix(edit_start_line)
- edit_end_line = cls._strip_readfile_prefix(edit_end_line)
-
- # Resolve remaining non-hashline content values to content IDs
edit_start_line, edit_end_line = resolve_content_to_hashline_ids(
- original_content, edit_start_line, edit_end_line
+ original_content,
+ edit_start_line,
+ edit_end_line,
+ start_hint_line=start_hint_line,
)
# ---------------------------------------------------------
@@ -299,6 +336,18 @@ def execute(
f"Edit {edit_index + 1}: 'start_line' parameter is required"
" for 'insert' operation"
)
+
+ position = nested.getter(edit, ["position"])
+ if position is None:
+ position = "after"
+ if isinstance(position, str):
+ position = position.lower()
+ if position not in ("before", "after"):
+ raise ToolError(
+ f"Edit {edit_index + 1}: 'position' must be "
+ "'before' or 'after'"
+ )
+
# For insert, end_line defaults to start_line
edit_end_line = edit_end_line or edit_start_line
@@ -310,6 +359,8 @@ def execute(
}
if edit_file is not None:
op_dict["text"] = edit_file
+ if operation == "insert":
+ op_dict["position"] = position
operations.append(op_dict)
@@ -320,6 +371,9 @@ def execute(
"end_line": edit_end_line,
"text": edit_file,
}
+ if operation == "insert":
+ metadata["position"] = position
+
file_metadata.append(metadata)
except Exception as e:
@@ -419,6 +473,8 @@ def execute(
)
coder.files_edited_by_tools.add(rel_path)
+ if getattr(coder, "uuid", None):
+ ConversationService.get_chunks(coder).notify_file_edited(abs_path)
all_results.append(
{
@@ -578,7 +634,7 @@ def format_output(cls, coder, mcp_server, tool_response):
if file_path_key and start_line and end_line:
try:
abs_path = coder.abs_root_path(file_path_key)
- original_content = coder.io.read_text(abs_path)
+ original_content = read_text_preserving_newlines(coder, abs_path)
if original_content is not None:
# Mirror execute()'s preprocessing so the preview
@@ -590,17 +646,23 @@ def format_output(cls, coder, mcp_server, tool_response):
if original_content and original_content.strip()
else []
)
- start_line = cls._resolve_at_l_num(
- start_line, hp, source_lines, file_path_key
+ start_line, start_hint_line = cls._resolve_line_hint(
+ start_line,
+ hp,
+ source_lines,
+ file_path_key,
)
- end_line = cls._resolve_at_l_num(
- end_line, hp, source_lines, file_path_key
+ end_line, _ = cls._resolve_line_hint(
+ end_line,
+ hp,
+ source_lines,
+ file_path_key,
)
- start_line = cls._strip_readfile_prefix(start_line)
- end_line = cls._strip_readfile_prefix(end_line)
-
start_line, end_line = resolve_content_to_hashline_ids(
- original_content, start_line, end_line
+ original_content,
+ start_line,
+ end_line,
+ start_hint_line=start_hint_line,
)
diff_output = get_hashline_diff(
original_content=strip_hashline(original_content),
@@ -621,8 +683,12 @@ def format_output(cls, coder, mcp_server, tool_response):
coder.io.tool_output("")
elif operation == "insert":
- # Show inserted text
+ # Inserted text is additive, so render it like added diff lines.
if text:
+ lines = [f"+{line}" for line in text.splitlines()]
+ if coder.agent_config.get("diff_colors", True):
+ lines = [f"\033[32m{line}\x1b[0m" for line in lines]
+ text = "\n".join(lines)
coder.io.tool_output(text)
coder.io.tool_output("")
@@ -650,6 +716,91 @@ def _strip_readfile_prefix(value):
return strip_hashline_prefix(value)
+ @classmethod
+ def _resolve_line_hint(cls, line_spec, hp, source_lines, file_path):
+ """Resolve a hint suffix on a line spec to a content ID when possible.
+
+ Supports ``@L``, ``@A{regex}``/``@A{{regex}}``, and
+ ``@B{regex}``/``@B{{regex}}`` suffixes.
+ Returns ``(resolved_spec, hint_line)``. ``hint_line`` is retained only
+ when the hint could not be resolved locally, so the caller can fall
+ back to proximity resolution.
+ """
+
+ if not isinstance(line_spec, str):
+ return line_spec, None
+
+ line_spec = cls._strip_readfile_prefix(line_spec)
+
+ if READFILE_ONLY_HINT_RE.search(line_spec):
+ raise ToolError(
+ "ReadFile-only range markers ('@C', '@P', '@N') are not "
+ "supported by EditFile; use a content ID or '@L' line reference."
+ )
+
+ if BARE_AB_HINT_RE.search(line_spec):
+ raise ToolError(
+ "Bare '@A'/'@B' hints are not supported; include anchor text before "
+ "the hint, e.g. 'my line @A{regex}'."
+ )
+
+ stripped, hint_line, hint_type = extract_hint(line_spec, source_lines)
+
+ if hint_type is None or hint_line is None:
+ return stripped, None
+
+ if hint_type in ("A", "B") and not stripped.strip():
+ raise ToolError(
+ "Bare '@" + hint_type + "' hints are not supported; include anchor text "
+ "before the hint (e.g., 'my line @" + hint_type + "{regex}' or "
+ "'my line @" + hint_type + "{{regex}}')."
+ )
+
+ if not stripped.strip() or (hint_type == "L" and stripped.strip() == line_spec.strip()):
+ return cls._resolve_at_l_num(f"@L{hint_line + 1}", hp, source_lines, file_path), None
+
+ indices = cls._find_line_indices(stripped, source_lines)
+
+ if hint_type == "A":
+ candidates = [i for i in indices if i > hint_line]
+ target = min(candidates) if candidates else None
+ elif hint_type == "B":
+ candidates = [i for i in indices if i < hint_line]
+ target = max(candidates) if candidates else None
+ else:
+ target = min(indices, key=lambda i: abs(i - hint_line)) if indices else None
+
+ if target is None:
+ return stripped, hint_line if hint_type == "L" else None
+
+ line_text = source_lines[target]
+ occurrence = 1 + sum(1 for line in source_lines[:target] if line == line_text)
+
+ return hp.get_wrapped_id(hp.generate_public_id(line_text, target, occurrence)), None
+
+ @staticmethod
+ def _find_line_indices(value, lines):
+ """Return indices of lines matching *value* or its first line.
+
+ Single-line values are matched after trimming indentation.
+ """
+
+ value_lines = value.splitlines()
+
+ if len(value_lines) > 1:
+ matches = []
+
+ for i in range(len(lines) - len(value_lines) + 1):
+ if all(lines[i + j] == value_lines[j] for j in range(len(value_lines))):
+ matches.append(i)
+
+ return matches
+
+ first_line = value_lines[0] if value_lines else value
+ first_line_stripped = first_line.strip()
+
+ return [i for i, line in enumerate(lines) if line.strip() == first_line_stripped]
+
@classmethod
def _categorize_edit_error(cls, error_msg: str) -> str:
"""Categorize an edit error message into a user-friendly display category."""
diff --git a/cecli/tools/grep.py b/cecli/tools/grep.py
index 3a22dc448aa..b9181f242c3 100644
--- a/cecli/tools/grep.py
+++ b/cecli/tools/grep.py
@@ -35,18 +35,83 @@
# Output-shaping limits. These bound what is sent to the model while keeping
# match locations intact (counts and line numbers survive truncation).
MAX_MATCHES_PER_FILE = 10
+MAX_ADDITIONAL_LINE_NUMBERS = 10
MAX_FILES = 20
MAX_TOTAL_SIZE = 50000
MAX_LINE_LENGTH = 256
MAX_LINE_NUMBERS = 50
+MAX_CONTEXT_LINES = 5
def _should_use_regex(pattern, requested):
- """Auto-enable regex for alternation unless the caller explicitly disables it."""
+ """Choose regex mode, auto-detecting common regex syntax only for auto mode."""
if requested is False:
return False
- return bool(requested) or "|" in pattern
+ if requested is True:
+ return True
+
+ return _looks_like_regex(pattern)
+
+
+def _has_nonempty_alternation(pattern):
+ """Return True when every alternation branch in *pattern* is non-empty."""
+ parts = re.split(r"(? 1 and all(parts)
+
+
+def _has_regex_meta(pattern):
+ """Return True when a literal search might have been intended as regex."""
+ if re.search(r"\\|[.^$\[\](){}*+?]", pattern):
+ return True
+
+ return _has_nonempty_alternation(pattern)
+
+
+def _looks_like_regex(pattern):
+ """Detect strong regex signals without treating ordinary code punctuation as regex."""
+ if _has_nonempty_alternation(pattern):
+ return True
+
+ if pattern.startswith("^") or pattern.endswith("$"):
+ return True
+
+ if re.search(r"\(\?|\.\*|\.\+|\.\?|\{\d+(?:,\d*)?\}", pattern):
+ return True
+
+ return bool(re.search(r"\\(?:[AbBdDsSwWZz]|p\{|P\{|[.^$*+?()\[\]{}|\\/-])", pattern))
+
+
+def _needs_pcre2(pattern):
+ """Return True for regex constructs unsupported by ripgrep's default engine."""
+ return bool(re.search(r"\(\?(?:=|!|<=| 0:
+ counts[filepath] = count_val
+ except ValueError:
+ pass
+ continue
+
# Format: filepath:count
# Use rsplit to handle paths that may contain colons
idx = line.rfind(":")
@@ -86,18 +207,20 @@ def _parse_count_output(output):
filepath = line[:idx]
try:
count_val = int(line[idx + 1 :])
- counts[filepath] = count_val
+ if count_val > 0:
+ counts[filepath] = count_val
except (ValueError, IndexError):
pass
return counts
-def _parse_content_into_files(output):
+def _parse_content_into_files(output, null_separated=False):
"""Parse grep -rn output into per-file groups.
Returns list of dicts with keys: path, match_count, content_lines
Content lines preserve the original grep format (with : for matches, - for context).
Merges entries for the same file that appear in non-contiguous match groups.
+ When *null_separated* is set, each line is ``path\\0line:content``.
"""
if not output:
return []
@@ -143,36 +266,52 @@ def _flush_current():
if line == "--":
continue
- # Try to extract filename from the line prefix
- # Match lines: path:line:content
- # Context lines: path-line-content (with - hyphen after line number)
- m = re.match(r"^(.+?)[:-](\d+)[:-]", line)
- if m:
+ if null_separated:
+ if "\0" not in line:
+ continue
+
+ filepath, rest = line.split("\0", 1)
+ entry = re.match(r"^(\d+)([:-])(.*)$", rest)
+ if not entry:
+ continue
+
+ line_text = (
+ f"{filepath}{entry.group(2)}{entry.group(1)}{entry.group(2)}{entry.group(3)}"
+ )
+ is_match_line = entry.group(2) == ":"
+ else:
+ # Try to extract filename from the line prefix
+ # Match lines: path:line:content
+ # Context lines: path-line-content (with - hyphen after line number)
+ m = re.match(r"^(.+?)[:-](\d+)[:-]", line)
+ if not m:
+ # Line that doesn't match the pattern (e.g. rg --heading output)
+ if current_file is not None:
+ current_lines.append(line)
+ continue
+
filepath = m.group(1)
# Actually check: match lines have :LINE:, context lines have -LINE-
# The format is: path:line:content or path-line-content
# Check whether the char after line num is : or -
line_num_end = len(filepath) + 1 + len(m.group(2))
is_match_line = line_num_end < len(line) and line[line_num_end] == ":"
+ line_text = line
- if current_file is None:
- current_file = filepath
- match_count = 1 if is_match_line else 0
- current_lines = [line]
- elif filepath == current_file:
- current_lines.append(line)
- if is_match_line:
- match_count += 1
- else:
- # Different file - flush current block before switching
- _flush_current()
- current_file = filepath
- match_count = 1 if is_match_line else 0
- current_lines = [line]
+ if current_file is None:
+ current_file = filepath
+ match_count = 1 if is_match_line else 0
+ current_lines = [line_text]
+ elif filepath == current_file:
+ current_lines.append(line_text)
+ if is_match_line:
+ match_count += 1
else:
- # Line that doesn't match the pattern (e.g. rg --heading output)
- if current_file is not None:
- current_lines.append(line)
+ # Different file - flush current block before switching
+ _flush_current()
+ current_file = filepath
+ match_count = 1 if is_match_line else 0
+ current_lines = [line_text]
# Flush the last file's accumulated block
_flush_current()
@@ -192,6 +331,34 @@ def _flush_current():
return files
+def _extract_warnings(output, null_separated=False):
+ """Return diagnostic lines that are not match or context records."""
+ warnings = []
+ if not output:
+ return warnings
+
+ for raw_line in output.splitlines():
+ line = raw_line.strip()
+ if not line or line == "--":
+ continue
+
+ if null_separated:
+ if "\0" not in line:
+ warnings.append(line)
+ elif re.match(r"^(?:rg|ag|grep)(?:\.exe)?:\s", line, re.IGNORECASE):
+ warnings.append(line)
+
+ return warnings
+
+
+def _append_warnings(op_result, warnings):
+ """Add warnings to an operation result without duplicating messages."""
+ bucket = op_result.setdefault("warnings", [])
+ for warning in warnings:
+ if warning not in bucket:
+ bucket.append(warning)
+
+
def _cap_line(text, max_length=MAX_LINE_LENGTH):
"""Truncate a single line, marking how many characters were omitted."""
if len(text) <= max_length:
@@ -450,7 +617,11 @@ class Tool(BaseTool):
"file_glob": {
"type": "string",
"default": "*",
- "description": "Glob pattern for files to search.",
+ "description": (
+ "Glob pattern(s) for files to search. "
+ "Comma-separated lists are supported; use ** for "
+ "recursive matches and ! for ripgrep negation."
+ ),
},
"directory": {
"type": "string",
@@ -459,12 +630,19 @@ class Tool(BaseTool):
},
"use_regex": {
"type": "boolean",
- "description": "Whether to use regex search or literal text.",
+ "description": (
+ "Whether to use regex search or literal text. "
+ "Omit to auto-detect from the pattern and retry "
+ "the other interpretation when one finds nothing."
+ ),
},
"case_insensitive": {
"type": "boolean",
"default": True,
- "description": "Whether to perform a case-insensitive search.",
+ "description": (
+ "Whether to perform a case-insensitive search "
+ "(default true)."
+ ),
},
"mode": {
"type": "string",
@@ -480,21 +658,27 @@ class Tool(BaseTool):
"type": "boolean",
"default": True,
"description": (
- "Whether to run a fast count pass for exact totals."
+ "Whether to run a fast count pass for exact "
+ "totals. When false, per-file totals are capped "
+ f"at {MAX_LINE_NUMBERS} and may be approximate."
),
},
"context_before": {
"type": "integer",
"default": 0,
"description": (
- "Number of context lines to show before each match. Max 5"
+ "Number of context lines to show before each "
+ f"match. Max {MAX_CONTEXT_LINES}; larger values "
+ "are clamped with a warning."
),
},
"context_after": {
"type": "integer",
"default": 0,
"description": (
- "Number of context lines to show after each match. Max 5"
+ "Number of context lines to show after each "
+ f"match. Max {MAX_CONTEXT_LINES}; larger values "
+ "are clamped with a warning."
),
},
},
@@ -641,28 +825,42 @@ def execute(
pattern = strip_hashline(search_op.get("pattern", ""))
file_pattern = search_op.get("file_glob", "*")
directory = search_op.get("directory", search_op.get("path", "."))
- use_regex = _should_use_regex(pattern, search_op.get("use_regex"))
+ requested_regex = search_op.get("use_regex")
+ use_regex = _should_use_regex(pattern, requested_regex)
case_insensitive = search_op.get("case_insensitive", True)
mode = search_op.get("mode", "matches")
- if mode not in ("files", "matches"):
- mode = "matches"
# Context is an orthogonal knob, disabled by default for compact output.
- context_before = max(min(int(search_op.get("context_before", 0)), 5), 0)
- context_after = max(min(int(search_op.get("context_after", 0)), 5), 0)
+ context_before, context_before_warning = _parse_context_line_count(
+ search_op.get("context_before", 0), "context_before"
+ )
+ context_after, context_after_warning = _parse_context_line_count(
+ search_op.get("context_after", 0), "context_after"
+ )
count_enabled = search_op.get("count", True)
op_result = {
"pattern": pattern,
+ "regex": use_regex,
"mode": mode,
"total_matches": 0,
"total_files": 0,
"has_more_files": False,
"error": None,
- "files": [],
}
+ context_warnings = [
+ warning for warning in (context_before_warning, context_after_warning) if warning
+ ]
+ if context_warnings:
+ _append_warnings(op_result, context_warnings)
+
+ if mode not in ("files", "matches"):
+ op_result["error"] = f"Invalid mode '{mode}'. Expected 'files' or 'matches'."
+ all_operation_results.append(op_result)
+ continue
+
if not pattern:
op_result["error"] = "Search operation requires a non-empty 'pattern'."
all_operation_results.append(op_result)
@@ -676,6 +874,8 @@ def execute(
else:
search_dir_path = Path(repo.root) / expanded_directory
+ null_separated = tool_name in ("rg", "grep")
+
if tool_name == "powershell":
# PowerShell (Select-String) backend: build a pipeline script and
# invoke it via -EncodedCommand to avoid shell quoting issues.
@@ -694,94 +894,121 @@ def execute(
tool_path,
)
else:
- # Build base content command
- base_cmd = [tool_path, "-n"]
- if tool_name == "rg":
- base_cmd.append("--with-filename")
-
- # Pattern type
- pattern_flag = []
- if use_regex:
- if tool_name == "grep":
- pattern_flag = ["-E"]
- else:
- if tool_name == "rg":
- pattern_flag = ["-F"]
- elif tool_name == "ag":
- pattern_flag = ["-Q"]
+
+ def _build_commands(regex_enabled):
+ pattern_flag = []
+ if regex_enabled:
+ if tool_name == "grep":
+ pattern_flag = ["-P"] if _grep_supports_pcre(tool_path) else ["-E"]
+ elif tool_name == "rg" and _needs_pcre2(pattern):
+ pattern_flag = ["--pcre2"]
+ else:
+ if tool_name == "rg":
+ pattern_flag = ["-F"]
+ elif tool_name == "ag":
+ pattern_flag = ["-Q"]
+ elif tool_name == "grep":
+ pattern_flag = ["-F"]
+
+ # Case sensitivity
+ case_flag = ["-i"] if case_insensitive else []
+
+ # File filtering
+ file_filter = []
+ glob_patterns = _split_glob_patterns(file_pattern)
+ if glob_patterns != ["*"]:
+ if tool_name == "rg":
+ for glob_pattern in glob_patterns:
+ file_filter.extend(["-g", glob_pattern])
+ elif tool_name == "ag":
+ for glob_pattern in glob_patterns:
+ file_filter.extend(["-G", glob_pattern])
+ elif tool_name == "grep":
+ file_filter = ["-r"]
+ for glob_pattern in glob_patterns:
+ file_filter.append(f"--include={glob_pattern}")
elif tool_name == "grep":
- pattern_flag = ["-F"]
+ file_filter = ["-r"]
- # Case sensitivity
- case_flag = ["-i"] if case_insensitive else []
+ # Exclusions
+ exclude_args = []
+ _build_exclude_args(tool_name, exclude_args, exclude_cecli=not creator)
- # File filtering
- file_filter = []
- if file_pattern != "*":
+ null_flag = []
if tool_name == "rg":
- file_filter = ["-g", file_pattern]
+ null_flag = ["--null"]
+ elif tool_name == "grep":
+ null_flag = ["-Z"]
+
+ # --- PASS1: Build count command (fast, no context) ---
+ count_cmd_parts = [tool_path]
+ if tool_name == "rg":
+ count_cmd_parts.extend(["-c", "--no-config"])
elif tool_name == "ag":
- file_filter = ["-G", file_pattern]
+ count_cmd_parts.append("-rc")
+ else:
+ # -I skips binary files, matching the content pass.
+ count_cmd_parts.extend(["-rnc", "-I"])
+ count_cmd = (
+ count_cmd_parts
+ + case_flag
+ + pattern_flag
+ + file_filter
+ + exclude_args
+ + null_flag
+ + ["--", pattern, str(search_dir_path)]
+ )
+ count_string = oslex.join(count_cmd)
+
+ # Source-level caps: bound matches per file and line length so
+ # post-processing never sees unbounded content.
+ output_cap_args = []
+ if tool_name == "rg":
+ output_cap_args = [
+ "-m",
+ str(MAX_LINE_NUMBERS),
+ "--max-columns",
+ str(MAX_LINE_LENGTH),
+ "--max-columns-preview",
+ ]
elif tool_name == "grep":
- file_filter = ["-r", f"--include={file_pattern}"]
- elif tool_name == "grep":
- file_filter = ["-r"]
-
- # Exclusions
- exclude_args = []
- _build_exclude_args(tool_name, exclude_args, exclude_cecli=not creator)
-
- # --- PASS1: Build count command (fast, no context) ---
- count_cmd_parts = [tool_path]
- if tool_name == "rg":
- count_cmd_parts.append("-c")
- elif tool_name == "ag":
- count_cmd_parts.append("-rc")
- else:
- # -I skips binary files, matching the content pass.
- count_cmd_parts.append("-rnc")
- count_cmd_parts.append("-I")
- count_cmd = (
- count_cmd_parts
- + case_flag
- + pattern_flag
- + exclude_args
- + file_filter
- + ["--", pattern, str(search_dir_path)]
- )
- count_string = oslex.join(count_cmd)
-
- # Source-level caps: bound matches per file and line length so
- # post-processing never sees unbounded content.
- output_cap_args = []
- if tool_name == "rg":
- output_cap_args = [
- "-m",
- str(MAX_LINE_NUMBERS),
- "--max-columns",
- str(MAX_LINE_LENGTH),
- "--max-columns-preview",
- ]
- elif tool_name == "grep":
- # -I skips binary files; -m bounds matches per file.
- output_cap_args = ["-I", "-m", str(MAX_LINE_NUMBERS)]
-
- # --- PASS2: Build content with context ---
- content_cmd = (
- base_cmd
- + output_cap_args
- + (["-B", str(context_before)] if context_before > 0 else [])
- + (["-A", str(context_after)] if context_after > 0 else [])
- + case_flag
- + pattern_flag
- + exclude_args
- + file_filter
- + ["--", pattern, str(search_dir_path)]
- )
- content_string = oslex.join(content_cmd)
+ # -I skips binary files; -m bounds matches per file.
+ output_cap_args = ["-I", "-m", str(MAX_LINE_NUMBERS)]
+
+ # --- PASS2: Build content with context ---
+ base_cmd = [tool_path, "-n"]
+ if tool_name == "rg":
+ base_cmd.extend(
+ [
+ "--with-filename",
+ "--no-heading",
+ "--color=never",
+ "--no-config",
+ ]
+ )
+
+ content_cmd = (
+ base_cmd
+ + output_cap_args
+ + null_flag
+ + (["-B", str(context_before)] if context_before > 0 else [])
+ + (["-A", str(context_after)] if context_after > 0 else [])
+ + case_flag
+ + pattern_flag
+ + file_filter
+ + exclude_args
+ + ["--", pattern, str(search_dir_path)]
+ )
+ content_string = oslex.join(content_cmd)
+
+ return count_string, content_string
+
+ count_string, content_string = _build_commands(use_regex)
# --- PASS1: Get match counts (fast, no context) ---
counts = {}
+ count_status = 0
+ count_output = ""
if count_enabled and tool_name != "powershell":
coder.io.tool_output(
f"⛭ Counting matches with {tool_name}: '{pattern}' in {directory}",
@@ -793,8 +1020,54 @@ def execute(
cwd=coder.root,
should_print=False,
)
- if count_status == 0:
- counts = _parse_count_output(count_output)
+ if count_status in (0, 1, 2):
+ counts = _parse_count_output(count_output, null_separated=null_separated)
+
+ # Auto mode retries the other interpretation when one comes back
+ # empty or invalid. This is what makes unescaped regex syntax work
+ # without turning ordinary literal patterns into regexes.
+ should_try_alternate = False
+ if requested_regex is None and not counts and _has_regex_meta(pattern):
+ should_try_alternate = True
+ elif requested_regex is True and not counts and count_status == 2:
+ should_try_alternate = True
+
+ if should_try_alternate:
+ alternate_regex = not use_regex
+ alternate_count_string, alternate_content_string = _build_commands(
+ alternate_regex
+ )
+ alternate_status, alternate_output = run_cmd_subprocess(
+ alternate_count_string,
+ verbose=coder.verbose,
+ cwd=coder.root,
+ should_print=False,
+ )
+ alternate_counts = {}
+ if alternate_status in (0, 1, 2):
+ alternate_counts = _parse_count_output(
+ alternate_output, null_separated=null_separated
+ )
+
+ if alternate_counts or (not alternate_regex and alternate_status in (0, 1)):
+ use_regex = alternate_regex
+ counts = alternate_counts
+ count_status = alternate_status
+ count_output = alternate_output
+ count_string = alternate_count_string
+ content_string = alternate_content_string
+ op_result["regex"] = use_regex
+
+ if requested_regex is True:
+ _append_warnings(
+ op_result,
+ ["Regex search failed; retried as a literal string."],
+ )
+
+ if count_status == 2 and null_separated:
+ count_warnings = _extract_warnings(count_output, null_separated=True)
+ if count_warnings:
+ _append_warnings(op_result, count_warnings)
# "files" mode only needs counts, so skip the content pass entirely.
if mode == "files" and counts:
@@ -812,23 +1085,10 @@ def execute(
op_result["total_matches"] = sum(count for _, count in rel_files)
op_result["total_files"] = len(rel_files)
op_result["has_more_files"] = len(rel_files) > MAX_FILES
- op_result["files"] = [
- {
- "file": rel_path,
- "match_count": file_count,
- "shown": 0,
- "truncated": False,
- "additional_line_numbers": [],
- }
- for rel_path, file_count in shown_files
- ]
op_result["_lines"] = [
{
"file": rel_path,
"match_count": file_count,
- "shown": 0,
- "truncated": False,
- "additional_line_numbers": [],
"lines": [f"{rel_path}: {file_count}"],
}
for rel_path, file_count in shown_files
@@ -850,11 +1110,23 @@ def execute(
output_content = content_output or ""
- if content_status == 0 and output_content:
+ parsed_files = []
+ if output_content:
if tool_name == "powershell":
parsed_files = _parse_select_string_output(output_content, repo.root)
else:
- parsed_files = _parse_content_into_files(output_content)
+ parsed_files = _parse_content_into_files(
+ output_content, null_separated=null_separated
+ )
+
+ if content_status == 2 and parsed_files:
+ content_warnings = _extract_warnings(
+ output_content, null_separated=null_separated
+ )
+ if content_warnings:
+ _append_warnings(op_result, content_warnings)
+
+ if parsed_files:
# Merge in counts from pass 1 if available
if counts:
@@ -877,6 +1149,7 @@ def execute(
has_more = total_files > MAX_FILES
rendered = []
+ count_capped = False
for pf in parsed_files[:MAX_FILES]:
rel_path = safe_relpath(pf["path"], repo.root)
count = pf.get("count_from_pass", 0)
@@ -886,10 +1159,15 @@ def execute(
matches = [entry for entry in entries if entry["is_match"]]
extra_line_numbers = [
entry["line"] for entry in matches[MAX_MATCHES_PER_FILE:]
- ]
+ ][:MAX_ADDITIONAL_LINE_NUMBERS]
+ count_capped_here = False
if mode == "files":
lines = [f"{rel_path}: {count}"]
+ if not count_enabled and len(matches) >= MAX_LINE_NUMBERS:
+ count_capped = True
+ count_capped_here = True
+ match_seen = 0
else:
lines = [f"{rel_path}: {count} match(es)"]
match_seen = 0
@@ -905,49 +1183,94 @@ def execute(
f" {entry['line']}{marker} {_cap_line(entry['text'])}"
)
+ if not count_enabled and len(matches) >= MAX_LINE_NUMBERS:
+ count_capped = True
+ count_capped_here = True
+
shown_count = match_seen if mode == "matches" else 0
- rendered.append(
- {
- "file": rel_path,
- "match_count": count,
- "shown": shown_count,
- "truncated": mode == "matches" and count > shown_count,
- "additional_line_numbers": extra_line_numbers,
- "lines": lines,
- }
- )
+ truncated = mode == "matches" and count > shown_count
+ if truncated:
+ lines.append(f" … showing {shown_count} of {count} matches")
+ if extra_line_numbers:
+ extra = ", ".join(str(num) for num in extra_line_numbers)
+ lines.append(f" … +{count - shown_count} more locations: {extra}")
+ if count_capped_here:
+ lines.append(f" … count capped at {MAX_LINE_NUMBERS} per file")
+
+ item = {
+ "file": rel_path,
+ "match_count": count,
+ "lines": lines,
+ }
+ if shown_count:
+ item["shown"] = shown_count
+ if truncated:
+ item["truncated"] = True
+ if extra_line_numbers:
+ item["additional_line_numbers"] = extra_line_numbers
+ rendered.append(item)
if has_more:
for pf in parsed_files[MAX_FILES:]:
total_matches += pf.get("count_from_pass", 0)
+ if count_capped:
+ _append_warnings(
+ op_result,
+ [
+ "count=false: per-file totals are capped at "
+ f"{MAX_LINE_NUMBERS}; enable count for exact totals."
+ ],
+ )
+
# Byte-aware eviction: drop the largest blocks until under budget so
# a single pathological file cannot crowd out many small ones.
+ files_omitted_for_size = 0
while rendered and (
sum(len("\n".join(item["lines"])) + 1 for item in rendered) > MAX_TOTAL_SIZE
):
largest = max(rendered, key=lambda item: len("\n".join(item["lines"])))
rendered.remove(largest)
+ files_omitted_for_size += 1
+
+ if files_omitted_for_size:
has_more = True
+ op_result["files_omitted_for_size"] = files_omitted_for_size
op_result["total_matches"] = total_matches
op_result["total_files"] = total_files
op_result["has_more_files"] = has_more
- op_result["files"] = [
- {key: value for key, value in item.items() if key != "lines"}
- for item in rendered
- ]
op_result["_lines"] = rendered
- elif content_status == 1 or not output_content:
+ elif content_status in (0, 1) or not output_content:
op_result["total_matches"] = 0
op_result["total_files"] = 0
+ if output_content:
+ content_warnings = _extract_warnings(
+ output_content, null_separated=null_separated
+ )
+ if content_warnings:
+ _append_warnings(op_result, content_warnings)
else:
op_result["error"] = output_content
except Exception as e:
op_result["error"] = f"Error executing search: {str(e)}"
+ if (
+ op_result.get("total_matches", 0) == 0
+ and not op_result.get("error")
+ and file_pattern
+ and file_pattern != "*"
+ ):
+ _append_warnings(
+ op_result,
+ [
+ f"No matches with file_glob={file_pattern!r}; "
+ "verify the glob matches files (comma lists are supported)."
+ ],
+ )
+
all_operation_results.append(op_result)
# Cap total output across operations, dropping the largest rendered blocks
@@ -975,8 +1298,19 @@ def execute(
break
largest_op["_lines"].pop(largest_idx)
- largest_op["files"].pop(largest_idx)
largest_op["has_more_files"] = True
+ largest_op["files_omitted_for_size"] = largest_op.get("files_omitted_for_size", 0) + 1
+
+ for op_result in all_operation_results:
+ omitted = op_result.get("files_omitted_for_size", 0)
+ if omitted:
+ _append_warnings(
+ op_result,
+ [
+ f"{omitted} file result block(s) omitted to stay within "
+ f"the {MAX_TOTAL_SIZE} byte output budget."
+ ],
+ )
# TUI summary
if coder.tui and coder.tui():
@@ -998,21 +1332,37 @@ def execute(
response = ToolResponse(cls.NORM_NAME, result_type=cls.RESULT_TYPE)
for op_result in all_operation_results:
pattern = op_result.get("pattern", "")
+ pattern_label = pattern or ""
if op_result.get("error"):
- body = [f"[{pattern}]", f"Error: {op_result['error']}"]
+ body = [
+ f"[{pattern_label}]",
+ f"Error: {_cap_line(str(op_result['error']).strip(), 1000)}",
+ ]
elif op_result.get("total_matches", 0) == 0:
- body = [f"[{pattern}]", "No matches found."]
+ body = [f"[{pattern_label}]", "No matches found."]
else:
- body = [f"[{pattern}]"]
+ body = [f"[{pattern_label}]"]
for item in op_result.get("_lines", []):
body.extend(item["lines"])
if op_result.get("has_more_files"):
body.append(
f"... ({op_result['total_files']} files total, "
- f"showing {len(op_result['files'])})"
+ f"showing {len(op_result.get('_lines', []))})"
)
+ warnings = op_result.get("warnings", [])
+ if op_result.get("error"):
+ warnings = [
+ warning for warning in warnings if warning not in str(op_result["error"])
+ ]
+ if warnings:
+ op_result["warnings"] = warnings
+ else:
+ op_result.pop("warnings", None)
+
+ for warning in warnings[:5]:
+ body.append(f"Warning: {_cap_line(warning)}")
metadata = {key: value for key, value in op_result.items() if key != "_lines"}
response.append_result(content="\n".join(body), metadata=metadata)
@@ -1044,8 +1394,12 @@ def format_output(cls, coder, mcp_server, tool_response):
use_regex = _should_use_regex(pattern, search_op.get("use_regex"))
case_insensitive = search_op.get("case_insensitive", True)
mode = search_op.get("mode", "matches")
- context_before = search_op.get("context_before", 0)
- context_after = search_op.get("context_after", 0)
+ context_before, _ = _parse_context_line_count(
+ search_op.get("context_before", 0), "context_before"
+ )
+ context_after, _ = _parse_context_line_count(
+ search_op.get("context_after", 0), "context_after"
+ )
formatted_query = (
f"{color_start}search_{i + 1}:{color_end} {pattern} • {file_pattern} •"
diff --git a/cecli/tools/shell.py b/cecli/tools/shell.py
index fca3f48a54e..c0c5b12feff 100644
--- a/cecli/tools/shell.py
+++ b/cecli/tools/shell.py
@@ -519,6 +519,7 @@ async def _execute_with_timeout(cls, coder, command_string, timeout, use_pty=Non
return response
# Timeout elapsed, process continues in background
+ BackgroundCommandManager.mark_continued_in_background(command_key)
coder.io.tool_output(
f"\u23f1\ufe0f Command exceeded {timeout}s timeout, continuing in background...",
type="tool-result",
diff --git a/cecli/tools/undo_change.py b/cecli/tools/undo_change.py
index 34c099b22ac..80f1bb0e87d 100644
--- a/cecli/tools/undo_change.py
+++ b/cecli/tools/undo_change.py
@@ -36,6 +36,8 @@ def execute(cls, coder, change_id=None, file_path=None, **kwargs):
Returns a result message.
"""
+ from cecli.helpers.conversation import ConversationService
+
# Note: Undo does not have a dry_run parameter as it's inherently about reverting a previous action.
coder.edit_allowed = False
response = ToolResponse(cls.NORM_NAME)
@@ -72,6 +74,8 @@ def execute(cls, coder, change_id=None, file_path=None, **kwargs):
abs_path = coder.abs_root_path(file_path)
# Write the original content back to the file
coder.io.write_text(abs_path, change_info["original"])
+ if getattr(coder, "uuid", None):
+ ConversationService.get_chunks(coder).notify_file_edited(abs_path)
coder.coder_edited_files.add(
file_path
) # Track that the file was modified by the undo
diff --git a/cecli/tools/utils/helpers.py b/cecli/tools/utils/helpers.py
index ba749024d17..5bc20995aa1 100644
--- a/cecli/tools/utils/helpers.py
+++ b/cecli/tools/utils/helpers.py
@@ -75,6 +75,19 @@ def resolve_paths(coder, file_path):
raise ToolError(f"Error resolving path '{file_path}': {e}")
+def read_text_preserving_newlines(coder, abs_path):
+ """Read a file while retaining its detected CRLF line endings."""
+ content = coder.io.read_text(abs_path)
+ if content is None:
+ return None
+
+ detect_newline = getattr(coder.io, "_detect_newline", None)
+ if detect_newline and detect_newline(abs_path) == "\r\n":
+ content = content.replace("\r\n", "\n").replace("\n", "\r\n")
+
+ return content
+
+
def validate_file_for_edit(coder, file_path):
"""
Validates if a file exists, is in context, and is editable.
@@ -101,7 +114,7 @@ def validate_file_for_edit(coder, file_path):
# )
# Reread content immediately before potential modification
- content = coder.io.read_text(abs_path)
+ content = read_text_preserving_newlines(coder, abs_path)
if content is None:
# This indicates an issue reading a file we know exists and is in context
coder.io.tool_error(
diff --git a/cecli/tui/app.py b/cecli/tui/app.py
index 7a6bdc825cb..3fc6d89d3ee 100644
--- a/cecli/tui/app.py
+++ b/cecli/tui/app.py
@@ -16,6 +16,7 @@
from textual import events
from textual.app import App, ComposeResult
from textual.containers import Horizontal, Vertical
+from textual.css.query import NoMatches
from textual.theme import Theme
from textual.widgets import Static
@@ -1679,7 +1680,10 @@ def remove_sub_agent_container(self, uuid: str) -> None:
# reset foreground_uuid by the time we run here.
agent_service = AgentService.get_instance(self.worker.coder)
agent_service.foreground_uuid = None
- primary = self.query_one("#output", OutputContainer)
+ try:
+ primary = self.query_one("#output", OutputContainer)
+ except NoMatches:
+ return
primary.display = True
self._refresh_footer()
@@ -1757,7 +1761,12 @@ def _sync_sub_agent_display(self) -> None:
Delegates to the InputContainer itself, which queries AgentService
via self.app to build the pill indicators.
"""
- input_container = self.query_one("#input-container", InputContainer)
+ try:
+ input_container = self.query_one("#input-container", InputContainer)
+ except NoMatches:
+ # The DOM is already torn down when a notification arrives during
+ # shutdown; there is nothing left to sync.
+ return
coder = self.worker.coder
mode = getattr(coder, "edit_format", "code") or "code"
input_container.update_mode(mode)
diff --git a/cecli/tui/widgets/background_commands_panel.py b/cecli/tui/widgets/background_commands_panel.py
index 27bf4ef51c8..51745de4d07 100644
--- a/cecli/tui/widgets/background_commands_panel.py
+++ b/cecli/tui/widgets/background_commands_panel.py
@@ -18,6 +18,9 @@ class BackgroundCommandsPanel(Vertical):
the selected command's output is re-rendered only when its stream offset
changes. Reading output is non-destructive so the agent keeps its own
incremental view of the same buffer.
+
+ Commands that exceed their timeout and keep running appear here once the
+ timeout fires, so the user can watch them continue.
"""
REFRESH_INTERVAL = 0.5
@@ -112,14 +115,16 @@ def _is_shown(self) -> bool:
return self.parent is None or self.parent.display
def _active_commands(self) -> Dict[str, dict]:
- """Return only running commands started in the background."""
+ """Return running commands, including timeouts that continued in the background."""
commands = {}
for command_key, info in BackgroundCommandManager.list_background_commands().items():
if not info.get("running"):
continue
- if info.get("persist"):
+ # Commands started with background=True are always listed; timeout-managed
+ # commands only once their timeout elapsed and they kept running.
+ if info.get("persist") and not info.get("continued_in_background"):
continue
commands[command_key] = info
@@ -127,22 +132,30 @@ def _active_commands(self) -> Dict[str, dict]:
return commands
def _sync_tabs(self, commands: Dict[str, dict]) -> None:
- """Rebuild the tab bar when the set of active commands changes."""
+ """Add and remove tabs so they match the active command set.
+
+ Tabs must be updated incrementally: ``Tabs.clear`` removes its children
+ asynchronously, so clearing and immediately re-adding the same IDs
+ races with the pending removal and raises ``DuplicateIds``.
+ """
tabs = self.query_one("#bg-command-tabs", Tabs)
+ previous_keys = list(self._keys)
self._keys = list(commands)
with self.prevent(Tabs.TabActivated):
- tabs.clear()
+ for command_key in previous_keys:
+ if command_key not in commands:
+ tabs.remove_tab(command_key)
for command_key in commands:
- tabs.add_tab(Tab(command_key, id=command_key, classes="bg-tab"))
+ if command_key not in previous_keys:
+ tabs.add_tab(Tab(command_key, id=command_key, classes="bg-tab"))
- if self._active_key in commands:
- tabs.active = self._active_key
- else:
+ if self._active_key not in commands:
self._active_key = next(iter(commands), None)
- if self._active_key is not None:
- tabs.active = self._active_key
+
+ if self._active_key is not None:
+ tabs.active = self._active_key
def _select_tab(self, command_key: str) -> None:
"""Mark a tab active without relying on a user click."""
@@ -163,6 +176,10 @@ def _set_command_line(self, info: dict) -> None:
"""Show the selected command, truncated to the panel width."""
command = " ".join((info.get("command") or "").split())
text = f"command: {command}" if command else "command: (none)"
+
+ if info.get("continued_in_background"):
+ text += " (timed out, still running)"
+
width = max(20, self.size.width - 6)
if len(text) > width:
diff --git a/cecli/website/docs/config/agent-mode.md b/cecli/website/docs/config/agent-mode.md
index 26ea45c5b26..11d3339baae 100644
--- a/cecli/website/docs/config/agent-mode.md
+++ b/cecli/website/docs/config/agent-mode.md
@@ -287,7 +287,7 @@ Tools are loaded automatically when the registry is built and will be available
#### Sub-agent Behavior
-`Delegate` accepts one or more delegation objects. Each delegation includes a registered sub-agent `name`, a `prompt`, and optional `async` and `persist` flags. Asynchronous delegations run in the background; synchronous delegations wait for the sub-agent result. The system uses `Yield` to wait for outstanding child tasks when finishing the parent task.
+`Delegate` accepts one or more delegation objects. Each delegation includes a registered sub-agent `name`, a `prompt`, and optional `working_dir`, `async` and `persist` properties. `working_dir` sets that delegation's working directory and resolves relative paths against the dispatching agent's root. Asynchronous delegations run in the background; synchronous delegations wait for the sub-agent result. The system uses `Yield` to wait for outstanding child tasks when finishing the parent task.
Sub-agent results are reported back to the parent conversation as summaries or errors. Sub-agents use `auto_reap: true` by default, so completed agents can be removed automatically after their work and descendants finish. Independent agents may be cleaned up shortly after completion, while the service also reaps completed agents when the configured limit requires space. Set `max_sub_agents` to `-1` to remove the limit on simultaneous sub agents.
diff --git a/cecli/website/docs/config/subagents.md b/cecli/website/docs/config/subagents.md
index 60773b0fd2f..ec643638601 100644
--- a/cecli/website/docs/config/subagents.md
+++ b/cecli/website/docs/config/subagents.md
@@ -112,8 +112,29 @@ The primary agent can also delegate work using the `Delegate` tool. This enables
4. Sub-agents work independently and return their summaries
5. The primary agent synthesizes the results
+#### Delegation Working Directory
+
+Each entry in the `Delegate` tool's `delegations` array accepts an optional `working_dir` string. It sets the working directory (the sub-agent coder's root) for that delegation only.
+
+- Relative paths resolve against the dispatching agent's root.
+- Absolute paths are used as-is.
+- Omitting `working_dir` keeps the normal inheritance behavior: the sub-agent uses the parent agent's root, or the workflow/workspace/worktree root when applicable.
+
+```json
+{
+ "delegations": [
+ {
+ "name": "reviewer",
+ "prompt": "Review the API package",
+ "working_dir": "packages/api"
+ }
+ ]
+}
+```
+
### Spawning a Sub-Agent Without a Prompt
+
Creates a sub-agent that waits for you to interact with it directly:
```
diff --git a/cecli/website/docs/config/workflows.md b/cecli/website/docs/config/workflows.md
index 24711f8d05f..1bad2dc7eee 100644
--- a/cecli/website/docs/config/workflows.md
+++ b/cecli/website/docs/config/workflows.md
@@ -40,6 +40,8 @@ enabled: true # optional (default: true)
lease_timeout: 30 # optional minutes (default: 30)
model: # optional model override for the worker
root: ~/repos/my-project # optional working directory
+repo: /repos/app # optional worktree source (local path or remote URL)
+worktree: true # optional isolated git worktree; or {branch: main}
hooks: # optional, same schema as Hooks
start: [{ name: audit, command: "echo start >> ~/.cecli/workflows/audit.log" }]
skills: [gitlab-ci] # optional -> preloaded as skills_init
@@ -61,6 +63,8 @@ tasks:
Keys are `snake_case` or `hyphen-case`; both accepted. `${ENV_VAR}` / `$VAR` inside any string is interpolated from the environment (after `.env` files load).
+Validation notes: `repo` must be a string. `worktree` must be a boolean or a mapping; a mapping currently supports only `branch`, which must be a string (unknown keys warn and are ignored). When `worktree` is enabled, the source repository is inferred from `repo`, then `root`, then the git top-level containing the workflow file; if none can be found a warning is logged and the dispatching agent's root is used at run time.
+
Field meanings:
| field | default | meaning |
@@ -74,6 +78,8 @@ Field meanings:
| `lease_timeout` | 30 | Minutes a scheduler instance holds the job lock before peers may steal an abandoned run |
| `model` | inherited | Model (or sentinel) for the worker sub-agent |
| `root` | session root | Working directory the worker operates in |
+| `repo` | — | Source repository for the optional worktree: a local path or remote URL. When the worktree is enabled, the run's root becomes the generated worktree checkout |
+| `worktree` | disabled | Set `true` to run the worker in an isolated git worktree, or `{branch: [}` to choose the base ref to start from. See [Worktrees](worktrees.html) |
| `hooks` | {} | Per-workflow hooks (start/end/pre_tool/…); run on the worker |
| `skills` | [] | Skills loaded into the worker's context at start |
| `servers` | [] | MCP servers made available to the worker |
@@ -102,6 +108,12 @@ Run-time placeholders are expanded in task prompts in addition to load-time env
Because a run is a sub-agent, it doesn't block the main conversation — watch it with `/agent-tree` or the TUI sub-agent pane. Every run also appends a JSON-lines audit log to `~/.cecli/workflows/runs//..jsonl`: a `start` line (with the definition hash), one `task` line per task, and a `finish` line. Before the worker is reaped, its full session is archived to `~/.cecli/workflows/outputs///session.json` using the standard session format (encrypted when session encryption is enabled) — so every run, including replayed or tool-less replies, is completely reviewable on disk without ever touching the parent's context.
+## Isolated worktrees
+
+Set `worktree: true` to give the run its own git worktree instead of operating directly in `root`. The worker starts on a generated branch `cecli/-` (for example `cecli/wf-nightly-tidy-`) based on `branch` (the starting base ref) or the source repository's default branch. `repo` selects the source repository; if it is omitted, `root` (or the workflow file's git root) is used. The agent's actual root is the generated worktree checkout.
+
+When the run finishes, a dirty worktree is committed with the subject `Unfinished Dirty Worktree from agent ` before the worktree is released. Branches with unmerged commits are kept for review; empty or already-merged branches are deleted. The worktree checkout under `~/.cecli/worktrees/` is removed after the commit/release step. See [Worktrees](worktrees.html) for the full lifecycle and on-disk layout.
+
## Commands
```
@@ -124,6 +136,9 @@ Because a run is a sub-agent, it doesn't block the main conversation — watch i
name: nightly-tidy
schedule: "0 3 * * *"
timezone: America/New_York
+repo: /repos/app
+worktree:
+ branch: main
skills: [code-review]
tasks:
- prompt: "Run the linter over the repo and fix obvious issues."
diff --git a/cecli/website/docs/config/worktrees.md b/cecli/website/docs/config/worktrees.md
new file mode 100644
index 00000000000..ef091cd63a7
--- /dev/null
+++ b/cecli/website/docs/config/worktrees.md
@@ -0,0 +1,40 @@
+---
+parent: Configuration
+nav_order: 49
+description: Isolated git worktrees give each agent or workflow run its own checkout and branch.
+---
+# Worktrees
+
+Worktrees let an agent or workflow run modify a repository without touching the main checkout. cecli creates a linked git worktree, runs the agent inside it, and releases it afterwards — committing unfinished changes so nothing is lost.
+
+## Enabling
+
+Workflows opt in with `worktree: true` (or `worktree: {branch: ][}`); see [Workflows](workflows.html). A workflow's `repo` is the source repository; `root` selects the base working directory. When a worktree is enabled, the agent's actual root is the generated worktree checkout. `branch` selects the starting base ref; when omitted the source repository's default branch is used.
+
+## Branch namespace
+
+Every worktree gets a generated branch named `cecli/-`. Agent names are sanitized for git, so `wf:nightly-tidy` becomes `cecli/wf-nightly-tidy-`. Generated branches live alongside your normal branches and can be inspected, pushed, or merged like any other branch.
+
+## Lifecycle
+
+1. **Create** — a worktree is created from the source repository on the generated branch. An existing checkout for the same agent and repository is reused (ownership is refreshed) instead of creating a duplicate, so repeated or concurrent workflow runs share one checkout. Remote sources are cached as bare repositories first.
+2. **Run** — the agent works inside the worktree; its `root` points at the checkout.
+3. **Release** — on cleanup, a dirty worktree is committed with the subject `Unfinished Dirty Worktree from agent ` so uncommitted work survives. Branches with unmerged commits are kept; empty or already-merged branches are deleted.
+4. **Remove** — the worktree checkout under `~/.cecli/worktrees/` is removed after the commit/release step. Kept branches remain in the source repository.
+
+## Session restore
+
+A workflow or delegated agent restored from a saved session keeps its worktree record (`branch`, `path` and related metadata). On restore, cecli recreates or re-attaches the worktree from that record when possible; if the checkout is gone but the branch still contains work, the branch is the durable artifact to recover.
+
+## Disk layout
+
+`CECLI_WORKTREES_DIR` overrides the base directory; the default is `~/.cecli/worktrees/`.
+
+```
+~/.cecli/worktrees/
+ _sources/-/ # cached bare clones for remote sources
+ /
+ -/ # one linked worktree checkout per agent
+```
+
+Local `repo:` paths are used in place as the source repository; the checkout itself still lives under the worktrees base directory. Removing a checkout or the whole base directory is safe once a run has finished: commits are on the kept branch, and empty branches are disposable.
\ No newline at end of file
diff --git a/tests/basic/test_background_commands.py b/tests/basic/test_background_commands.py
index cdf9abb7e82..0770c68a40b 100644
--- a/tests/basic/test_background_commands.py
+++ b/tests/basic/test_background_commands.py
@@ -402,3 +402,24 @@ def test_get_background_command_output_stops_finished_commands(monkeypatch):
assert "finished" in output
assert stopped == ["bg_3_0001"]
+
+
+def test_mark_continued_in_background_flags_registered_command(monkeypatch):
+ """Timeout-managed commands are flagged so the panel can list them."""
+ process = types.SimpleNamespace(continued_in_background=False)
+ monkeypatch.setattr(BackgroundCommandManager, "_background_commands", {"bg_1_1234": process})
+
+ assert BackgroundCommandManager.mark_continued_in_background("bg_1_1234") is True
+ assert process.continued_in_background is True
+ assert BackgroundCommandManager.mark_continued_in_background("bg_9_9999") is False
+
+
+def test_mark_continued_in_background_flags_command(monkeypatch):
+ """A timeout-managed command can be flagged as continuing in the background."""
+ process = types.SimpleNamespace(continued_in_background=False)
+ monkeypatch.setattr(BackgroundCommandManager, "_background_commands", {"bg_1_1234": process})
+
+ assert BackgroundCommandManager.mark_continued_in_background("bg_1_1234") is True
+ assert process.continued_in_background is True
+
+ assert BackgroundCommandManager.mark_continued_in_background("bg_9_9999") is False
diff --git a/tests/basic/test_file_system_service.py b/tests/basic/test_file_system_service.py
index a154dab43e9..77e564df33c 100644
--- a/tests/basic/test_file_system_service.py
+++ b/tests/basic/test_file_system_service.py
@@ -8,7 +8,7 @@
from cecli.helpers.file_system import FileSystemService
from cecli.io import InputOutput
from cecli.repo import GitRepoProxy
-from cecli.utils import GitTemporaryDirectory
+from cecli.utils import ChdirTemporaryDirectory, GitTemporaryDirectory
@pytest.fixture(autouse=True)
@@ -156,6 +156,23 @@ async def test_coder_gets_per_root_fs_and_repo(self, gpt35_model):
class TestRootOverride:
"""Validates the sub-agent root override and primary_root retention."""
+ async def test_root_falls_back_to_cwd_outside_git(self, gpt35_model):
+ with ChdirTemporaryDirectory() as root:
+ io = InputOutput(pretty=False, yes=True)
+ coder = await Coder.create(gpt35_model, None, io)
+
+ assert os.path.normpath(coder.root) == os.path.normpath(root)
+ assert os.path.normpath(coder.primary_root) == os.path.normpath(root)
+
+ async def test_sub_agent_root_falls_back_to_primary_root_outside_git(self, gpt35_model):
+ with ChdirTemporaryDirectory():
+ io = InputOutput(pretty=False, yes=True)
+ parent = await Coder.create(gpt35_model, None, io)
+ child = await Coder.create(from_coder=parent, io=io)
+
+ assert os.path.normpath(child.root) == os.path.normpath(parent.root)
+ assert os.path.normpath(child.primary_root) == os.path.normpath(parent.root)
+
async def test_root_kwarg_overrides_working_dir(self, gpt35_model):
with GitTemporaryDirectory() as root_a:
os.chdir(root_a)
diff --git a/tests/basic/test_hashline.py b/tests/basic/test_hashline.py
index f2eefaa8b08..cb69025642b 100644
--- a/tests/basic/test_hashline.py
+++ b/tests/basic/test_hashline.py
@@ -2,6 +2,7 @@
from cecli.helpers.hashline import (
ContentHashError,
+ _detect_overlapping_ranges,
apply_hashline_operations,
get_hashline_diff,
hashline,
@@ -9,6 +10,7 @@
resolve_content_to_hashline_ids,
strip_hashline,
)
+from cecli.helpers.hashpos.hashpos import HashPos
def test_hashline_basic():
@@ -359,3 +361,289 @@ def test_empty_insert_is_a_noop():
assert new_content == original_content
assert successful == []
assert failed[0]["failure_type"] == "no_change"
+
+
+def test_append_at_eof_with_000_markers():
+ """Using 000@ for both boundaries appends without replacing the last line."""
+ original_content = "first\nsecond\n"
+
+ new_content, successful, failed = apply_hashline_operations(
+ original_content,
+ [
+ {
+ "start_line_hash": "000@",
+ "end_line_hash": "000@",
+ "operation": "replace",
+ "text": "appended",
+ }
+ ],
+ )
+
+ assert new_content == "first\nsecond\nappended\n"
+ assert successful == [0]
+ assert failed == []
+
+
+def test_multiline_anchor_is_rejected():
+ """Anchors must be single-line; multiline values fail clearly."""
+ original_content = "alpha\nbeta\ngamma\n"
+
+ new_content, successful, failed = apply_hashline_operations(
+ original_content,
+ [
+ {
+ "start_line_hash": "alpha\nbeta",
+ "end_line_hash": "alpha\nbeta",
+ "operation": "replace",
+ "text": "changed",
+ }
+ ],
+ )
+
+ assert new_content == original_content
+ assert successful == []
+ assert "single-line" in failed[0]["error"]
+
+
+def test_partial_line_anchor_error_is_explicit():
+ """A substring anchor must explain that the complete line is required."""
+ original_content = "def main():\n pass\n"
+
+ new_content, successful, failed = apply_hashline_operations(
+ original_content,
+ [
+ {
+ "start_line_hash": "def main",
+ "end_line_hash": "def main",
+ "operation": "replace",
+ "text": "changed",
+ }
+ ],
+ )
+
+ assert new_content == original_content
+ assert successful == []
+ assert "only partially matches" in failed[0]["error"]
+ assert "complete line" in failed[0]["error"]
+
+
+def test_ambiguous_anchor_reports_line_numbers():
+ """Ambiguity errors should identify candidate lines and suggest @L."""
+ original_content = "target\nmiddle\ntarget\n"
+
+ new_content, successful, failed = apply_hashline_operations(
+ original_content,
+ [
+ {
+ "start_line_hash": "target",
+ "end_line_hash": "target",
+ "operation": "replace",
+ "text": "changed",
+ }
+ ],
+ )
+
+ assert new_content == original_content
+ assert successful == []
+ assert "lines 1, 3" in failed[0]["error"]
+ assert "@L" in failed[0]["error"]
+
+
+def test_stale_id_error_suggests_reread():
+ """Stale IDs should tell the caller to re-read rather than echo hashes."""
+ original_content = "first\nsecond\nthird\n"
+ stale_id, _ = resolve_content_to_hashline_ids(original_content, "second", "second")
+
+ new_content, successful, failed = apply_hashline_operations(
+ "changed\nother\nthird\n",
+ [
+ {
+ "start_line_hash": stale_id,
+ "end_line_hash": stale_id,
+ "operation": "replace",
+ "text": "X",
+ }
+ ],
+ )
+
+ assert successful == []
+ assert "re-read" in failed[0]["error"]
+ assert "IDs" in failed[0]["error"]
+
+
+def test_crlf_line_endings_are_preserved():
+ """A CRLF file should stay CRLF after an edit."""
+ original_content = "first\r\nsecond\r\n"
+ second_id, _ = resolve_content_to_hashline_ids(original_content, "second", "second")
+
+ new_content, successful, failed = apply_hashline_operations(
+ original_content,
+ [
+ {
+ "start_line_hash": second_id,
+ "end_line_hash": second_id,
+ "operation": "replace",
+ "text": "SECOND",
+ }
+ ],
+ )
+
+ assert new_content == "first\r\nSECOND\r\n"
+ assert successful == [0]
+ assert failed == []
+
+
+def test_stale_content_id_error_recommends_reread():
+ """Stale IDs should tell the caller to re-read instead of echoing hashes."""
+ original_content = "first\nsecond\nthird\n"
+ stale_id, _ = resolve_content_to_hashline_ids(original_content, "second", "second")
+ modified_content = "changed\nother\nthird\n"
+
+ new_content, successful, failed = apply_hashline_operations(
+ modified_content,
+ [
+ {
+ "start_line_hash": stale_id,
+ "end_line_hash": stale_id,
+ "operation": "replace",
+ "text": "changed again",
+ }
+ ],
+ )
+
+ assert new_content == modified_content
+ assert successful == []
+ assert "may have changed" in failed[0]["error"]
+ assert "re-read" in failed[0]["error"]
+
+
+def test_insert_preserves_crlf_line_endings():
+ """Inserting into a CRLF file must keep CRLF line endings."""
+ original_content = "first\r\nsecond\r\n"
+ second_id, _ = resolve_content_to_hashline_ids(original_content, "second", "second")
+
+ new_content, successful, failed = apply_hashline_operations(
+ original_content,
+ [
+ {
+ "start_line_hash": second_id,
+ "end_line_hash": second_id,
+ "operation": "insert",
+ "text": "middle",
+ "position": "before",
+ }
+ ],
+ )
+
+ assert new_content == "first\r\nmiddle\r\nsecond\r\n"
+ assert successful == [0]
+ assert failed == []
+
+
+def test_insert_around_empty_line_preserves_target_line():
+ """Inserting before/after a blank line must keep that blank line."""
+ original_content = "a\n\nb\n"
+ empty_id, _ = resolve_content_to_hashline_ids(original_content, "", "")
+
+ def run(position):
+ new_content, successful, failed = apply_hashline_operations(
+ original_content,
+ [
+ {
+ "start_line_hash": empty_id,
+ "end_line_hash": empty_id,
+ "operation": "insert",
+ "text": "X",
+ "position": position,
+ }
+ ],
+ )
+ assert successful == [0]
+ assert failed == []
+ return new_content
+
+ assert run("before") == "a\nX\n\nb\n"
+ assert run("after") == "a\n\nX\nb\n"
+
+
+def test_overlap_error_reports_one_based_line_numbers():
+ """Overlap diagnostics must use file line numbers, not zero-based indices."""
+ resolved_ops = [
+ {
+ "index": 0,
+ "start_idx": 4,
+ "end_idx": 6,
+ "op": {"operation": "replace"},
+ },
+ {
+ "index": 1,
+ "start_idx": 5,
+ "end_idx": 7,
+ "op": {"operation": "replace"},
+ },
+ ]
+
+ failed, indices = _detect_overlapping_ranges(resolved_ops)
+
+ assert indices == {0, 1}
+ assert "lines 5-7" in failed[0]["error"]
+ assert "lines 6-8" in failed[0]["error"]
+
+
+def test_public_ids_use_local_anchor_and_occurrence():
+ """Duplicate lines get distinct IDs from local anchors and local occurrences."""
+ content = "anchor_a\ndup\ndup\nanchor_b\ndup\n"
+ hp = HashPos(content)
+
+ first = hp.generate_public_id("dup", 1, 1)
+ second = hp.generate_public_id("dup", 2, 2)
+ third = hp.generate_public_id("dup", 4, 1)
+
+ assert len({first, second, third}) == 3
+ _, first_anchor, first_occurrence = hp.unpack_public_id(first)
+ _, second_anchor, second_occurrence = hp.unpack_public_id(second)
+ _, third_anchor, third_occurrence = hp.unpack_public_id(third)
+
+ assert first_anchor == second_anchor
+ assert first_anchor != third_anchor
+ assert first_occurrence == 1
+ assert second_occurrence == 2
+ assert third_occurrence == 1
+
+ for idx, public_id in ((1, first), (2, second), (4, third)):
+ assert hp.resolve_to_lines(hp.get_wrapped_id(public_id)) == [idx]
+
+
+def test_public_ids_are_stable_when_unrelated_lines_shift():
+ """Inserting lines before the local anchor must not change duplicate IDs."""
+ original = "top\ndup\nend\nmid\ndup\n"
+ edited = "new_a\nnew_b\n" + original
+
+ original_hp = HashPos(original)
+ edited_hp = HashPos(edited)
+
+ original_ids = [
+ original_hp.generate_public_id(line, idx, 1)
+ for idx, line in enumerate(original_hp.lines)
+ if line == "dup"
+ ]
+ edited_ids = [
+ edited_hp.generate_public_id(line, idx, 1)
+ for idx, line in enumerate(edited_hp.lines)
+ if line == "dup"
+ ]
+
+ assert original_ids == edited_ids
+ assert edited_hp.resolve_to_lines(edited_hp.get_wrapped_id(edited_ids[0])) == [3]
+ assert edited_hp.resolve_to_lines(edited_hp.get_wrapped_id(edited_ids[1])) == [6]
+
+
+def test_public_ids_change_only_when_local_anchor_changes():
+ """A new unique line before a duplicate changes that local ID segment."""
+ original_hp = HashPos("anchor\ndup\n")
+ edited_hp = HashPos("anchor\nnew_unique\ndup\n")
+
+ original_id = original_hp.generate_public_id("dup", 1, 1)
+ edited_id = edited_hp.generate_public_id("dup", 2, 1)
+
+ assert original_id != edited_id
diff --git a/tests/basic/test_hashline_closure.py b/tests/basic/test_hashline_closure.py
index 3551218d3b3..8be8bd82eec 100644
--- a/tests/basic/test_hashline_closure.py
+++ b/tests/basic/test_hashline_closure.py
@@ -733,3 +733,33 @@ def test_merge_single_op_returns_as_is():
result = _merge_replace_operations(ops)
assert len(result) == 1
assert result[0]["op"]["text"] == "text"
+
+
+def test_closure_safeguard_accepts_batch_valid_combination():
+ """Individually invalid edits should survive when the batch is valid."""
+ source = "if True:\n if False:\n x = 1\n"
+ ops = [
+ _make_closure_op("replace", " x = 1", 2, 2, index=0),
+ _make_closure_op("delete", "", 1, 1, index=1),
+ ]
+
+ result, rejected = _apply_closure_safeguard(source, ops, file_path="test.py")
+
+ assert len(result) == 2
+ assert rejected == []
+
+
+def test_fix_boundaries_does_not_cross_sibling_op():
+ """Boundary expansion must stop before another operation's range."""
+ source = ["dup", "old1", "dup", "X", "Y"]
+ ops = [
+ _make_op("replace", "dup\nnew", 2, 2, index=0),
+ _make_op("replace", "KEPT", 1, 1, index=1),
+ ]
+
+ result = _fix_duplicate_content_boundaries(source, ops)
+
+ assert result[0]["start_idx"] == 2
+ assert result[0]["end_idx"] == 2
+ assert result[1]["start_idx"] == 1
+ assert result[1]["end_idx"] == 1
diff --git a/tests/basic/test_model_provider_manager.py b/tests/basic/test_model_provider_manager.py
index 6da85ac6650..db098580ab8 100644
--- a/tests/basic/test_model_provider_manager.py
+++ b/tests/basic/test_model_provider_manager.py
@@ -553,3 +553,150 @@ def _fake_get(url, *, headers=None, timeout=None, verify=None):
manager._fetch_provider_models("demo")
assert captured["url"] == "https://example.com/v1/models"
+
+
+def test_nested_openrouter_payload_superset_extraction(monkeypatch, tmp_path):
+ """Nested OpenRouter fields are mapped through the declarative path sets."""
+ payload = {
+ "data": [
+ {
+ "id": "z-ai/glm-5.3-flash",
+ "context_length": 1048576,
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 131072,
+ },
+ "pricing": {"prompt": "0.0000000269", "completion": "0.0000000996"},
+ "supported_parameters": ["tools", "reasoning"],
+ }
+ ]
+ }
+
+ config = {
+ "openrouter": {
+ "api_base": "https://openrouter.ai/api/v1",
+ "models_url": "https://openrouter.ai/api/v1/models",
+ "requires_api_key": False,
+ }
+ }
+
+ manager = _make_manager(tmp_path, config)
+ monkeypatch.setattr(manager, "_fetch_provider_models", lambda provider: payload)
+
+ assert manager.refresh_provider_cache("openrouter") is True
+ info = manager.get_model_info("openrouter/z-ai/glm-5.3-flash")
+
+ assert info["max_input_tokens"] == 1048576
+ assert info["max_output_tokens"] == 131072
+ assert info["input_cost_per_token"] == 0.0000000269
+ assert info["output_cost_per_token"] == 0.0000000996
+ assert info["litellm_provider"] == "openrouter"
+
+
+def test_nested_payload_alternate_list_path_and_id(monkeypatch, tmp_path):
+ """Wrapped lists and alternate id keys resolve via the superset paths."""
+ payload = {
+ "result": {
+ "data": [
+ {
+ "model": "vendor/model",
+ "limits": {"context_length": 5000},
+ "cost": {"input": "2", "output": "4"},
+ }
+ ]
+ }
+ }
+
+ config = {
+ "demo": {
+ "api_base": "https://example.com/v1",
+ "requires_api_key": False,
+ "model_list_paths": ["result.data"],
+ }
+ }
+
+ manager = _make_manager(tmp_path, config)
+ monkeypatch.setattr(manager, "_fetch_provider_models", lambda provider: payload)
+
+ assert manager.refresh_provider_cache("demo") is True
+ info = manager.get_model_info("demo/vendor/model")
+
+ assert info["max_input_tokens"] == 5000
+ assert info["input_cost_per_token"] == 2.0 / manager.DEFAULT_TOKEN_PRICE_RATIO
+ assert info["output_cost_per_token"] == 4.0 / manager.DEFAULT_TOKEN_PRICE_RATIO
+
+
+def test_openrouter_nested_payload_extraction(monkeypatch, tmp_path):
+ """OpenRouter's nested limits/pricing are normalized through getter paths."""
+ payload = {
+ "data": [
+ {
+ "id": "z-ai/glm-5.3-flash",
+ "context_length": 1048576,
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 131072,
+ },
+ "pricing": {
+ "prompt": "0.0000000269",
+ "completion": "0.0000000996",
+ "input_cache_read": "0.0000000269",
+ "input_cache_write": "0.0000000335",
+ },
+ }
+ ]
+ }
+ config = {
+ "openrouter": {
+ "api_base": "https://openrouter.ai/api/v1",
+ "models_url": "https://openrouter.ai/api/v1/models",
+ "requires_api_key": False,
+ }
+ }
+
+ manager = _make_manager(tmp_path, config)
+ monkeypatch.setattr(manager, "_fetch_provider_models", lambda provider: payload)
+
+ assert manager.refresh_provider_cache("openrouter") is True
+
+ info = manager.get_model_info("openrouter/z-ai/glm-5.3-flash")
+
+ assert info["max_input_tokens"] == 1048576
+ assert info["max_output_tokens"] == 131072
+ assert abs(info["input_cost_per_token"] - 0.0000000269) < 1e-15
+ assert abs(info["output_cost_per_token"] - 0.0000000996) < 1e-15
+ assert abs(info["cache_read_input_token_cost"] - 0.0000000269) < 1e-15
+ assert abs(info["cache_creation_input_token_cost"] - 0.0000000335) < 1e-15
+
+
+def test_wrapped_model_list_and_alternate_field_paths(monkeypatch, tmp_path):
+ """Wrapped list envelopes, ``model`` ids, and ``limit.*`` fields resolve."""
+ payload = {
+ "result": {
+ "data": [
+ {
+ "model": "vendor/foo",
+ "limit": {"context": 32000, "output": 8000},
+ "pricing": {"prompt": "1.5", "completion": "3.0"},
+ }
+ ]
+ }
+ }
+ config = {
+ "demo": {
+ "api_base": "https://example.com/v1",
+ "requires_api_key": False,
+ }
+ }
+
+ manager = _make_manager(tmp_path, config)
+ monkeypatch.setattr(manager, "_fetch_provider_models", lambda provider: payload)
+
+ assert manager.refresh_provider_cache("demo") is True
+
+ info = manager.get_model_info("demo/vendor/foo")
+
+ assert info["max_input_tokens"] == 32000
+ assert info["max_output_tokens"] == 8000
+ assert info["input_cost_per_token"] == 1.5 / manager.DEFAULT_TOKEN_PRICE_RATIO
+ assert info["output_cost_per_token"] == 3.0 / manager.DEFAULT_TOKEN_PRICE_RATIO
diff --git a/tests/basic/test_models.py b/tests/basic/test_models.py
index 9b873898399..4e442f74d09 100644
--- a/tests/basic/test_models.py
+++ b/tests/basic/test_models.py
@@ -76,11 +76,8 @@ def test_max_context_tokens(self):
assert model.info["max_input_tokens"] == 16385
model = Model("gpt-4")
assert model.info["max_input_tokens"] == 8 * 1024
- model = Model("gpt-4-32k")
- # gpt-4-32k might not have model info in litellm, use .get() to avoid KeyError
- max_tokens = model.info.get("max_input_tokens")
- if max_tokens is not None:
- assert max_tokens == 32 * 1024
+ model = Model("gpt-6-luna")
+ assert model.info["max_input_tokens"] == 922000
model = Model("gpt-4-0613")
assert model.info["max_input_tokens"] == 8 * 1024
diff --git a/tests/basic/test_skills.py b/tests/basic/test_skills.py
index a77621edcd7..77d9ab33420 100644
--- a/tests/basic/test_skills.py
+++ b/tests/basic/test_skills.py
@@ -9,7 +9,7 @@
import pytest
-from cecli.helpers.skills import SkillsManager
+from cecli.helpers.skills import SkillsManager, _normalize_allowed_tools
class TestSkills:
@@ -213,6 +213,83 @@ def test_create_and_parse_skill(self):
assert "test-skill" not in manager._loaded_skills
assert manager._loaded_skills == set()
+ def test_allowed_tools_scalar_is_split(self):
+ """A comma-separated allowed-tools scalar is normalized into a list."""
+ skill_dir = Path(self.temp_dir) / "scalar-tools"
+ skill_dir.mkdir()
+
+ (skill_dir / "SKILL.md").write_text("""---
+name: scalar-tools
+description: Skill with a scalar allowed-tools value
+allowed-tools: Bash(git commit -m "a, b"), Read, Bash(spark-ssh.sh:*)
+---
+
+# Scalar Tools
+""")
+
+ manager = SkillsManager([self.temp_dir])
+ metadata = manager._parse_skill_metadata(skill_dir / "SKILL.md")
+
+ assert metadata.allowed_tools == [
+ 'Bash(git commit -m "a, b")',
+ "Read",
+ "Bash(spark-ssh.sh:*)",
+ ]
+
+ summary = manager.get_skill_summary("scalar-tools")
+ assert 'Allowed tools: Bash(git commit -m "a, b"), Read, Bash(spark-ssh.sh:*)' in summary
+
+ def test_allowed_tools_list_is_preserved(self):
+ """A YAML sequence for allowed-tools is preserved as a list."""
+ skill_dir = Path(self.temp_dir) / "list-tools"
+ skill_dir.mkdir()
+
+ (skill_dir / "SKILL.md").write_text("""---
+name: list-tools
+description: Skill with a list allowed-tools value
+allowed-tools:
+ - Read
+ - Bash(ls:*)
+---
+
+# List Tools
+""")
+
+ manager = SkillsManager([self.temp_dir])
+ metadata = manager._parse_skill_metadata(skill_dir / "SKILL.md")
+
+ assert metadata.allowed_tools == ["Read", "Bash(ls:*)"]
+
+ def test_allowed_tools_normalization_validates_types(self):
+ """Unsupported allowed-tools values raise and missing values become empty."""
+ assert _normalize_allowed_tools(None) == []
+ assert _normalize_allowed_tools(" ") == []
+ assert _normalize_allowed_tools(["Read", " "]) == ["Read"]
+
+ with pytest.raises(ValueError):
+ _normalize_allowed_tools(42)
+
+ with pytest.raises(ValueError):
+ _normalize_allowed_tools(["Read", 42])
+
+ def test_skill_with_invalid_allowed_tools_is_skipped(self):
+ """A skill whose allowed-tools has an invalid type is not loaded."""
+ skill_dir = Path(self.temp_dir) / "bad-tools"
+ skill_dir.mkdir()
+
+ (skill_dir / "SKILL.md").write_text("""---
+name: bad-tools
+description: Skill with invalid allowed-tools
+allowed-tools: 42
+---
+
+# Bad Tools
+""")
+
+ manager = SkillsManager([self.temp_dir])
+
+ assert "bad-tools" not in [skill.name for skill in manager.find_skills(reload=True)]
+
def test_skill_summary_loader(self, monkeypatch):
"""Test the skill_summary_loader function."""
# Isolate from the real ~/.cecli/skills directory so the test is
diff --git a/tests/conversations/test_conversation_system.py b/tests/conversations/test_conversation_system.py
index 94b3ef074e5..6ad50d259e8 100644
--- a/tests/conversations/test_conversation_system.py
+++ b/tests/conversations/test_conversation_system.py
@@ -290,6 +290,23 @@ def side_effect(fname, **kwargs):
# Clean up
os.unlink(temp_file)
+ def test_notify_file_edited_clears_cached_ranges(self, tmp_path):
+ """An edit must invalidate ReadFile's cached line ranges for the file."""
+ import os
+
+ abs_fname = os.path.abspath(tmp_path / "example.txt")
+ self.files._numbered_contexts[abs_fname] = [(1, 5)]
+ self.files._last_merged_ranges[abs_fname] = [(1, 5)]
+ self.files._emitted_contexts[abs_fname] = [(1, 5)]
+ self.files._file_context_versions[abs_fname] = 1
+
+ self.chunks.notify_file_edited(abs_fname)
+
+ assert abs_fname not in self.files._numbered_contexts
+ assert abs_fname not in self.files._last_merged_ranges
+ assert abs_fname not in self.files._emitted_contexts
+ assert abs_fname not in self.files._file_context_versions
+
def test_has_file_changed(self, mocker):
"""Test file change detection."""
import os
diff --git a/tests/helpers/observations/test_observation_service.py b/tests/helpers/observations/test_observation_service.py
index 79a70aaece2..a3658ccf7b6 100644
--- a/tests/helpers/observations/test_observation_service.py
+++ b/tests/helpers/observations/test_observation_service.py
@@ -263,10 +263,10 @@ async def test_compaction_bails_out_when_fixed_context_dominates():
coder.gpt_prompts = MagicMock()
coder._rate_limit_sleep = AsyncMock()
- # done/cur/diff/file_context are empty, so the entire context is the fixed
- # context (chat files, repo map, prompts). Summarizing cannot shrink it.
+ # A little compactable history plus a large fixed context (files in the
+ # chat, repo map, prompts). Summarizing cannot shrink the fixed part.
coder.summarizer = MagicMock()
- coder.summarizer.count_tokens.side_effect = [0, 0, 0, 0, 6000]
+ coder.summarizer.count_tokens.side_effect = [1000, 0, 0, 0, 6000]
coder.summarizer.summarize_all_as_text = AsyncMock(return_value="Summary Text")
mock_conv_manager = MagicMock()
@@ -285,10 +285,55 @@ async def test_compaction_bails_out_when_fixed_context_dominates():
return_value=obs,
),
):
- await Coder.compact_context_if_needed(coder, force=True)
+ await Coder.compact_context_if_needed(coder)
# Compaction must not summarize anything...
coder.summarizer.summarize_all_as_text.assert_not_called()
# ...and must tell the user why, with a remedy.
coder.io.tool_warning.assert_called_once()
coder.io.tool_output.assert_any_call("- Use /drop to remove unneeded files from the chat")
+
+
+@pytest.mark.asyncio
+async def test_compaction_force_runs_when_fixed_context_dominates():
+ """force=True must bypass the fixed-context bail-out and compact anyway."""
+ from cecli.coders.base_coder import Coder
+
+ coder = MagicMock(spec=Coder)
+ coder.uuid = "test-coder-force-fixed-context"
+ coder.enable_context_compaction = True
+ coder.context_compaction_max_tokens = 1000
+ coder.context_compaction_summary_tokens = 100
+ coder.io = MagicMock()
+ coder.gpt_prompts = MagicMock()
+ coder._rate_limit_sleep = AsyncMock()
+ coder.auto_memory = False
+ coder.edit_format = "whole"
+
+ # Fixed context dominates, but there is still compactable history to summarize.
+ coder.summarizer = MagicMock()
+ coder.summarizer.count_tokens.side_effect = [1000, 0, 0, 0, 6000, 500]
+ coder.summarizer.summarize_all_as_text = AsyncMock(return_value="Summary Text")
+
+ mock_conv_manager = MagicMock()
+ mock_conv_manager.get_messages_dict.return_value = []
+
+ obs = MagicMock()
+ obs.check_and_trigger = AsyncMock()
+
+ with (
+ patch(
+ "cecli.coders.base_coder.ConversationService.get_manager",
+ return_value=mock_conv_manager,
+ ),
+ patch(
+ "cecli.coders.base_coder.ObservationService.get_instance",
+ return_value=obs,
+ ),
+ ):
+ await Coder.compact_context_if_needed(coder, force=True)
+
+ # The bail-out warning must not fire; compaction proceeds and summarizes.
+ coder.io.tool_warning.assert_not_called()
+ coder.summarizer.summarize_all_as_text.assert_called_once()
+ coder.io.tool_output.assert_any_call("Forcing compaction of chat history...")
diff --git a/tests/helpers/test_coroutines.py b/tests/helpers/test_coroutines.py
new file mode 100644
index 00000000000..4eed6f0619b
--- /dev/null
+++ b/tests/helpers/test_coroutines.py
@@ -0,0 +1,20 @@
+import asyncio
+
+from cecli.helpers import coroutines
+
+
+def test_cancel_and_abandon_skips_tasks_from_closed_loop():
+ loop = asyncio.new_event_loop()
+
+ async def sleeper():
+ await asyncio.sleep(10)
+
+ task = loop.create_task(sleeper())
+ loop.run_until_complete(asyncio.sleep(0))
+ loop.close()
+ task._log_destroy_pending = False
+ coroutines.background_tasks.add(task)
+
+ asyncio.run(coroutines.cancel_and_abandon([task]))
+
+ assert task not in coroutines.background_tasks
diff --git a/tests/helpers/test_model_config.py b/tests/helpers/test_model_config.py
index 80f2a90e37a..fb64b81e279 100644
--- a/tests/helpers/test_model_config.py
+++ b/tests/helpers/test_model_config.py
@@ -918,3 +918,104 @@ def test_model_init_claude_5_uses_reasoning_effort(tmp_path, monkeypatch):
assert "thinking" not in model.extra_params
assert "extra_body" not in model.extra_params
assert model.get_reasoning_effort() == "medium"
+
+
+# ---------------------------------------------------------------------------
+# Router / multi-part model names
+# ---------------------------------------------------------------------------
+
+
+def test_router_model_inherits_vendor_alias_record():
+ """``openrouter/z-ai/x`` inherits from the bundled ``zai/x`` record."""
+ metadata = {
+ "zai/glm-5.3-flash": _record(
+ litellm_provider="zai",
+ max_input_tokens=1048576,
+ max_output_tokens=128000,
+ )
+ }
+ config = get_default_config("openrouter/z-ai/glm-5.3-flash", [metadata])
+
+ assert config["llm"]["litellm_provider"] == "zai"
+ assert config["llm"]["max_input_tokens"] == 1048576
+ assert config["llm"]["max_output_tokens"] == 128000
+
+
+def test_router_model_inherits_google_to_gemini_alias():
+ metadata = {
+ "gemini/gemini-2.5-pro": _record(
+ litellm_provider="gemini",
+ max_input_tokens=1048576,
+ max_output_tokens=65536,
+ )
+ }
+ config = get_default_config("openrouter/google/gemini-2.5-pro", [metadata])
+
+ assert config["llm"]["litellm_provider"] == "gemini"
+ assert config["llm"]["max_input_tokens"] == 1048576
+ assert config["llm"]["max_output_tokens"] == 65536
+
+
+def test_router_model_falls_back_to_same_route_tail_across_providers():
+ """A rehost-only metadata record still supplies limits for a router name."""
+ metadata = {
+ "baseten/zai-org/GLM-5.3-Flash": _record(
+ litellm_provider="baseten",
+ max_input_tokens=1048576,
+ max_output_tokens=131072,
+ )
+ }
+ config = get_default_config("openrouter/z-ai/glm-5.3-flash", [metadata])
+
+ assert config["llm"]["max_input_tokens"] == 1048576
+ assert config["llm"]["max_output_tokens"] == 131072
+
+
+def test_router_fallback_requires_matching_route_tail():
+ metadata = {"vendor/unrelated-model": _record(litellm_provider="vendor")}
+ config = get_default_config("openrouter/z-ai/glm-5.3-flash", [metadata])
+
+ assert "max_input_tokens" not in config["llm"]
+ assert "max_output_tokens" not in config["llm"]
+
+
+# ---------------------------------------------------------------------------
+# Router / multi-part model names
+# ---------------------------------------------------------------------------
+
+
+def test_router_model_inherits_vendor_aliased_record():
+ """``openrouter/z-ai/x`` inherits from the bundled ``zai/x`` record."""
+ metadata = {
+ "zai/glm-5.3-flash": _record(
+ litellm_provider="zai", max_input_tokens=1048576, max_output_tokens=128000
+ )
+ }
+ config = get_default_config("openrouter/z-ai/glm-5.3-flash", [metadata])
+
+ assert config["llm"]["litellm_provider"] == "zai"
+ assert config["llm"]["max_input_tokens"] == 1048576
+ assert config["llm"]["max_output_tokens"] == 128000
+
+
+def test_router_model_inherits_from_rehosted_route_tail():
+ """When only a rehosted record exists, match its route tail."""
+ metadata = {
+ "baseten/zai-org/GLM-5.3-Flash": _record(
+ litellm_provider="baseten", max_input_tokens=1048576, max_output_tokens=131072
+ )
+ }
+ config = get_default_config("openrouter/z-ai/glm-5.3-flash", [metadata])
+
+ assert config["llm"]["litellm_provider"] == "baseten"
+ assert config["llm"]["max_input_tokens"] == 1048576
+ assert config["llm"]["max_output_tokens"] == 131072
+
+
+def test_router_route_fallback_requires_matching_model_tail():
+ """A different model name must not inherit an unrelated record."""
+ metadata = {"vendor/other-model": _record(litellm_provider="vendor")}
+ config = get_default_config("openrouter/z-ai/glm-5.3-flash", [metadata])
+
+ assert "max_input_tokens" not in config["llm"]
+ assert config["llm"]["litellm_provider"] == "openrouter"
diff --git a/tests/helpers/test_orchestration.py b/tests/helpers/test_orchestration.py
index 9a278c5211e..1d782752f2c 100644
--- a/tests/helpers/test_orchestration.py
+++ b/tests/helpers/test_orchestration.py
@@ -864,499 +864,6 @@ def test_agent_proxy_local_prefix_tool():
assert tool._mcp_server is None
-# ===================================================================
-# AgentRegion
-# ===================================================================
-
-
-def test_agent_region_basic(tmp_path):
- """AgentRegion stores patterns and resolves lazily via get_start/get_end."""
-
- import os
-
- from cecli.helpers.orchestration.region_resolver import AgentRegion
-
- # Create a real file so lazy resolution works
- source = "def foo():\n return 42\n"
- test_file = os.path.join(str(tmp_path), "basic.py")
- with open(test_file, "w") as f:
- f.write(source)
-
- coder = _make_coder_with_io(str(tmp_path))
-
- regions = AgentRegion(
- "basic.py",
- coder,
- [
- {"name": "foo", "start": "def foo():", "end": " return 42"},
- ],
- )
-
- assert "foo" in regions
- assert "missing" not in regions
- assert len(regions) == 1
- assert "AgentRegion(1" in repr(regions)
-
- # Lazy resolution on access
- start_id = regions.get_start("foo")
- end_id = regions.get_end("foo")
-
- assert "—" in start_id
- assert "—" in end_id
-
- start_line = regions.get_start_line("foo")
- end_line = regions.get_end_line("foo")
-
- assert start_line > 0
- assert end_line > 0
- assert start_line <= end_line
-
-
-# ===================================================================
-# AgentProxy.resolve_regions
-# ===================================================================
-
-
-def _make_coder_with_io(tmp_path):
- """Build a coder mock that supports resolve_paths + file I/O."""
-
- import os
-
- class _MockIO:
- def read_text(self, abs_path):
- if os.path.isfile(abs_path):
- with open(abs_path, "r") as f:
- return f.read()
-
- return None
-
- class _MockCoder:
- root = tmp_path
- io = _MockIO()
- registered_tools = {"included": set(), "excluded": set()}
- mcp_tools = []
-
- def abs_root_path(self, file_path):
- import os
-
- return os.path.join(self.root, file_path)
-
- def get_rel_fname(self, abs_path):
- import os
-
- return os.path.relpath(abs_path, self.root)
-
- return _MockCoder()
-
-
-def test_resolve_regions_basic(tmp_path):
- """AgentProxy.resolve_regions resolves text patterns to content IDs."""
-
- import os
-
- from cecli.helpers.orchestration.environment import AgentProxy
-
- # Create a test file with known regions
- source = """\
-def helper_one():
- \"\"\"Returns 'one'.\"\"\"
- return "one"
-
-
-def helper_two():
- \"\"\"Returns 'two'.\"\"\"
- return "two"
-
-
-def main():
- result = helper_one() + helper_two()
- return result
-"""
-
- test_file = os.path.join(str(tmp_path), "test_regions.py")
-
- with open(test_file, "w") as f:
- f.write(source)
-
- coder = _make_coder_with_io(str(tmp_path))
- proxy = AgentProxy(coder)
-
- regions = proxy.resolve_regions(
- "test_regions.py",
- [
- {"name": "helper_one", "start": "def helper_one():", "end": ' return "one"'},
- {"name": "helper_two", "start": "def helper_two():", "end": ' return "two"'},
- {"name": "main", "start": "def main():", "end": " return result"},
- ],
- )
-
- from cecli.helpers.orchestration.region_resolver import AgentRegion
-
- assert isinstance(regions, AgentRegion)
- assert len(regions) == 3
-
- # Each region should have valid content IDs
- for name in ("helper_one", "helper_two", "main"):
- start_id = regions.get_start(name)
- end_id = regions.get_end(name)
-
- assert "—" in start_id, f"{name} start_id should be a content ID: {start_id}"
- assert "—" in end_id, f"{name} end_id should be a content ID: {end_id}"
-
- assert regions.get_start_line(name) > 0
- assert regions.get_end_line(name) > 0
- assert regions.get_start_line(name) <= regions.get_end_line(name)
-
-
-def test_resolve_regions_file_not_found(tmp_path):
- """Eager validation raises ValueError at resolve_regions time when file doesn't exist."""
-
- import pytest
-
- from cecli.helpers.orchestration.environment import AgentProxy
-
- coder = _make_coder_with_io(str(tmp_path))
-
- proxy = AgentProxy(coder)
-
- # Eager validation surfaces errors at construction time
- with pytest.raises(ValueError, match="File not found"):
- proxy.resolve_regions(
- "nonexistent.py",
- [{"name": "x", "start": "def x", "end": "return"}],
- )
-
-
-def test_resolve_regions_empty_regions_list(tmp_path):
- """AgentProxy.resolve_regions handles empty region list."""
-
- import os
-
- from cecli.helpers.orchestration.environment import AgentProxy
- from cecli.helpers.orchestration.region_resolver import AgentRegion
-
- source = "x = 1\n"
-
- test_file = os.path.join(str(tmp_path), "empty_test.py")
-
- with open(test_file, "w") as f:
- f.write(source)
-
- coder = _make_coder_with_io(str(tmp_path))
- proxy = AgentProxy(coder)
-
- regions = proxy.resolve_regions("empty_test.py", [])
-
- assert isinstance(regions, AgentRegion)
- assert len(regions) == 0
-
-
-def test_agent_region_content_id_fallback(tmp_path):
- """AgentRegion snapshots line content from content-ID patterns for stale-ID fallback."""
-
- import os
-
- from cecli.helpers.orchestration.region_resolver import AgentRegion
-
- source = """\
-def greet(name):
- return f"hello {name}"
-
-
-def farewell(name):
- return f"goodbye {name}"
-"""
-
- test_file = os.path.join(str(tmp_path), "fallback_test.py")
-
- with open(test_file, "w") as f:
- f.write(source)
-
- coder = _make_coder_with_io(str(tmp_path))
-
- # First, resolve using the Agent to get a real content ID
- from cecli.helpers.orchestration.environment import AgentProxy
-
- proxy = AgentProxy(coder)
- regions = proxy.resolve_regions(
- "fallback_test.py",
- [{"name": "greet", "start": "def greet(name):", "end": ' return f"hello {name}"'}],
- )
-
- # Get the content ID for the start of "greet"
- start_id = regions.get_start("greet")
-
- # Now create a NEW AgentRegion that uses the raw content ID as the pattern.
- # This simulates an agent that captured content IDs from a previous turn.
- regions2 = AgentRegion(
- "fallback_test.py",
- coder,
- [{"name": "greet", "start": start_id, "end": start_id}],
- )
-
- # First resolution should snapshot the line content
- result_id = regions2.get_start("greet")
- assert "—" in result_id
-
- # Now modify the file (simulating an edit that shifts hashlines)
- new_source = """\
-# header comment added
-def greet(name):
- return f"hello {name}"
-
-
-def farewell(name):
- return f"goodbye {name}"
-"""
-
- with open(test_file, "w") as f:
- f.write(new_source)
-
- # The original content ID is now stale, but the snapshot should let
- # us resolve via content matching
- result_id2 = regions2.get_start("greet")
- assert "—" in result_id2, f"Should resolve via fallback content match, got: {result_id2!r}"
-
-
-def test_agent_region_rejects_ambiguous_pattern(tmp_path):
- """AgentRegion raises ValueError eagerly when a text pattern matches multiple locations."""
-
- import os
-
- import pytest
-
- from cecli.helpers.orchestration.region_resolver import AgentRegion
-
- # Create a file where "return x" appears multiple times
- source = """\
-def foo():
- return x
-
-
-def bar():
- return x
-
-
-def baz():
- return x
-"""
-
- test_file = os.path.join(str(tmp_path), "ambiguous.py")
- with open(test_file, "w") as f:
- f.write(source)
-
- coder = _make_coder_with_io(str(tmp_path))
-
- # start is unique, but end matches 3 locations — error surfaces eagerly
- with pytest.raises(ValueError, match="End pattern"):
- AgentRegion(
- "ambiguous.py",
- coder,
- [
- {"name": "bar", "start": "def bar", "end": "return x"},
- ],
- )
-
-
-def test_agent_region_disambiguates_with_l_hint(tmp_path):
- """AgentRegion uses @L hint to disambiguate when a pattern matches multiple locations."""
-
- import os
-
- from cecli.helpers.orchestration.region_resolver import AgentRegion
-
- source = """\
-def foo():
- return x
-
-def bar():
- return y
-
-def baz():
- return z
-"""
-
- test_file = os.path.join(str(tmp_path), "hint_test.py")
- with open(test_file, "w") as f:
- f.write(source)
-
- coder = _make_coder_with_io(str(tmp_path))
-
- # "return" appears on lines 2, 5, 8 — use @L hint to target bar's return
- regions = AgentRegion(
- "hint_test.py",
- coder,
- [
- {"name": "bar", "start": "def bar():", "end": " return y @L6"},
- ],
- )
-
- start_id = regions.get_start("bar")
- end_id = regions.get_end("bar")
-
- assert "—" in start_id
- assert "—" in end_id
- assert regions.get_start_line("bar") == 4
- assert regions.get_end_line("bar") == 5
-
-
-def test_agent_region_rejects_l_hint_still_ambiguous(tmp_path):
- """AgentRegion raises ValueError eagerly when @L hint has equally-close matches (tie)."""
-
- import os
-
- import pytest
-
- from cecli.helpers.orchestration.region_resolver import AgentRegion
-
- source = """\
-return x
-
-return y
-middle
-return x
-return z
-"""
-
- test_file = os.path.join(str(tmp_path), "bad_hint.py")
- with open(test_file, "w") as f:
- f.write(source)
-
- coder = _make_coder_with_io(str(tmp_path))
-
- # "return x" at lines 1 and 4 (0-based: 0 and 3), hint @L3 (0-based 2)
- # Both are distance 1 away from the hint — error surfaces eagerly
- with pytest.raises(ValueError, match="End pattern.*@L3 hint ties"):
- AgentRegion(
- "bad_hint.py",
- coder,
- [
- {"name": "top", "start": "return x @L1", "end": "return x @L3"},
- ],
- )
-
-
-def test_agent_region_explicit_line_hints(tmp_path):
- """Explicit start_line_hint / end_line_hint fields disambiguate patterns."""
-
- import os
-
- from cecli.helpers.orchestration.region_resolver import AgentRegion
-
- source = """\
-def foo():
- return x
-
-def bar():
- return y
-
-def baz():
- return z
-"""
-
- test_file = os.path.join(str(tmp_path), "explicit_hint.py")
- with open(test_file, "w") as f:
- f.write(source)
-
- coder = _make_coder_with_io(str(tmp_path))
-
- # Use explicit end_line_hint instead of @L in pattern
- regions = AgentRegion(
- "explicit_hint.py",
- coder,
- [
- {"name": "bar", "start": "def bar():", "end": " return y", "end_line_hint": 6},
- ],
- )
-
- start_id = regions.get_start("bar")
- end_id = regions.get_end("bar")
-
- assert "—" in start_id
- assert "—" in end_id
- assert regions.get_start_line("bar") == 4
- assert regions.get_end_line("bar") == 5
-
-
-def test_agent_region_explicit_hint_overrides_at_syntax(tmp_path):
- """Explicit line_hint fields override @L hints embedded in patterns."""
-
- import os
-
- from cecli.helpers.orchestration.region_resolver import AgentRegion
-
- source = """\
-def foo():
- return x
-
-def bar():
- return y
-
-def baz():
- return z
-"""
-
- test_file = os.path.join(str(tmp_path), "override_hint.py")
- with open(test_file, "w") as f:
- f.write(source)
-
- coder = _make_coder_with_io(str(tmp_path))
-
- # @L2 points to foo's return, but explicit end_line_hint=3 points to bar's
- regions = AgentRegion(
- "override_hint.py",
- coder,
- [
- {
- "name": "bar",
- "start": "def bar():",
- "end": " return y @L3",
- "end_line_hint": 6,
- },
- ],
- )
-
- # Explicit hint (6, 1-based) disambiguates; pattern must be the full exact line
- assert regions.get_end_line("bar") == 5
-
-
-def test_resolve_regions_rejects_ambiguous_via_proxy(tmp_path):
- """resolve_regions() through AgentProxy surfaces ambiguity errors eagerly at construction time."""
-
- import os
-
- import pytest
-
- from cecli.helpers.orchestration.environment import AgentProxy
-
- source = """\
-def one():
- pass
-
-
-def two():
- pass
-
-
-def three():
- pass
-"""
-
- test_file = os.path.join(str(tmp_path), "proxy_ambig.py")
- with open(test_file, "w") as f:
- f.write(source)
-
- coder = _make_coder_with_io(str(tmp_path))
- proxy = AgentProxy(coder)
-
- # "pass" appears 3 times — error surfaces eagerly at resolve_regions time
- with pytest.raises(ValueError, match="End pattern.*pass.*matches 3"):
- proxy.resolve_regions(
- "proxy_ambig.py",
- [{"name": "two", "start": "def two", "end": "pass"}],
- )
-
-
def test_gather_result_attribute_access():
"""GatherResult supports attribute access for named results."""
from cecli.helpers.orchestration.environment import GatherResult
diff --git a/tests/helpers/workflows/test_config.py b/tests/helpers/workflows/test_config.py
index a5c82cb9928..4201f50cceb 100644
--- a/tests/helpers/workflows/test_config.py
+++ b/tests/helpers/workflows/test_config.py
@@ -657,3 +657,115 @@ def test_persist_string_false_is_not_truthy():
)
assert wf.persist is False
+
+
+# ── repo + worktree ────────────────────────────────────────────────────────
+
+
+@pytest.mark.parametrize(
+ ("raw", "expected"),
+ [
+ (True, {}),
+ (None, None),
+ (False, None),
+ ({"branch": "main"}, {"branch": "main"}),
+ ],
+)
+def test_worktree_normalized(raw, expected):
+ wf = models.WorkflowConfig.from_dict(
+ {"name": "wt", "worktree": raw, "tasks": [{"prompt": "x"}]}
+ )
+
+ assert wf.worktree == expected
+
+
+def test_repo_and_worktree_round_trip(isolated):
+ _home_workflow(
+ isolated["wdir"],
+ "wt.yml",
+ "name: wt\n"
+ "repo: /repos/app\n"
+ "worktree:\n"
+ " branch: main\n"
+ "tasks:\n"
+ " - prompt: x\n",
+ )
+
+ wf = load_workflows()[0]
+
+ assert wf.repo == "/repos/app"
+ assert wf.worktree == {"branch": "main"}
+ assert wf.to_dict()["repo"] == "/repos/app"
+ assert wf.to_dict()["worktree"] == {"branch": "main"}
+
+
+def test_worktree_true_is_enabled_with_defaults(isolated):
+ _home_workflow(
+ isolated["wdir"],
+ "wt-true.yml",
+ "name: wt-true\nrepo: /repos/app\nworktree: true\ntasks:\n - prompt: x\n",
+ )
+
+ wf = load_workflows()[0]
+
+ assert wf.worktree == {}
+
+
+@pytest.mark.parametrize("bad", ["yes", 1, ["main"]])
+def test_worktree_wrong_type_raises(bad):
+ wf = models.WorkflowConfig(name="wt", tasks=[models.TaskConfig(prompt="p")], worktree=bad)
+
+ with pytest.raises(ValueError, match="'worktree' must be a boolean or a mapping"):
+ validate_workflow_config(wf, {"name": "wt", "worktree": bad, "tasks": ["p"]})
+
+
+def test_worktree_branch_must_be_string():
+ wf = models.WorkflowConfig(
+ name="wt", tasks=[models.TaskConfig(prompt="p")], worktree={"branch": 3}
+ )
+
+ with pytest.raises(ValueError, match="'worktree.branch' must be a string"):
+ validate_workflow_config(wf)
+
+
+def test_unknown_worktree_key_warns():
+ wf = models.WorkflowConfig(
+ name="wt",
+ tasks=[models.TaskConfig(prompt="p")],
+ worktree={"branch": "main", "remote": "origin"},
+ )
+
+ warnings = validate_workflow_config(wf)
+
+ assert any("unknown 'worktree' key(s) ignored" in w and "remote" in w for w in warnings)
+
+
+def test_repo_must_be_string():
+ wf = models.WorkflowConfig(name="wt", tasks=[models.TaskConfig(prompt="p")], repo=123)
+
+ with pytest.raises(ValueError, match="'repo' must be a string"):
+ validate_workflow_config(wf)
+
+
+def test_worktree_without_source_warns():
+ wf = models.WorkflowConfig(name="wt", tasks=[models.TaskConfig(prompt="p")], worktree={})
+
+ warnings = validate_workflow_config(wf)
+
+ assert any("no source repository could be inferred" in w for w in warnings)
+
+
+def test_worktree_true_is_normalized_programmatically():
+ wf = models.WorkflowConfig(name="wt", tasks=[models.TaskConfig(prompt="p")], worktree=True)
+
+ assert wf.worktree == {}
+ assert wf.to_dict()["worktree"] == {}
+
+
+def test_to_dict_omits_absent_repo_and_worktree():
+ wf = models.WorkflowConfig(name="wt", tasks=[models.TaskConfig(prompt="p")])
+
+ data = wf.to_dict()
+
+ assert "repo" not in data
+ assert "worktree" not in data
diff --git a/tests/helpers/workflows/test_runner.py b/tests/helpers/workflows/test_runner.py
index 6105f365d8d..e5b3ccf7eb5 100644
--- a/tests/helpers/workflows/test_runner.py
+++ b/tests/helpers/workflows/test_runner.py
@@ -34,6 +34,7 @@ def make_worker():
worker.prompt_queue = []
worker._queue_counter = 0
worker._queue_lock = threading.Lock()
+ worker.worktree = None
return worker
@@ -476,3 +477,26 @@ async def test_persist_reuses_existing_worker(coder):
get_files.return_value.reset.assert_called_once()
get_chunks.return_value.add_system_message.assert_called_once()
assert service.reaped == []
+
+
+@pytest.mark.asyncio
+async def test_worktree_recorded_and_logged(coder):
+ worker = make_worker()
+ worker.received = []
+
+ class Record:
+ def to_dict(self):
+ return {"branch": "cecli/wf-demo-1234", "path": "/tmp/wt"}
+
+ worker.worktree = Record()
+ service = FakeService(worker, _drain)
+ wf = _wf(TaskConfig(prompt="x"))
+
+ result = await _execute(service, wf, coder)
+
+ assert result.worktree == {"branch": "cecli/wf-demo-1234", "path": "/tmp/wt"}
+
+ from cecli.helpers.workflows.logs import read_log_lines
+
+ finish = [e for e in read_log_lines(result.log_path) if e.get("event") == "finish"][-1]
+ assert finish["worktree"] == result.worktree
diff --git a/tests/helpers/workflows/test_subagents.py b/tests/helpers/workflows/test_subagents.py
index 164a32ed669..53b62bda8a4 100644
--- a/tests/helpers/workflows/test_subagents.py
+++ b/tests/helpers/workflows/test_subagents.py
@@ -183,3 +183,56 @@ def test_workflow_metadata_overrides_subagent_config():
assert agent_config["servers_includelist"] == ["gitlab"]
assert agent_config["skip_cli_confirmations"] is True
assert agent_config["detached"] is True
+
+
+# ---------------------------------------------------------------- worktree --
+
+
+def test_worktree_metadata_uses_repo():
+ wf = _wf(repo="/repos/app", worktree={"branch": "main"})
+
+ register_workflow_subagents([wf])
+ cfg = AgentService.get_registry()["wf:check-pipeline"]
+
+ assert cfg.metadata["worktree"] == {"branch": "main"}
+ assert cfg.metadata["worktree_source"] == "/repos/app"
+
+
+def test_worktree_metadata_uses_normalized_root(tmp_path, monkeypatch):
+ monkeypatch.setenv("HOME", str(tmp_path))
+ monkeypatch.setenv("USERPROFILE", str(tmp_path))
+ root = tmp_path / "repo"
+ root.mkdir()
+
+ wf = _wf(root="~/repo", worktree=True)
+
+ register_workflow_subagents([wf])
+ cfg = AgentService.get_registry()["wf:check-pipeline"]
+
+ assert cfg.metadata["worktree"] == {}
+ assert cfg.metadata["worktree_source"] == str(root.expanduser().resolve())
+
+
+def test_worktree_metadata_uses_source_path_git_root(tmp_path, monkeypatch):
+ repo = tmp_path / "repo"
+ repo.mkdir()
+ source = repo / "workflows" / "nightly.yml"
+ monkeypatch.setattr(wf_subagents, "_git_toplevel", lambda path: str(repo))
+
+ wf = _wf(name="nightly", source_path=str(source), worktree=True)
+
+ register_workflow_subagents([wf])
+ cfg = AgentService.get_registry()["wf:nightly"]
+
+ assert cfg.metadata["worktree"] == {}
+ assert cfg.metadata["worktree_source"] == str(repo)
+
+
+def test_no_worktree_metadata_when_disabled():
+ wf = _wf(root="/repos/app")
+
+ register_workflow_subagents([wf])
+ cfg = AgentService.get_registry()["wf:check-pipeline"]
+
+ assert "worktree" not in cfg.metadata
+ assert "worktree_source" not in cfg.metadata
diff --git a/tests/helpers/worktrees/__init__.py b/tests/helpers/worktrees/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/tests/helpers/worktrees/test_manager.py b/tests/helpers/worktrees/test_manager.py
new file mode 100644
index 00000000000..2fd119e132b
--- /dev/null
+++ b/tests/helpers/worktrees/test_manager.py
@@ -0,0 +1,492 @@
+"""End-to-end tests for worktree creation, recreation, and release."""
+
+from __future__ import annotations
+
+import json
+import os
+import shutil
+import subprocess
+import sys
+from concurrent.futures import ThreadPoolExecutor
+from dataclasses import replace
+from pathlib import Path
+
+import pytest
+
+from cecli.helpers.worktrees import (
+ WorktreeError,
+ WorktreeManager,
+ WorktreeRecord,
+ WorktreeReleaseResult,
+)
+
+
+@pytest.fixture(autouse=True)
+def isolated_base(tmp_path, monkeypatch):
+ base = tmp_path / "worktrees"
+ monkeypatch.setenv("CECLI_WORKTREES_DIR", str(base))
+ return base
+
+
+def _git(repo, *args):
+ result = subprocess.run(
+ ["git", "-C", str(repo), *args],
+ capture_output=True,
+ text=True,
+ )
+ assert result.returncode == 0, result.stderr
+ return result.stdout.strip()
+
+
+def _init_repo(path: Path, branch: str = "main") -> Path:
+ path.mkdir(parents=True, exist_ok=True)
+ subprocess.run(["git", "init", str(path)], check=True, capture_output=True)
+ subprocess.run(
+ ["git", "-C", str(path), "symbolic-ref", "HEAD", f"refs/heads/{branch}"],
+ check=True,
+ capture_output=True,
+ )
+ subprocess.run(
+ ["git", "-C", str(path), "config", "user.name", "Test User"],
+ check=True,
+ capture_output=True,
+ )
+ subprocess.run(
+ ["git", "-C", str(path), "config", "user.email", "test@example.com"],
+ check=True,
+ capture_output=True,
+ )
+ (path / "README.md").write_text("hello\n", encoding="utf-8")
+ _git(path, "add", "-A")
+ _git(path, "commit", "-m", "initial")
+
+ return path
+
+
+def _create(repo: Path, uuid: str = "456abcde", agent: str = "wf:nightly-tidy", **kwargs):
+ source = kwargs.pop("source", repo)
+
+ return WorktreeManager.create(agent_name=agent, uuid=uuid, source=source, **kwargs)
+
+
+def test_create_from_local_repo(tmp_path, isolated_base):
+ repo = _init_repo(tmp_path / "repo")
+
+ record = _create(repo)
+
+ assert record.repo == str(repo.resolve())
+ assert record.branch == "cecli/wf-nightly-tidy-456abcde"
+ assert record.path == str((isolated_base / "repo" / "wf-nightly-tidy-456abcde").resolve())
+ assert Path(record.path).is_dir()
+ assert record.base_ref == "main"
+ assert record.base_sha == _git(repo, "rev-parse", "main")
+ assert record.agent == "wf:nightly-tidy"
+ assert record.uuid == "456abcde"
+ assert record.pid == os.getpid()
+ assert record.created_at
+ assert WorktreeManager.get(record.uuid) == record
+
+
+def test_default_branch_master(tmp_path):
+ repo = _init_repo(tmp_path / "repo", branch="master")
+
+ record = _create(repo)
+
+ assert record.base_ref == "master"
+
+
+def test_explicit_base_ref(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+ _git(repo, "branch", "feature")
+ feature_sha = _git(repo, "rev-parse", "feature")
+
+ record = _create(repo, base_ref="feature")
+
+ assert record.base_ref == "feature"
+ assert record.base_sha == feature_sha
+
+
+def test_unknown_base_ref_raises(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+
+ with pytest.raises(WorktreeError):
+ _create(repo, base_ref="does-not-exist")
+
+
+def test_branch_and_path_naming_are_sanitized(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+
+ record = _create(repo, agent="wf:nightly tidy", uuid="abc/def")
+
+ assert record.branch == "cecli/wf-nightly-tidy-abc-def"
+ assert "/" not in Path(record.path).name
+ assert Path(record.path).name == "wf-nightly-tidy-abc-def"
+
+
+def test_two_creates_produce_distinct_paths_and_branches(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+
+ first = _create(repo, uuid="aaaa1111", reuse_existing=False)
+ second = _create(repo, uuid="bbbb2222", reuse_existing=False)
+
+ assert first.path != second.path
+ assert first.branch != second.branch
+ assert Path(first.path).is_dir()
+ assert Path(second.path).is_dir()
+
+
+def test_create_reuses_existing_worktree_for_same_agent(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+
+ first = _create(repo, uuid="aaaa1111")
+ second = _create(repo, uuid="bbbb2222")
+
+ assert first.uuid == second.uuid
+ assert first.path == second.path
+ assert first.branch == second.branch
+ assert len(list((tmp_path / "worktrees" / "repo").iterdir())) == 1
+
+
+def test_create_same_uuid_does_not_create_suffixed_copies(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+
+ first = _create(repo, uuid="abcd1234", reuse_existing=False)
+ second = _create(repo, uuid="abcd1234", reuse_existing=False)
+
+ assert first.path == second.path
+ names = sorted(item.name for item in (tmp_path / "worktrees" / "repo").iterdir())
+ assert names == ["wf-nightly-tidy-abcd1234"]
+
+
+def test_concurrent_creates_reuse_a_single_worktree(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+ uuids = [f"aaaa{index:04d}" for index in range(8)]
+
+ with ThreadPoolExecutor(max_workers=len(uuids)) as pool:
+ records = list(pool.map(lambda value: _create(repo, uuid=value), uuids))
+
+ assert {record.path for record in records} == {records[0].path}
+ assert {record.uuid for record in records} == {records[0].uuid}
+ assert len(list((tmp_path / "worktrees" / "repo").iterdir())) == 1
+
+
+def test_clean_release_deletes_branch(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+ record = _create(repo)
+
+ result = WorktreeManager.release(record)
+
+ assert isinstance(result, WorktreeReleaseResult)
+ assert result.removed is True
+ assert result.committed is False
+ assert result.branch_deleted is True
+ assert result.branch_kept is False
+ assert not Path(record.path).exists()
+ assert WorktreeManager.get(record.uuid) is None
+ assert record.branch not in _git(repo, "branch", "--list")
+
+
+def test_dirty_release_commits_and_keeps_branch(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+ record = _create(repo)
+ (Path(record.path) / "README.md").write_text("changed\n", encoding="utf-8")
+
+ result = WorktreeManager.release(record)
+
+ subject = f"Unfinished Dirty Worktree from agent {record.uuid}"
+ body = _git(repo, "log", "-1", "--format=%b", record.branch)
+
+ assert result.committed is True
+ assert result.removed is True
+ assert result.branch_kept is True
+ assert result.branch_deleted is False
+ assert not Path(record.path).exists()
+ assert _git(repo, "log", "-1", "--format=%s", record.branch) == subject
+ assert record.agent in body
+ assert record.base_sha in body
+ assert "README.md" in body
+ assert WorktreeManager.get(record.uuid) is None
+
+
+def test_release_commits_untracked_file(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+ record = _create(repo)
+ (Path(record.path) / "notes.txt").write_text("scratch\n", encoding="utf-8")
+
+ result = WorktreeManager.release(record)
+
+ assert result.committed is True
+ assert result.branch_kept is True
+ assert _git(repo, "show", f"{record.branch}:notes.txt") == "scratch"
+
+
+def test_release_keeps_branch_with_agent_commits(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+ record = _create(repo)
+ (Path(record.path) / "agent.txt").write_text("work\n", encoding="utf-8")
+ _git(Path(record.path), "add", "-A")
+ _git(Path(record.path), "commit", "-m", "agent work")
+
+ result = WorktreeManager.release(record)
+
+ assert result.committed is False
+ assert result.removed is True
+ assert result.branch_kept is True
+ assert result.branch_deleted is False
+ assert not Path(record.path).exists()
+ assert record.branch in _git(repo, "branch", "--list")
+
+
+def test_release_with_missing_path(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+ record = _create(repo)
+ shutil.rmtree(record.path)
+
+ result = WorktreeManager.release(record)
+
+ assert result.removed is False
+ assert result.branch_kept is False
+ assert result.branch_deleted is True
+ assert result.reason == "worktree path missing"
+ assert WorktreeManager.get(record.uuid) is None
+ assert record.branch not in _git(repo, "branch", "--list")
+
+
+def test_release_oversized_untracked_guard(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+ record = _create(repo)
+ big = Path(record.path) / "big.bin"
+ big.write_bytes(b"x" * (WorktreeManager.MAX_UNTRACKED_FILE_BYTES + 1))
+
+ result = WorktreeManager.release(record)
+
+ assert result.removed is False
+ assert result.committed is False
+ assert result.branch_kept is True
+ assert "untracked files too large" in result.reason
+ assert Path(record.path).is_dir()
+ assert record.branch in _git(repo, "branch", "--list")
+ assert WorktreeManager.get(record.uuid) == record
+
+
+def test_release_oversized_guard_can_be_forced(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+ record = _create(repo)
+ (Path(record.path) / "big.bin").write_bytes(
+ b"x" * (WorktreeManager.MAX_UNTRACKED_FILE_BYTES + 1)
+ )
+
+ result = WorktreeManager.release(record, force=True)
+
+ assert result.removed is True
+ assert result.committed is True
+ assert not Path(record.path).exists()
+
+
+def test_is_worktree_rejects_other_repo(tmp_path):
+ repo_one = _init_repo(tmp_path / "repo-one")
+ repo_two = _init_repo(tmp_path / "repo-two")
+ record = _create(repo_one)
+
+ assert WorktreeManager._is_worktree(Path(record.path), repo_one)
+ assert not WorktreeManager._is_worktree(Path(record.path), repo_two)
+
+
+def test_recreate_from_branch(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+ record = _create(repo)
+ _git(repo, "worktree", "remove", "--force", record.path)
+
+ recreated = WorktreeManager.recreate(record)
+
+ assert recreated.path == record.path
+ assert recreated.branch == record.branch
+ assert Path(recreated.path).is_dir()
+ assert WorktreeManager.get(record.uuid) == recreated
+
+
+def test_recreate_from_base_sha(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+ record = _create(repo)
+ _git(repo, "worktree", "remove", "--force", record.path)
+ _git(repo, "branch", "-D", record.branch)
+
+ recreated = WorktreeManager.recreate(record)
+
+ assert recreated.path == record.path
+ assert recreated.branch == record.branch
+ assert Path(recreated.path).is_dir()
+ assert _git(repo, "rev-parse", recreated.branch) == record.base_sha
+
+
+def test_recreate_with_path_override(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+ record = _create(repo)
+ _git(repo, "worktree", "remove", "--force", record.path)
+ new_path = tmp_path / "elsewhere" / "worktree"
+
+ recreated = WorktreeManager.recreate(record, path=new_path)
+
+ assert recreated.path == str(new_path.resolve())
+ assert Path(recreated.path).is_dir()
+ assert WorktreeManager.get(record.uuid) == recreated
+
+
+def test_recreate_with_new_uuid_attaches_saved_branch(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+ record = _create(repo)
+ work = Path(record.path) / "work.txt"
+ work.write_text("saved work\n", encoding="utf-8")
+ _git(record.path, "add", "-A")
+ _git(record.path, "commit", "-m", "saved work")
+ _git(repo, "worktree", "remove", "--force", record.path)
+
+ recreated = WorktreeManager.recreate(record, agent_name="wf:nightly-tidy", uuid="new99999")
+
+ assert recreated.branch == record.branch
+ assert recreated.uuid == "new99999"
+ assert (Path(recreated.path) / "work.txt").read_text(encoding="utf-8") == "saved work\n"
+ assert WorktreeManager.get(record.uuid) is None
+ assert WorktreeManager.get("new99999") == recreated
+
+
+def test_recreate_reuses_another_checkout_for_same_agent(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+ missing = _create(repo, uuid="aaaa1111", reuse_existing=False)
+ _git(repo, "worktree", "remove", "--force", missing.path)
+ live = _create(repo, uuid="bbbb2222", reuse_existing=False)
+
+ recreated = WorktreeManager.recreate(missing, uuid="cccc3333")
+
+ assert recreated.path == live.path
+ assert recreated.uuid == live.uuid
+ assert WorktreeManager.get(missing.uuid) is None
+
+
+def test_release_keeps_saved_branch_when_agent_switched_branches(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+ record = _create(repo)
+ path = Path(record.path)
+ _git(path, "checkout", "-b", "agent-work")
+ (path / "work.txt").write_text("switched branch work\n", encoding="utf-8")
+ _git(path, "add", "-A")
+ _git(path, "commit", "-m", "agent work")
+
+ result = WorktreeManager.release(record)
+
+ assert result.removed is True
+ assert result.branch_kept is True
+ assert result.branch_deleted is False
+ assert record.branch in _git(repo, "branch", "--list")
+ assert "agent-work" in _git(repo, "branch", "--list")
+ assert _git(repo, "show", "agent-work:work.txt") == "switched branch work"
+
+
+def test_registry_round_trip(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+ record = _create(repo)
+
+ data = record.to_dict()
+ assert json.loads(json.dumps(data)) == data
+ assert WorktreeRecord.from_dict(data) == record
+
+ result = WorktreeManager.release(record)
+ result_data = result.to_dict()
+ assert WorktreeReleaseResult(**result_data) == result
+
+
+def test_get_unknown_uuid_returns_none():
+ assert WorktreeManager.get("missing") is None
+
+
+def test_release_all_releases_matching_pid(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+ first = _create(repo, uuid="aaaa1111", reuse_existing=False)
+ second = _create(repo, uuid="bbbb2222", reuse_existing=False)
+
+ results = WorktreeManager.release_all()
+
+ assert {result.uuid for result in results} == {first.uuid, second.uuid}
+ assert not Path(first.path).exists()
+ assert not Path(second.path).exists()
+ assert WorktreeManager.get(first.uuid) is None
+ assert WorktreeManager.get(second.uuid) is None
+
+
+def test_release_all_skips_other_pids(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+ record = _create(repo)
+ other = replace(record, pid=os.getpid() + 1)
+ WorktreeManager._replace_record(record.uuid, other)
+
+ results = WorktreeManager.release_all()
+
+ assert results == []
+ assert Path(record.path).is_dir()
+
+
+def test_sweep_stale_releases_dead_pid(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+ record = _create(repo)
+ process = subprocess.Popen([sys.executable, "-c", "pass"])
+ process.wait()
+ dead = replace(record, pid=process.pid)
+ WorktreeManager._replace_record(record.uuid, dead)
+
+ results = WorktreeManager.sweep_stale()
+
+ assert len(results) == 1
+ assert results[0].removed is True
+ assert not Path(record.path).exists()
+ assert WorktreeManager.get(record.uuid) is None
+
+
+def test_sweep_stale_skips_alive_pid(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+ record = _create(repo)
+
+ assert WorktreeManager.sweep_stale() == []
+ assert Path(record.path).is_dir()
+
+
+def test_sweep_stale_skips_other_hosts(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+ record = _create(repo)
+ other_host = replace(record, host="some-other-host", pid=1)
+ WorktreeManager._replace_record(record.uuid, other_host)
+
+ assert WorktreeManager.sweep_stale() == []
+ assert Path(record.path).is_dir()
+
+
+def test_resolve_source_variants(tmp_path):
+ repo = _init_repo(tmp_path / "repo")
+ nested = repo / "nested"
+ nested.mkdir()
+
+ assert WorktreeManager.resolve_source(nested) == str(repo.resolve())
+ assert WorktreeManager.resolve_source("repo", base_root=tmp_path) == str(repo.resolve())
+ assert WorktreeManager.resolve_source("file:///tmp/example.git") == "file:///tmp/example.git"
+ assert (
+ WorktreeManager.resolve_source("https://example.com/org/repo.git")
+ == "https://example.com/org/repo.git"
+ )
+
+ with pytest.raises(WorktreeError):
+ WorktreeManager.resolve_source(tmp_path / "missing")
+
+
+def test_create_from_file_url_remote(tmp_path, isolated_base):
+ repo = _init_repo(tmp_path / "repo")
+ source = repo.as_uri()
+
+ first = _create(repo, uuid="aaaa1111", source=source, reuse_existing=False)
+ second = _create(repo, uuid="bbbb2222", source=source, reuse_existing=False)
+
+ assert first.repo == second.repo
+ assert Path(first.repo).is_dir()
+ assert Path(first.repo).parent.name == "_sources"
+ assert first.path != second.path
+ assert first.base_ref == "main"
+ assert Path(first.path).is_dir()
+ assert Path(second.path).is_dir()
diff --git a/tests/helpers/worktrees/test_paths.py b/tests/helpers/worktrees/test_paths.py
new file mode 100644
index 00000000000..2e9f2564717
--- /dev/null
+++ b/tests/helpers/worktrees/test_paths.py
@@ -0,0 +1,70 @@
+"""Tests for worktree path layout and naming helpers."""
+
+from __future__ import annotations
+
+import re
+
+import pytest
+
+from cecli.helpers.worktrees import paths
+
+
+@pytest.fixture(autouse=True)
+def isolated_base(tmp_path, monkeypatch):
+ base = tmp_path / "worktrees"
+ monkeypatch.setenv("CECLI_WORKTREES_DIR", str(base))
+ return base
+
+
+def test_managed_root_honors_env(isolated_base):
+ assert paths.managed_root() == isolated_base.resolve()
+
+
+def test_registry_and_lock_paths(isolated_base):
+ assert paths.registry_path() == isolated_base.resolve() / "registry.json"
+ assert paths.lock_dir() == isolated_base.resolve() / ".locks"
+ assert paths.lock_path(None, "My Lock") == isolated_base.resolve() / ".locks" / "My-Lock.lock"
+
+
+def test_slugify_sanitizes_colons_whitespace_and_slashes():
+ assert paths.slugify("wf:nightly tidy") == "wf-nightly-tidy"
+ assert paths.slugify("a/b\\c:d") == "a-b-c-d"
+ assert paths.slugify(" ??? ") == "item"
+ assert paths.slugify("x" * 80, max_length=10) == "x" * 10
+
+
+def test_agent_slug_truncates():
+ slug = paths.agent_slug("wf:" + "a" * 100)
+ assert len(slug) == paths.AGENT_SLUG_MAX
+ assert not slug.endswith("-")
+
+
+def test_branch_and_dir_names():
+ assert paths.branch_name("wf:nightly-tidy", "456abcde") == "cecli/wf-nightly-tidy-456abcde"
+ assert paths.worktree_dir_name("wf:nightly-tidy", "456abcde") == "wf-nightly-tidy-456abcde"
+
+
+def test_branch_name_has_no_slash_after_prefix():
+ branch = paths.branch_name("wf:a/b", "u/u")
+ assert branch.startswith("cecli/")
+ assert "/" not in branch[len("cecli/") :]
+
+
+def test_worktree_path_layout(tmp_path):
+ repo = tmp_path / "my-repo"
+ path = paths.worktree_path(None, repo, "wf:nightly-tidy", "456abcde")
+ assert path.parent.name == "my-repo"
+ assert path.name == "wf-nightly-tidy-456abcde"
+ assert path.is_relative_to(paths.managed_root())
+
+
+def test_repo_and_source_slugs():
+ assert paths.repo_slug("/tmp/My Repo.git") == "My-Repo"
+ assert paths.source_slug("https://example.com/org/Cool-Repo.git") == "Cool-Repo"
+ assert paths.source_slug("git@github.com:org/Cool-Repo.git") == "Cool-Repo"
+
+
+def test_short_digest_is_stable():
+ assert paths.short_digest("value") == paths.short_digest("value")
+ assert len(paths.short_digest("value", 12)) == 12
+ assert re.fullmatch(r"[0-9a-f]+", paths.short_digest("value"))
diff --git a/tests/subagents/test_delegate.py b/tests/subagents/test_delegate.py
index 67097fdc1f6..31a8dbfdea7 100644
--- a/tests/subagents/test_delegate.py
+++ b/tests/subagents/test_delegate.py
@@ -2,6 +2,8 @@
Tests for cecli/tools/delegate.py — Delegate tool execution.
"""
+import json
+from types import SimpleNamespace
from unittest.mock import AsyncMock, MagicMock, patch
import pytest
@@ -193,3 +195,111 @@ async def test_persist_true_sets_auto_reap_false_invoke(self):
"reviewer", "blocking", parent=mock_coder, auto_reap=False
)
assert "agent completed" in str(result)
+
+ def test_schema_declares_working_dir(self):
+ """The delegation schema accepts an optional per-agent working directory."""
+ from cecli.tools.delegate import Tool
+
+ item = Tool.SCHEMA["function"]["parameters"]["properties"]["delegations"]["items"]
+ assert item["properties"]["working_dir"]["type"] == "string"
+
+ @pytest.mark.asyncio
+ async def test_working_dir_is_passed_to_spawn(self):
+ """working_dir is passed as root for async delegations."""
+ from cecli.tools.delegate import Tool
+
+ mock_coder = MagicMock()
+ mock_coder.uuid = "parent-uuid"
+
+ with patch("cecli.helpers.agents.service.AgentService") as MockService:
+ mock_instance = MagicMock()
+ mock_info = MagicMock()
+ mock_info.coder.uuid = "child-uuid"
+ mock_instance.spawn = AsyncMock(return_value=(MagicMock(), mock_info))
+ MockService.get_instance.return_value = mock_instance
+
+ await Tool.execute(
+ mock_coder,
+ delegations=[
+ {
+ "name": "reviewer",
+ "prompt": "review",
+ "working_dir": "packages/api",
+ }
+ ],
+ )
+
+ mock_instance.spawn.assert_awaited_once_with(
+ "reviewer",
+ "review",
+ parent=mock_coder,
+ auto_reap=None,
+ root="packages/api",
+ )
+
+ @pytest.mark.asyncio
+ async def test_working_dir_is_passed_to_invoke(self):
+ """working_dir is passed as root for sync delegations."""
+ from cecli.tools.delegate import Tool
+
+ mock_coder = MagicMock()
+ mock_coder.uuid = "parent-uuid"
+
+ with patch("cecli.helpers.agents.service.AgentService") as MockService:
+ mock_instance = MagicMock()
+ mock_instance.invoke = AsyncMock(return_value="done")
+ MockService.get_instance.return_value = mock_instance
+
+ await Tool.execute(
+ mock_coder,
+ delegations=[
+ {
+ "name": "reviewer",
+ "prompt": "review",
+ "working_dir": "/tmp/project",
+ "async": False,
+ }
+ ],
+ )
+
+ mock_instance.invoke.assert_awaited_once_with(
+ "reviewer",
+ "review",
+ parent=mock_coder,
+ auto_reap=None,
+ root="/tmp/project",
+ )
+
+ def test_format_output_shows_working_dir(self):
+ """format_output displays an explicit delegation working_dir."""
+ from cecli.tools.delegate import Tool
+
+ coder = MagicMock()
+ coder.pretty = False
+ coder.verbose = False
+ tool_response = SimpleNamespace(
+ function=SimpleNamespace(
+ name="Delegate",
+ arguments=json.dumps(
+ {
+ "delegations": [
+ {
+ "name": "reviewer",
+ "prompt": "review",
+ "working_dir": "packages/api",
+ }
+ ]
+ }
+ ),
+ )
+ )
+
+ with (
+ patch("cecli.tools.delegate.tool_header"),
+ patch("cecli.tools.delegate.tool_footer"),
+ patch("cecli.tools.delegate.color_markers", return_value=("", "")),
+ ):
+ Tool.format_output(coder, mcp_server=MagicMock(), tool_response=tool_response)
+
+ rendered = "\n".join(str(call.args[0]) for call in coder.io.tool_output.call_args_list)
+ assert "working_dir: packages/api" in rendered
diff --git a/tests/subagents/test_service.py b/tests/subagents/test_service.py
index 71f9fbd3c36..300d5932548 100644
--- a/tests/subagents/test_service.py
+++ b/tests/subagents/test_service.py
@@ -5,6 +5,7 @@
import asyncio
import threading
import time
+from types import SimpleNamespace
from unittest.mock import AsyncMock, MagicMock, patch
import pytest
@@ -732,7 +733,13 @@ async def test_attached_result_is_injected(self, service, mock_coder):
) as get_manager:
await service._inject_sub_agent_result(info)
- assert get_manager.return_value.add_message.call_count == 2
+ add_message = get_manager.return_value.add_message
+ assert add_message.call_count == 1
+
+ message_dict = add_message.call_args.kwargs["message_dict"]
+ assert message_dict["role"] == "user"
+ assert '' in message_dict["content"]
+ assert "all done" in message_dict["content"]
@pytest.mark.asyncio
async def test_wait_skips_detached_children(self, service):
@@ -807,6 +814,48 @@ def call_from_thread(self, callback, *args):
assert tui.via_thread == [("u2",)]
+ def test_stopped_app_drops_notification(self):
+ """Notifications must not touch the DOM of an already stopped app."""
+ from cecli.helpers.agents.service import _tui_notify
+
+ hits = []
+
+ class StoppedTui:
+ is_running = False
+
+ def call_from_thread(self, callback, *args):
+ raise RuntimeError("App is not running")
+
+ def container(self, *args):
+ hits.append(args)
+
+ tui = StoppedTui()
+ _tui_notify(tui, tui.container, "u3")
+
+ assert hits == []
+
+ def test_app_stopping_mid_call_drops_notification(self):
+ """A RuntimeError from an app that stops mid-call is not retried inline."""
+ from cecli.helpers.agents.service import _tui_notify
+
+ hits = []
+
+ class StoppingTui:
+ def __init__(self):
+ self.is_running = True
+
+ def call_from_thread(self, callback, *args):
+ self.is_running = False
+ raise RuntimeError("App is not running")
+
+ def container(self, *args):
+ hits.append(args)
+
+ tui = StoppingTui()
+ _tui_notify(tui, tui.container, "u4")
+
+ assert hits == []
+
# ================================================================== #
# Foreground tracking
@@ -1231,3 +1280,239 @@ async def raise_switch(**kwargs):
service.switch_sub_agent_coder.assert_awaited_once()
assert service.switch_sub_agent_coder.call_args.args[0] is info
assert info.status == SubAgentStatus.FINISHED
+
+
+class TestWorktreeRoots:
+ """Working-directory and worktree resolution in _create_sub_agent_coder()."""
+
+ def _register(self, name, metadata):
+ from cecli.helpers.agents.config import SubAgentConfig
+
+ AgentService.register_subagent(
+ name, SubAgentConfig(name=name, prompt="", metadata=metadata)
+ )
+
+ async def _spawn(self, service, name, **kwargs):
+ mock_new_coder = MagicMock()
+ mock_new_coder.tui = None
+
+ with patch("cecli.coders.Coder") as MockCoder:
+ MockCoder.create = AsyncMock(return_value=mock_new_coder)
+ with patch("cecli.helpers.conversation.service.ConversationService") as MockConv:
+ MockConv.get_chunks.return_value = MagicMock()
+ coder, info = await service.spawn(name, parent=service.coder, **kwargs)
+
+ return MockCoder, mock_new_coder, coder, info
+
+ def _record(self, path):
+ return SimpleNamespace(path=str(path), to_dict=lambda: {"path": str(path)})
+
+ def test_resolve_root_resolves_relative_against_base(self, tmp_path):
+ base = tmp_path / "project"
+ child = base / "packages" / "api"
+ child.mkdir(parents=True)
+
+ assert AgentService._resolve_root("packages/api", str(base)) == str(child.resolve())
+
+ def test_resolve_root_rejects_missing_directory(self, tmp_path):
+ with pytest.raises(ValueError, match="not an existing directory"):
+ AgentService._resolve_root(str(tmp_path / "missing"))
+
+ @pytest.mark.asyncio
+ async def test_explicit_root_wins_over_worktree(self, service, tmp_path):
+ self._register("reviewer", {"worktree": {}})
+ explicit = tmp_path / "explicit"
+ explicit.mkdir()
+
+ with patch("cecli.helpers.worktrees.WorktreeManager.create") as create:
+ MockCoder, _, _, info = await self._spawn(service, "reviewer", root=str(explicit))
+
+ create.assert_not_called()
+ assert MockCoder.create.call_args[1]["root"] == str(explicit.resolve())
+ assert info.worktree is None
+
+ @pytest.mark.asyncio
+ async def test_non_workflow_agent_ignores_worktree_metadata(self, service, tmp_path):
+ service.coder.root = str(tmp_path)
+ source = tmp_path / "source"
+ source.mkdir()
+ self._register(
+ "reviewer",
+ {"worktree": {}, "worktree_source": str(source), "root": str(source)},
+ )
+
+ with patch("cecli.helpers.worktrees.WorktreeManager.create") as create:
+ _, _, _, info = await self._spawn(service, "reviewer")
+
+ create.assert_not_called()
+ assert info.worktree is None
+
+ @pytest.mark.asyncio
+ async def test_override_root_beats_resume_and_spec(self, service, tmp_path, monkeypatch):
+ override_root = tmp_path / "override"
+ override_root.mkdir()
+ monkeypatch.setattr(
+ AgentService, "_agent_overrides", {"reviewer": {"root": str(override_root)}}
+ )
+ self._register("reviewer", {"worktree": {}})
+
+ with (
+ patch("cecli.helpers.worktrees.WorktreeManager.create") as create,
+ patch("cecli.helpers.worktrees.WorktreeManager.recreate") as recreate,
+ ):
+ MockCoder, _, _, info = await self._spawn(
+ service,
+ "reviewer",
+ resume_worktree=self._record(tmp_path / "saved"),
+ )
+
+ create.assert_not_called()
+ recreate.assert_not_called()
+ assert MockCoder.create.call_args[1]["root"] == str(override_root.resolve())
+ assert info.worktree is None
+
+ @pytest.mark.asyncio
+ async def test_resume_worktree_recreates_and_attaches_record(self, service, tmp_path):
+ service.coder.root = str(tmp_path)
+ self._register("wf:demo", {"worktree": {}})
+ saved = {"uuid": "old", "path": str(tmp_path / "old-path")}
+ record = self._record(tmp_path / "restored")
+
+ with (
+ patch(
+ "cecli.helpers.worktrees.WorktreeManager.recreate", return_value=record
+ ) as recreate,
+ patch("cecli.helpers.worktrees.WorktreeManager.create") as create,
+ ):
+ MockCoder, new_coder, _, info = await self._spawn(
+ service, "wf:demo", resume_worktree=saved
+ )
+
+ create.assert_not_called()
+ recreate.assert_called_once()
+ assert recreate.call_args.args[0] == saved
+ assert recreate.call_args.kwargs["agent_name"] == "wf:demo"
+ assert MockCoder.create.call_args[1]["root"] == record.path
+ assert new_coder.worktree is record
+ assert info.worktree is record
+
+ @pytest.mark.asyncio
+ async def test_enabled_worktree_spec_is_a_dict(self, service, tmp_path):
+ """worktree: true normalises to {} and must still create a worktree."""
+ service.coder.root = str(tmp_path)
+ source = tmp_path / "source"
+ source.mkdir()
+ self._register("wf:demo", {"worktree": {}, "worktree_source": str(source)})
+ record = self._record(tmp_path / "created")
+
+ with patch("cecli.helpers.worktrees.WorktreeManager.create", return_value=record) as create:
+ MockCoder, _, _, info = await self._spawn(service, "wf:demo")
+
+ create.assert_called_once()
+ assert create.call_args.kwargs["source"] == str(source)
+ assert create.call_args.kwargs["base_ref"] is None
+ assert create.call_args.kwargs["base_root"] == str(tmp_path)
+ assert MockCoder.create.call_args[1]["root"] == record.path
+ assert info.worktree is record
+
+ @pytest.mark.asyncio
+ async def test_worktree_spec_passes_branch_and_parent_root(self, service, tmp_path):
+ service.coder.root = str(tmp_path)
+ self._register("wf:branch", {"worktree": {"branch": "feature"}})
+ record = self._record(tmp_path / "branch-worktree")
+
+ with patch("cecli.helpers.worktrees.WorktreeManager.create", return_value=record) as create:
+ await self._spawn(service, "wf:branch")
+
+ assert create.call_args.kwargs["base_ref"] == "feature"
+ assert create.call_args.kwargs["source"] == str(tmp_path)
+
+ @pytest.mark.asyncio
+ async def test_worktree_creation_failure_raises(self, service, tmp_path):
+ service.coder.root = str(tmp_path)
+ self._register("wf:fail", {"worktree": {}})
+
+ with patch(
+ "cecli.helpers.worktrees.WorktreeManager.create", side_effect=RuntimeError("boom")
+ ):
+ with pytest.raises(RuntimeError, match="Failed to create worktree"):
+ await self._spawn(service, "wf:fail")
+
+ @pytest.mark.asyncio
+ async def test_coder_creation_failure_releases_worktree(self, service, tmp_path):
+ service.coder.root = str(tmp_path)
+ self._register("wf:fail", {"worktree": {}})
+ record = self._record(tmp_path / "created")
+
+ with (
+ patch("cecli.helpers.worktrees.WorktreeManager.create", return_value=record),
+ patch("cecli.helpers.worktrees.WorktreeManager.release") as release,
+ patch("cecli.coders.Coder") as MockCoder,
+ patch("cecli.helpers.conversation.service.ConversationService"),
+ ):
+ MockCoder.create = AsyncMock(side_effect=RuntimeError("coder failed"))
+ with pytest.raises(RuntimeError, match="coder failed"):
+ await service.spawn("wf:fail", parent=service.coder)
+
+ release.assert_called_once_with(record)
+
+ def test_cleanup_releases_finished_worktree(self, service, tmp_path):
+ path = tmp_path / "finished"
+ record = self._record(path)
+ info = SubAgentInfo(name="reviewer", coder=MagicMock(), parent_uuid="parent-uuid")
+ info.coder.uuid = "sub-uuid"
+ info.worktree = record
+ service.sub_agents["agent"] = info
+ service._sub_agent_order.append("agent")
+ result = SimpleNamespace(to_dict=lambda: {"path": str(path), "branch": "cecli/x"})
+
+ with (
+ patch(
+ "cecli.helpers.worktrees.WorktreeManager.release", return_value=result
+ ) as release,
+ patch("cecli.repo.GitRepoProxy.evict") as evict,
+ ):
+ service._cleanup_sub_agent("agent")
+
+ release.assert_called_once_with(record)
+ evict.assert_called_once_with(str(path))
+ events = [
+ call
+ for call in service.coder.io.subagent_event.call_args_list
+ if call.args[1] == "worktree"
+ ]
+ assert events and events[0].kwargs["path"] == str(path)
+
+ def test_cleanup_leaves_running_worktree_to_release_all(self, service, tmp_path):
+ record = self._record(tmp_path / "running")
+ info = SubAgentInfo(name="reviewer", coder=MagicMock(), parent_uuid="parent-uuid")
+ info.coder.uuid = "sub-uuid"
+ info.worktree = record
+ info.generate_task = MagicMock()
+ info.generate_task.done.return_value = False
+ service.sub_agents["agent"] = info
+ service._sub_agent_order.append("agent")
+
+ with patch("cecli.helpers.worktrees.WorktreeManager.release") as release:
+ service._cleanup_sub_agent("agent")
+
+ release.assert_not_called()
+
+ def test_cleanup_survives_release_failure(self, service, tmp_path):
+ record = self._record(tmp_path / "broken")
+ info = SubAgentInfo(name="reviewer", coder=MagicMock(), parent_uuid="parent-uuid")
+ info.coder.uuid = "sub-uuid"
+ info.worktree = record
+ service.sub_agents["agent"] = info
+ service._sub_agent_order.append("agent")
+
+ with (
+ patch(
+ "cecli.helpers.worktrees.WorktreeManager.release",
+ side_effect=RuntimeError("release failed"),
+ ),
+ patch("cecli.repo.GitRepoProxy.evict"),
+ ):
+ service._cleanup_sub_agent("agent")
+
+ assert "agent" not in service.sub_agents
diff --git a/tests/tools/test_edit_file_format_output.py b/tests/tools/test_edit_file_format_output.py
index 5adc9e1ee1d..01f1a4b2a5c 100644
--- a/tests/tools/test_edit_file_format_output.py
+++ b/tests/tools/test_edit_file_format_output.py
@@ -33,8 +33,19 @@ def tool_output(self, msg, type=None):
def read_text(self, path):
return Path(path).read_text()
+ def _detect_newline(self, path):
+ data = Path(path).read_bytes()
+ if b"\r\n" in data:
+ return "\r\n"
+ if b"\n" in data:
+ return "\n"
+ return None
+
def write_text(self, path, content):
- Path(path).write_text(content)
+ # Mirror the real IO: an already-CRLF payload must not be translated
+ # again, which would double carriage returns on Windows.
+ newline = "" if "\r\n" in content else None
+ Path(path).write_text(content, newline=newline)
class DummyChangeTracker:
@@ -267,3 +278,356 @@ def test_format_output_unwraps_double_wrapped_arguments(coder_with_file):
result = edit_file.Tool.execute(coder, edits=edits)
assert result.to_dict()["errors"] == []
+
+
+def test_description_documents_brace_hint_syntax():
+ """The description must document the canonical double-brace hint syntax."""
+ description = edit_file.Tool.SCHEMA["function"]["description"]
+
+ assert "@A{{regex}}" in description
+ assert "@B{{regex}}" in description
+ assert "@A{regex}" not in description
+ assert "virtual identifiers" in description
+ assert "——" in description
+ assert "ReadFile-only" in description
+ assert "@C" in description
+ assert "@P" in description
+ assert "@N" in description
+ assert "bare '@A'/'@B' is rejected" in description
+ assert "EditFile rejects them" in description
+ assert "indentation may be trimmed" not in description
+
+
+def test_execute_rejects_multiline_anchor(coder_with_file):
+ """EditFile must reject multiline start_line/end_line values."""
+ coder, file_path = coder_with_file
+ original_content = file_path.read_text()
+
+ result = edit_file.Tool.execute(
+ coder,
+ edits=[
+ {
+ "file_path": "example.txt",
+ "operation": "replace",
+ "start_line": "def foo():\n print('hello')",
+ "end_line": "def foo():\n print('hello')",
+ "text": "changed",
+ }
+ ],
+ ).to_dict()
+
+ assert result["errors"]
+ assert "single-line anchor" in result["errors"][0]
+ assert file_path.read_text() == original_content
+
+
+def test_execute_appends_with_000_markers(coder_with_file):
+ """EditFile supports 000@ for both boundaries as an EOF append."""
+ coder, file_path = coder_with_file
+
+ result = edit_file.Tool.execute(
+ coder,
+ edits=[
+ {
+ "file_path": "example.txt",
+ "operation": "replace",
+ "start_line": "000@",
+ "end_line": "000@",
+ "text": "appended",
+ }
+ ],
+ ).to_dict()
+
+ assert result["errors"] == []
+ assert file_path.read_text().endswith(" return foo()\nappended\n")
+
+
+def test_execute_hint_disambiguates_trimmed_duplicate(coder_with_file):
+ """A trimmed anchor plus @L must resolve duplicate lines correctly."""
+ coder, file_path = coder_with_file
+ file_path.write_text(
+ "def alpha():\n" " return total\n" "\n" "\n" "def beta():\n" " return total\n"
+ )
+
+ result = edit_file.Tool.execute(
+ coder,
+ edits=[
+ {
+ "file_path": "example.txt",
+ "operation": "replace",
+ "start_line": "return total @L6",
+ "end_line": "return total @L6",
+ "text": " return 99",
+ }
+ ],
+ ).to_dict()
+
+ assert result["errors"] == []
+ lines = file_path.read_text().splitlines()
+ assert lines[1] == " return total"
+ assert lines[5] == " return 99"
+
+
+@pytest.mark.parametrize(
+ "hint",
+ ["return total @B{def beta}", "return total @B{{def beta}}"],
+)
+def test_execute_at_b_disambiguates_trimmed_duplicate(coder_with_file, hint):
+ """A trimmed anchor plus @B must pick the occurrence before the regex hit."""
+ coder, file_path = coder_with_file
+ file_path.write_text(
+ "def alpha():\n"
+ " return total\n"
+ "\n"
+ "\n"
+ "def beta():\n"
+ " return total\n"
+ "\n"
+ "\n"
+ "def gamma():\n"
+ " return total\n"
+ )
+
+ result = edit_file.Tool.execute(
+ coder,
+ edits=[
+ {
+ "file_path": "example.txt",
+ "operation": "replace",
+ "start_line": hint,
+ "end_line": hint,
+ "text": " return 1",
+ }
+ ],
+ ).to_dict()
+
+ assert result["errors"] == []
+ lines = file_path.read_text().splitlines()
+ assert lines[1] == " return 1"
+ assert lines[5] == " return total"
+ assert lines[9] == " return total"
+
+
+@pytest.mark.parametrize(
+ "hint",
+ ["return total @A{def beta}", "return total @A{{def beta}}"],
+)
+def test_execute_at_a_accepts_single_or_double_braces(coder_with_file, hint):
+ """@A must pick the occurrence after the regex hit with either brace style."""
+ coder, file_path = coder_with_file
+ file_path.write_text(
+ "def alpha():\n" " return total\n" "\n" "\n" "def beta():\n" " return total\n"
+ )
+
+ result = edit_file.Tool.execute(
+ coder,
+ edits=[
+ {
+ "file_path": "example.txt",
+ "operation": "replace",
+ "start_line": hint,
+ "end_line": hint,
+ "text": " return 1",
+ }
+ ],
+ ).to_dict()
+
+ assert result["errors"] == []
+ lines = file_path.read_text().splitlines()
+ assert lines[1] == " return total"
+ assert lines[5] == " return 1"
+
+
+@pytest.mark.parametrize(
+ "hint",
+ ["@A{{def describe}}", "@B{{def describe}}", "@A", "@B"],
+)
+def test_execute_rejects_bare_at_hints(coder_with_file, hint):
+ """Bare @A/@B hints must be rejected instead of resolving to the hit line."""
+ coder, file_path = coder_with_file
+ file_path.write_text("def describe(self):\n return 1\n")
+
+ result = edit_file.Tool.execute(
+ coder,
+ edits=[
+ {
+ "file_path": "example.txt",
+ "operation": "replace",
+ "start_line": hint,
+ "end_line": hint,
+ "text": "REPLACED",
+ }
+ ],
+ ).to_dict()
+
+ assert result["errors"]
+ assert "Bare '@" in result["errors"][0]
+ assert file_path.read_text() == "def describe(self):\n return 1\n"
+
+
+@pytest.mark.parametrize("hint", ["@C1", "@P1", "@N1", "some text @C1"])
+def test_execute_rejects_readfile_only_markers(coder_with_file, hint):
+ """@C/@P/@N markers must fail with an EditFile-specific message."""
+ coder, file_path = coder_with_file
+ original_content = file_path.read_text()
+
+ result = edit_file.Tool.execute(
+ coder,
+ edits=[
+ {
+ "file_path": "example.txt",
+ "operation": "replace",
+ "start_line": hint,
+ "end_line": hint,
+ "text": "REPLACED",
+ }
+ ],
+ ).to_dict()
+
+ assert result["errors"]
+ assert "ReadFile-only" in result["errors"][0]
+ assert "not supported by EditFile" in result["errors"][0]
+ assert file_path.read_text() == original_content
+
+
+def test_execute_prepends_with_at_000_markers(coder_with_file):
+ """Using @000 for both boundaries inserts at the top of the file."""
+ coder, file_path = coder_with_file
+ original = file_path.read_text()
+
+ result = edit_file.Tool.execute(
+ coder,
+ edits=[
+ {
+ "file_path": "example.txt",
+ "operation": "replace",
+ "start_line": "@000",
+ "end_line": "@000",
+ "text": "header",
+ }
+ ],
+ ).to_dict()
+
+ assert result["errors"] == []
+ assert file_path.read_text() == "header\n" + original
+
+
+def test_execute_allows_at_l0_prepend(coder_with_file):
+ """@L0 is treated as the top-of-file marker."""
+ coder, file_path = coder_with_file
+ original = file_path.read_text()
+
+ result = edit_file.Tool.execute(
+ coder,
+ edits=[
+ {
+ "file_path": "example.txt",
+ "operation": "replace",
+ "start_line": "@L0",
+ "end_line": "@L0",
+ "text": "header",
+ }
+ ],
+ ).to_dict()
+
+ assert result["errors"] == []
+ assert file_path.read_text() == "header\n" + original
+
+
+def test_execute_preserves_crlf_line_endings(coder_with_file):
+ """Editing a CRLF file must keep CRLF line endings."""
+ coder, file_path = coder_with_file
+ file_path.write_bytes(b"first\r\nsecond\r\n")
+
+ result = edit_file.Tool.execute(
+ coder,
+ edits=[
+ {
+ "file_path": "example.txt",
+ "operation": "replace",
+ "start_line": "second",
+ "end_line": "second",
+ "text": "SECOND",
+ }
+ ],
+ ).to_dict()
+
+ assert result["errors"] == []
+ assert file_path.read_bytes() == b"first\r\nSECOND\r\n"
+
+
+def test_execute_invalidates_cached_read_ranges(coder_with_file):
+ """A successful edit must clear ReadFile's cached ranges for the file."""
+ import uuid
+
+ from cecli.helpers.conversation import ConversationService
+
+ coder, file_path = coder_with_file
+ coder.uuid = str(uuid.uuid4())
+ abs_path = str(file_path.resolve())
+ files = ConversationService.get_files(coder)
+ files._numbered_contexts[abs_path] = [(1, 1)]
+ files._last_merged_ranges[abs_path] = [(1, 1)]
+ files._emitted_contexts[abs_path] = [(1, 1)]
+ files._file_context_versions[abs_path] = 1
+
+ try:
+ result = edit_file.Tool.execute(
+ coder,
+ edits=[
+ {
+ "file_path": "example.txt",
+ "operation": "replace",
+ "start_line": "@L2",
+ "end_line": "@L2",
+ "text": " print('edited')",
+ }
+ ],
+ ).to_dict()
+
+ assert result["errors"] == []
+ assert abs_path not in files._numbered_contexts
+ assert abs_path not in files._last_merged_ranges
+ assert abs_path not in files._emitted_contexts
+ assert abs_path not in files._file_context_versions
+ finally:
+ ConversationService.destroy_instances(coder.uuid)
+
+
+def test_format_output_colors_inserted_text_green(coder_with_file):
+ """Inserted text is additive, so preview it green like added diff lines."""
+ coder, _ = coder_with_file
+ coder.agent_config["diff_colors"] = True
+ edits = [
+ {
+ "file_path": "example.txt",
+ "operation": "insert",
+ "text": " print('inserted')",
+ "start_line": "@L1",
+ "position": "after",
+ }
+ ]
+
+ output = preview_output(coder, edits)
+
+ assert "\033[32m+ print('inserted')\x1b[0m" in output
+
+
+def test_format_output_leaves_inserted_text_plain_without_diff_colors(coder_with_file):
+ """Inserted text stays uncolored when diff colors are disabled."""
+ coder, _ = coder_with_file
+ coder.agent_config["diff_colors"] = False
+ edits = [
+ {
+ "file_path": "example.txt",
+ "operation": "insert",
+ "text": " print('inserted')",
+ "start_line": "@L1",
+ "position": "after",
+ }
+ ]
+
+ output = preview_output(coder, edits)
+
+ assert "+ print('inserted')" in output
+ assert "\033[32m" not in output
diff --git a/tests/tools/test_get_lines.py b/tests/tools/test_get_lines.py
index 286e04e2556..dd3866f8ee7 100644
--- a/tests/tools/test_get_lines.py
+++ b/tests/tools/test_get_lines.py
@@ -182,3 +182,29 @@ def test_empty_file_includes_edit_hint(tmp_path):
assert "EditFile" in str(result)
assert "readfile again" in str(result).lower()
coder.io.tool_error.assert_not_called()
+
+
+def test_read_after_edit_resends_changed_range(coder_with_file):
+ """ReadFile must not claim cached context is current after the file is edited."""
+ from cecli.helpers.conversation import ConversationService
+
+ coder, file_path = coder_with_file
+ params = [
+ {
+ "file_path": "example.txt",
+ "range_start": "alpha",
+ "range_end": "gamma",
+ "padding": 0,
+ }
+ ]
+
+ first = str(read_file.Tool.execute(coder, read=params))
+ assert "Retrieved context" in first
+
+ file_path.write_text("alpha\nBETA\ngamma\n")
+ ConversationService.get_chunks(coder).notify_file_edited(str(file_path))
+
+ second = str(read_file.Tool.execute(coder, read=params))
+
+ assert "still valid from previous read" not in second
+ assert "BETA" in second
diff --git a/tests/tools/test_grep.py b/tests/tools/test_grep.py
index db5da5e3506..43db59f5b29 100644
--- a/tests/tools/test_grep.py
+++ b/tests/tools/test_grep.py
@@ -113,7 +113,7 @@ def test_powershell_dash_prefixed_pattern_is_searched_literally(search_term, tmp
assert op["_"]["error"] is None
assert op["_"]["total_files"] >= 1
assert op["_"]["total_matches"] >= 1
- assert any("example.txt" in f["file"] for f in op["_"]["files"])
+ assert "example.txt" in _files_from_content(op)
coder.io.tool_error.assert_not_called()
@@ -157,8 +157,7 @@ def test_powershell_counts_and_context(tmp_path, monkeypatch):
op = response_dict["result"][0]
assert op["_"]["error"] is None
assert op["_"]["total_matches"] >= 3
- file_entry = next(f for f in op["_"]["files"] if f["file"] == "sample.txt")
- assert file_entry["match_count"] >= 3
+ assert "sample.txt" in _files_from_content(op)
coder.io.tool_error.assert_not_called()
@@ -172,6 +171,16 @@ def _grep_coder(root):
)
+def _files_from_content(op):
+ """Return the file paths listed in a rendered grep response."""
+ files = set()
+ for line in op["content"].splitlines():
+ path, sep, rest = line.rpartition(": ")
+ if sep and rest.split(" ", 1)[0].isdigit():
+ files.add(path)
+ return files
+
+
@pytest.mark.skipif(shutil.which("rg") is None, reason="rg is required")
@pytest.mark.parametrize(
("options", "expected_matches"),
@@ -217,7 +226,7 @@ def test_matches_mode_is_compact_and_relative(tmp_path, monkeypatch):
assert op["_"]["mode"] == "matches"
assert "file_glob" not in op["_"] # echoed query params are dropped
- assert all("content" not in entry for entry in op["_"]["files"])
+ assert "files" not in op["_"]
coder.io.tool_error.assert_not_called()
@@ -242,7 +251,7 @@ def test_files_mode_skips_content_pass(tmp_path, monkeypatch):
@pytest.mark.skipif(shutil.which("rg") is None, reason="rg is required")
-def test_invalid_mode_falls_back_to_matches(tmp_path, monkeypatch):
+def test_invalid_mode_is_rejected(tmp_path, monkeypatch):
sample = tmp_path / "sample.txt"
sample.write_text("alpha\nbeta\n")
coder = _grep_coder(tmp_path)
@@ -253,8 +262,9 @@ def test_invalid_mode_falls_back_to_matches(tmp_path, monkeypatch):
searches=[{"pattern": "alpha", "file_glob": "*.txt", "directory": ".", "mode": "bogus"}],
)
op = result.to_dict()["result"][0]
- assert op["_"]["mode"] == "matches"
- assert "1: alpha" in op["content"]
+ assert op["_"]["mode"] == "bogus"
+ assert "Invalid mode 'bogus'" in op["_"]["error"]
+ assert "No matches found" not in op["content"]
coder.io.tool_error.assert_not_called()
@@ -299,9 +309,285 @@ def test_history_files_are_excluded(tmp_path, monkeypatch):
coder, searches=[{"pattern": "needle", "directory": ".", "mode": "files"}]
)
op = result.to_dict()["result"][0]
- files = [entry["file"] for entry in op["_"]["files"]]
+ files = _files_from_content(op)
assert "keep.txt" in files
assert all("chat-history" not in name for name in files)
assert all("history.md" not in name for name in files)
coder.io.tool_error.assert_not_called()
+
+
+@pytest.mark.skipif(shutil.which("rg") is None, reason="rg is required")
+def test_regex_syntax_is_auto_detected(tmp_path, monkeypatch):
+ sample = tmp_path / "sample.py"
+ sample.write_text("def foo(x):\n return x\n")
+ coder = _grep_coder(tmp_path)
+ monkeypatch.setattr(grep.Tool, "_find_search_tool", lambda: ("rg", shutil.which("rg")))
+
+ result = grep.Tool.execute(coder, searches=[{"pattern": "^def ", "directory": "."}])
+ op = result.to_dict()["result"][0]
+
+ assert op["_"]["regex"] is True
+ assert op["_"]["total_matches"] == 1
+ assert "def foo(x)" in op["content"]
+
+
+@pytest.mark.skipif(shutil.which("rg") is None, reason="rg is required")
+def test_literal_miss_retries_as_regex(tmp_path, monkeypatch):
+ sample = tmp_path / "sample.txt"
+ sample.write_text("alpha\nbeta\n")
+ coder = _grep_coder(tmp_path)
+ monkeypatch.setattr(grep.Tool, "_find_search_tool", lambda: ("rg", shutil.which("rg")))
+
+ result = grep.Tool.execute(coder, searches=[{"pattern": "(alpha)", "directory": "."}])
+ op = result.to_dict()["result"][0]
+
+ assert op["_"]["regex"] is True
+ assert op["_"]["total_matches"] == 1
+ assert "1: alpha" in op["content"]
+
+
+@pytest.mark.skipif(shutil.which("rg") is None, reason="rg is required")
+def test_empty_alternation_stays_literal(tmp_path, monkeypatch):
+ sample = tmp_path / "sample.txt"
+ sample.write_text("alpha\nbeta\nfoo||bar\n")
+ coder = _grep_coder(tmp_path)
+ monkeypatch.setattr(grep.Tool, "_find_search_tool", lambda: ("rg", shutil.which("rg")))
+
+ result = grep.Tool.execute(coder, searches=[{"pattern": "foo||bar", "directory": "."}])
+ op = result.to_dict()["result"][0]
+
+ assert op["_"]["regex"] is False
+ assert op["_"]["total_matches"] == 1
+ assert "3: foo||bar" in op["content"]
+
+
+@pytest.mark.skipif(shutil.which("rg") is None, reason="rg is required")
+def test_invalid_regex_retries_literal(tmp_path, monkeypatch):
+ sample = tmp_path / "sample.txt"
+ sample.write_text("foo(\nbar\n")
+ coder = _grep_coder(tmp_path)
+ monkeypatch.setattr(grep.Tool, "_find_search_tool", lambda: ("rg", shutil.which("rg")))
+
+ result = grep.Tool.execute(
+ coder, searches=[{"pattern": "foo(", "directory": ".", "use_regex": True}]
+ )
+ op = result.to_dict()["result"][0]
+
+ assert op["_"]["error"] is None
+ assert op["_"]["regex"] is False
+ assert op["_"]["total_matches"] == 1
+ assert op["_"]["warnings"]
+
+
+@pytest.mark.skipif(shutil.which("rg") is None, reason="rg is required")
+def test_lookahead_retries_with_pcre2(tmp_path, monkeypatch):
+ sample = tmp_path / "sample.txt"
+ sample.write_text("foo123\nfoo\n")
+ coder = _grep_coder(tmp_path)
+ monkeypatch.setattr(grep.Tool, "_find_search_tool", lambda: ("rg", shutil.which("rg")))
+
+ result = grep.Tool.execute(
+ coder,
+ searches=[{"pattern": "foo(?=123)", "directory": ".", "use_regex": True}],
+ )
+ op = result.to_dict()["result"][0]
+
+ assert op["_"]["error"] is None
+ assert op["_"]["total_matches"] == 1
+ assert "1: foo123" in op["content"]
+
+
+@pytest.mark.skipif(shutil.which("rg") is None, reason="rg is required")
+def test_backreference_retries_with_pcre2(tmp_path, monkeypatch):
+ sample = tmp_path / "sample.txt"
+ sample.write_text("aa\nab\n")
+ coder = _grep_coder(tmp_path)
+ monkeypatch.setattr(grep.Tool, "_find_search_tool", lambda: ("rg", shutil.which("rg")))
+
+ result = grep.Tool.execute(
+ coder,
+ searches=[{"pattern": r"(a)\1", "directory": ".", "use_regex": True}],
+ )
+ op = result.to_dict()["result"][0]
+
+ assert op["_"]["error"] is None
+ assert op["_"]["total_matches"] == 1
+ assert "1: aa" in op["content"]
+
+
+@pytest.mark.skipif(shutil.which("rg") is None, reason="rg is required")
+def test_paths_with_digit_dash_segments_are_parsed(tmp_path, monkeypatch):
+ (tmp_path / "proj-1-x" / "src").mkdir(parents=True)
+ sample = tmp_path / "proj-1-x" / "src" / "main.py"
+ sample.write_text("alpha\nalpha\n")
+ root = tmp_path / "proj-1-x"
+ coder = _grep_coder(root)
+ monkeypatch.setattr(grep.Tool, "_find_search_tool", lambda: ("rg", shutil.which("rg")))
+
+ result = grep.Tool.execute(coder, searches=[{"pattern": "alpha", "directory": "."}])
+ op = result.to_dict()["result"][0]
+
+ assert op["_"]["total_matches"] == 2
+ assert "src/main.py: 2 match(es)" in op["content"]
+
+
+@pytest.mark.skipif(shutil.which("rg") is None, reason="rg is required")
+def test_colon_in_path_is_parsed(tmp_path, monkeypatch):
+ sample = tmp_path / "a:1:b.txt"
+ sample.write_text("needle\n")
+ coder = _grep_coder(tmp_path)
+ monkeypatch.setattr(grep.Tool, "_find_search_tool", lambda: ("rg", shutil.which("rg")))
+
+ result = grep.Tool.execute(coder, searches=[{"pattern": "needle", "directory": "."}])
+ op = result.to_dict()["result"][0]
+
+ assert op["_"]["total_matches"] == 1
+ assert "a:1:b.txt: 1 match(es)" in op["content"]
+
+
+@pytest.mark.skipif(shutil.which("rg") is None, reason="rg is required")
+def test_ripgrep_config_does_not_change_output_shape(tmp_path, monkeypatch):
+ sample = tmp_path / "sample.txt"
+ sample.write_text("alpha\n")
+ config = tmp_path / "ripgreprc"
+ config.write_text("--heading\n--color=always\n")
+ monkeypatch.setenv("RIPGREP_CONFIG_PATH", str(config))
+ coder = _grep_coder(tmp_path)
+ monkeypatch.setattr(grep.Tool, "_find_search_tool", lambda: ("rg", shutil.which("rg")))
+
+ result = grep.Tool.execute(coder, searches=[{"pattern": "alpha", "directory": "."}])
+ op = result.to_dict()["result"][0]
+
+ assert op["_"]["total_matches"] == 1
+ assert "sample.txt: 1 match(es)" in op["content"]
+
+
+@pytest.mark.skipif(
+ shutil.which("grep") is None or not grep._grep_supports_pcre(shutil.which("grep")),
+ reason="grep with PCRE support is required",
+)
+def test_grep_regex_uses_pcre_when_available(tmp_path, monkeypatch):
+ sample = tmp_path / "sample.txt"
+ sample.write_text("foo123\nfoo\n")
+ coder = _grep_coder(tmp_path)
+ monkeypatch.setattr(grep.Tool, "_find_search_tool", lambda: ("grep", shutil.which("grep")))
+
+ result = grep.Tool.execute(
+ coder,
+ searches=[{"pattern": r"foo\d+", "directory": ".", "use_regex": True}],
+ )
+ op = result.to_dict()["result"][0]
+
+ assert op["_"]["error"] is None
+ assert op["_"]["total_matches"] == 1
+ assert "1: foo123" in op["content"]
+
+
+@pytest.mark.skipif(shutil.which("rg") is None, reason="rg is required")
+def test_matches_mode_shows_truncation_marker(tmp_path, monkeypatch):
+ sample = tmp_path / "sample.txt"
+ sample.write_text("".join(f"alpha{i}\n" for i in range(15)))
+ coder = _grep_coder(tmp_path)
+ monkeypatch.setattr(grep.Tool, "_find_search_tool", lambda: ("rg", shutil.which("rg")))
+
+ result = grep.Tool.execute(coder, searches=[{"pattern": "alpha", "directory": "."}])
+ op = result.to_dict()["result"][0]
+
+ assert "showing 10 of 15 matches" in op["content"]
+ assert "+5 more locations" in op["content"]
+ assert "more locations: 11, 12, 13, 14, 15" in op["content"]
+
+
+@pytest.mark.skipif(shutil.which("rg") is None, reason="rg is required")
+def test_count_false_warns_about_capped_totals(tmp_path, monkeypatch):
+ sample = tmp_path / "sample.txt"
+ sample.write_text("".join("alpha\n" for _ in range(55)))
+ coder = _grep_coder(tmp_path)
+ monkeypatch.setattr(grep.Tool, "_find_search_tool", lambda: ("rg", shutil.which("rg")))
+
+ result = grep.Tool.execute(
+ coder, searches=[{"pattern": "alpha", "directory": ".", "count": False}]
+ )
+ op = result.to_dict()["result"][0]
+
+ assert op["_"]["total_matches"] == grep.MAX_LINE_NUMBERS
+ assert "count capped at 50" in op["content"]
+ assert any("count=false" in warning for warning in op["_"]["warnings"])
+
+
+@pytest.mark.skipif(shutil.which("rg") is None, reason="rg is required")
+def test_context_is_clamped_with_warning(tmp_path, monkeypatch):
+ sample = tmp_path / "sample.txt"
+ sample.write_text("alpha\nbeta\ngamma\n")
+ coder = _grep_coder(tmp_path)
+ monkeypatch.setattr(grep.Tool, "_find_search_tool", lambda: ("rg", shutil.which("rg")))
+
+ result = grep.Tool.execute(
+ coder, searches=[{"pattern": "beta", "directory": ".", "context_before": 9}]
+ )
+ op = result.to_dict()["result"][0]
+
+ assert any("clamped from 9 to 5" in warning for warning in op["_"]["warnings"])
+ assert "clamped from 9 to 5" in op["content"]
+
+
+@pytest.mark.skipif(shutil.which("rg") is None, reason="rg is required")
+def test_comma_separated_globs_are_supported(tmp_path, monkeypatch):
+ (tmp_path / "a.py").write_text("needle\n")
+ (tmp_path / "b.md").write_text("needle\n")
+ (tmp_path / "c.txt").write_text("needle\n")
+ coder = _grep_coder(tmp_path)
+ monkeypatch.setattr(grep.Tool, "_find_search_tool", lambda: ("rg", shutil.which("rg")))
+
+ result = grep.Tool.execute(
+ coder,
+ searches=[{"pattern": "needle", "directory": ".", "file_glob": "*.py,*.md"}],
+ )
+ op = result.to_dict()["result"][0]
+
+ assert op["_"]["total_matches"] == 2
+ assert _files_from_content(op) == {"a.py", "b.md"}
+
+
+@pytest.mark.skipif(shutil.which("rg") is None, reason="rg is required")
+def test_zero_match_glob_gets_warning(tmp_path, monkeypatch):
+ (tmp_path / "sample.py").write_text("needle\n")
+ coder = _grep_coder(tmp_path)
+ monkeypatch.setattr(grep.Tool, "_find_search_tool", lambda: ("rg", shutil.which("rg")))
+
+ result = grep.Tool.execute(
+ coder,
+ searches=[{"pattern": "needle", "directory": ".", "file_glob": "*.nope"}],
+ )
+ op = result.to_dict()["result"][0]
+
+ assert op["_"]["total_matches"] == 0
+ assert any("file_glob='*.nope'" in warning for warning in op["_"]["warnings"])
+
+
+def test_empty_pattern_body_uses_label(tmp_path):
+ coder = _grep_coder(tmp_path)
+ result = grep.Tool.execute(coder, searches=[{"pattern": "", "directory": "."}])
+ op = result.to_dict()["result"][0]
+
+ assert op["content"].startswith("[]")
+ assert op["_"]["error"]
+
+
+@pytest.mark.skipif(shutil.which("grep") is None, reason="grep is required")
+def test_grep_comma_separated_globs_are_supported(tmp_path, monkeypatch):
+ (tmp_path / "a.py").write_text("needle\n")
+ (tmp_path / "b.md").write_text("needle\n")
+ (tmp_path / "c.txt").write_text("needle\n")
+ coder = _grep_coder(tmp_path)
+ monkeypatch.setattr(grep.Tool, "_find_search_tool", lambda: ("grep", shutil.which("grep")))
+
+ result = grep.Tool.execute(
+ coder,
+ searches=[{"pattern": "needle", "directory": ".", "file_glob": "*.py,*.md"}],
+ )
+ op = result.to_dict()["result"][0]
+
+ assert op["_"]["total_matches"] == 2
+ assert _files_from_content(op) == {"a.py", "b.md"}
diff --git a/tests/tools/test_insert_block.py b/tests/tools/test_insert_block.py
index 5c8a692e0ca..6b66401a31d 100644
--- a/tests/tools/test_insert_block.py
+++ b/tests/tools/test_insert_block.py
@@ -259,3 +259,105 @@ def test_line_number_beyond_file_length_appends_no_trailing_newline(coder_with_f
# Insert respects the original trailing newline: no trailing newline in the result
assert content == "first line\nsecond line\nappended line"
coder.io.tool_error.assert_not_called()
+
+
+def test_insert_before_target(coder_with_file):
+ coder, file_path = coder_with_file
+
+ result = edit_file.Tool.execute(
+ coder,
+ edits=[
+ {
+ "file_path": "example.txt",
+ "operation": "insert",
+ "text": "before line",
+ "start_line": "second line",
+ "position": "before",
+ }
+ ],
+ )
+
+ assert "Applied" in result.to_dict()["result"][0]["content"]
+ assert file_path.read_text() == "first line\nbefore line\nsecond line\n"
+
+
+def test_insert_after_target_explicit(coder_with_file):
+ coder, file_path = coder_with_file
+
+ result = edit_file.Tool.execute(
+ coder,
+ edits=[
+ {
+ "file_path": "example.txt",
+ "operation": "insert",
+ "text": "after line",
+ "start_line": "second line",
+ "position": "after",
+ }
+ ],
+ )
+
+ assert "Applied" in result.to_dict()["result"][0]["content"]
+ assert file_path.read_text() == "first line\nsecond line\nafter line\n"
+
+
+def test_insert_invalid_position_fails(coder_with_file):
+ coder, file_path = coder_with_file
+ original = file_path.read_text()
+
+ result = edit_file.Tool.execute(
+ coder,
+ edits=[
+ {
+ "file_path": "example.txt",
+ "operation": "insert",
+ "text": "bad",
+ "start_line": "second line",
+ "position": "middle",
+ }
+ ],
+ ).to_dict()
+
+ assert result["errors"]
+ assert "position" in result["errors"][0]
+ assert file_path.read_text() == original
+
+
+def test_insert_before_top_marker_prepends(coder_with_file):
+ coder, file_path = coder_with_file
+
+ result = edit_file.Tool.execute(
+ coder,
+ edits=[
+ {
+ "file_path": "example.txt",
+ "operation": "insert",
+ "text": "header",
+ "start_line": "@000",
+ "position": "before",
+ }
+ ],
+ )
+
+ assert "Applied" in result.to_dict()["result"][0]["content"]
+ assert file_path.read_text() == "header\nfirst line\nsecond line\n"
+
+
+def test_insert_after_eof_marker_appends(coder_with_file):
+ coder, file_path = coder_with_file
+
+ result = edit_file.Tool.execute(
+ coder,
+ edits=[
+ {
+ "file_path": "example.txt",
+ "operation": "insert",
+ "text": "footer",
+ "start_line": "000@",
+ "position": "after",
+ }
+ ],
+ )
+
+ assert "Applied" in result.to_dict()["result"][0]["content"]
+ assert file_path.read_text() == "first line\nsecond line\nfooter\n"
diff --git a/tests/tools/test_shell_timeout_paging.py b/tests/tools/test_shell_timeout_paging.py
index 2abf4e42204..dacc4b5707c 100644
--- a/tests/tools/test_shell_timeout_paging.py
+++ b/tests/tools/test_shell_timeout_paging.py
@@ -56,8 +56,10 @@ def make_buffer(page_size=4096, pages_dir=None):
monkeypatch.setattr(manager, "_generate_command_key", Mock(return_value=target))
start = Mock(return_value=target)
stop = Mock()
+ mark = Mock(return_value=True)
monkeypatch.setattr(manager, "start_background_command", start)
monkeypatch.setattr(manager, "stop_background_command", stop)
+ monkeypatch.setattr(manager, "mark_continued_in_background", mark)
pending_tasks = []
async def pending_wait(*args, **kwargs):
@@ -85,6 +87,7 @@ async def execute(output, threshold=8, enabled=True):
assert not coder.interrupt_event.is_set()
popen.assert_called_once()
start.assert_called_once()
+ mark.assert_called_once_with(target)
assert start.call_args.kwargs["existing_process"] is process
assert start.call_args.kwargs["existing_buffer"] is state["buffer"]
assert start.call_args.kwargs["persist"] is True
diff --git a/tests/tui/test_background_commands_panel.py b/tests/tui/test_background_commands_panel.py
index 20a080d6d75..74c925f26bb 100644
--- a/tests/tui/test_background_commands_panel.py
+++ b/tests/tui/test_background_commands_panel.py
@@ -32,9 +32,18 @@
"total_chars": 10,
},
"bg_3_4444": {
+ "command": "timeout-tool",
+ "running": True,
+ "persist": True,
+ "continued_in_background": True,
+ "buffer_size": 10,
+ "total_chars": 10,
+ },
+ "bg_4_5555": {
"command": "foreground-tool",
"running": True,
"persist": True,
+ "continued_in_background": False,
"buffer_size": 10,
"total_chars": 10,
},
@@ -43,6 +52,7 @@
OUTPUTS = {
"bg_0_1111": "ready in 231 ms\nlistening on 5173",
"bg_1_2222": "14 passed\n2 skipped",
+ "bg_3_4444": "still compiling",
}
@@ -93,7 +103,7 @@ async def _run_panel_checks():
panel.refresh_data()
await pilot.pause()
- assert _tab_ids(panel) == ["bg_0_1111", "bg_1_2222"]
+ assert _tab_ids(panel) == ["bg_0_1111", "bg_1_2222", "bg_3_4444"]
tabs = panel.query_one("#bg-command-tabs", Tabs)
log = panel.query_one("#bg-command-output", RichLog)
@@ -103,7 +113,7 @@ async def _run_panel_checks():
command_line = panel.query_one("#bg-command-line", Static)
assert "npm run dev" in str(command_line.render())
- assert panel.border_title == "background commands (2)"
+ assert panel.border_title == "background commands (3)"
assert panel._active_key == "bg_0_1111"
assert "listening on 5173" in _log_text(panel)
@@ -126,6 +136,14 @@ async def _run_panel_checks():
await pilot.pause()
assert "listening on 5173" in _log_text(panel)
+ tabs.active = "bg_3_4444"
+ await pilot.pause()
+
+ assert panel._active_key == "bg_3_4444"
+ assert "timeout-tool" in str(command_line.render())
+ assert "timed out, still running" in str(command_line.render())
+ assert "still compiling" in _log_text(panel)
+
def test_background_commands_panel_tabs_output_and_follow():
asyncio.run(_run_panel_checks())
@@ -299,3 +317,43 @@ def test_open_command_without_tui():
asyncio.run(OpenCommand.execute(io, coder, "commands"))
assert messages == ["/open commands is only available in the TUI."]
+
+
+def test_background_commands_panel_adds_tabs_incrementally():
+ """A command appearing after the initial render must not duplicate tab IDs."""
+ app = _PanelApp()
+ commands = {"bg_0_1111": COMMANDS["bg_0_1111"]}
+
+ with (
+ patch.object(
+ BackgroundCommandManager,
+ "list_background_commands",
+ side_effect=lambda: dict(commands),
+ ),
+ patch.object(
+ BackgroundCommandManager,
+ "get_command_output",
+ side_effect=lambda key: OUTPUTS.get(key, ""),
+ ),
+ patch.object(
+ BackgroundCommandManager,
+ "get_new_command_output",
+ side_effect=AssertionError("panel must not consume agent output"),
+ ),
+ ):
+
+ async def run():
+ async with app.run_test(size=(120, 40)) as pilot:
+ panel = app.query_one("#background-commands-panel", BackgroundCommandsPanel)
+ panel.refresh_data()
+ await pilot.pause()
+
+ assert _tab_ids(panel) == ["bg_0_1111"]
+
+ commands["bg_3_4444"] = COMMANDS["bg_3_4444"]
+ panel.refresh_data()
+ await pilot.pause()
+
+ assert _tab_ids(panel) == ["bg_0_1111", "bg_3_4444"]
+
+ asyncio.run(run())
diff --git a/tests/tui/test_selectable_log.py b/tests/tui/test_selectable_log.py
index 12a1c9284ae..cefb2d00ffa 100644
--- a/tests/tui/test_selectable_log.py
+++ b/tests/tui/test_selectable_log.py
@@ -359,6 +359,7 @@ async def test_reflow_pins_to_end_when_width_and_height_shrink_together():
for i in range(40):
log.write(f"{i:02d}-line")
await pilot.pause()
+ await pilot.pause()
assert log.is_vertical_scroll_end
log.styles.width = 20
]