diff --git a/docs/src/content/docs/en/configuration/profiles.md b/docs/src/content/docs/en/configuration/profiles.md index 374e58eb..bff7ef19 100644 --- a/docs/src/content/docs/en/configuration/profiles.md +++ b/docs/src/content/docs/en/configuration/profiles.md @@ -39,10 +39,58 @@ This lets you create multiple configs for the same agent, such as "Claude Code - | Effect scope | All | **Only opened from CCR** uses CCR-managed isolated config; **System default** writes the agent's default config. Only one enabled system-default config is allowed per agent. | | Entry mode | Claude Code, Codex, OpenCode, Grok CLI, Kimi CLI, Pi | `CLI & APP` exposes both CLI and App entry points; `CLI only` only generates a CLI command; `App only` only exposes the App entry point. Grok CLI, Kimi CLI, and Pi are fixed to `CLI only`. | | Model | All | Default model for the opened agent, either a provider model or Fusion model. Claude Code requires this value. | +| Profile API key | All | CCR generates an independent gateway API key for each enabled profile. Requests launched from that profile carry the key's internal id, so routing can match `request.auth.apiKeyId` or `request.auth.profileId` without exposing the raw key. | +| Profile routing | All | Optional profile-level routing rules. Profile rules run before global Routing rules and apply only to requests authenticated with that profile's API key. | | Available models | Kimi CLI | Models exposed by Kimi's `/model` command. The default model is always included. | | Bot | App entry | Bot forwarding only works for App mode opened from CCR. CLI does not forward Bot messages yet. | | Environment variables | All | Extra environment variables injected into this config. Claude Code includes `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` by default so gateway model discovery is enabled. | +## Profile Routing + +Each Agent Profiles entry can carry its own routing policy: + +| Option | Behavior | +| --- | --- | +| Enable profile routing | Turns on the profile's private rule list. Disabled profile routing keeps the profile usable but skips its private rules. | +| Use enhanced route | Claude Code and Codex only. A profile-level switch for CCR's built-in Claude Code / Codex routing enhancements. It is independent from the private rule list, so each profile can enable or disable the built-in route separately. | +| Profile routes | Uses condition-based rules. Rules can match `request.header`, `request.body`, or `request.auth`, and can rewrite the request model or other fields. Node.js script rules are only supported on the global Routing page. | + +Profile rules are evaluated before the global Routing page rules. They only see traffic from their own profile API key, so two profiles can use the same client model name and still route differently. For example, a "Claude Code - Work" profile can send image-heavy requests to a Fusion vision model while a "Claude Code - Low Cost" profile sends the same request shape to a cheaper provider. + +For hand-written config, the shape is stored on the profile as `routing`: + +```json +{ + "id": "claude-work", + "agent": "claude-code", + "model": "Anthropic/claude-sonnet", + "routing": { + "enabled": true, + "enhancedRoute": true, + "rules": [ + { + "id": "work-images", + "name": "Work images", + "enabled": true, + "type": "condition", + "condition": { + "left": "request.body.messages", + "operator": "contains-deep", + "right": "image" + }, + "rewrites": [ + { + "op": "set", + "key": "request.body.model", + "value": "Fusion/vision" + } + ] + } + ] + } +} +``` + ## Per-Agent Options ### Claude Code diff --git a/docs/src/content/docs/en/configuration/routing.md b/docs/src/content/docs/en/configuration/routing.md index 99c61e8e..6797bebc 100644 --- a/docs/src/content/docs/en/configuration/routing.md +++ b/docs/src/content/docs/en/configuration/routing.md @@ -7,6 +7,8 @@ lead: Choose the model for a request, then automatically retry or switch to fall ## Built-In Routing +Claude Code and Codex built-in routes are controlled per Agent Profile through **Use enhanced route**. They do not appear in the global Routing page rule list. + ### Claude Code The built-in Claude Code route detects requests from Claude Code and routes main requests to the Claude Code Agent Profiles model when the client has not selected a recognized model. @@ -40,7 +42,7 @@ Recommended setup: 1. Add usable models under **Providers**, and verify that the model IDs can be requested. 2. Open **Models** and fill Description for the models you want Subagents to choose automatically. Describe task fit, speed, cost, and limits. 3. Enable a Claude Code config under **Agent Profiles**, and choose the default model. Claude Code uses it when the client has not selected a recognized model. -4. Confirm that the built-in **Claude Code** route is enabled on the **Routing** page. +4. In **Agent Profiles**, keep **Use enhanced route** enabled for that Claude Code profile. 5. Use Agent, Task, or Workflow in Claude Code. When Claude Code spawns an agent, it can choose a CCR model from the descriptions and write the tag. Write descriptions around tasks instead of only naming the provider. For example: @@ -59,7 +61,7 @@ CCR automatically adapts Codex's `apply_patch` file-editing tool for third-party Technically, this is a tool protocol bridge. Native Codex `apply_patch` is a custom/freeform tool whose input is raw patch text, while many OpenAI-compatible third-party models handle ordinary function tools more reliably. CCR rewrites `apply_patch` into an upstream-visible `virtual_apply_patch` function tool and injects the full `apply_patch.lark` grammar into the tool description, requiring the model to put the patch in the `patch` field. -When the model returns `virtual_apply_patch`, CCR rewrites it back to Codex's expected shape: `custom_tool_call` with `name = apply_patch` and `input = raw patch text`. CCR does not edit files directly; Codex still executes the resulting patch. This adaptation is enabled automatically for non-GPT models and is independent of the built-in **Codex** routing switch. GPT-named models, including Fusion models whose resolved base model is GPT, keep using Codex's native freeform `apply_patch` path. +When the model returns `virtual_apply_patch`, CCR rewrites it back to Codex's expected shape: `custom_tool_call` with `name = apply_patch` and `input = raw patch text`. CCR does not edit files directly; Codex still executes the resulting patch. This adaptation is enabled automatically for non-GPT models and is independent of the profile-level **Use enhanced route** switch. GPT-named models, including Fusion models whose resolved base model is GPT, keep using Codex's native freeform `apply_patch` path. ## Custom Routing @@ -67,6 +69,8 @@ Custom routes are configured in the Routing page rule list. The top **Search rou Custom rules match in list order, and the first enabled matching rule rewrites the request. Use the move up and move down buttons to adjust priority. Use the edit button to open **Edit Routing Rule**, and the delete button to open a confirmation dialog. Turning off the **Status** toggle keeps the rule in the list but removes it from matching. +Agent Profiles can also define private routing rules. Profile rules use the same rule shape, but CCR evaluates them before the global list and only for requests authenticated with that profile's generated API key. Inside rule conditions and scripts, use `request.auth.apiKeyId` or `request.auth.profileId` when a policy must explicitly match the caller profile. + ### Add Or Edit A Rule The dialog fields map directly to the saved rule: @@ -74,7 +78,7 @@ The dialog fields map directly to the saved rule: | UI field | How to fill it | Saved meaning | | --- | --- | --- | | **Name** | Enter a recognizable rule name. This field is required. | Shown in the **Name** column and included in search. | -| **Condition** | Choose `request.header` or `request.body`, then fill in field, operator, and value. | Builds `condition.left`, `condition.operator`, and `condition.right`. | +| **Condition** | Choose `request.header`, `request.body`, or `request.auth`, then fill in field, operator, and value. | Builds `condition.left`, `condition.operator`, and `condition.right`. | | **Rewrite request parameters** | Keep at least one rewrite row. Each row chooses an operation, target key, and required value fields. | Builds `rewrites`, applied when the rule matches. | | **Enabled** | Turn the rule on or off. | Controls `enabled`; disabled rules do not match. | | **On failure** | Configure fallback behavior for this rule. | Overrides **Default on failure** when this rule matches. | @@ -126,6 +130,7 @@ Each execution receives its own read-only `input` object: | `input.tokenCount` | `number` | CCR's estimated input token count, or `0` when unavailable. | | `input.sessionId` | `string \| undefined` | Session ID when CCR can resolve it. | | `input.apiKeyId` | `string \| undefined` | CCR API-key identifier from `x-auth-api-key-id`; this is not the raw key. | +| `input.profileId` | `string \| undefined` | The authenticated Agent Profile's configured `id`, such as `claude-work`. | | `input.builtInSubagentModel` | `string \| undefined` | Built-in subagent model when CCR can identify it. | | `input.summary.lastUserText` | `string` | Text from the last user message, limited to 16 KiB characters. | | `input.summary.systemText` | `string` | Text from the system content, limited to 8 KiB characters. | @@ -419,9 +424,12 @@ The **Condition** area has four controls: source, field, operator, and value. | --- | --- | --- | | `request.header` | `user-agent`, `x-api-key`, `x-client-name` | `request.header.user-agent` | | `request.body` | `model`, `messages`, `messages.0.role`, `tools` | `request.body.model` | +| `request.auth` | `apiKeyId`, `profileId` | `request.auth.profileId` | Header names are case-insensitive. Body fields use dot-path lookup, and numeric segments address array indexes; for example, `messages.0.role` reads the first message role. For nested arrays such as `messages` or `tools`, `contains deep` is usually more robust than a fixed index. +`request.auth.apiKeyId` is CCR's internal authenticated key id, not the raw API key. Agent Profile keys use the `profile:` form, while `request.auth.profileId` exposes the authenticated profile's configured `id`. This makes it possible to route one profile differently from another without matching a secret value. + The value field is parsed as a common literal when possible: `true`, `false`, `null`, numbers, JSON objects, and JSON arrays compare as their corresponding types. Other input is treated as a string. To force a value to stay string-like, wrap it as `"123"` or `'123'`. | Operator | Use | @@ -461,6 +469,7 @@ When a rule matches, its **On failure** setting is used. Requests that do not ma | Goal | Condition source | Field | Operator | Value | Rewrite request parameters | | --- | --- | --- | --- | --- | --- | | Route by client header | `request.header` | `x-client-name` | `==` | `claude-code` | **Set** `request.body.model = provider/model` | +| Route one profile | `request.auth` | `profileId` | `==` | `claude-work` | **Set** `request.body.model = provider/model` | | Route by original model prefix | `request.body` | `model` | `starts with` | `claude-` | **Set** `request.body.model = provider/model` | | Route message content to a vision model | `request.body` | `messages` | `contains deep` | `image` | **Set** `request.body.model = vision-provider/model` | | Remove a debug header | `request.header` | `x-debug-route` | `==` | `1` | **Delete** `request.header.x-debug-route` | @@ -471,7 +480,7 @@ After saving, the rule appears in the list. Use request logs, especially `reques Fallback is the failure strategy after a model or upstream request fails. Routing picks the first model; Fallback decides whether CCR should keep trying after the current target fails. -The **Default on failure** control at the top of the Routing page is the global Fallback. Each rule also has **On failure**. When a rule matches, its rule-level Fallback overrides the global Fallback. +The **Default on failure** control at the top of the Routing page is the global Fallback. Each rule also has **On failure**. When a rule matches, its rule-level Fallback overrides the global Fallback. Agent Profile routing does not define a separate profile-level fallback. ## Fallback Modes diff --git a/docs/src/content/docs/zh/configuration/profile.md b/docs/src/content/docs/zh/configuration/profile.md index 31371458..7c5dbdb7 100644 --- a/docs/src/content/docs/zh/configuration/profile.md +++ b/docs/src/content/docs/zh/configuration/profile.md @@ -39,10 +39,58 @@ lead: 为 Claude Code、Codex、Grok CLI、Kimi CLI、Pi、ZCode 创建可复用 | 作用范围 | 全部 | **仅从 CCR 打开时生效** 会使用 CCR 管理的独立配置;**系统默认** 会写入对应 Agent 的默认配置。同一个 Agent 同时只能有一个启用的系统默认配置。 | | 入口模式 | Claude Code、Codex、OpenCode、Grok CLI、Kimi CLI、Pi | `CLI & APP` 同时显示 CLI 和 App 打开入口;`CLI only` 只生成 CLI 命令;`App only` 只显示 App 打开入口。Grok CLI、Kimi CLI 和 Pi 固定为 `CLI only`。 | | 模型 | 全部 | 该 Agent 打开后的默认模型,可以选择普通供应商模型或 Fusion 模型。Claude Code 必须填写该值。 | +| 配置专属 API Key | 全部 | CCR 会为每个启用的配置生成独立网关 API Key。通过该配置启动的请求会携带内部 key id,因此路由可以匹配 `request.auth.apiKeyId` 或 `request.auth.profileId`,不需要暴露原始密钥。 | +| 配置级路由 | 全部 | 可选的配置专属路由规则。配置级规则在全局路由规则之前执行,只作用于使用该配置 API Key 鉴权的请求。 | | 可用模型 | Kimi CLI | Kimi `/model` 命令中可切换的模型;默认模型始终包含在内。 | | Bot | App 入口 | 只有从 CCR 打开的 App 模式会转发 Bot 消息。CLI 当前不转发 Bot 消息。 | | 环境变量 | 全部 | 为该配置注入额外环境变量。Claude Code 默认带 `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1`,用于启用网关模型发现。 | +## 配置级路由 + +每个 Agent 配置档案都可以带自己的路由策略: + +| 配置项 | 行为 | +| --- | --- | +| 启用配置级路由 | 打开该配置的私有规则列表。关闭后配置仍可使用,但不会执行私有规则。 | +| 使用增强路由 | 仅 Claude Code 和 Codex 显示。它是配置档案级别的内置 Claude Code / Codex 路由增强开关,独立于私有规则列表,因此每个配置档案都可以单独开启或关闭内置路由。 | +| 配置级路由规则 | 使用条件规则。规则可以匹配 `request.header`、`request.body` 或 `request.auth`,并改写请求模型或其他字段。Node.js 脚本规则只在全局路由页支持。 | + +配置级规则会先于全局路由页规则执行。它们只看到自己的配置 API Key 发来的流量,因此两个配置即使用同一个客户端模型名,也可以走不同分流。例如,“Claude Code - 工作”可以把带图片的请求发到 Fusion 视觉模型,而“Claude Code - 低成本”可以把同样形态的请求发到更便宜的供应商。 + +手写配置时,路由策略保存在 profile 的 `routing` 字段: + +```json +{ + "id": "claude-work", + "agent": "claude-code", + "model": "Anthropic/claude-sonnet", + "routing": { + "enabled": true, + "enhancedRoute": true, + "rules": [ + { + "id": "work-images", + "name": "Work images", + "enabled": true, + "type": "condition", + "condition": { + "left": "request.body.messages", + "operator": "contains-deep", + "right": "image" + }, + "rewrites": [ + { + "op": "set", + "key": "request.body.model", + "value": "Fusion/vision" + } + ] + } + ] + } +} +``` + ## 各 Agent 的配置项 ### Claude Code diff --git a/docs/src/content/docs/zh/configuration/routing.md b/docs/src/content/docs/zh/configuration/routing.md index 3632093b..c706533e 100644 --- a/docs/src/content/docs/zh/configuration/routing.md +++ b/docs/src/content/docs/zh/configuration/routing.md @@ -7,6 +7,8 @@ lead: 设置请求如何选择模型,并在失败时通过 Fallback 自动重 ## 内置路由 +Claude Code 和 Codex 内置路由通过 Agent 配置档案里的 **使用增强路由** 单独控制,不会出现在全局路由页的规则列表中。 + ### Claude Code Claude Code 内置路由的作用是识别 Claude Code 发来的请求,并在客户端没有选择可识别模型时,把主请求路由到 Claude Code Agent 配置中的模型。 @@ -40,7 +42,7 @@ Claude Code 的 Agent / Task / Workflow 可以派生新的模型请求。CCR 使 1. 在 **供应商** 中添加可用模型,确认模型 ID 可以真实请求。 2. 打开 **模型** 页面,为希望 Subagent 自动选择的模型填写 Description。说明要写清模型适合的任务、速度、成本和限制。 3. 在 **Agent 配置档案** 中启用 Claude Code 配置,并设置默认模型。Claude Code 未选择可识别模型时会使用它。 -4. 在 **路由** 页面确认 **Claude Code** 内置路由已启用。 +4. 在 **Agent 配置档案** 中保持该 Claude Code 配置的 **使用增强路由** 开启。 5. 在 Claude Code 中使用 Agent、Task 或 Workflow。需要派生 Agent 时,Claude Code 会根据模型 Description 选择一个 CCR 模型并写入标签。 Description 建议写成任务导向,而不是只写模型厂商名。例如: @@ -59,7 +61,7 @@ CCR 会自动为第三方或非 GPT 模型适配 Codex 的 `apply_patch` 文件 技术原理是做一次工具协议桥接:Codex 原生的 `apply_patch` 是 custom/freeform 工具,入参是原始 patch 文本;很多 OpenAI-compatible 三方模型更擅长普通 function tool。CCR 会在上游请求中把 `apply_patch` 转成 `virtual_apply_patch` function tool,并在工具说明里注入完整的 `apply_patch.lark` 语法,要求模型把 patch 写入 `patch` 字段。 -模型返回 `virtual_apply_patch` 后,CCR 会把它转换回 Codex 期望的 `custom_tool_call`:`name = apply_patch`,`input = 原始 patch 文本`。CCR 不直接修改文件,真正执行 patch 的仍然是 Codex 客户端。这个适配会对非 GPT 模型自动启用,不受 **Codex** 内置路由开关影响;GPT 命名模型以及实际基模为 GPT 的 Fusion 模型继续使用 Codex 原生 freeform `apply_patch` 路径。 +模型返回 `virtual_apply_patch` 后,CCR 会把它转换回 Codex 期望的 `custom_tool_call`:`name = apply_patch`,`input = 原始 patch 文本`。CCR 不直接修改文件,真正执行 patch 的仍然是 Codex 客户端。这个适配会对非 GPT 模型自动启用,不受配置档案级 **使用增强路由** 开关影响;GPT 命名模型以及实际基模为 GPT 的 Fusion 模型继续使用 Codex 原生 freeform `apply_patch` 路径。 ## 自定义路由 @@ -67,6 +69,8 @@ CCR 会自动为第三方或非 GPT 模型适配 Codex 的 `apply_patch` 文件 自定义规则按列表顺序匹配,第一条命中的启用规则会改写请求。表格右侧的上移、下移按钮用来调整优先级,编辑按钮打开 **编辑路由规则**,删除按钮会先弹出确认框。**状态** 列的开关关闭后,规则保留在列表里,但不会参与匹配。 +Agent 配置档案也可以定义私有路由规则。配置级规则使用同一套规则结构,但 CCR 会先于全局规则列表执行它们,并且只对使用该配置生成的 API Key 鉴权的请求生效。需要显式匹配调用方配置时,可以在规则条件或脚本中使用 `request.auth.apiKeyId` 或 `request.auth.profileId`。 + ### 添加或编辑规则 弹窗里的字段和保存后的配置一一对应: @@ -74,7 +78,7 @@ CCR 会自动为第三方或非 GPT 模型适配 Codex 的 `apply_patch` 文件 | UI 字段 | 填写方式 | 保存后的含义 | | --- | --- | --- | | **名称** | 填一个便于识别的规则名。该字段不能为空。 | 显示在列表 **名称** 列,也参与搜索。 | -| **条件** | 选择 `request.header` 或 `request.body`,填写字段名、操作符和值。 | 生成 `condition.left`、`condition.operator` 和 `condition.right`。 | +| **条件** | 选择 `request.header`、`request.body` 或 `request.auth`,填写字段名、操作符和值。 | 生成 `condition.left`、`condition.operator` 和 `condition.right`。 | | **改写请求参数** | 至少保留一行 rewrite。每行选择操作、目标 key 和需要的值。 | 生成 `rewrites`,规则命中后按行改写请求。 | | **启用** | 打开或关闭规则。 | 控制 `enabled`,关闭时不会匹配。 | | **失败时** | 配置这条规则自己的 Fallback。 | 规则命中后覆盖页面顶部的 **默认失败处理**。 | @@ -126,6 +130,7 @@ return { | `input.tokenCount` | `number` | CCR 估算的输入 Token 数;无法估算时为 `0`。 | | `input.sessionId` | `string \| undefined` | CCR 能解析到的会话 ID。 | | `input.apiKeyId` | `string \| undefined` | `x-auth-api-key-id` Header 中的 CCR API Key 标识,不是原始密钥。 | +| `input.profileId` | `string \| undefined` | 已鉴权 Agent 配置档案中配置的 `id`,例如 `claude-work`。 | | `input.builtInSubagentModel` | `string \| undefined` | CCR 能识别到的内置子代理模型。 | | `input.summary.lastUserText` | `string` | 最后一条用户消息的文本,最多 16 KiB 字符。 | | `input.summary.systemText` | `string` | System 内容的文本,最多 8 KiB 字符。 | @@ -419,9 +424,12 @@ Worker 隔离不是操作系统级安全沙箱。`api.fetch`、`api.fs` 和 `api | --- | --- | --- | | `request.header` | `user-agent`、`x-api-key`、`x-client-name` | `request.header.user-agent` | | `request.body` | `model`、`messages`、`messages.0.role`、`tools` | `request.body.model` | +| `request.auth` | `apiKeyId`、`profileId` | `request.auth.profileId` | Header 名不区分大小写。Body 字段按点号路径读取,数字片段表示数组下标;例如 `messages.0.role` 读取第一条 message 的 role。对于 messages、tools 这类嵌套数组,通常用 `contains deep` 比固定下标更稳。 +`request.auth.apiKeyId` 是 CCR 的内部鉴权 key id,不是原始 API Key。Agent 配置档案生成的 key 使用 `profile:` 形式,而 `request.auth.profileId` 会暴露已鉴权配置档案中配置的原始 `id`。这样可以按配置分流,而不需要匹配密钥值。 + 值输入框会按常见字面量解析:`true`、`false`、`null`、数字、JSON 对象或数组会按对应类型比较;其他内容按字符串处理。需要强制作为字符串时,可以写成 `"123"` 或 `'123'`。 | 操作符 | 用法 | @@ -461,6 +469,7 @@ Rewrite 的值也会按字面量解析,所以 `0.2` 会变成数字,`true` | 目标 | 条件来源 | 字段 | 操作符 | 值 | 改写请求参数 | | --- | --- | --- | --- | --- | --- | | 按客户端 Header 分流 | `request.header` | `x-client-name` | `==` | `claude-code` | **设置** `request.body.model = 供应商/模型` | +| 按单个配置分流 | `request.auth` | `profileId` | `==` | `claude-work` | **设置** `request.body.model = 供应商/模型` | | 按原始模型前缀分流 | `request.body` | `model` | `starts with` | `claude-` | **设置** `request.body.model = 供应商/模型` | | 按消息内容分流到视觉模型 | `request.body` | `messages` | `contains deep` | `image` | **设置** `request.body.model = 视觉供应商/模型` | | 删除调试 Header | `request.header` | `x-debug-route` | `==` | `1` | **删除** `request.header.x-debug-route` | @@ -471,7 +480,7 @@ Rewrite 的值也会按字面量解析,所以 `0.2` 会变成数字,`true` Fallback 处理请求失败后的降级。第一次选模型由路由完成;当前模型或上游失败时,Fallback 决定是否继续尝试。 -路由页面顶部的 **默认失败处理** 是全局 Fallback。每条路由规则里的 **失败时** 是规则级 Fallback:当某条规则命中时,规则级配置会覆盖全局配置。 +路由页面顶部的 **默认失败处理** 是全局 Fallback。每条路由规则里的 **失败时** 是规则级 Fallback:当某条规则命中时,规则级配置会覆盖全局配置。Agent 配置档案的配置级路由不再定义单独的配置级 Fallback。 ## Fallback 模式 diff --git a/packages/core/models.json b/packages/core/models.json index a79253f0..bd5bcf62 100644 --- a/packages/core/models.json +++ b/packages/core/models.json @@ -1,6 +1,6 @@ { "schemaVersion": 2, - "generatedAt": "2026-07-20T00:56:02.672Z", + "generatedAt": "2026-07-28T13:37:45.161Z", "generatedBy": "scripts/generate-models-json.mjs", "sources": [ { @@ -20,25 +20,25 @@ } ], "summary": { - "modelCount": 3810, - "rawProviderModelCount": 8329, - "duplicateProviderModelRecordsMerged": 4519, - "providerCount": 190, - "availabilityProviderCount": 265, + "modelCount": 3867, + "rawProviderModelCount": 8467, + "duplicateProviderModelRecordsMerged": 4600, + "providerCount": 194, + "availabilityProviderCount": 271, "sourceCounts": { - "models.dev": 2454, - "litellm": 1917, - "openrouter": 338 + "models.dev": 2508, + "litellm": 1927, + "openrouter": 339 }, - "pricingOfferCount": 8602, - "modelsWithPricing": 3603, + "pricingOfferCount": 8720, + "modelsWithPricing": 3660, "modelsWithoutPricing": 207, - "modelsWith1MContext": 569, - "modelsWithImageInput": 1404, + "modelsWith1MContext": 603, + "modelsWithImageInput": 1460, "modelsWithImageOutput": 185, - "modelsWithAudioInput": 247, - "modelsWithToolCalling": 2275, - "modelsWithReasoning": 1597 + "modelsWithAudioInput": 258, + "modelsWithToolCalling": 2348, + "modelsWithReasoning": 1677 }, "models": [ { @@ -804,7 +804,14 @@ "imageOutput": false, "openWeights": true, "pdfInput": false, - "reasoning": false, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "maxReasoningEffort": true, + "minimalReasoningEffort": true, + "noneReasoningEffort": true, + "xhighReasoningEffort": true, "structuredOutput": false, "temperature": true, "toolCalling": true, @@ -833,7 +840,7 @@ "Abliterated Model" ], "releaseDate": "2026-01-06", - "lastUpdated": "2026-01-06", + "lastUpdated": "2026-07-28", "providerModelRecordCount": 1 }, "sourceRecords": [ @@ -848,9 +855,130 @@ "modelKey": "abliterated-model", "displayName": "Abliterated Model", "metadata": { - "lastUpdated": "2026-01-06", + "lastUpdated": "2026-07-28", "openWeights": true, - "releaseDate": "2026-01-06" + "releaseDate": "2026-01-06", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + }, + { + "type": "toggle" + } + ] + } + } + ] + }, + { + "id": "abliteration-ai/abliterated-model-large", + "provider": "abliteration-ai", + "model": "abliterated-model-large", + "displayName": "Abliterated Model Large", + "sources": [ + "models.dev" + ], + "providers": [ + "abliteration-ai" + ], + "aliases": [ + "abliteration-ai/abliterated-model-large" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1000000, + "inputTokens": 1000000, + "outputTokens": 999990, + "supports1MContext": true + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": true, + "highReasoningEffort": true, + "maxReasoningEffort": true, + "noneReasoningEffort": true, + "structuredOutput": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "abliteration-ai", + "model": "abliterated-model-large", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 5, + "output": 5 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Abliterated Model Large" + ], + "releaseDate": "2026-07-25", + "lastUpdated": "2026-07-28", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "abliteration-ai", + "providerName": "abliteration.ai", + "providerApi": "https://api.abliteration.ai/v1", + "providerDoc": "https://docs.abliteration.ai/models", + "model": "abliterated-model-large", + "modelKey": "abliterated-model-large", + "displayName": "Abliterated Model Large", + "metadata": { + "lastUpdated": "2026-07-28", + "openWeights": false, + "releaseDate": "2026-07-25", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "high", + "max" + ] + }, + { + "type": "toggle" + } + ] } } ] @@ -2189,6 +2317,7 @@ "per1MTokens": { "cacheRead": 0.169, "cacheWrite": 1.05625, + "cacheWrite5m": 1.05625, "input": 0.84, "output": 3.38 } @@ -3168,6 +3297,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -3298,6 +3429,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -3431,6 +3564,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -3564,6 +3699,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -3692,6 +3829,7 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -4900,6 +5038,110 @@ } ] }, + { + "id": "aki-io/gemma4-26b", + "provider": "aki-io", + "model": "gemma4-26b", + "displayName": "Gemma 4 26B A4B IT", + "family": "gemma", + "sources": [ + "models.dev" + ], + "providers": [ + "aki-io" + ], + "aliases": [ + "aki-io/gemma4-26b" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 256000, + "outputTokens": 32768, + "supports1MContext": false + }, + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "highReasoningEffort": true, + "noneReasoningEffort": true, + "structuredOutput": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "aki-io", + "model": "gemma4-26b", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0.1, + "output": 0.5 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Gemma 4 26B A4B IT" + ], + "families": [ + "gemma" + ], + "releaseDate": "2026-04-02", + "lastUpdated": "2026-04-02", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "aki-io", + "providerName": "AKI.IO", + "providerApi": "https://aki.io/v1", + "providerDoc": "https://aki.io/docs/", + "model": "gemma4-26b", + "modelKey": "gemma4-26b", + "displayName": "Gemma 4 26B A4B IT", + "family": "gemma", + "metadata": { + "lastUpdated": "2026-04-02", + "openWeights": true, + "releaseDate": "2026-04-02", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "high" + ] + } + ] + } + } + ] + }, { "id": "alibaba-cn/moonshot-kimi-k2-instruct", "provider": "alibaba-cn", @@ -5179,6 +5421,266 @@ } ] }, + { + "id": "alibaba-token-plan-cn/happyhorse-1.1-i2v", + "provider": "alibaba-token-plan-cn", + "model": "happyhorse-1.1-i2v", + "displayName": "HappyHorse 1.1 Image-to-Video", + "sources": [ + "models.dev" + ], + "providers": [ + "alibaba-token-plan-cn" + ], + "aliases": [ + "alibaba-token-plan-cn/happyhorse-1.1-i2v" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 0, + "outputTokens": 0, + "supports1MContext": false + }, + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "video" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": false, + "temperature": true, + "toolCalling": false, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "alibaba-token-plan-cn", + "model": "happyhorse-1.1-i2v", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "HappyHorse 1.1 Image-to-Video" + ], + "releaseDate": "2026-07-17", + "lastUpdated": "2026-07-17", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "alibaba-token-plan-cn", + "providerName": "Alibaba Token Plan (China)", + "providerApi": "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1", + "providerDoc": "https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview", + "model": "happyhorse-1.1-i2v", + "modelKey": "happyhorse-1.1-i2v", + "displayName": "HappyHorse 1.1 Image-to-Video", + "metadata": { + "lastUpdated": "2026-07-17", + "openWeights": false, + "releaseDate": "2026-07-17" + } + } + ] + }, + { + "id": "alibaba-token-plan-cn/happyhorse-1.1-r2v", + "provider": "alibaba-token-plan-cn", + "model": "happyhorse-1.1-r2v", + "displayName": "HappyHorse 1.1 Reference-to-Video", + "sources": [ + "models.dev" + ], + "providers": [ + "alibaba-token-plan-cn" + ], + "aliases": [ + "alibaba-token-plan-cn/happyhorse-1.1-r2v" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 0, + "outputTokens": 0, + "supports1MContext": false + }, + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "video" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": false, + "temperature": true, + "toolCalling": false, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "alibaba-token-plan-cn", + "model": "happyhorse-1.1-r2v", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "HappyHorse 1.1 Reference-to-Video" + ], + "releaseDate": "2026-07-17", + "lastUpdated": "2026-07-17", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "alibaba-token-plan-cn", + "providerName": "Alibaba Token Plan (China)", + "providerApi": "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1", + "providerDoc": "https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview", + "model": "happyhorse-1.1-r2v", + "modelKey": "happyhorse-1.1-r2v", + "displayName": "HappyHorse 1.1 Reference-to-Video", + "metadata": { + "lastUpdated": "2026-07-17", + "openWeights": false, + "releaseDate": "2026-07-17" + } + } + ] + }, + { + "id": "alibaba-token-plan-cn/happyhorse-1.1-t2v", + "provider": "alibaba-token-plan-cn", + "model": "happyhorse-1.1-t2v", + "displayName": "HappyHorse 1.1 Text-to-Video", + "sources": [ + "models.dev" + ], + "providers": [ + "alibaba-token-plan-cn" + ], + "aliases": [ + "alibaba-token-plan-cn/happyhorse-1.1-t2v" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 0, + "outputTokens": 0, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "video" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": false, + "temperature": true, + "toolCalling": false, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "alibaba-token-plan-cn", + "model": "happyhorse-1.1-t2v", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "HappyHorse 1.1 Text-to-Video" + ], + "releaseDate": "2026-07-17", + "lastUpdated": "2026-07-17", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "alibaba-token-plan-cn", + "providerName": "Alibaba Token Plan (China)", + "providerApi": "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1", + "providerDoc": "https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview", + "model": "happyhorse-1.1-t2v", + "modelKey": "happyhorse-1.1-t2v", + "displayName": "HappyHorse 1.1 Text-to-Video", + "metadata": { + "lastUpdated": "2026-07-17", + "openWeights": false, + "releaseDate": "2026-07-17" + } + } + ] + }, { "id": "alibaba-token-plan-cn/wan2.7-image", "provider": "alibaba-token-plan-cn", @@ -5351,6 +5853,266 @@ } ] }, + { + "id": "alibaba-token-plan/happyhorse-1.1-i2v", + "provider": "alibaba-token-plan", + "model": "happyhorse-1.1-i2v", + "displayName": "HappyHorse 1.1 Image-to-Video", + "sources": [ + "models.dev" + ], + "providers": [ + "alibaba-token-plan" + ], + "aliases": [ + "alibaba-token-plan/happyhorse-1.1-i2v" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 0, + "outputTokens": 0, + "supports1MContext": false + }, + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "video" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": false, + "temperature": true, + "toolCalling": false, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "alibaba-token-plan", + "model": "happyhorse-1.1-i2v", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "HappyHorse 1.1 Image-to-Video" + ], + "releaseDate": "2026-07-17", + "lastUpdated": "2026-07-17", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "alibaba-token-plan", + "providerName": "Alibaba Token Plan", + "providerApi": "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", + "providerDoc": "https://www.alibabacloud.com/help/en/model-studio/token-plan-overview", + "model": "happyhorse-1.1-i2v", + "modelKey": "happyhorse-1.1-i2v", + "displayName": "HappyHorse 1.1 Image-to-Video", + "metadata": { + "lastUpdated": "2026-07-17", + "openWeights": false, + "releaseDate": "2026-07-17" + } + } + ] + }, + { + "id": "alibaba-token-plan/happyhorse-1.1-r2v", + "provider": "alibaba-token-plan", + "model": "happyhorse-1.1-r2v", + "displayName": "HappyHorse 1.1 Reference-to-Video", + "sources": [ + "models.dev" + ], + "providers": [ + "alibaba-token-plan" + ], + "aliases": [ + "alibaba-token-plan/happyhorse-1.1-r2v" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 0, + "outputTokens": 0, + "supports1MContext": false + }, + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "video" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": false, + "temperature": true, + "toolCalling": false, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "alibaba-token-plan", + "model": "happyhorse-1.1-r2v", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "HappyHorse 1.1 Reference-to-Video" + ], + "releaseDate": "2026-07-17", + "lastUpdated": "2026-07-17", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "alibaba-token-plan", + "providerName": "Alibaba Token Plan", + "providerApi": "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", + "providerDoc": "https://www.alibabacloud.com/help/en/model-studio/token-plan-overview", + "model": "happyhorse-1.1-r2v", + "modelKey": "happyhorse-1.1-r2v", + "displayName": "HappyHorse 1.1 Reference-to-Video", + "metadata": { + "lastUpdated": "2026-07-17", + "openWeights": false, + "releaseDate": "2026-07-17" + } + } + ] + }, + { + "id": "alibaba-token-plan/happyhorse-1.1-t2v", + "provider": "alibaba-token-plan", + "model": "happyhorse-1.1-t2v", + "displayName": "HappyHorse 1.1 Text-to-Video", + "sources": [ + "models.dev" + ], + "providers": [ + "alibaba-token-plan" + ], + "aliases": [ + "alibaba-token-plan/happyhorse-1.1-t2v" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 0, + "outputTokens": 0, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "video" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": false, + "temperature": true, + "toolCalling": false, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "alibaba-token-plan", + "model": "happyhorse-1.1-t2v", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "HappyHorse 1.1 Text-to-Video" + ], + "releaseDate": "2026-07-17", + "lastUpdated": "2026-07-17", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "alibaba-token-plan", + "providerName": "Alibaba Token Plan", + "providerApi": "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", + "providerDoc": "https://www.alibabacloud.com/help/en/model-studio/token-plan-overview", + "model": "happyhorse-1.1-t2v", + "modelKey": "happyhorse-1.1-t2v", + "displayName": "HappyHorse 1.1 Text-to-Video", + "metadata": { + "lastUpdated": "2026-07-17", + "openWeights": false, + "releaseDate": "2026-07-17" + } + } + ] + }, { "id": "alibaba-token-plan/wan2.7-image", "provider": "alibaba-token-plan", @@ -6037,7 +6799,7 @@ ], "mergedProviderModelRecords": 2, "limits": { - "contextTokens": 131072, + "contextTokens": 32768, "outputTokens": 32768, "supports1MContext": false }, @@ -6121,7 +6883,6 @@ "supportedParameters": [ "frequency_penalty", "logit_bias", - "logprobs", "max_tokens", "min_p", "presence_penalty", @@ -6134,7 +6895,6 @@ "tool_choice", "tools", "top_k", - "top_logprobs", "top_p" ], "providerModelRecordCount": 2 @@ -6192,7 +6952,6 @@ "supportedParameters": [ "frequency_penalty", "logit_bias", - "logprobs", "max_tokens", "min_p", "presence_penalty", @@ -6205,7 +6964,6 @@ "tool_choice", "tools", "top_k", - "top_logprobs", "top_p" ], "tokenizer": "Qwen", @@ -6425,7 +7183,7 @@ ], "mergedProviderModelRecords": 2, "limits": { - "contextTokens": 128000, + "contextTokens": 33792, "inputTokens": 33792, "maxTokens": 33792, "outputTokens": 33792, @@ -7242,6 +8000,7 @@ "per1MTokens": { "cacheRead": 0.0625, "cacheWrite": 0.78, + "cacheWrite5m": 0.78, "input": 0.625, "output": 3.75 }, @@ -7375,6 +8134,7 @@ "per1MTokens": { "cacheRead": 0.27, "cacheWrite": 3.35, + "cacheWrite5m": 3.35, "input": 2.7, "output": 8.05 } @@ -7470,6 +8230,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0.625, + "cacheWrite5m": 0.625, "input": 0.5, "output": 2 }, @@ -7583,6 +8344,7 @@ "per1MTokens": { "cacheRead": 0.26, "cacheWrite": 1.625, + "cacheWrite5m": 1.625, "input": 1.3, "output": 7.8 } @@ -7663,7 +8425,7 @@ ] }, "capabilities": { - "attachments": false, + "attachments": true, "audioInput": false, "audioOutput": false, "imageInput": true, @@ -8248,6 +9010,7 @@ "per1MTokens": { "cacheRead": 0.01, "cacheWrite": 0.0625, + "cacheWrite5m": 0.0625, "input": 0.05, "output": 0.4 } @@ -10460,6 +11223,7 @@ "per1MTokens": { "cacheRead": 0.08, "cacheWrite": 0.5, + "cacheWrite5m": 0.5, "input": 0.4, "output": 1.2, "reasoningOutput": 4 @@ -10485,6 +11249,7 @@ "per1MTokens": { "cacheRead": 0.052, "cacheWrite": 0.325, + "cacheWrite5m": 0.325, "input": 0.26, "output": 0.78 } @@ -10509,6 +11274,7 @@ "per1MTokens": { "cacheRead": 0.052, "cacheWrite": 0.325, + "cacheWrite5m": 0.325, "input": 0.26, "output": 0.78 }, @@ -11312,6 +12078,7 @@ "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { "cacheWrite": 0.325, + "cacheWrite5m": 0.325, "input": 0.26, "output": 0.78 } @@ -11324,6 +12091,7 @@ "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { "cacheWrite": 0.325, + "cacheWrite5m": 0.325, "input": 0.26, "output": 0.78 }, @@ -11792,6 +12560,7 @@ "per1MTokens": { "cacheRead": 0.08, "cacheWrite": 0.5, + "cacheWrite5m": 0.5, "input": 0.4, "output": 1.2 } @@ -15291,8 +16060,8 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "input": 0.13, - "output": 0.4 + "input": 0.25, + "output": 0.75 } } ] @@ -17633,6 +18402,7 @@ "per1MTokens": { "cacheRead": 0.025, "cacheWrite": 0.1, + "cacheWrite5m": 0.1, "input": 0.05, "output": 0.22 } @@ -17838,6 +18608,7 @@ "per1MTokens": { "cacheRead": 0.025, "cacheWrite": 0.31, + "cacheWrite5m": 0.31, "input": 0.25, "output": 0.75 } @@ -20692,6 +21463,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -20710,6 +21483,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 0.1, + "cacheWrite5m": 0.1, "input": 0.1, "output": 0.1 } @@ -20791,7 +21565,7 @@ ], "mergedProviderModelRecords": 10, "limits": { - "contextTokens": 131702, + "contextTokens": 131072, "inputTokens": 41000, "maxTokens": 40960, "outputTokens": 131000, @@ -20955,8 +21729,8 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "input": 0.12, - "output": 0.24 + "input": 0.2275, + "output": 0.91 } } ] @@ -21233,8 +22007,8 @@ ], "tokenizer": "Qwen3", "topProvider": { - "context_length": 40960, - "max_completion_tokens": 16384, + "context_length": 131072, + "max_completion_tokens": 8192, "is_moderated": false } } @@ -23711,6 +24485,9 @@ "modes": [ "chat" ], + "statuses": [ + "deprecated" + ], "releaseDate": "2025-08-13", "lastUpdated": "2025-08-13", "supportedRegions": [ @@ -23730,6 +24507,7 @@ "modelKey": "qwen/qwen3-235b-a22b-instruct-2507-maas", "displayName": "Qwen3 235B A22B Instruct", "family": "qwen", + "status": "deprecated", "metadata": { "lastUpdated": "2025-08-13", "openWeights": true, @@ -24206,6 +24984,8 @@ "webSearch": false, "supports1MContext": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "systemMessages": true }, "pricing": { @@ -24243,6 +25023,7 @@ "per1MTokens": { "cacheRead": 0.055, "cacheWrite": 0.22, + "cacheWrite5m": 0.22, "input": 0.11, "output": 0.6 } @@ -24276,8 +25057,8 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "input": 0.2, - "output": 0.6 + "input": 0.3, + "output": 3 } }, { @@ -24320,8 +25101,8 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "input": 0.1495, - "output": 1.495 + "input": 0.3, + "output": 3 } }, { @@ -24609,7 +25390,12 @@ "metadata": { "lastUpdated": "2025-07-08", "openWeights": true, - "releaseDate": "2025-07-08" + "releaseDate": "2025-07-08", + "reasoningOptions": [ + { + "type": "toggle" + } + ] } }, { @@ -24966,6 +25752,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0.625, + "cacheWrite5m": 0.625, "input": 0.5, "output": 2 } @@ -25238,8 +26025,8 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "input": 0.13, - "output": 0.52 + "input": 0.12, + "output": 0.5 } }, { @@ -25300,8 +26087,8 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "input": 0.13, - "output": 0.52 + "input": 0.12, + "output": 0.5 } } ] @@ -25548,8 +26335,8 @@ ], "tokenizer": "Qwen3", "topProvider": { - "context_length": 131072, - "max_completion_tokens": 8192, + "context_length": 40960, + "max_completion_tokens": 16384, "is_moderated": false } } @@ -26061,6 +26848,7 @@ "per1MTokens": { "cacheRead": 0.01, "cacheWrite": 0.125, + "cacheWrite5m": 0.125, "input": 0.1, "output": 0.3 } @@ -26072,8 +26860,8 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "input": 0.1, - "output": 0.3 + "input": 0.04815, + "output": 0.19305 } }, { @@ -26128,8 +26916,8 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "input": 0.1, - "output": 0.3 + "input": 0.04815, + "output": 0.19305 } } ] @@ -26438,8 +27226,8 @@ ], "tokenizer": "Qwen3", "topProvider": { - "context_length": 262144, - "max_completion_tokens": null, + "context_length": 128000, + "max_completion_tokens": 32000, "is_moderated": false } } @@ -26856,6 +27644,8 @@ "parallelFunctionCalling": false, "webSearch": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true }, "pricing": { @@ -27007,6 +27797,7 @@ "per1MTokens": { "cacheRead": 0.01, "cacheWrite": 0.125, + "cacheWrite5m": 0.125, "input": 0.1, "output": 0.3 } @@ -27042,6 +27833,7 @@ "per1MTokens": { "cacheRead": 0.9, "cacheWrite": 0.9, + "cacheWrite5m": 0.9, "input": 0.9, "output": 0.9 } @@ -27414,7 +28206,12 @@ "knowledgeCutoff": "2025-04", "lastUpdated": "2025-04", "openWeights": true, - "releaseDate": "2025-04" + "releaseDate": "2025-04", + "reasoningOptions": [ + { + "type": "toggle" + } + ] } }, { @@ -28185,6 +28982,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -28203,6 +29002,7 @@ "per1MTokens": { "cacheRead": 0.15, "cacheWrite": 0.15, + "cacheWrite5m": 0.15, "input": 0.15, "output": 0.15 } @@ -28410,6 +29210,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -28435,6 +29237,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0.2, + "cacheWrite5m": 0.2, "input": 0.2, "output": 0.2 } @@ -28622,6 +29425,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -28750,6 +29555,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -28880,6 +29687,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -29050,6 +29859,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -29216,6 +30027,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -29332,6 +30145,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -29791,6 +30606,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -30006,6 +30823,99 @@ } ] }, + { + "id": "alibaba/qwen3-6-35b-a3b", + "provider": "alibaba", + "model": "qwen3-6-35b-a3b", + "displayName": "Qwen 3.6 35B A3B", + "family": "qwen", + "sources": [ + "models.dev" + ], + "providers": [ + "venice" + ], + "aliases": [ + "venice/qwen3-6-35b-a3b" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 256000, + "outputTokens": 65536, + "supports1MContext": false + }, + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "structuredOutput": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "venice", + "model": "qwen3-6-35b-a3b", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.05, + "input": 0.1, + "output": 1 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Qwen 3.6 35B A3B" + ], + "families": [ + "qwen" + ], + "releaseDate": "2026-07-20", + "lastUpdated": "2026-07-22", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "venice", + "providerName": "Venice AI", + "providerDoc": "https://docs.venice.ai", + "model": "qwen3-6-35b-a3b", + "modelKey": "qwen3-6-35b-a3b", + "displayName": "Qwen 3.6 35B A3B", + "family": "qwen", + "metadata": { + "lastUpdated": "2026-07-22", + "openWeights": true, + "releaseDate": "2026-07-20" + } + } + ] + }, { "id": "alibaba/qwen3-6-flash", "provider": "alibaba", @@ -30047,6 +30957,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -30177,6 +31089,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -30421,6 +31335,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -30540,6 +31456,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -30733,6 +31651,8 @@ "toolChoice": true, "webSearch": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "embedding": false, "imageGeneration": false, @@ -30813,6 +31733,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0.2, + "cacheWrite5m": 0.2, "input": 0.2, "output": 0.2 } @@ -31434,11 +32355,11 @@ ], "mergedProviderModelRecords": 8, "limits": { - "contextTokens": 1048576, + "contextTokens": 262144, "inputTokens": 262144, "maxTokens": 262100, "outputTokens": 262100, - "supports1MContext": true + "supports1MContext": false }, "modalities": { "input": [ @@ -31475,7 +32396,7 @@ "parallelFunctionCalling": false, "responseSchema": true, "webSearch": false, - "supports1MContext": true + "supports1MContext": false }, "pricing": { "currency": "USD", @@ -33603,21 +34524,23 @@ "id": "alibaba/qwen3-coder-480b-a35b-instruct-int4-mixed-ar", "provider": "alibaba", "model": "qwen3-coder-480b-a35b-instruct-int4-mixed-ar", - "displayName": "Qwen 3 Coder 480B", + "displayName": "Qwen3-Coder 480B-A35B Instruct", "family": "qwen", "sources": [ "models.dev" ], "providers": [ + "hyper", "io-net" ], "aliases": [ + "hyper/qwen3-coder-480b-a35b-instruct-int4-mixed-ar", "io-net/Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar" ], - "mergedProviderModelRecords": 1, + "mergedProviderModelRecords": 2, "limits": { "contextTokens": 106000, - "outputTokens": 4096, + "outputTokens": 10600, "supports1MContext": false }, "modalities": { @@ -33646,6 +34569,19 @@ "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ + { + "source": "models.dev", + "provider": "hyper", + "model": "qwen3-coder-480b-a35b-instruct-int4-mixed-ar", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheWrite": 0.3005, + "cacheWrite5m": 0.3005, + "input": 0.601, + "output": 2.085 + } + }, { "source": "models.dev", "provider": "io-net", @@ -33655,6 +34591,7 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 0.44, + "cacheWrite5m": 0.44, "input": 0.22, "output": 0.95 } @@ -33663,17 +34600,36 @@ }, "metadata": { "displayNames": [ - "Qwen 3 Coder 480B" + "Qwen 3 Coder 480B", + "Qwen3-Coder 480B-A35B Instruct" ], "families": [ "qwen" ], - "knowledgeCutoff": "2024-12", - "releaseDate": "2025-01-15", - "lastUpdated": "2025-01-15", - "providerModelRecordCount": 1 + "knowledgeCutoff": "2025-04", + "releaseDate": "2026-04-30", + "lastUpdated": "2026-07-22", + "providerModelRecordCount": 2 }, "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "hyper", + "providerName": "Charm Hyper", + "providerApi": "https://hyper.charm.land/v1", + "providerDoc": "https://hyper.charm.land", + "model": "qwen3-coder-480b-a35b-instruct-int4-mixed-ar", + "modelKey": "qwen3-coder-480b-a35b-instruct-int4-mixed-ar", + "displayName": "Qwen3-Coder 480B-A35B Instruct", + "family": "qwen", + "metadata": { + "knowledgeCutoff": "2025-04", + "lastUpdated": "2026-07-22", + "openWeights": true, + "releaseDate": "2026-04-30" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -34151,6 +35107,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.5 } @@ -34175,6 +35132,7 @@ "per1MTokens": { "cacheRead": 0.039, "cacheWrite": 0.24375, + "cacheWrite5m": 0.24375, "input": 0.195, "output": 0.975 } @@ -34195,6 +35153,7 @@ "per1MTokens": { "cacheRead": 0.039, "cacheWrite": 0.24375, + "cacheWrite5m": 0.24375, "input": 0.195, "output": 0.975 }, @@ -34580,6 +35539,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -34593,6 +35553,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -34717,9 +35678,9 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "cacheRead": 0.07, - "input": 0.11, - "output": 0.8 + "cacheRead": 0.036, + "input": 0.18, + "output": 0.9 } } ] @@ -34995,8 +35956,8 @@ ], "tokenizer": "Qwen", "topProvider": { - "context_length": 262144, - "max_completion_tokens": 262144, + "context_length": 256000, + "max_completion_tokens": 64000, "is_moderated": false } } @@ -35017,7 +35978,7 @@ "togetherai" ], "aliases": [ - "inferx/qwen/qwen3-coder-next-fp8", + "inferx/qwen3-coder-next-fp8", "togetherai/Qwen/Qwen3-Coder-Next-FP8" ], "mergedProviderModelRecords": 2, @@ -35056,7 +36017,7 @@ { "source": "models.dev", "provider": "inferx", - "model": "qwen/qwen3-coder-next-fp8", + "model": "qwen3-coder-next-fp8", "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { @@ -35100,8 +36061,8 @@ "providerName": "InferX", "providerApi": "https://model.inferx.net/endpoints/v1", "providerDoc": "https://model.inferx.net/endpoints", - "model": "qwen/qwen3-coder-next-fp8", - "modelKey": "qwen/qwen3-coder-next-fp8", + "model": "qwen3-coder-next-fp8", + "modelKey": "qwen3-coder-next-fp8", "displayName": "Qwen3 Coder Next FP8", "family": "qwen", "metadata": { @@ -35144,7 +36105,7 @@ "inferx" ], "aliases": [ - "inferx/qwen/qwen3-coder-next-fp8-1m" + "inferx/qwen3-coder-next-fp8-1m" ], "mergedProviderModelRecords": 1, "limits": { @@ -35182,7 +36143,7 @@ { "source": "models.dev", "provider": "inferx", - "model": "qwen/qwen3-coder-next-fp8-1m", + "model": "qwen3-coder-next-fp8-1m", "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { @@ -35212,8 +36173,8 @@ "providerName": "InferX", "providerApi": "https://model.inferx.net/endpoints/v1", "providerDoc": "https://model.inferx.net/endpoints", - "model": "qwen/qwen3-coder-next-fp8-1m", - "modelKey": "qwen/qwen3-coder-next-fp8-1m", + "model": "qwen3-coder-next-fp8-1m", + "modelKey": "qwen3-coder-next-fp8-1m", "displayName": "Qwen3 Coder Next FP8 1M", "family": "qwen", "metadata": { @@ -35331,6 +36292,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -35344,6 +36306,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -35391,6 +36354,7 @@ "per1MTokens": { "cacheRead": 1.2, "cacheWrite": 7.5, + "cacheWrite5m": 7.5, "input": 6, "output": 60 } @@ -35415,6 +36379,7 @@ "per1MTokens": { "cacheRead": 0.13, "cacheWrite": 0.8125, + "cacheWrite5m": 0.8125, "input": 0.65, "output": 3.25 } @@ -35440,6 +36405,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -35471,6 +36437,7 @@ "per1MTokens": { "cacheRead": 0.13, "cacheWrite": 0.8125, + "cacheWrite5m": 0.8125, "input": 0.65, "output": 3.25 }, @@ -35936,100 +36903,6 @@ } ] }, - { - "id": "alibaba/qwen3-coder:free", - "provider": "alibaba", - "model": "qwen3-coder:free", - "displayName": "Qwen3 Coder 480B A35B (free)", - "family": "qwen", - "sources": [ - "models.dev" - ], - "providers": [ - "openrouter" - ], - "aliases": [ - "openrouter/qwen/qwen3-coder:free" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 1048576, - "outputTokens": 262000, - "supports1MContext": true - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "structuredOutput": false, - "temperature": true, - "toolCalling": true, - "videoInput": false, - "supports1MContext": true - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "openrouter", - "model": "qwen/qwen3-coder:free", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0, - "output": 0 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Qwen3 Coder 480B A35B (free)" - ], - "families": [ - "qwen" - ], - "knowledgeCutoff": "2025-06-30", - "releaseDate": "2025-07-23", - "lastUpdated": "2025-07-23", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "openrouter", - "providerName": "OpenRouter", - "providerApi": "https://openrouter.ai/api/v1", - "providerDoc": "https://openrouter.ai/models", - "model": "qwen/qwen3-coder:free", - "modelKey": "qwen/qwen3-coder:free", - "displayName": "Qwen3 Coder 480B A35B (free)", - "family": "qwen", - "metadata": { - "knowledgeCutoff": "2025-06-30", - "lastUpdated": "2025-07-23", - "openWeights": true, - "releaseDate": "2025-07-23" - } - } - ] - }, { "id": "alibaba/qwen3-embedding-0.6b", "provider": "alibaba", @@ -37149,6 +38022,7 @@ "per1MTokens": { "cacheRead": 0.6, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 0.845, "output": 3.38 } @@ -37184,6 +38058,7 @@ "per1MTokens": { "cacheRead": 0.156, "cacheWrite": 0.975, + "cacheWrite5m": 0.975, "input": 0.78, "output": 3.9 } @@ -37249,6 +38124,7 @@ "per1MTokens": { "cacheRead": 0.156, "cacheWrite": 0.975, + "cacheWrite5m": 0.975, "input": 0.78, "output": 3.9 }, @@ -37784,6 +38660,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -37797,6 +38674,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -38449,6 +39327,7 @@ "fireworks_ai", "helicone", "huggingface", + "hyper", "io-net", "jiekou", "kilo", @@ -38471,6 +39350,7 @@ "fireworks_ai/accounts/fireworks/models/qwen3-next-80b-a3b-instruct", "helicone/qwen3-next-80b-a3b-instruct", "huggingface/Qwen/Qwen3-Next-80B-A3B-Instruct", + "hyper/qwen3-next-80b-a3b-instruct", "io-net/Qwen/Qwen3-Next-80B-A3B-Instruct", "jiekou/qwen/qwen3-next-80b-a3b-instruct", "kilo/qwen/qwen3-next-80b-a3b-instruct", @@ -38485,7 +39365,7 @@ "together_ai/Qwen/Qwen3-Next-80B-A3B-Instruct", "vercel/alibaba/qwen3-next-80b-a3b-instruct" ], - "mergedProviderModelRecords": 20, + "mergedProviderModelRecords": 21, "limits": { "contextTokens": 262144, "inputTokens": 262144, @@ -38589,6 +39469,19 @@ "output": 1 } }, + { + "source": "models.dev", + "provider": "hyper", + "model": "qwen3-next-80b-a3b-instruct", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheWrite": 0.06094, + "cacheWrite5m": 0.06094, + "input": 0.12188, + "output": 1.145 + } + }, { "source": "models.dev", "provider": "io-net", @@ -38598,6 +39491,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0.2, + "cacheWrite5m": 0.2, "input": 0.1, "output": 0.8 } @@ -38808,7 +39702,7 @@ "top_logprobs", "top_p" ], - "providerModelRecordCount": 20 + "providerModelRecordCount": 21 }, "sourceRecords": [ { @@ -38900,6 +39794,24 @@ "releaseDate": "2025-09-11" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "hyper", + "providerName": "Charm Hyper", + "providerApi": "https://hyper.charm.land/v1", + "providerDoc": "https://hyper.charm.land", + "model": "qwen3-next-80b-a3b-instruct", + "modelKey": "qwen3-next-80b-a3b-instruct", + "displayName": "Qwen3-Next 80B-A3B Instruct", + "family": "qwen", + "metadata": { + "knowledgeCutoff": "2025-04", + "lastUpdated": "2026-07-22", + "openWeights": true, + "releaseDate": "2026-04-30" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -39261,100 +40173,6 @@ } ] }, - { - "id": "alibaba/qwen3-next-80b-a3b-instruct:free", - "provider": "alibaba", - "model": "qwen3-next-80b-a3b-instruct:free", - "displayName": "Qwen3 Next 80B A3B Instruct (free)", - "family": "qwen", - "sources": [ - "models.dev" - ], - "providers": [ - "openrouter" - ], - "aliases": [ - "openrouter/qwen/qwen3-next-80b-a3b-instruct:free" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 262144, - "outputTokens": 262144, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "structuredOutput": true, - "temperature": true, - "toolCalling": true, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "openrouter", - "model": "qwen/qwen3-next-80b-a3b-instruct:free", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0, - "output": 0 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Qwen3 Next 80B A3B Instruct (free)" - ], - "families": [ - "qwen" - ], - "knowledgeCutoff": "2025-04", - "releaseDate": "2025-09", - "lastUpdated": "2025-09", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "openrouter", - "providerName": "OpenRouter", - "providerApi": "https://openrouter.ai/api/v1", - "providerDoc": "https://openrouter.ai/models", - "model": "qwen/qwen3-next-80b-a3b-instruct:free", - "modelKey": "qwen/qwen3-next-80b-a3b-instruct:free", - "displayName": "Qwen3 Next 80B A3B Instruct (free)", - "family": "qwen", - "metadata": { - "knowledgeCutoff": "2025-04", - "lastUpdated": "2025-09", - "openWeights": true, - "releaseDate": "2025-09" - } - } - ] - }, { "id": "alibaba/qwen3-next-80b-a3b-thinking", "provider": "alibaba", @@ -39551,6 +40369,7 @@ "per1MTokens": { "cacheRead": 0.015, "cacheWrite": 0.18, + "cacheWrite5m": 0.18, "input": 0.15, "output": 1.2, "reasoningOutput": 1.2 @@ -39677,6 +40496,7 @@ "supportedParameters": [ "frequency_penalty", "include_reasoning", + "logit_bias", "logprobs", "max_tokens", "presence_penalty", @@ -40000,6 +40820,7 @@ "supportedParameters": [ "frequency_penalty", "include_reasoning", + "logit_bias", "logprobs", "max_tokens", "presence_penalty", @@ -40083,6 +40904,7 @@ "per1MTokens": { "cacheRead": 0.015, "cacheWrite": 0.1875, + "cacheWrite5m": 0.1875, "input": 0.15, "output": 1.2 } @@ -42843,8 +43665,8 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "input": 0.13, - "output": 0.52 + "input": 0.15, + "output": 0.6 } }, { @@ -42898,8 +43720,8 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "input": 0.13, - "output": 0.52 + "input": 0.15, + "output": 0.6 } } ] @@ -43128,8 +43950,8 @@ ], "tokenizer": "Qwen3", "topProvider": { - "context_length": 131072, - "max_completion_tokens": 32768, + "context_length": 262144, + "max_completion_tokens": 16384, "is_moderated": false } } @@ -43533,7 +44355,7 @@ ], "mergedProviderModelRecords": 6, "limits": { - "contextTokens": 262144, + "contextTokens": 262000, "inputTokens": 131072, "maxTokens": 32768, "outputTokens": 262000, @@ -44084,7 +44906,7 @@ ], "mergedProviderModelRecords": 7, "limits": { - "contextTokens": 262000, + "contextTokens": 262144, "inputTokens": 131072, "maxTokens": 32768, "outputTokens": 262000, @@ -44416,7 +45238,7 @@ ], "mergedProviderModelRecords": 2, "limits": { - "contextTokens": 256000, + "contextTokens": 131072, "outputTokens": 32768, "supports1MContext": false }, @@ -44982,6 +45804,7 @@ "per1MTokens": { "cacheRead": 0.04, "cacheWrite": 0.25, + "cacheWrite5m": 0.25, "input": 0.2, "output": 1.6, "reasoningOutput": 4.8 @@ -46484,8 +47307,8 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "input": 0.26, - "output": 2.6 + "input": 0.195, + "output": 1.56 } }, { @@ -46551,8 +47374,8 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "input": 0.26, - "output": 2.6 + "input": 0.195, + "output": 1.56 } } ] @@ -46909,7 +47732,7 @@ "tokenizer": "Qwen3", "topProvider": { "context_length": 262144, - "max_completion_tokens": 81920, + "max_completion_tokens": 65536, "is_moderated": false } } @@ -50157,7 +50980,8 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "input": 0.14, + "cacheRead": 0.05, + "input": 0.15, "output": 1 } }, @@ -50777,6 +51601,8 @@ "responseSchema": true, "webSearch": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true }, "pricing": { @@ -50916,6 +51742,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.75, + "cacheWrite5m": 0.75, "input": 0.6, "output": 3.6 } @@ -51765,6 +52592,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.75, + "cacheWrite5m": 0.75, "input": 0.6, "output": 3.6 } @@ -52496,6 +53324,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -52621,6 +53451,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 0.3, + "cacheWrite5m": 0.3, "input": 0.3, "output": 0.3 } @@ -53186,6 +54017,7 @@ "per1MTokens": { "cacheRead": 0.001, "cacheWrite": 0.125, + "cacheWrite5m": 0.125, "input": 0.1, "output": 0.4 } @@ -53899,6 +54731,8 @@ "supports1MContext": true, "structuredOutput": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "embedding": false, "functionCalling": true, "imageGeneration": false, @@ -53934,6 +54768,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -53947,6 +54782,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -53996,6 +54832,7 @@ "per1MTokens": { "cacheRead": 0.02, "cacheWrite": 0.25, + "cacheWrite5m": 0.25, "input": 0.2, "output": 1.2 } @@ -54009,6 +54846,7 @@ "per1MTokens": { "cacheRead": 0.02, "cacheWrite": 0.25, + "cacheWrite5m": 0.25, "input": 0.2, "output": 1.2 } @@ -54034,6 +54872,7 @@ "per1MTokens": { "cacheRead": 0.04, "cacheWrite": 0.5, + "cacheWrite5m": 0.5, "input": 0.4, "output": 2.4 } @@ -54691,6 +55530,7 @@ "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.8 } @@ -54703,6 +55543,7 @@ "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.8 }, @@ -55030,6 +55871,7 @@ ], "providers": [ "abacus", + "aiand", "alibaba", "blueclaw", "crof", @@ -55050,6 +55892,7 @@ ], "aliases": [ "abacus/Qwen/Qwen3.6-27B", + "aiand/qwen/qwen3.6-27b", "alibaba/qwen3.6-27b", "blueclaw/Qwen3.6-27B", "crof/qwen3.6-27b", @@ -55068,7 +55911,7 @@ "vultr/Qwen/Qwen3.6-27B", "wandb/Qwen/Qwen3.6-27B" ], - "mergedProviderModelRecords": 18, + "mergedProviderModelRecords": 19, "limits": { "contextTokens": 262144, "inputTokens": 262144, @@ -55103,13 +55946,15 @@ "videoInput": true, "supports1MContext": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "minimalReasoningEffort": true, "noneReasoningEffort": true, + "xhighReasoningEffort": true, "parallelFunctionCalling": false, "responseSchema": true, "toolChoice": true, "webSearch": false, - "minimalReasoningEffort": true, - "xhighReasoningEffort": true, "embedding": false, "functionCalling": true, "imageGeneration": false, @@ -55135,6 +55980,17 @@ "output": 3.2 } }, + { + "source": "models.dev", + "provider": "aiand", + "model": "qwen/qwen3.6-27b", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + }, { "source": "models.dev", "provider": "alibaba", @@ -55209,8 +56065,9 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "input": 0.45, - "output": 2.7 + "cacheRead": 0.15, + "input": 0.3, + "output": 2 } }, { @@ -55233,6 +56090,7 @@ "per1MTokens": { "cacheRead": 0.6, "cacheWrite": 0.6, + "cacheWrite5m": 0.6, "input": 0.6, "output": 0.6 } @@ -55323,8 +56181,9 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "input": 0.45, - "output": 2.7 + "cacheRead": 0.15, + "input": 0.3, + "output": 2 } } ] @@ -55369,7 +56228,7 @@ "top_logprobs", "top_p" ], - "providerModelRecordCount": 18 + "providerModelRecordCount": 19 }, "sourceRecords": [ { @@ -55389,6 +56248,36 @@ "releaseDate": "2026-04-22" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "aiand", + "providerName": "ai&", + "providerApi": "https://api.aiand.com/v1", + "providerDoc": "https://docs.aiand.com/", + "model": "qwen/qwen3.6-27b", + "modelKey": "qwen/qwen3.6-27b", + "displayName": "Qwen3.6 27B", + "family": "qwen", + "metadata": { + "lastUpdated": "2026-04-22", + "openWeights": true, + "releaseDate": "2026-04-22", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -56211,6 +57100,110 @@ } ] }, + { + "id": "alibaba/qwen3.6-35b", + "provider": "alibaba", + "model": "qwen3.6-35b", + "displayName": "Qwen3.6 35B-A3B", + "family": "qwen", + "sources": [ + "models.dev" + ], + "providers": [ + "aki-io" + ], + "aliases": [ + "aki-io/qwen3.6-35b" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 256000, + "outputTokens": 32768, + "supports1MContext": false + }, + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "highReasoningEffort": true, + "noneReasoningEffort": true, + "structuredOutput": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "aki-io", + "model": "qwen3.6-35b", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0.15, + "output": 0.5 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Qwen3.6 35B-A3B" + ], + "families": [ + "qwen" + ], + "releaseDate": "2026-04-17", + "lastUpdated": "2026-04-17", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "aki-io", + "providerName": "AKI.IO", + "providerApi": "https://aki.io/v1", + "providerDoc": "https://aki.io/docs/", + "model": "qwen3.6-35b", + "modelKey": "qwen3.6-35b", + "displayName": "Qwen3.6 35B-A3B", + "family": "qwen", + "metadata": { + "lastUpdated": "2026-04-17", + "openWeights": true, + "releaseDate": "2026-04-17", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "high" + ] + } + ] + } + } + ] + }, { "id": "alibaba/qwen3.6-35b-a3b", "provider": "alibaba", @@ -56300,6 +57293,8 @@ "toolChoice": true, "webSearch": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "embedding": false, "functionCalling": true, @@ -56426,6 +57421,7 @@ "per1MTokens": { "cacheRead": 0.028, "cacheWrite": 0.175, + "cacheWrite5m": 0.175, "input": 0.14, "output": 1 } @@ -56967,19 +57963,21 @@ "providers": [ "blueclaw", "evroc", + "hetzner", "inferx", "nearai" ], "aliases": [ "blueclaw/Qwen/Qwen3.6-35B-A3B-FP8", "evroc/Qwen/Qwen3.6-35B-A3B-FP8", + "hetzner/Qwen/Qwen3.6-35B-A3B-FP8", "inferx/qwen/qwen3.6-35b-a3b-fp8", "nearai/Qwen/Qwen3.6-35B-A3B-FP8" ], - "mergedProviderModelRecords": 4, + "mergedProviderModelRecords": 5, "limits": { "contextTokens": 262144, - "outputTokens": 65536, + "outputTokens": 262144, "supports1MContext": false }, "modalities": { @@ -57023,6 +58021,18 @@ "output": 1.38 } }, + { + "source": "models.dev", + "provider": "hetzner", + "model": "Qwen/Qwen3.6-35B-A3B-FP8", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0, + "input": 0, + "output": 0 + } + }, { "source": "models.dev", "provider": "inferx", @@ -57062,7 +58072,7 @@ ], "releaseDate": "2026-04-17", "lastUpdated": "2026-04-17", - "providerModelRecordCount": 4 + "providerModelRecordCount": 5 }, "sourceRecords": [ { @@ -57105,6 +58115,24 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "hetzner", + "providerName": "Hetzner", + "providerApi": "https://inference.hetzner.com/api/v1", + "providerDoc": "https://experiments.hetzner.com/docs/inference", + "model": "Qwen/Qwen3.6-35B-A3B-FP8", + "modelKey": "Qwen/Qwen3.6-35B-A3B-FP8", + "displayName": "Qwen3.6 35B A3B FP8", + "family": "qwen", + "status": "beta", + "metadata": { + "lastUpdated": "2026-04-17", + "openWeights": true, + "releaseDate": "2026-04-17" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -57537,6 +58565,7 @@ "alibaba-token-plan", "alibaba-token-plan-cn", "crossmodel", + "hyper", "kilo", "llmgateway", "nano-gpt", @@ -57552,13 +58581,14 @@ "alibaba-token-plan/qwen3.6-flash", "alibaba/qwen3.6-flash", "crossmodel/qwen/qwen3.6-flash", + "hyper/qwen3.6-flash", "kilo/qwen/qwen3.6-flash", "llmgateway/qwen3.6-flash", "nano-gpt/alibaba/qwen3.6-flash", "openrouter/qwen/qwen3.6-flash", "pioneer/qwen3.6-flash" ], - "mergedProviderModelRecords": 13, + "mergedProviderModelRecords": 14, "limits": { "contextTokens": 1000000, "outputTokens": 65536, @@ -57592,7 +58622,9 @@ "responseSchema": true, "toolChoice": true, "webSearch": false, - "lowReasoningEffort": true + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true }, "pricing": { "currency": "USD", @@ -57607,6 +58639,7 @@ "per1MTokens": { "cacheRead": 0.0169, "cacheWrite": 0.21125, + "cacheWrite5m": 0.21125, "input": 0.17, "output": 1.01 }, @@ -57638,6 +58671,7 @@ "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { "cacheWrite": 0.234375, + "cacheWrite5m": 0.234375, "input": 0.1875, "output": 1.125 } @@ -57650,6 +58684,7 @@ "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { "cacheWrite": 0.234375, + "cacheWrite5m": 0.234375, "input": 0.1875, "output": 1.125 } @@ -57662,6 +58697,7 @@ "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { "cacheWrite": 0.234375, + "cacheWrite5m": 0.234375, "input": 0.1875, "output": 1.125 } @@ -57675,6 +58711,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -57688,6 +58725,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -57700,6 +58738,7 @@ "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { "cacheWrite": 0.234375, + "cacheWrite5m": 0.234375, "input": 0.1875, "output": 1.125 } @@ -57713,6 +58752,7 @@ "per1MTokens": { "cacheRead": 0.019, "cacheWrite": 0.24, + "cacheWrite5m": 0.24, "input": 0.19, "output": 1.13 }, @@ -57736,6 +58776,20 @@ ] } }, + { + "source": "models.dev", + "provider": "hyper", + "model": "qwen3.6-flash", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.1, + "cacheWrite": 1.25, + "cacheWrite5m": 1.25, + "input": 1, + "output": 4 + } + }, { "source": "models.dev", "provider": "kilo", @@ -57744,6 +58798,7 @@ "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { "cacheWrite": 0.3125, + "cacheWrite5m": 0.3125, "input": 0.25, "output": 1.5 } @@ -57779,6 +58834,7 @@ "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { "cacheWrite": 0.234375, + "cacheWrite5m": 0.234375, "input": 0.1875, "output": 1.125 } @@ -57792,6 +58848,7 @@ "per1MTokens": { "cacheRead": 0.0375, "cacheWrite": 0.234375, + "cacheWrite5m": 0.234375, "input": 0.1875, "output": 1.125 } @@ -57804,6 +58861,7 @@ "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { "cacheWrite": 0.234375, + "cacheWrite5m": 0.234375, "input": 0.1875, "output": 1.125 }, @@ -57846,7 +58904,7 @@ "top_logprobs", "top_p" ], - "providerModelRecordCount": 13 + "providerModelRecordCount": 14 }, "sourceRecords": [ { @@ -57962,7 +59020,7 @@ }, { "type": "budget_tokens", - "max": 81920 + "max": 131072 } ] } @@ -57988,7 +59046,7 @@ }, { "type": "budget_tokens", - "max": 81920 + "max": 131072 } ] } @@ -58043,6 +59101,23 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "hyper", + "providerName": "Charm Hyper", + "providerApi": "https://hyper.charm.land/v1", + "providerDoc": "https://hyper.charm.land", + "model": "qwen3.6-flash", + "modelKey": "qwen3.6-flash", + "displayName": "Qwen3.6 Flash", + "family": "qwen3.6", + "metadata": { + "lastUpdated": "2026-07-22", + "openWeights": false, + "releaseDate": "2026-05-20" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -58197,6 +59272,102 @@ } ] }, + { + "id": "alibaba/qwen3.6-max", + "provider": "alibaba", + "model": "qwen3.6-max", + "displayName": "Qwen3.6 Max Preview", + "family": "qwen", + "sources": [ + "models.dev" + ], + "providers": [ + "hyper" + ], + "aliases": [ + "hyper/qwen3.6-max" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 256000, + "outputTokens": 64000, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": false, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "hyper", + "model": "qwen3.6-max", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.2, + "cacheWrite": 2.5, + "cacheWrite5m": 2.5, + "input": 2, + "output": 12 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Qwen3.6 Max Preview" + ], + "families": [ + "qwen" + ], + "knowledgeCutoff": "2025-04", + "releaseDate": "2026-05-20", + "lastUpdated": "2026-07-22", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "hyper", + "providerName": "Charm Hyper", + "providerApi": "https://hyper.charm.land/v1", + "providerDoc": "https://hyper.charm.land", + "model": "qwen3.6-max", + "modelKey": "qwen3.6-max", + "displayName": "Qwen3.6 Max Preview", + "family": "qwen", + "metadata": { + "knowledgeCutoff": "2025-04", + "lastUpdated": "2026-07-22", + "openWeights": false, + "releaseDate": "2026-05-20" + } + } + ] + }, { "id": "alibaba/qwen3.6-max-preview", "provider": "alibaba", @@ -58259,7 +59430,9 @@ "responseSchema": true, "toolChoice": true, "webSearch": false, - "lowReasoningEffort": true + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true }, "pricing": { "currency": "USD", @@ -58274,6 +59447,7 @@ "per1MTokens": { "cacheRead": 0.1268, "cacheWrite": 1.585, + "cacheWrite5m": 1.585, "input": 1.27, "output": 7.61 }, @@ -58312,6 +59486,7 @@ "per1MTokens": { "cacheRead": 0.13, "cacheWrite": 1.625, + "cacheWrite5m": 1.625, "input": 1.3, "output": 7.8 } @@ -58324,6 +59499,7 @@ "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { "cacheWrite": 1.3, + "cacheWrite5m": 1.3, "input": 1.04, "output": 6.24 } @@ -58337,6 +59513,7 @@ "per1MTokens": { "cacheRead": 0.13, "cacheWrite": 1.625, + "cacheWrite5m": 1.625, "input": 1.3, "output": 7.8 } @@ -58360,6 +59537,7 @@ "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { "cacheWrite": 1.3, + "cacheWrite5m": 1.3, "input": 1.04, "output": 6.24 } @@ -58373,6 +59551,7 @@ "per1MTokens": { "cacheRead": 0.208, "cacheWrite": 1.3, + "cacheWrite5m": 1.3, "input": 1.04, "output": 6.24 } @@ -58385,6 +59564,7 @@ "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { "cacheWrite": 1.3, + "cacheWrite5m": 1.3, "input": 1.04, "output": 6.24 }, @@ -58684,6 +59864,7 @@ "alibaba-token-plan", "alibaba-token-plan-cn", "crossmodel", + "hyper", "kilo", "llmgateway", "merge-gateway", @@ -58705,6 +59886,7 @@ "alibaba-token-plan/qwen3.6-plus", "alibaba/qwen3.6-plus", "crossmodel/qwen/qwen3.6-plus", + "hyper/qwen3.6-plus", "kilo/qwen/qwen3.6-plus", "llmgateway/qwen3.6-plus", "merge-gateway/alibaba/qwen3.6-plus", @@ -58717,7 +59899,7 @@ "vercel/alibaba/qwen3.6-plus", "zenmux/qwen/qwen3.6-plus" ], - "mergedProviderModelRecords": 19, + "mergedProviderModelRecords": 20, "limits": { "contextTokens": 1000000, "inputTokens": 1000000, @@ -58762,7 +59944,9 @@ "parallelFunctionCalling": false, "responseSchema": true, "webSearch": false, - "lowReasoningEffort": true + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true }, "pricing": { "currency": "USD", @@ -58777,6 +59961,7 @@ "per1MTokens": { "cacheRead": 0.0282, "cacheWrite": 0.3525, + "cacheWrite5m": 0.3525, "input": 0.28, "output": 1.69 }, @@ -58809,6 +59994,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0.625, + "cacheWrite5m": 0.625, "input": 0.5, "output": 3 }, @@ -58841,6 +60027,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -58854,6 +60041,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -58867,6 +60055,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -58880,6 +60069,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -58893,6 +60083,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0.625, + "cacheWrite5m": 0.625, "input": 0.5, "output": 3 }, @@ -58925,6 +60116,7 @@ "per1MTokens": { "cacheRead": 0.032, "cacheWrite": 0.4, + "cacheWrite5m": 0.4, "input": 0.32, "output": 1.88 }, @@ -58948,6 +60140,20 @@ ] } }, + { + "source": "models.dev", + "provider": "hyper", + "model": "qwen3.6-plus", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.2, + "cacheWrite": 2.5, + "cacheWrite5m": 2.5, + "input": 2, + "output": 6 + } + }, { "source": "models.dev", "provider": "kilo", @@ -58957,6 +60163,7 @@ "per1MTokens": { "cacheRead": 0.0325, "cacheWrite": 0.40625, + "cacheWrite5m": 0.40625, "input": 0.325, "output": 1.95 } @@ -58970,6 +60177,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0.625, + "cacheWrite5m": 0.625, "input": 0.5, "output": 3 }, @@ -59013,6 +60221,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0.625, + "cacheWrite5m": 0.625, "input": 0.5, "output": 3 }, @@ -59045,6 +60254,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0.625, + "cacheWrite5m": 0.625, "input": 0.5, "output": 3 } @@ -59057,6 +60267,7 @@ "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { "cacheWrite": 0.40625, + "cacheWrite5m": 0.40625, "input": 0.325, "output": 1.95 } @@ -59070,6 +60281,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0.625, + "cacheWrite5m": 0.625, "input": 0.5, "output": 3 }, @@ -59102,6 +60314,7 @@ "per1MTokens": { "cacheRead": 0.065, "cacheWrite": 0.40625, + "cacheWrite5m": 0.40625, "input": 0.325, "output": 1.95 } @@ -59126,6 +60339,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 0.625, + "cacheWrite5m": 0.625, "input": 0.5, "output": 3 } @@ -59139,6 +60353,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0.625, + "cacheWrite5m": 0.625, "input": 0.5, "output": 3 }, @@ -59181,6 +60396,7 @@ "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { "cacheWrite": 0.40625, + "cacheWrite5m": 0.40625, "input": 0.325, "output": 1.95 }, @@ -59229,7 +60445,7 @@ "top_logprobs", "top_p" ], - "providerModelRecordCount": 19 + "providerModelRecordCount": 20 }, "sourceRecords": [ { @@ -59349,7 +60565,7 @@ }, { "type": "budget_tokens", - "max": 81920 + "max": 131072 } ] } @@ -59376,7 +60592,7 @@ }, { "type": "budget_tokens", - "max": 81920 + "max": 131072 } ] } @@ -59433,6 +60649,24 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "hyper", + "providerName": "Charm Hyper", + "providerApi": "https://hyper.charm.land/v1", + "providerDoc": "https://hyper.charm.land", + "model": "qwen3.6-plus", + "modelKey": "qwen3.6-plus", + "displayName": "Qwen3.6 Plus", + "family": "qwen", + "metadata": { + "knowledgeCutoff": "2025-04", + "lastUpdated": "2026-07-22", + "openWeights": false, + "releaseDate": "2026-05-20" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -59860,6 +61094,199 @@ } ] }, + { + "id": "alibaba/qwen3.7-flash", + "provider": "alibaba", + "model": "qwen3.7-flash", + "displayName": "Qwen3.7 Flash", + "family": "qwen", + "sources": [ + "models.dev", + "openrouter" + ], + "providers": [ + "openrouter" + ], + "aliases": [ + "openrouter/qwen/qwen3.7-flash" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1000000, + "outputTokens": 65536, + "supports1MContext": true + }, + "modalities": { + "input": [ + "image", + "text", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": true, + "structuredOutput": false, + "temperature": true, + "toolCalling": true, + "videoInput": true, + "parallelFunctionCalling": false, + "responseSchema": true, + "toolChoice": true, + "webSearch": false, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "openrouter", + "model": "qwen/qwen3.7-flash", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.006, + "cacheWrite": 0.038, + "cacheWrite5m": 0.038, + "input": 0.03, + "output": 0.13 + } + }, + { + "source": "openrouter", + "provider": "openrouter", + "model": "qwen/qwen3.7-flash", + "sourceUrl": "https://openrouter.ai/api/v1/models", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "cacheRead": 0.006, + "cacheWrite": 0.038, + "cacheWrite5m": 0.038, + "input": 0.03, + "output": 0.13 + }, + "extra": { + "overrides": [ + { + "min_prompt_tokens": 32000, + "prompt": 1e-7, + "completion": 4e-7, + "input_cache_read": 2e-8, + "input_cache_write": 1.25e-7 + }, + { + "min_prompt_tokens": 256000, + "prompt": 2e-7, + "completion": 8e-7, + "input_cache_read": 4e-8, + "input_cache_write": 2.5e-7 + } + ] + } + } + ] + }, + "metadata": { + "displayNames": [ + "Qwen3.7 Flash", + "Qwen: Qwen3.7 Flash" + ], + "families": [ + "qwen" + ], + "releaseDate": "2026-07-27", + "lastUpdated": "2026-07-27", + "supportedParameters": [ + "include_reasoning", + "logprobs", + "max_tokens", + "presence_penalty", + "reasoning", + "response_format", + "seed", + "temperature", + "tool_choice", + "tools", + "top_logprobs", + "top_p" + ], + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "openrouter", + "providerName": "OpenRouter", + "providerApi": "https://openrouter.ai/api/v1", + "providerDoc": "https://openrouter.ai/models", + "model": "qwen/qwen3.7-flash", + "modelKey": "qwen/qwen3.7-flash", + "displayName": "Qwen3.7 Flash", + "family": "qwen", + "metadata": { + "lastUpdated": "2026-07-27", + "openWeights": false, + "releaseDate": "2026-07-27", + "reasoningOptions": [ + { + "type": "budget_tokens" + } + ] + } + }, + { + "source": "openrouter", + "sourceUrl": "https://openrouter.ai/api/v1/models", + "provider": "openrouter", + "model": "qwen/qwen3.7-flash", + "displayName": "Qwen: Qwen3.7 Flash", + "metadata": { + "canonicalSlug": "qwen/qwen3.7-flash-20260727", + "createdAt": "2026-07-27T22:16:01.000Z", + "links": { + "details": "/api/v1/models/qwen/qwen3.7-flash-20260727/endpoints" + }, + "reasoning": { + "mandatory": false, + "default_enabled": true, + "supports_max_tokens": true + }, + "supportedParameters": [ + "include_reasoning", + "logprobs", + "max_tokens", + "presence_penalty", + "reasoning", + "response_format", + "seed", + "temperature", + "tool_choice", + "tools", + "top_logprobs", + "top_p" + ], + "tokenizer": "Qwen", + "topProvider": { + "context_length": 1000000, + "max_completion_tokens": 65536, + "is_moderated": false + } + } + } + ] + }, { "id": "alibaba/qwen3.7-max", "provider": "alibaba", @@ -59878,14 +61305,17 @@ "alibaba-coding-plan-cn", "alibaba-token-plan", "alibaba-token-plan-cn", + "cline-pass", "crossmodel", "deepinfra", "gmicloud", + "hyper", "kilo", "llmgateway", "merge-gateway", "nano-gpt", "novita-ai", + "ofox", "opencode-go", "openrouter", "pioneer", @@ -59901,14 +61331,17 @@ "alibaba-token-plan-cn/qwen3.7-max", "alibaba-token-plan/qwen3.7-max", "alibaba/qwen3.7-max", + "cline-pass/qwen3.7-max", "crossmodel/qwen/qwen3.7-max", "deepinfra/Qwen/Qwen3.7-Max", "gmicloud/Qwen/Qwen3.7-Max", + "hyper/qwen3.7-max", "kilo/qwen/qwen3.7-max", "llmgateway/qwen3.7-max", "merge-gateway/alibaba/qwen3.7-max", "nano-gpt/qwen3.7-max", "novita-ai/qwen/qwen3.7-max", + "ofox/bailian/qwen3.7-max", "opencode-go/qwen3.7-max", "openrouter/qwen/qwen3.7-max", "pioneer/qwen3.7-max", @@ -59916,7 +61349,7 @@ "vercel/alibaba/qwen3.7-max", "zenmux/qwen/qwen3.7-max" ], - "mergedProviderModelRecords": 21, + "mergedProviderModelRecords": 24, "limits": { "contextTokens": 1000000, "inputTokens": 1000000, @@ -59945,11 +61378,15 @@ "videoInput": false, "supports1MContext": true, "structuredOutput": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "noneReasoningEffort": true, + "xhighReasoningEffort": true, "parallelFunctionCalling": false, "responseSchema": true, "toolChoice": true, - "webSearch": false, - "lowReasoningEffort": true + "webSearch": false }, "pricing": { "currency": "USD", @@ -59964,6 +61401,7 @@ "per1MTokens": { "cacheRead": 0.169, "cacheWrite": 2.1125, + "cacheWrite5m": 2.1125, "input": 1.69, "output": 5.07 } @@ -59977,6 +61415,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 3.125, + "cacheWrite5m": 3.125, "input": 2.5, "output": 7.5 } @@ -59990,6 +61429,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 3.125, + "cacheWrite5m": 3.125, "input": 2.5, "output": 7.5 } @@ -60003,6 +61443,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 3.125, + "cacheWrite5m": 3.125, "input": 2.5, "output": 7.5 } @@ -60016,6 +61457,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -60029,6 +61471,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -60042,6 +61485,21 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 3.125, + "cacheWrite5m": 3.125, + "input": 2.5, + "output": 7.5 + } + }, + { + "source": "models.dev", + "provider": "cline-pass", + "model": "cline-pass/qwen3.7-max", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 3.125, + "cacheWrite5m": 3.125, "input": 2.5, "output": 7.5 } @@ -60055,6 +61513,7 @@ "per1MTokens": { "cacheRead": 0.375, "cacheWrite": 2.35, + "cacheWrite5m": 2.35, "input": 1.88, "output": 5.63 } @@ -60100,6 +61559,19 @@ "per1MTokens": { "cacheRead": 0.25, "cacheWrite": 3.125, + "cacheWrite5m": 3.125, + "input": 2.5, + "output": 7.5 + } + }, + { + "source": "models.dev", + "provider": "hyper", + "model": "qwen3.7-max", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, "input": 2.5, "output": 7.5 } @@ -60113,6 +61585,7 @@ "per1MTokens": { "cacheRead": 0.1625, "cacheWrite": 2.03125, + "cacheWrite5m": 2.03125, "input": 1.625, "output": 4.875 } @@ -60126,6 +61599,7 @@ "per1MTokens": { "cacheRead": 0.125, "cacheWrite": 3.125, + "cacheWrite5m": 3.125, "input": 1.25, "output": 3.75 } @@ -60162,10 +61636,25 @@ "per1MTokens": { "cacheRead": 0.25, "cacheWrite": 1.5625, + "cacheWrite5m": 1.5625, "input": 1.25, "output": 3.75 } }, + { + "source": "models.dev", + "provider": "ofox", + "model": "bailian/qwen3.7-max", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 3.125, + "cacheWrite5m": 3.125, + "input": 2.5, + "output": 7.5 + } + }, { "source": "models.dev", "provider": "opencode-go", @@ -60175,6 +61664,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 3.125, + "cacheWrite5m": 3.125, "input": 2.5, "output": 7.5 } @@ -60188,6 +61678,7 @@ "per1MTokens": { "cacheRead": 0.295, "cacheWrite": 1.84375, + "cacheWrite5m": 1.84375, "input": 1.475, "output": 4.425 } @@ -60201,6 +61692,7 @@ "per1MTokens": { "cacheRead": 0.25, "cacheWrite": 1.5625, + "cacheWrite5m": 1.5625, "input": 1.25, "output": 3.75 } @@ -60223,10 +61715,11 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.25, - "cacheWrite": 1.5625, - "input": 1.25, - "output": 3.75 + "cacheRead": 0.5, + "cacheWrite": 3.125, + "cacheWrite5m": 3.125, + "input": 2.5, + "output": 7.5 } }, { @@ -60238,6 +61731,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 3.125, + "cacheWrite5m": 3.125, "input": 2.5, "output": 7.5 } @@ -60251,6 +61745,7 @@ "per1MTokens": { "cacheRead": 0.295, "cacheWrite": 1.84375, + "cacheWrite5m": 1.84375, "input": 1.475, "output": 4.425 } @@ -60285,7 +61780,7 @@ "top_logprobs", "top_p" ], - "providerModelRecordCount": 21 + "providerModelRecordCount": 24 }, "sourceRecords": [ { @@ -60460,6 +61955,35 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "cline-pass", + "providerName": "ClinePass", + "providerApi": "https://api.cline.bot/api/v1", + "providerDoc": "https://docs.cline.bot/getting-started/clinepass", + "model": "cline-pass/qwen3.7-max", + "modelKey": "cline-pass/qwen3.7-max", + "displayName": "Qwen3.7 Max", + "family": "qwen", + "metadata": { + "lastUpdated": "2026-05-21", + "openWeights": false, + "releaseDate": "2026-05-21", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high", + "xhigh" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -60518,6 +62042,23 @@ "releaseDate": "2026-05-21" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "hyper", + "providerName": "Charm Hyper", + "providerApi": "https://hyper.charm.land/v1", + "providerDoc": "https://hyper.charm.land", + "model": "qwen3.7-max", + "modelKey": "qwen3.7-max", + "displayName": "Qwen3.7 Max", + "family": "qwen", + "metadata": { + "lastUpdated": "2026-07-22", + "openWeights": false, + "releaseDate": "2026-05-28" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -60625,6 +62166,31 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "ofox", + "providerName": "Ofox", + "providerApi": "https://api.ofox.ai/v1", + "providerDoc": "https://ofox.ai/docs", + "model": "bailian/qwen3.7-max", + "modelKey": "bailian/qwen3.7-max", + "displayName": "Qwen3.7 Max", + "family": "qwen", + "metadata": { + "lastUpdated": "2026-05-21", + "openWeights": false, + "releaseDate": "2026-05-21", + "reasoningOptions": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -60923,7 +62489,9 @@ "alibaba-coding-plan-cn", "alibaba-token-plan", "alibaba-token-plan-cn", + "cline-pass", "crossmodel", + "hyper", "llmgateway", "nano-gpt", "opencode-go", @@ -60940,7 +62508,9 @@ "alibaba-token-plan-cn/qwen3.7-plus", "alibaba-token-plan/qwen3.7-plus", "alibaba/qwen3.7-plus", + "cline-pass/qwen3.7-plus", "crossmodel/qwen/qwen3.7-plus", + "hyper/qwen3.7-plus", "llmgateway/qwen3.7-plus", "nano-gpt/qwen3.7-plus", "opencode-go/qwen3.7-plus", @@ -60949,7 +62519,7 @@ "vercel/alibaba/qwen3.7-plus", "zenmux/qwen/qwen3.7-plus" ], - "mergedProviderModelRecords": 15, + "mergedProviderModelRecords": 17, "limits": { "contextTokens": 1000000, "inputTokens": 991808, @@ -60981,11 +62551,15 @@ "videoInput": true, "supports1MContext": true, "structuredOutput": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "noneReasoningEffort": true, + "xhighReasoningEffort": true, "parallelFunctionCalling": false, "responseSchema": true, "toolChoice": true, - "webSearch": false, - "lowReasoningEffort": true + "webSearch": false }, "pricing": { "currency": "USD", @@ -61000,6 +62574,7 @@ "per1MTokens": { "cacheRead": 0.0564, "cacheWrite": 0.3525, + "cacheWrite5m": 0.3525, "input": 0.282, "output": 1.128 } @@ -61013,6 +62588,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0.625, + "cacheWrite5m": 0.625, "input": 0.5, "output": 3 }, @@ -61039,6 +62615,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -61052,6 +62629,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -61065,6 +62643,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -61078,6 +62657,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -61091,6 +62671,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0.625, + "cacheWrite5m": 0.625, "input": 0.5, "output": 3 }, @@ -61114,6 +62695,39 @@ ] } }, + { + "source": "models.dev", + "provider": "cline-pass", + "model": "cline-pass/qwen3.7-plus", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.04, + "cacheWrite": 0.5, + "cacheWrite5m": 0.5, + "input": 0.4, + "output": 1.6 + }, + "tiered": { + "contextOver200K": { + "input": 1.2, + "output": 4.8, + "cache_read": 0.12, + "cache_write": 1.5 + }, + "tiers": [ + { + "input": 1.2, + "output": 4.8, + "cache_read": 0.12, + "cache_write": 1.5, + "tier": { + "size": 256000 + } + } + ] + } + }, { "source": "models.dev", "provider": "crossmodel", @@ -61123,6 +62737,7 @@ "per1MTokens": { "cacheRead": 0.032, "cacheWrite": 0.4, + "cacheWrite5m": 0.4, "input": 0.32, "output": 1.25 }, @@ -61146,6 +62761,18 @@ ] } }, + { + "source": "models.dev", + "provider": "hyper", + "model": "qwen3.7-plus", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.24, + "input": 1.2, + "output": 4.8 + } + }, { "source": "models.dev", "provider": "llmgateway", @@ -61155,6 +62782,7 @@ "per1MTokens": { "cacheRead": 0.08, "cacheWrite": 0.5, + "cacheWrite5m": 0.5, "input": 0.4, "output": 1.6 } @@ -61180,6 +62808,7 @@ "per1MTokens": { "cacheRead": 0.04, "cacheWrite": 0.5, + "cacheWrite5m": 0.5, "input": 0.4, "output": 1.6 }, @@ -61212,6 +62841,7 @@ "per1MTokens": { "cacheRead": 0.064, "cacheWrite": 0.4, + "cacheWrite5m": 0.4, "input": 0.32, "output": 1.28 } @@ -61225,6 +62855,7 @@ "per1MTokens": { "cacheRead": 0.064, "cacheWrite": 0.4, + "cacheWrite5m": 0.4, "input": 0.32, "output": 1.28 } @@ -61238,6 +62869,7 @@ "per1MTokens": { "cacheRead": 0.08, "cacheWrite": 0.5, + "cacheWrite5m": 0.5, "input": 0.4, "output": 1.6 } @@ -61251,6 +62883,7 @@ "per1MTokens": { "cacheRead": 0.08, "cacheWrite": 0.5, + "cacheWrite5m": 0.5, "input": 0.4, "output": 1.6 }, @@ -61283,6 +62916,7 @@ "per1MTokens": { "cacheRead": 0.064, "cacheWrite": 0.4, + "cacheWrite5m": 0.4, "input": 0.32, "output": 1.28 }, @@ -61328,7 +62962,7 @@ "top_logprobs", "top_p" ], - "providerModelRecordCount": 15 + "providerModelRecordCount": 17 }, "sourceRecords": [ { @@ -61510,6 +63144,36 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "cline-pass", + "providerName": "ClinePass", + "providerApi": "https://api.cline.bot/api/v1", + "providerDoc": "https://docs.cline.bot/getting-started/clinepass", + "model": "cline-pass/qwen3.7-plus", + "modelKey": "cline-pass/qwen3.7-plus", + "displayName": "Qwen3.7 Plus", + "family": "qwen", + "metadata": { + "knowledgeCutoff": "2025-04", + "lastUpdated": "2026-06-02", + "openWeights": false, + "releaseDate": "2026-06-02", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high", + "xhigh" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -61536,6 +63200,24 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "hyper", + "providerName": "Charm Hyper", + "providerApi": "https://hyper.charm.land/v1", + "providerDoc": "https://hyper.charm.land", + "model": "qwen3.7-plus", + "modelKey": "qwen3.7-plus", + "displayName": "Qwen3.7 Plus", + "family": "qwen", + "metadata": { + "knowledgeCutoff": "2025-04", + "lastUpdated": "2026-07-22", + "openWeights": false, + "releaseDate": "2026-06-15" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -61840,6 +63522,174 @@ } ] }, + { + "id": "alibaba/qwen3.8-max-preview", + "provider": "alibaba", + "model": "qwen3.8-max-preview", + "displayName": "Qwen3.8 Max Preview", + "family": "qwen", + "sources": [ + "models.dev" + ], + "providers": [ + "alibaba-token-plan", + "alibaba-token-plan-cn" + ], + "aliases": [ + "alibaba-token-plan-cn/qwen3.8-max-preview", + "alibaba-token-plan/qwen3.8-max-preview" + ], + "mergedProviderModelRecords": 2, + "limits": { + "contextTokens": 1000000, + "outputTokens": 131072, + "supports1MContext": true + }, + "modalities": { + "input": [ + "image", + "text", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "xhighReasoningEffort": true, + "structuredOutput": true, + "temperature": true, + "toolCalling": true, + "videoInput": true, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "alibaba-token-plan-cn", + "model": "qwen3.8-max-preview", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0, + "cacheWrite": 0, + "cacheWrite5m": 0, + "input": 0, + "output": 0 + } + }, + { + "source": "models.dev", + "provider": "alibaba-token-plan", + "model": "qwen3.8-max-preview", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0, + "cacheWrite": 0, + "cacheWrite5m": 0, + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Qwen3.8 Max Preview" + ], + "families": [ + "qwen" + ], + "statuses": [ + "beta" + ], + "releaseDate": "2026-07-19", + "lastUpdated": "2026-07-19", + "providerModelRecordCount": 2 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "alibaba-token-plan-cn", + "providerName": "Alibaba Token Plan (China)", + "providerApi": "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1", + "providerDoc": "https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview", + "model": "qwen3.8-max-preview", + "modelKey": "qwen3.8-max-preview", + "displayName": "Qwen3.8 Max Preview", + "family": "qwen", + "status": "beta", + "metadata": { + "lastUpdated": "2026-07-19", + "openWeights": false, + "releaseDate": "2026-07-19", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "xhigh" + ] + }, + { + "type": "budget_tokens", + "min": 0, + "max": 262144 + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "alibaba-token-plan", + "providerName": "Alibaba Token Plan", + "providerApi": "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", + "providerDoc": "https://www.alibabacloud.com/help/en/model-studio/token-plan-overview", + "model": "qwen3.8-max-preview", + "modelKey": "qwen3.8-max-preview", + "displayName": "Qwen3.8 Max Preview", + "family": "qwen", + "status": "beta", + "metadata": { + "lastUpdated": "2026-07-19", + "openWeights": false, + "releaseDate": "2026-07-19", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "xhigh" + ] + }, + { + "type": "budget_tokens", + "min": 0, + "max": 262144 + } + ] + } + } + ] + }, { "id": "alibaba/qwen35-122b-a10b", "provider": "alibaba", @@ -61879,6 +63729,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -62225,6 +64077,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -63771,6 +65625,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": true, @@ -64160,6 +66016,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -64180,6 +66038,7 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite5m": 12.5, "input": 10, "output": 50 } @@ -64289,6 +66148,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -64391,6 +66251,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -64404,6 +66265,9 @@ "families": [ "claude-opus" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2025-03-31", "releaseDate": "2025-08-05", "lastUpdated": "2025-08-05", @@ -64420,6 +66284,7 @@ "modelKey": "anthropic.claude-opus-4-1-20250805-v1:0", "displayName": "Claude Opus 4.1", "family": "claude-opus", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2025-03-31", "lastUpdated": "2025-08-05", @@ -64476,6 +66341,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -64495,6 +66362,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -64588,6 +66456,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -64608,6 +66478,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -64702,6 +66573,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -64722,6 +66595,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -64813,6 +66687,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -64833,6 +66709,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -64883,6 +66760,120 @@ } ] }, + { + "id": "amazon-bedrock/anthropic.claude-opus-5", + "provider": "amazon-bedrock", + "model": "anthropic.claude-opus-5", + "displayName": "Claude Opus 5", + "family": "claude-opus", + "sources": [ + "models.dev" + ], + "providers": [ + "amazon-bedrock" + ], + "aliases": [ + "amazon-bedrock/anthropic.claude-opus-5" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1000000, + "outputTokens": 128000, + "supports1MContext": true + }, + "modalities": { + "input": [ + "image", + "pdf", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": true, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "maxReasoningEffort": true, + "xhighReasoningEffort": true, + "temperature": false, + "toolCalling": true, + "videoInput": false, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "amazon-bedrock", + "model": "anthropic.claude-opus-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Claude Opus 5" + ], + "families": [ + "claude-opus" + ], + "knowledgeCutoff": "2026-05", + "releaseDate": "2026-07-24", + "lastUpdated": "2026-07-24", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "amazon-bedrock", + "providerName": "Amazon Bedrock", + "providerDoc": "https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html", + "model": "anthropic.claude-opus-5", + "modelKey": "anthropic.claude-opus-5", + "displayName": "Claude Opus 5", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-05", + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-07-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + } + ] + }, { "id": "amazon-bedrock/anthropic.claude-sonnet-4-5-20250929-v1:0", "provider": "amazon-bedrock", @@ -64942,6 +66933,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -65027,6 +67019,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -65047,6 +67041,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -65141,6 +67136,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -65162,6 +67159,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite5m": 2.5, "input": 2, "output": 10 } @@ -65274,6 +67272,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -65359,6 +67358,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -65379,6 +67380,7 @@ "per1MTokens": { "cacheRead": 1.65, "cacheWrite": 20.625, + "cacheWrite5m": 20.625, "input": 16.5, "output": 82.5 } @@ -65473,6 +67475,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -65493,6 +67497,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -65543,6 +67548,120 @@ } ] }, + { + "id": "amazon-bedrock/au.anthropic.claude-opus-5", + "provider": "amazon-bedrock", + "model": "au.anthropic.claude-opus-5", + "displayName": "Claude Opus 5 (AU)", + "family": "claude-opus", + "sources": [ + "models.dev" + ], + "providers": [ + "amazon-bedrock" + ], + "aliases": [ + "amazon-bedrock/au.anthropic.claude-opus-5" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1000000, + "outputTokens": 128000, + "supports1MContext": true + }, + "modalities": { + "input": [ + "image", + "pdf", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": true, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "maxReasoningEffort": true, + "xhighReasoningEffort": true, + "temperature": false, + "toolCalling": true, + "videoInput": false, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "amazon-bedrock", + "model": "au.anthropic.claude-opus-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Claude Opus 5 (AU)" + ], + "families": [ + "claude-opus" + ], + "knowledgeCutoff": "2026-05", + "releaseDate": "2026-07-24", + "lastUpdated": "2026-07-24", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "amazon-bedrock", + "providerName": "Amazon Bedrock", + "providerDoc": "https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html", + "model": "au.anthropic.claude-opus-5", + "modelKey": "au.anthropic.claude-opus-5", + "displayName": "Claude Opus 5 (AU)", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-05", + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-07-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + } + ] + }, { "id": "amazon-bedrock/au.anthropic.claude-sonnet-4-5-20250929-v1:0", "provider": "amazon-bedrock", @@ -65602,6 +67721,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -65687,6 +67807,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -65707,6 +67829,7 @@ "per1MTokens": { "cacheRead": 0.33, "cacheWrite": 4.125, + "cacheWrite5m": 4.125, "input": 3.3, "output": 16.5 } @@ -65801,6 +67924,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -65822,6 +67947,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite5m": 2.5, "input": 2, "output": 10 } @@ -66194,6 +68320,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -66214,6 +68342,7 @@ "per1MTokens": { "cacheRead": 1.1, "cacheWrite": 13.75, + "cacheWrite5m": 13.75, "input": 11, "output": 55 } @@ -66323,6 +68452,7 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 1.375, + "cacheWrite5m": 1.375, "input": 1.1, "output": 5.5 } @@ -66408,6 +68538,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -66427,6 +68559,7 @@ "per1MTokens": { "cacheRead": 0.55, "cacheWrite": 6.875, + "cacheWrite5m": 6.875, "input": 5.5, "output": 27.5 } @@ -66520,6 +68653,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -66540,6 +68675,7 @@ "per1MTokens": { "cacheRead": 0.55, "cacheWrite": 6.875, + "cacheWrite5m": 6.875, "input": 5.5, "output": 27.5 } @@ -66634,6 +68770,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -66654,6 +68792,7 @@ "per1MTokens": { "cacheRead": 0.55, "cacheWrite": 6.875, + "cacheWrite5m": 6.875, "input": 5.5, "output": 27.5 } @@ -66745,6 +68884,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -66765,6 +68906,7 @@ "per1MTokens": { "cacheRead": 0.55, "cacheWrite": 6.875, + "cacheWrite5m": 6.875, "input": 5.5, "output": 27.5 } @@ -66815,6 +68957,120 @@ } ] }, + { + "id": "amazon-bedrock/eu.anthropic.claude-opus-5", + "provider": "amazon-bedrock", + "model": "eu.anthropic.claude-opus-5", + "displayName": "Claude Opus 5 (EU)", + "family": "claude-opus", + "sources": [ + "models.dev" + ], + "providers": [ + "amazon-bedrock" + ], + "aliases": [ + "amazon-bedrock/eu.anthropic.claude-opus-5" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1000000, + "outputTokens": 128000, + "supports1MContext": true + }, + "modalities": { + "input": [ + "image", + "pdf", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": true, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "maxReasoningEffort": true, + "xhighReasoningEffort": true, + "temperature": false, + "toolCalling": true, + "videoInput": false, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "amazon-bedrock", + "model": "eu.anthropic.claude-opus-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.55, + "cacheWrite": 6.875, + "cacheWrite5m": 6.875, + "input": 5.5, + "output": 27.5 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Claude Opus 5 (EU)" + ], + "families": [ + "claude-opus" + ], + "knowledgeCutoff": "2026-05", + "releaseDate": "2026-07-24", + "lastUpdated": "2026-07-24", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "amazon-bedrock", + "providerName": "Amazon Bedrock", + "providerDoc": "https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html", + "model": "eu.anthropic.claude-opus-5", + "modelKey": "eu.anthropic.claude-opus-5", + "displayName": "Claude Opus 5 (EU)", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-05", + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-07-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + } + ] + }, { "id": "amazon-bedrock/eu.anthropic.claude-sonnet-4-5-20250929-v1:0", "provider": "amazon-bedrock", @@ -66874,6 +69130,7 @@ "per1MTokens": { "cacheRead": 0.33, "cacheWrite": 4.125, + "cacheWrite5m": 4.125, "input": 3.3, "output": 16.5 } @@ -66959,6 +69216,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -66979,6 +69238,7 @@ "per1MTokens": { "cacheRead": 0.33, "cacheWrite": 4.125, + "cacheWrite5m": 4.125, "input": 3.3, "output": 16.5 } @@ -67073,6 +69333,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -67094,6 +69356,7 @@ "per1MTokens": { "cacheRead": 0.22, "cacheWrite": 2.75, + "cacheWrite5m": 2.75, "input": 2.2, "output": 11 } @@ -67188,6 +69451,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -67208,6 +69473,7 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite5m": 12.5, "input": 10, "output": 50 } @@ -67317,6 +69583,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -67402,6 +69669,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -67421,6 +69690,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -67514,6 +69784,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -67534,6 +69806,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -67628,6 +69901,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -67648,6 +69923,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -67739,6 +70015,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -67759,6 +70037,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -67809,6 +70088,120 @@ } ] }, + { + "id": "amazon-bedrock/global.anthropic.claude-opus-5", + "provider": "amazon-bedrock", + "model": "global.anthropic.claude-opus-5", + "displayName": "Claude Opus 5 (Global)", + "family": "claude-opus", + "sources": [ + "models.dev" + ], + "providers": [ + "amazon-bedrock" + ], + "aliases": [ + "amazon-bedrock/global.anthropic.claude-opus-5" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1000000, + "outputTokens": 128000, + "supports1MContext": true + }, + "modalities": { + "input": [ + "image", + "pdf", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": true, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "maxReasoningEffort": true, + "xhighReasoningEffort": true, + "temperature": false, + "toolCalling": true, + "videoInput": false, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "amazon-bedrock", + "model": "global.anthropic.claude-opus-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Claude Opus 5 (Global)" + ], + "families": [ + "claude-opus" + ], + "knowledgeCutoff": "2026-05", + "releaseDate": "2026-07-24", + "lastUpdated": "2026-07-24", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "amazon-bedrock", + "providerName": "Amazon Bedrock", + "providerDoc": "https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html", + "model": "global.anthropic.claude-opus-5", + "modelKey": "global.anthropic.claude-opus-5", + "displayName": "Claude Opus 5 (Global)", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-05", + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-07-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + } + ] + }, { "id": "amazon-bedrock/global.anthropic.claude-sonnet-4-5-20250929-v1:0", "provider": "amazon-bedrock", @@ -67868,6 +70261,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -67953,6 +70347,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -67973,6 +70369,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -68067,6 +70464,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -68088,6 +70487,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite5m": 2.5, "input": 2, "output": 10 } @@ -68479,6 +70879,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -68564,6 +70965,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -68584,6 +70987,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -68675,6 +71079,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -68695,6 +71101,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -68745,6 +71152,120 @@ } ] }, + { + "id": "amazon-bedrock/jp.anthropic.claude-opus-5", + "provider": "amazon-bedrock", + "model": "jp.anthropic.claude-opus-5", + "displayName": "Claude Opus 5 (JP)", + "family": "claude-opus", + "sources": [ + "models.dev" + ], + "providers": [ + "amazon-bedrock" + ], + "aliases": [ + "amazon-bedrock/jp.anthropic.claude-opus-5" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1000000, + "outputTokens": 128000, + "supports1MContext": true + }, + "modalities": { + "input": [ + "image", + "pdf", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": true, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "maxReasoningEffort": true, + "xhighReasoningEffort": true, + "temperature": false, + "toolCalling": true, + "videoInput": false, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "amazon-bedrock", + "model": "jp.anthropic.claude-opus-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Claude Opus 5 (JP)" + ], + "families": [ + "claude-opus" + ], + "knowledgeCutoff": "2026-05", + "releaseDate": "2026-07-24", + "lastUpdated": "2026-07-24", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "amazon-bedrock", + "providerName": "Amazon Bedrock", + "providerDoc": "https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html", + "model": "jp.anthropic.claude-opus-5", + "modelKey": "jp.anthropic.claude-opus-5", + "displayName": "Claude Opus 5 (JP)", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-05", + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-07-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + } + ] + }, { "id": "amazon-bedrock/jp.anthropic.claude-sonnet-4-5-20250929-v1:0", "provider": "amazon-bedrock", @@ -68804,6 +71325,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -68889,6 +71411,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -68909,6 +71433,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -69003,6 +71528,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -69024,6 +71551,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite5m": 2.5, "input": 2, "output": 10 } @@ -70130,6 +72658,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -70241,6 +72771,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -70352,6 +72884,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, @@ -70374,6 +72908,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 6 } @@ -70466,6 +73001,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, @@ -70488,6 +73025,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 30 } @@ -70580,6 +73118,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, @@ -70602,6 +73142,7 @@ "per1MTokens": { "cacheRead": 0.25, "cacheWrite": 3.125, + "cacheWrite5m": 3.125, "input": 2.5, "output": 15 } @@ -70692,6 +73233,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -70794,6 +73337,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -70896,6 +73441,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -70998,6 +73545,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -71284,6 +73833,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -71304,6 +73855,7 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite5m": 12.5, "input": 10, "output": 50 } @@ -71413,6 +73965,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -71515,6 +74068,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -71528,6 +74082,9 @@ "families": [ "claude-opus" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2025-03-31", "releaseDate": "2025-08-05", "lastUpdated": "2025-08-05", @@ -71544,6 +74101,7 @@ "modelKey": "us.anthropic.claude-opus-4-1-20250805-v1:0", "displayName": "Claude Opus 4.1 (US)", "family": "claude-opus", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2025-03-31", "lastUpdated": "2025-08-05", @@ -71600,6 +74158,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -71619,6 +74179,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -71712,6 +74273,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -71732,6 +74295,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -71826,6 +74390,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -71846,6 +74412,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -71937,6 +74504,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -71957,6 +74526,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -72007,6 +74577,120 @@ } ] }, + { + "id": "amazon-bedrock/us.anthropic.claude-opus-5", + "provider": "amazon-bedrock", + "model": "us.anthropic.claude-opus-5", + "displayName": "Claude Opus 5 (US)", + "family": "claude-opus", + "sources": [ + "models.dev" + ], + "providers": [ + "amazon-bedrock" + ], + "aliases": [ + "amazon-bedrock/us.anthropic.claude-opus-5" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1000000, + "outputTokens": 128000, + "supports1MContext": true + }, + "modalities": { + "input": [ + "image", + "pdf", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": true, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "maxReasoningEffort": true, + "xhighReasoningEffort": true, + "temperature": false, + "toolCalling": true, + "videoInput": false, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "amazon-bedrock", + "model": "us.anthropic.claude-opus-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Claude Opus 5 (US)" + ], + "families": [ + "claude-opus" + ], + "knowledgeCutoff": "2026-05", + "releaseDate": "2026-07-24", + "lastUpdated": "2026-07-24", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "amazon-bedrock", + "providerName": "Amazon Bedrock", + "providerDoc": "https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html", + "model": "us.anthropic.claude-opus-5", + "modelKey": "us.anthropic.claude-opus-5", + "displayName": "Claude Opus 5 (US)", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-05", + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-07-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + } + ] + }, { "id": "amazon-bedrock/us.anthropic.claude-sonnet-4-5-20250929-v1:0", "provider": "amazon-bedrock", @@ -72066,6 +74750,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -72151,6 +74836,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -72171,6 +74858,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -72265,6 +74953,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -72286,6 +74976,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite5m": 2.5, "input": 2, "output": 10 } @@ -72837,6 +75528,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -74989,6 +77682,7 @@ "per1MTokens": { "cacheRead": 0.08, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 0.8, "output": 4 } @@ -75078,6 +77772,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -75097,6 +77792,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -75110,6 +77806,7 @@ "per1MTokens": { "cacheRead": 0.36, "cacheWrite": 4.5, + "cacheWrite5m": 4.5, "input": 3.6, "output": 18 } @@ -75123,6 +77820,7 @@ "per1MTokens": { "cacheRead": 0.36, "cacheWrite": 4.5, + "cacheWrite5m": 4.5, "input": 3.6, "output": 18 } @@ -75238,6 +77936,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -75334,6 +78033,7 @@ "per1MTokens": { "cacheRead": 0.36, "cacheWrite": 4.5, + "cacheWrite5m": 4.5, "input": 3.6, "output": 18 } @@ -75424,6 +78124,7 @@ "per1MTokens": { "cacheRead": 0.36, "cacheWrite": 4.5, + "cacheWrite5m": 4.5, "input": 3.6, "output": 18 } @@ -75512,6 +78213,7 @@ "per1MTokens": { "cacheRead": 0.025, "cacheWrite": 0.3125, + "cacheWrite5m": 0.3125, "input": 0.25, "output": 1.25 } @@ -75525,6 +78227,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.5 } @@ -75538,6 +78241,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.5 } @@ -75637,6 +78341,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -75723,6 +78428,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -75815,11 +78521,10 @@ "per1MTokens": { "cacheRead": 0.12, "cacheWrite": 1.5, + "cacheWrite1h": 2.4, + "cacheWrite5m": 1.5, "input": 1.2, "output": 6 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.0000024 } }, { @@ -75831,11 +78536,10 @@ "per1MTokens": { "cacheRead": 0.12, "cacheWrite": 1.5, + "cacheWrite1h": 2.4, + "cacheWrite5m": 1.5, "input": 1.2, "output": 6 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.0000024 } } ] @@ -76346,11 +79050,10 @@ "per1MTokens": { "cacheRead": 0.36, "cacheWrite": 4.5, + "cacheWrite1h": 7.2, + "cacheWrite5m": 4.5, "input": 3.6, "output": 18 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.0000072 } }, { @@ -76362,11 +79065,10 @@ "per1MTokens": { "cacheRead": 0.36, "cacheWrite": 4.5, + "cacheWrite1h": 7.2, + "cacheWrite5m": 4.5, "input": 3.6, "output": 18 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.0000072 } } ] @@ -77104,6 +79806,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -77193,6 +79896,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -77279,6 +79983,7 @@ "per1MTokens": { "cacheRead": 0.025, "cacheWrite": 0.3125, + "cacheWrite5m": 0.3125, "input": 0.25, "output": 1.25 } @@ -77365,6 +80070,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -77457,11 +80163,10 @@ "per1MTokens": { "cacheRead": 0.36, "cacheWrite": 4.5, + "cacheWrite1h": 7.2, + "cacheWrite5m": 4.5, "input": 3.6, "output": 18 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.0000072 } }, { @@ -77473,11 +80178,10 @@ "per1MTokens": { "cacheRead": 0.36, "cacheWrite": 4.5, + "cacheWrite1h": 7.2, + "cacheWrite5m": 4.5, "input": 3.6, "output": 18 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.0000072 } } ] @@ -78529,6 +81233,7 @@ "per1MTokens": { "cacheRead": 0.025, "cacheWrite": 0.3125, + "cacheWrite5m": 0.3125, "input": 0.25, "output": 1.25 } @@ -78615,6 +81320,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -78704,6 +81410,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -78794,6 +81501,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -78880,6 +81588,7 @@ "per1MTokens": { "cacheRead": 0.025, "cacheWrite": 0.3125, + "cacheWrite5m": 0.3125, "input": 0.25, "output": 1.25 } @@ -78965,6 +81674,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -79051,6 +81761,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -82769,6 +85480,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": false, "videoInput": false, @@ -82893,6 +85606,8 @@ "supports1MContext": true, "structuredOutput": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "parallelFunctionCalling": false, "responseSchema": false, "toolChoice": true, @@ -87793,6 +90508,7 @@ "per1MTokens": { "cacheRead": 0.08, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 0.8, "output": 4 } @@ -87806,6 +90522,7 @@ "per1MTokens": { "cacheRead": 0.08, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 0.8, "output": 4 } @@ -87899,6 +90616,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -87988,6 +90706,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -88074,6 +90793,7 @@ "per1MTokens": { "cacheRead": 0.025, "cacheWrite": 0.3125, + "cacheWrite5m": 0.3125, "input": 0.25, "output": 1.25 } @@ -88159,6 +90879,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -88245,6 +90966,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -89144,6 +91866,7 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -89164,6 +91887,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.05, "output": 4.4 } @@ -89270,6 +91994,7 @@ "per1MTokens": { "cacheRead": 0.08, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.4, "output": 2 } @@ -89354,6 +92079,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -89373,6 +92100,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.19, "output": 1.14 } @@ -89496,6 +92224,7 @@ "per1MTokens": { "cacheRead": 0.08, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 0.8, "output": 4 } @@ -89509,6 +92238,7 @@ "per1MTokens": { "cacheRead": 0.08, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 0.8, "output": 4 } @@ -89831,24 +92561,17 @@ "id": "anthropic/claude-3-5-haiku@20241022", "provider": "anthropic", "model": "claude-3-5-haiku@20241022", - "displayName": "Claude Haiku 3.5", - "family": "claude-haiku", "mode": "chat", "sources": [ - "litellm", - "models.dev" + "litellm" ], "providers": [ - "google-vertex", - "google-vertex-anthropic", "vertex_ai-anthropic_models" ], "aliases": [ - "google-vertex-anthropic/claude-3-5-haiku@20241022", - "google-vertex/claude-3-5-haiku@20241022", "vertex_ai-anthropic_models/vertex_ai/claude-3-5-haiku@20241022" ], - "mergedProviderModelRecords": 3, + "mergedProviderModelRecords": 1, "limits": { "contextTokens": 200000, "inputTokens": 200000, @@ -89858,7 +92581,6 @@ }, "modalities": { "input": [ - "image", "pdf", "text" ], @@ -89867,58 +92589,27 @@ ] }, "capabilities": { - "attachments": true, + "assistantPrefill": true, "audioInput": false, "audioOutput": false, - "imageInput": true, - "imageOutput": false, - "openWeights": false, - "pdfInput": true, - "reasoning": false, - "temperature": true, - "toolCalling": true, - "videoInput": false, - "supports1MContext": false, - "assistantPrefill": true, "embedding": false, "functionCalling": true, "imageGeneration": false, + "imageInput": false, + "imageOutput": false, "moderation": false, + "pdfInput": true, "rerank": false, "speech": false, "toolChoice": true, - "transcription": false + "transcription": false, + "videoInput": false, + "supports1MContext": false }, "pricing": { "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ - { - "source": "models.dev", - "provider": "google-vertex-anthropic", - "model": "claude-3-5-haiku@20241022", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.08, - "cacheWrite": 1, - "input": 0.8, - "output": 4 - } - }, - { - "source": "models.dev", - "provider": "google-vertex", - "model": "claude-3-5-haiku@20241022", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.08, - "cacheWrite": 1, - "input": 0.8, - "output": 4 - } - }, { "source": "litellm", "provider": "vertex_ai-anthropic_models", @@ -89933,60 +92624,12 @@ ] }, "metadata": { - "displayNames": [ - "Claude Haiku 3.5" - ], - "families": [ - "claude-haiku" - ], "modes": [ "chat" ], - "statuses": [ - "deprecated" - ], - "knowledgeCutoff": "2024-07-31", - "releaseDate": "2024-10-22", - "lastUpdated": "2024-10-22", - "providerModelRecordCount": 3 + "providerModelRecordCount": 1 }, "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "google-vertex-anthropic", - "providerName": "Vertex (Anthropic)", - "providerDoc": "https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude", - "model": "claude-3-5-haiku@20241022", - "modelKey": "claude-3-5-haiku@20241022", - "displayName": "Claude Haiku 3.5", - "family": "claude-haiku", - "status": "deprecated", - "metadata": { - "knowledgeCutoff": "2024-07-31", - "lastUpdated": "2024-10-22", - "openWeights": false, - "releaseDate": "2024-10-22" - } - }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "google-vertex", - "providerName": "Vertex", - "providerDoc": "https://cloud.google.com/vertex-ai/generative-ai/docs/models", - "model": "claude-3-5-haiku@20241022", - "modelKey": "claude-3-5-haiku@20241022", - "displayName": "Claude Haiku 3.5", - "family": "claude-haiku", - "status": "deprecated", - "metadata": { - "knowledgeCutoff": "2024-07-31", - "lastUpdated": "2024-10-22", - "openWeights": false, - "releaseDate": "2024-10-22" - } - }, { "source": "litellm", "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", @@ -90080,6 +92723,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -90193,6 +92837,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -90427,6 +93072,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "temperature": true, @@ -90461,6 +93108,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -90493,6 +93141,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -90660,6 +93309,8 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite1h": 6, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -90667,9 +93318,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000006 } } ] @@ -90870,11 +93518,10 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite1h": 6, + "cacheWrite5m": 3.75, "input": 3, "output": 15 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000006 } } ] @@ -90986,6 +93633,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.3, + "cacheWrite5m": 0.3, "input": 0.25, "output": 1.25 } @@ -90999,6 +93647,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.3, + "cacheWrite5m": 0.3, "input": 0.25, "output": 1.25 } @@ -91012,6 +93661,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.3, + "cacheWrite5m": 0.3, "input": 0.25, "output": 1.25 } @@ -91025,6 +93675,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.3, + "cacheWrite5m": 0.3, "input": 0.25, "output": 1.25 } @@ -91052,6 +93703,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.3, + "cacheWrite5m": 0.3, "input": 0.25, "output": 1.25 } @@ -91076,14 +93728,13 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.3, + "cacheWrite1h": 0.5, + "cacheWrite5m": 0.3, "input": 0.25, "output": 1.25 }, "other": { "webSearch": 0.01 - }, - "extra": { - "input_cache_write_1h": 5e-7 } } ] @@ -91312,6 +93963,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.3, + "cacheWrite5m": 0.3, "input": 0.25, "output": 1.25 } @@ -91325,11 +93977,10 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.3, + "cacheWrite1h": 6, + "cacheWrite5m": 0.3, "input": 0.25, "output": 1.25 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000006 } } ] @@ -91540,6 +94191,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -91553,6 +94205,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -91566,6 +94219,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -91716,11 +94370,10 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite1h": 6, + "cacheWrite5m": 18.75, "input": 15, "output": 75 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000006 } } ] @@ -91902,6 +94555,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 0.3, + "cacheWrite5m": 0.3, "input": 3, "output": 15 } @@ -92132,6 +94786,7 @@ "per1MTokens": { "cacheRead": 0.08, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 0.8, "output": 4 } @@ -92145,6 +94800,7 @@ "per1MTokens": { "cacheRead": 0.08, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 0.7999999999999999, "output": 4 } @@ -92158,6 +94814,7 @@ "per1MTokens": { "cacheRead": 0.08, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 0.8, "output": 4 } @@ -92171,6 +94828,7 @@ "per1MTokens": { "cacheRead": 0.08, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 0.8, "output": 4 } @@ -92195,6 +94853,7 @@ "per1MTokens": { "cacheRead": 0.08, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 0.8, "output": 4 } @@ -92405,6 +95064,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -92440,6 +95100,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -92576,6 +95237,7 @@ "per1MTokens": { "cacheRead": 0.30000000000000004, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -92674,6 +95336,8 @@ "videoInput": false, "supports1MContext": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "assistantPrefill": true, "computerUse": true, "embedding": false, @@ -92704,6 +95368,7 @@ "per1MTokens": { "cacheRead": 0.30000000000000004, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -92717,6 +95382,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -92755,6 +95421,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -92903,6 +95570,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -93013,6 +95682,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -93175,6 +95846,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -93279,6 +95951,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 }, @@ -93421,6 +96094,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -93540,6 +96214,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -93863,6 +96538,7 @@ "per1MTokens": { "cacheRead": 0.09999999999999999, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -94000,6 +96676,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -94143,6 +96820,7 @@ "per1MTokens": { "cacheRead": 0.30000000000000004, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -94321,8 +96999,10 @@ "crossmodel", "freemodel", "github-copilot", + "kenari", "llmgateway", "model-oracle-ai", + "ofox", "opencode", "openrouter", "snowflake-cortex", @@ -94342,8 +97022,10 @@ "crossmodel/anthropic/claude-fable-5", "freemodel/claude-fable-5", "github-copilot/claude-fable-5", + "kenari/claude-fable-5", "llmgateway/claude-fable-5", "model-oracle-ai/claude-fable-5", + "ofox/anthropic/claude-fable-5", "opencode/claude-fable-5", "openrouter/anthropic/claude-fable-5", "snowflake-cortex/claude-fable-5", @@ -94353,7 +97035,7 @@ "xpersona/claude-fable-5", "zenmux/anthropic/claude-fable-5" ], - "mergedProviderModelRecords": 19, + "mergedProviderModelRecords": 21, "limits": { "contextTokens": 1000000, "inputTokens": 1000000, @@ -94382,6 +97064,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -94432,6 +97116,7 @@ "per1MTokens": { "cacheRead": 1.1, "cacheWrite": 13.75, + "cacheWrite5m": 13.75, "input": 11, "output": 55 } @@ -94445,6 +97130,7 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite5m": 12.5, "input": 10, "output": 50 } @@ -94458,6 +97144,7 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite5m": 12.5, "input": 10, "output": 50 } @@ -94471,6 +97158,7 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite5m": 12.5, "input": 10, "output": 50 } @@ -94484,6 +97172,7 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite5m": 12.5, "input": 10, "output": 50 } @@ -94497,6 +97186,7 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite5m": 12.5, "input": 10, "output": 50 } @@ -94510,10 +97200,22 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite5m": 12.5, "input": 10, "output": 50 } }, + { + "source": "models.dev", + "provider": "kenari", + "model": "claude-fable-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + }, { "source": "models.dev", "provider": "llmgateway", @@ -94523,6 +97225,21 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite5m": 12.5, + "input": 10, + "output": 50 + } + }, + { + "source": "models.dev", + "provider": "ofox", + "model": "anthropic/claude-fable-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 1, + "cacheWrite": 12.5, + "cacheWrite5m": 12.5, "input": 10, "output": 50 } @@ -94536,6 +97253,7 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite5m": 12.5, "input": 10, "output": 50 } @@ -94549,6 +97267,7 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite5m": 12.5, "input": 10, "output": 50 } @@ -94562,6 +97281,7 @@ "per1MTokens": { "cacheRead": 1.2, "cacheWrite": 15, + "cacheWrite5m": 15, "input": 12, "output": 60 } @@ -94575,6 +97295,7 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite5m": 12.5, "input": 10, "output": 50 } @@ -94601,6 +97322,7 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite5m": 12.5, "input": 10, "output": 50 } @@ -94614,6 +97336,8 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite1h": 20, + "cacheWrite5m": 12.5, "input": 10, "output": 50 }, @@ -94621,9 +97345,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00002 } }, { @@ -94635,6 +97356,8 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite1h": 20, + "cacheWrite5m": 12.5, "input": 10, "output": 50 }, @@ -94642,9 +97365,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00002 } }, { @@ -94656,6 +97376,8 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite1h": 20, + "cacheWrite5m": 12.5, "input": 10, "output": 50 }, @@ -94663,9 +97385,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00002 } }, { @@ -94677,6 +97396,7 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite5m": 12.5, "input": 10, "output": 50 }, @@ -94713,7 +97433,7 @@ "tools", "verbosity" ], - "providerModelRecordCount": 19 + "providerModelRecordCount": 21 }, "sourceRecords": [ { @@ -94940,6 +97660,36 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "kenari", + "providerName": "Kenari", + "providerApi": "https://kenari.id/v1", + "providerDoc": "https://kenari.id/docs", + "model": "claude-fable-5", + "modelKey": "claude-fable-5", + "displayName": "Claude Fable 5", + "family": "claude-fable", + "metadata": { + "knowledgeCutoff": "2026-01-31", + "lastUpdated": "2026-06-09", + "openWeights": false, + "releaseDate": "2026-06-09", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -95000,6 +97750,36 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "ofox", + "providerName": "Ofox", + "providerApi": "https://api.ofox.ai/v1", + "providerDoc": "https://ofox.ai/docs", + "model": "anthropic/claude-fable-5", + "modelKey": "anthropic/claude-fable-5", + "displayName": "Claude Fable 5", + "family": "claude-fable", + "metadata": { + "knowledgeCutoff": "2026-01-31", + "lastUpdated": "2026-06-09", + "openWeights": false, + "releaseDate": "2026-06-09", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -95243,7 +98023,7 @@ "medium", "low" ], - "default_effort": "medium" + "default_effort": "high" }, "supportedParameters": [ "include_reasoning", @@ -95340,6 +98120,8 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite1h": 20, + "cacheWrite5m": 12.5, "input": 10, "output": 50 }, @@ -95347,9 +98129,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00002 } } ] @@ -95413,6 +98192,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -95438,6 +98219,7 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite5m": 12.5, "input": 10, "output": 50 } @@ -95451,6 +98233,7 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite5m": 12.5, "input": 10, "output": 50 }, @@ -95536,7 +98319,7 @@ "medium", "low" ], - "default_effort": "medium" + "default_effort": "high" }, "supportedParameters": [ "include_reasoning", @@ -95555,7 +98338,7 @@ "topProvider": { "context_length": 1000000, "max_completion_tokens": 128000, - "is_moderated": false + "is_moderated": true } } } @@ -95619,6 +98402,7 @@ "per1MTokens": { "cacheRead": 0.021, "cacheWrite": 0.26, + "cacheWrite5m": 0.26, "input": 0.21, "output": 1.1 } @@ -95714,6 +98498,7 @@ "per1MTokens": { "cacheRead": 0.068, "cacheWrite": 0.85, + "cacheWrite5m": 0.85, "input": 0.68, "output": 3.4 } @@ -95852,6 +98637,8 @@ "vision": true, "supports1MContext": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "noneReasoningEffort": true, @@ -95882,6 +98669,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -95895,6 +98683,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -95908,6 +98697,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -95921,6 +98711,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -95945,6 +98736,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -95958,6 +98750,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -95971,6 +98764,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -95984,6 +98778,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -95997,6 +98792,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -96010,6 +98806,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -96035,6 +98832,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -96048,6 +98846,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -96061,11 +98860,10 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite1h": 2, + "cacheWrite5m": 1.25, "input": 1, "output": 5 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000002 } }, { @@ -96077,11 +98875,10 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite1h": 2, + "cacheWrite5m": 1.25, "input": 1, "output": 5 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000002 } }, { @@ -96105,11 +98902,10 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite1h": 2, + "cacheWrite5m": 1.25, "input": 1, "output": 5 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000002 } } ] @@ -96700,7 +99496,9 @@ "transcription": false, "vision": true, "supports1MContext": false, - "lowReasoningEffort": true + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true }, "pricing": { "currency": "USD", @@ -96737,6 +99535,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -96750,6 +99549,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 5, + "cacheWrite5m": 5, "input": 1, "output": 5 } @@ -96763,6 +99563,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -96776,6 +99577,7 @@ "per1MTokens": { "cacheRead": 0.09999999999999999, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -96800,6 +99602,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -96813,6 +99616,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -96859,11 +99663,10 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite1h": 2, + "cacheWrite5m": 1.25, "input": 1, "output": 5 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000002 } } ] @@ -97412,6 +100215,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -97425,6 +100229,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -97438,11 +100243,10 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite1h": 2, + "cacheWrite5m": 1.25, "input": 1, "output": 5 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000002 } } ] @@ -97606,6 +100410,8 @@ "webSearch": false, "supports1MContext": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "interleaved": true, "xhighReasoningEffort": true @@ -97623,6 +100429,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -97636,6 +100443,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -97649,6 +100457,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -97662,6 +100471,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -97675,6 +100485,7 @@ "per1MTokens": { "cacheRead": 0.085, "cacheWrite": 1.1, + "cacheWrite5m": 1.1, "input": 0.85, "output": 4.3 } @@ -97688,6 +100499,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -97701,6 +100513,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -97721,6 +100534,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -97734,6 +100548,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -97747,14 +100562,13 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite1h": 2, + "cacheWrite5m": 1.25, "input": 1, "output": 5 }, "other": { "webSearch": 0.01 - }, - "extra": { - "input_cache_write_1h": 0.000002 } } ] @@ -98110,6 +100924,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -98134,6 +100950,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -98159,6 +100976,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -98172,14 +100990,13 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite1h": 2, + "cacheWrite5m": 1.25, "input": 1, "output": 5 }, "other": { "webSearch": 0.01 - }, - "extra": { - "input_cache_write_1h": 0.000002 } } ] @@ -98427,6 +101244,8 @@ "webSearch": false, "supports1MContext": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "noneReasoningEffort": true @@ -98444,6 +101263,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -98457,6 +101277,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -98470,6 +101291,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -98483,6 +101305,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -98496,6 +101319,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -98509,6 +101333,7 @@ "per1MTokens": { "cacheRead": 1.3, "cacheWrite": 16, + "cacheWrite5m": 16, "input": 13, "output": 64 } @@ -98522,6 +101347,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -98535,6 +101361,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -98548,6 +101375,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -98572,6 +101400,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 }, @@ -98588,6 +101417,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -98601,6 +101431,8 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite1h": 30, + "cacheWrite5m": 18.75, "input": 15, "output": 75 }, @@ -98608,9 +101440,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00003 } }, { @@ -98622,14 +101451,13 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite1h": 30, + "cacheWrite5m": 18.75, "input": 15, "output": 75 }, "other": { "webSearch": 0.01 - }, - "extra": { - "input_cache_write_1h": 0.00003 } } ] @@ -99041,6 +101869,8 @@ "vision": true, "supports1MContext": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true }, @@ -99057,6 +101887,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -99070,6 +101901,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -99083,6 +101915,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -99096,6 +101929,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -99109,6 +101943,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -99122,6 +101957,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -99135,6 +101971,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -99148,6 +101985,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -99161,6 +101999,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -99174,6 +102013,8 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite1h": 30, + "cacheWrite5m": 18.75, "input": 15, "output": 75 }, @@ -99181,9 +102022,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00003 } }, { @@ -99195,11 +102033,10 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite1h": 30, + "cacheWrite5m": 18.75, "input": 15, "output": 75 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00003 } }, { @@ -99211,11 +102048,12 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite1h": 30, + "cacheWrite5m": 18.75, "input": 15, "output": 75 }, "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00003, "input_cost_per_token_batches": 0.0000075, "output_cost_per_token_batches": 0.0000375 } @@ -99582,6 +102420,8 @@ "vision": true, "supports1MContext": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true }, "pricing": { @@ -99619,6 +102459,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -99632,6 +102473,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -99656,6 +102498,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -99669,6 +102512,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -99693,6 +102537,8 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite1h": 30, + "cacheWrite5m": 18.75, "input": 15, "output": 75 }, @@ -99700,9 +102546,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00003 } } ] @@ -100543,6 +103386,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -100556,6 +103400,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -100569,11 +103414,12 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite1h": 30, + "cacheWrite5m": 18.75, "input": 15, "output": 75 }, "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00003, "input_cost_per_token_batches": 0.0000075, "output_cost_per_token_batches": 0.0000375 } @@ -100775,6 +103621,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -100799,6 +103646,8 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite1h": 30, + "cacheWrite5m": 18.75, "input": 15, "output": 75 }, @@ -100806,9 +103655,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00003 } } ] @@ -101018,6 +103864,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -101065,6 +103913,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -101078,6 +103927,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -101091,6 +103941,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -101104,6 +103955,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -101117,6 +103969,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -101130,6 +103983,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -101155,6 +104009,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -101168,6 +104023,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -101181,6 +104037,7 @@ "per1MTokens": { "cacheRead": 0.6, "cacheWrite": 7.5, + "cacheWrite5m": 7.5, "input": 6, "output": 30 } @@ -101194,6 +104051,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -101201,9 +104060,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } }, { @@ -101215,11 +104071,10 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } }, { @@ -101231,6 +104086,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -101238,9 +104095,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } } ] @@ -101669,6 +104523,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -101726,6 +104582,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -101750,6 +104607,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -101763,6 +104621,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -101798,6 +104657,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -101805,9 +104666,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } } ] @@ -102287,6 +105145,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -102319,6 +105179,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -102332,6 +105193,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -102345,6 +105207,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -102352,9 +105216,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } } ] @@ -102535,6 +105396,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -102595,6 +105458,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -102627,6 +105491,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -102640,6 +105505,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -102653,6 +105519,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -102685,6 +105552,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -102717,6 +105585,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -102749,6 +105618,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -102762,6 +105632,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -102786,6 +105657,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -102799,6 +105671,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -102812,6 +105685,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -102825,6 +105699,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -102838,6 +105713,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -102863,6 +105739,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -102876,6 +105753,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -102908,6 +105786,7 @@ "per1MTokens": { "cacheRead": 0.6, "cacheWrite": 7.5, + "cacheWrite5m": 7.5, "input": 6, "output": 30 } @@ -102921,6 +105800,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -102928,9 +105809,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } }, { @@ -102942,6 +105820,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -102949,9 +105829,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } }, { @@ -102963,6 +105840,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -102970,9 +105849,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } } ] @@ -103736,6 +106612,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -103743,9 +106621,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } } ] @@ -103813,6 +106688,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -103833,6 +106710,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -104047,6 +106925,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -104080,6 +106960,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -104112,6 +106993,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -104144,6 +107026,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -104151,9 +107035,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } } ] @@ -104334,6 +107215,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -104372,6 +107255,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -104415,6 +107299,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -104447,6 +107332,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -104460,6 +107346,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -104473,6 +107360,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -104486,6 +107374,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -104499,6 +107388,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -104512,6 +107402,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -104536,6 +107427,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -104549,6 +107441,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -104562,6 +107455,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -104575,6 +107469,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -104588,6 +107483,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -104613,6 +107509,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -104626,6 +107523,7 @@ "per1MTokens": { "cacheRead": 0.6, "cacheWrite": 7.5, + "cacheWrite5m": 7.5, "input": 6, "output": 30 } @@ -104639,6 +107537,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -104646,9 +107546,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } }, { @@ -104660,6 +107557,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -104667,9 +107566,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } }, { @@ -104681,6 +107577,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -104688,9 +107586,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } } ] @@ -105383,6 +108278,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -105390,9 +108287,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } } ] @@ -105419,102 +108313,6 @@ } ] }, - { - "id": "anthropic/claude-opus-4-7-fast", - "provider": "anthropic", - "model": "claude-opus-4-7-fast", - "displayName": "Claude Opus 4.7 Fast", - "family": "claude-opus", - "sources": [ - "models.dev" - ], - "providers": [ - "venice" - ], - "aliases": [ - "venice/claude-opus-4-7-fast" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 1000000, - "outputTokens": 128000, - "supports1MContext": true - }, - "modalities": { - "input": [ - "image", - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": true, - "audioInput": false, - "audioOutput": false, - "imageInput": true, - "imageOutput": false, - "openWeights": false, - "pdfInput": false, - "reasoning": true, - "structuredOutput": true, - "temperature": false, - "toolCalling": true, - "videoInput": false, - "supports1MContext": true - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "venice", - "model": "claude-opus-4-7-fast", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 3.6, - "cacheWrite": 45, - "input": 36, - "output": 180 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Claude Opus 4.7 Fast" - ], - "families": [ - "claude-opus" - ], - "knowledgeCutoff": "2026-01-31", - "releaseDate": "2026-05-14", - "lastUpdated": "2026-06-11", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "venice", - "providerName": "Venice AI", - "providerDoc": "https://docs.venice.ai", - "model": "claude-opus-4-7-fast", - "modelKey": "claude-opus-4-7-fast", - "displayName": "Claude Opus 4.7 Fast", - "family": "claude-opus", - "metadata": { - "knowledgeCutoff": "2026-01-31", - "lastUpdated": "2026-06-11", - "openWeights": false, - "releaseDate": "2026-05-14" - } - } - ] - }, { "id": "anthropic/claude-opus-4-7-think", "provider": "anthropic", @@ -105556,6 +108354,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -105577,6 +108377,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -105698,6 +108499,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -105733,6 +108536,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -105765,6 +108569,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -105797,6 +108602,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -105804,9 +108611,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } } ] @@ -105979,6 +108783,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -106028,6 +108834,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -106041,6 +108848,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -106054,6 +108862,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -106086,6 +108895,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -106118,6 +108928,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -106131,6 +108942,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -106144,6 +108956,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -106157,6 +108970,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -106181,6 +108995,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -106205,6 +109020,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -106218,6 +109034,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -106231,6 +109048,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -106266,6 +109084,7 @@ "per1MTokens": { "cacheRead": 0.6, "cacheWrite": 7.5, + "cacheWrite5m": 7.5, "input": 6, "output": 30 } @@ -106279,6 +109098,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -106286,9 +109107,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } }, { @@ -106300,6 +109118,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -106307,9 +109127,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } }, { @@ -106321,6 +109138,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -106328,9 +109147,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } } ] @@ -106940,6 +109756,7 @@ "per1MTokens": { "cacheRead": 1.2, "cacheWrite": 15, + "cacheWrite5m": 15, "input": 12, "output": 60 } @@ -107018,6 +109835,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -107038,6 +109857,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -107140,6 +109960,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -107175,6 +109997,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -107207,6 +110030,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -107239,6 +110063,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -107246,9 +110072,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } } ] @@ -107862,6 +110685,8 @@ "webSearch": false, "supports1MContext": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true }, @@ -107878,6 +110703,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -107891,6 +110717,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -107904,6 +110731,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -107917,6 +110745,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -107930,6 +110759,7 @@ "per1MTokens": { "cacheRead": 1.3, "cacheWrite": 16, + "cacheWrite5m": 16, "input": 13, "output": 64 } @@ -107943,6 +110773,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -107956,6 +110787,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -107969,14 +110801,13 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite1h": 30, + "cacheWrite5m": 18.75, "input": 15, "output": 75 }, "perImage": { "input": 0.0048 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00003 } }, { @@ -107988,6 +110819,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -108001,14 +110833,13 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite1h": 30, + "cacheWrite5m": 18.75, "input": 15, "output": 75 }, "other": { "webSearch": 0.01 - }, - "extra": { - "input_cache_write_1h": 0.00003 } } ] @@ -108349,6 +111180,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -108386,6 +111219,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -108399,6 +111233,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -108412,6 +111247,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -108425,6 +111261,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -108438,6 +111275,7 @@ "per1MTokens": { "cacheRead": 0.43, "cacheWrite": 5.3, + "cacheWrite5m": 5.3, "input": 4.3, "output": 21 } @@ -108451,6 +111289,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -108464,6 +111303,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -108495,6 +111335,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -108508,6 +111349,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -108521,14 +111363,13 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, "other": { "webSearch": 0.01 - }, - "extra": { - "input_cache_write_1h": 0.00001 } } ] @@ -108906,6 +111747,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -108945,6 +111788,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -108970,6 +111814,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -108983,6 +111828,7 @@ "per1MTokens": { "cacheRead": 0.4, "cacheWrite": 5, + "cacheWrite5m": 5, "input": 4, "output": 20 } @@ -109007,6 +111853,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -109039,6 +111886,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -109052,6 +111900,7 @@ "per1MTokens": { "cacheRead": 0.43, "cacheWrite": 5.3, + "cacheWrite5m": 5.3, "input": 4.3, "output": 21 } @@ -109065,6 +111914,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -109078,6 +111928,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -109091,6 +111942,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -109104,6 +111956,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -109117,14 +111970,13 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, "other": { "webSearch": 0.01 - }, - "extra": { - "input_cache_write_1h": 0.00001 } } ] @@ -109497,6 +112349,7 @@ }, "reasoning": { "mandatory": false, + "default_enabled": false, "supports_max_tokens": true, "supported_efforts": [ "max", @@ -109504,7 +112357,7 @@ "medium", "low" ], - "default_effort": "medium" + "default_effort": "high" }, "supportedParameters": [ "include_reasoning", @@ -109577,6 +112430,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": true, @@ -109607,6 +112462,7 @@ "per1MTokens": { "cacheRead": 3, "cacheWrite": 37.5, + "cacheWrite5m": 37.5, "input": 30, "output": 150 } @@ -110128,6 +112984,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -110166,6 +113024,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -110203,6 +113062,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -110216,6 +113076,7 @@ "per1MTokens": { "cacheRead": 0.4, "cacheWrite": 5, + "cacheWrite5m": 5, "input": 4, "output": 20 } @@ -110241,6 +113102,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -110273,6 +113135,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -110286,6 +113149,7 @@ "per1MTokens": { "cacheRead": 0.43, "cacheWrite": 5.4, + "cacheWrite5m": 5.4, "input": 4.3, "output": 21 } @@ -110299,6 +113163,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -110312,6 +113177,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -110325,6 +113191,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -110338,14 +113205,13 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, "other": { "webSearch": 0.01 - }, - "extra": { - "input_cache_write_1h": 0.00001 } } ] @@ -110727,6 +113593,7 @@ }, "reasoning": { "mandatory": false, + "default_enabled": false, "supported_efforts": [ "max", "xhigh", @@ -110734,7 +113601,7 @@ "medium", "low" ], - "default_effort": "medium" + "default_effort": "high" }, "supportedParameters": [ "include_reasoning", @@ -110771,15 +113638,13 @@ ], "providers": [ "kilo", - "openrouter", - "vercel" + "openrouter" ], "aliases": [ "kilo/anthropic/claude-opus-4.7-fast", - "openrouter/anthropic/claude-opus-4.7-fast", - "vercel/anthropic/claude-opus-4.7-fast" + "openrouter/anthropic/claude-opus-4.7-fast" ], - "mergedProviderModelRecords": 3, + "mergedProviderModelRecords": 2, "limits": { "contextTokens": 1000000, "outputTokens": 128000, @@ -110806,9 +113671,11 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, - "temperature": true, + "temperature": false, "toolCalling": true, "videoInput": false, "supports1MContext": true, @@ -110831,6 +113698,7 @@ "per1MTokens": { "cacheRead": 3, "cacheWrite": 37.5, + "cacheWrite5m": 37.5, "input": 30, "output": 150 } @@ -110844,19 +113712,7 @@ "per1MTokens": { "cacheRead": 3, "cacheWrite": 37.5, - "input": 30, - "output": 150 - } - }, - { - "source": "models.dev", - "provider": "vercel", - "model": "anthropic/claude-opus-4.7-fast", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 3, - "cacheWrite": 37.5, + "cacheWrite5m": 37.5, "input": 30, "output": 150 } @@ -110870,14 +113726,13 @@ "per1MTokens": { "cacheRead": 3, "cacheWrite": 37.5, + "cacheWrite1h": 60, + "cacheWrite5m": 37.5, "input": 30, "output": 150 }, "other": { "webSearch": 0.01 - }, - "extra": { - "input_cache_write_1h": 0.00006 } } ] @@ -110905,7 +113760,7 @@ "tools", "verbosity" ], - "providerModelRecordCount": 3 + "providerModelRecordCount": 2 }, "sourceRecords": [ { @@ -110969,37 +113824,6 @@ ] } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "vercel", - "providerName": "Vercel AI Gateway", - "providerDoc": "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway", - "model": "anthropic/claude-opus-4.7-fast", - "modelKey": "anthropic/claude-opus-4.7-fast", - "displayName": "Claude Opus 4.7 (Fast)", - "family": "claude-opus", - "metadata": { - "knowledgeCutoff": "2026-01-31", - "lastUpdated": "2026-04-16", - "openWeights": false, - "releaseDate": "2026-04-16", - "reasoningOptions": [ - { - "type": "toggle" - }, - { - "type": "effort", - "values": [ - "low", - "medium", - "high", - "xhigh" - ] - } - ] - } - }, { "source": "openrouter", "sourceUrl": "https://openrouter.ai/api/v1/models", @@ -111014,6 +113838,7 @@ }, "reasoning": { "mandatory": false, + "default_enabled": false, "supported_efforts": [ "max", "xhigh", @@ -111021,7 +113846,7 @@ "medium", "low" ], - "default_effort": "medium" + "default_effort": "high" }, "supportedParameters": [ "include_reasoning", @@ -111151,6 +113976,7 @@ "gmicloud", "model-oracle-ai", "nano-gpt", + "ofox", "openrouter", "poe", "vercel", @@ -111162,12 +113988,13 @@ "gmicloud/anthropic/claude-opus-4.8", "model-oracle-ai/claude-opus-4.8", "nano-gpt/anthropic/claude-opus-4.8", + "ofox/anthropic/claude-opus-4.8", "openrouter/anthropic/claude-opus-4.8", "poe/anthropic/claude-opus-4.8", "vercel/anthropic/claude-opus-4.8", "zenmux/anthropic/claude-opus-4.8" ], - "mergedProviderModelRecords": 9, + "mergedProviderModelRecords": 10, "limits": { "contextTokens": 1048576, "inputTokens": 1000000, @@ -111199,6 +114026,8 @@ "videoInput": false, "supports1MContext": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "noneReasoningEffort": true, @@ -111232,6 +114061,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -111260,6 +114090,20 @@ "output": 25.007 } }, + { + "source": "models.dev", + "provider": "ofox", + "model": "anthropic/claude-opus-4.8", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + } + }, { "source": "models.dev", "provider": "openrouter", @@ -111269,6 +114113,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -111293,6 +114138,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -111306,6 +114152,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -111319,14 +114166,13 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, "other": { "webSearch": 0.01 - }, - "extra": { - "input_cache_write_1h": 0.00001 } } ] @@ -111357,7 +114203,7 @@ "tools", "verbosity" ], - "providerModelRecordCount": 9 + "providerModelRecordCount": 10 }, "sourceRecords": [ { @@ -111503,6 +114349,36 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "ofox", + "providerName": "Ofox", + "providerApi": "https://api.ofox.ai/v1", + "providerDoc": "https://ofox.ai/docs", + "model": "anthropic/claude-opus-4.8", + "modelKey": "anthropic/claude-opus-4.8", + "displayName": "Claude Opus 4.8", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-01", + "lastUpdated": "2026-05-28", + "openWeights": false, + "releaseDate": "2026-05-28", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -111637,6 +114513,7 @@ }, "reasoning": { "mandatory": false, + "default_enabled": false, "supported_efforts": [ "max", "xhigh", @@ -111644,7 +114521,7 @@ "medium", "low" ], - "default_effort": "medium" + "default_effort": "high" }, "supportedParameters": [ "include_reasoning", @@ -111715,6 +114592,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -111740,6 +114619,7 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite5m": 12.5, "input": 10, "output": 50 } @@ -111753,6 +114633,7 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite5m": 12.5, "input": 10, "output": 50 } @@ -111766,14 +114647,13 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite1h": 20, + "cacheWrite5m": 12.5, "input": 10, "output": 50 }, "other": { "webSearch": 0.01 - }, - "extra": { - "input_cache_write_1h": 0.00002 } } ] @@ -111879,6 +114759,7 @@ }, "reasoning": { "mandatory": false, + "default_enabled": false, "supported_efforts": [ "max", "xhigh", @@ -111886,7 +114767,7 @@ "medium", "low" ], - "default_effort": "medium" + "default_effort": "high" }, "supportedParameters": [ "include_reasoning", @@ -112079,6 +114960,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -112092,6 +114974,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -112105,6 +114988,8 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite1h": 30, + "cacheWrite5m": 18.75, "input": 15, "output": 75 }, @@ -112112,9 +114997,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00003 } } ] @@ -112279,6 +115161,1245 @@ } ] }, + { + "id": "anthropic/claude-opus-5", + "provider": "anthropic", + "model": "claude-opus-5", + "displayName": "Claude Opus 5", + "family": "claude-opus", + "mode": "chat", + "sources": [ + "litellm", + "models.dev", + "openrouter" + ], + "providers": [ + "anthropic", + "azure", + "azure-cognitive-services", + "azure_ai", + "cloudflare-ai-gateway", + "crossmodel", + "github-copilot", + "llmgateway", + "opencode", + "openrouter", + "venice", + "vercel", + "vertex_ai-anthropic_models" + ], + "aliases": [ + "anthropic/claude-opus-5", + "azure-cognitive-services/claude-opus-5", + "azure/claude-opus-5", + "azure_ai/claude-opus-5", + "cloudflare-ai-gateway/anthropic/claude-opus-5", + "crossmodel/anthropic/claude-opus-5", + "github-copilot/claude-opus-5", + "llmgateway/claude-opus-5", + "opencode/claude-opus-5", + "openrouter/anthropic/claude-opus-5", + "venice/claude-opus-5", + "vercel/anthropic/claude-opus-5", + "vertex_ai-anthropic_models/vertex_ai/claude-opus-5" + ], + "mergedProviderModelRecords": 13, + "limits": { + "contextTokens": 1000000, + "inputTokens": 1000000, + "maxTokens": 128000, + "outputTokens": 128000, + "supports1MContext": true + }, + "modalities": { + "input": [ + "file", + "image", + "pdf", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": true, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "maxReasoningEffort": true, + "xhighReasoningEffort": true, + "structuredOutput": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "adaptiveThinking": true, + "assistantPrefill": false, + "computerUse": true, + "embedding": false, + "functionCalling": true, + "imageGeneration": false, + "moderation": false, + "nativeStructuredOutput": true, + "promptCaching": true, + "rerank": false, + "responseSchema": true, + "samplingParams": false, + "speech": false, + "toolChoice": true, + "transcription": false, + "vision": true, + "supports1MContext": true, + "parallelFunctionCalling": false, + "webSearch": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "anthropic", + "model": "claude-opus-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + } + }, + { + "source": "models.dev", + "provider": "azure-cognitive-services", + "model": "claude-opus-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + } + }, + { + "source": "models.dev", + "provider": "azure", + "model": "claude-opus-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + } + }, + { + "source": "models.dev", + "provider": "cloudflare-ai-gateway", + "model": "anthropic/claude-opus-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + } + }, + { + "source": "models.dev", + "provider": "crossmodel", + "model": "anthropic/claude-opus-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + } + }, + { + "source": "models.dev", + "provider": "github-copilot", + "model": "claude-opus-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + } + }, + { + "source": "models.dev", + "provider": "llmgateway", + "model": "claude-opus-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + } + }, + { + "source": "models.dev", + "provider": "opencode", + "model": "claude-opus-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + } + }, + { + "source": "models.dev", + "provider": "openrouter", + "model": "anthropic/claude-opus-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + } + }, + { + "source": "models.dev", + "provider": "venice", + "model": "claude-opus-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.6, + "cacheWrite": 7.5, + "cacheWrite5m": 7.5, + "input": 6, + "output": 30 + } + }, + { + "source": "models.dev", + "provider": "vercel", + "model": "anthropic/claude-opus-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + } + }, + { + "source": "litellm", + "provider": "anthropic", + "model": "claude-opus-5", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + }, + "searchContextPerQuery": { + "search_context_size_high": 0.01, + "search_context_size_low": 0.01, + "search_context_size_medium": 0.01 + } + }, + { + "source": "litellm", + "provider": "azure_ai", + "model": "azure_ai/claude-opus-5", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + }, + "searchContextPerQuery": { + "search_context_size_high": 0.01, + "search_context_size_low": 0.01, + "search_context_size_medium": 0.01 + } + }, + { + "source": "litellm", + "provider": "vertex_ai-anthropic_models", + "model": "vertex_ai/claude-opus-5", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + }, + "searchContextPerQuery": { + "search_context_size_high": 0.01, + "search_context_size_low": 0.01, + "search_context_size_medium": 0.01 + } + }, + { + "source": "openrouter", + "provider": "openrouter", + "model": "anthropic/claude-opus-5", + "sourceUrl": "https://openrouter.ai/api/v1/models", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + }, + "other": { + "webSearch": 0.01 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Claude Opus 5" + ], + "families": [ + "claude-opus" + ], + "modes": [ + "chat" + ], + "knowledgeCutoff": "2026-05", + "releaseDate": "2026-07-24", + "lastUpdated": "2026-07-24", + "supportedParameters": [ + "include_reasoning", + "max_completion_tokens", + "max_tokens", + "reasoning", + "reasoning_effort", + "response_format", + "stop", + "structured_outputs", + "temperature", + "tool_choice", + "tools", + "verbosity" + ], + "providerModelRecordCount": 13 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "anthropic", + "providerName": "Anthropic", + "providerDoc": "https://docs.anthropic.com/en/docs/about-claude/models", + "model": "claude-opus-5", + "modelKey": "claude-opus-5", + "displayName": "Claude Opus 5", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-05", + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-07-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "azure-cognitive-services", + "providerName": "Azure Cognitive Services", + "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", + "model": "claude-opus-5", + "modelKey": "claude-opus-5", + "displayName": "Claude Opus 5", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-05", + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-07-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "azure", + "providerName": "Azure", + "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", + "model": "claude-opus-5", + "modelKey": "claude-opus-5", + "displayName": "Claude Opus 5", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-05", + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-07-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "cloudflare-ai-gateway", + "providerName": "Cloudflare AI Gateway", + "providerDoc": "https://developers.cloudflare.com/ai-gateway/", + "model": "anthropic/claude-opus-5", + "modelKey": "anthropic/claude-opus-5", + "displayName": "Claude Opus 5", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-05", + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-07-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "crossmodel", + "providerName": "CrossModel", + "providerApi": "https://api.crossmodel.ai/v1", + "providerDoc": "https://www.crossmodel.ai/docs", + "model": "anthropic/claude-opus-5", + "modelKey": "anthropic/claude-opus-5", + "displayName": "Claude Opus 5", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-05", + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-07-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "github-copilot", + "providerName": "GitHub Copilot", + "providerApi": "https://api.githubcopilot.com", + "providerDoc": "https://docs.github.com/en/copilot", + "model": "claude-opus-5", + "modelKey": "claude-opus-5", + "displayName": "Claude Opus 5", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-05", + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-07-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "llmgateway", + "providerName": "LLM Gateway", + "providerApi": "https://api.llmgateway.io/v1", + "providerDoc": "https://llmgateway.io/docs", + "model": "claude-opus-5", + "modelKey": "claude-opus-5", + "displayName": "Claude Opus 5", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-05", + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-07-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "opencode", + "providerName": "OpenCode Zen", + "providerApi": "https://opencode.ai/zen/v1", + "providerDoc": "https://opencode.ai/docs/zen", + "model": "claude-opus-5", + "modelKey": "claude-opus-5", + "displayName": "Claude Opus 5", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-05", + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-07-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "openrouter", + "providerName": "OpenRouter", + "providerApi": "https://openrouter.ai/api/v1", + "providerDoc": "https://openrouter.ai/models", + "model": "anthropic/claude-opus-5", + "modelKey": "anthropic/claude-opus-5", + "displayName": "Claude Opus 5", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-05", + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-07-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "venice", + "providerName": "Venice AI", + "providerDoc": "https://docs.venice.ai", + "model": "claude-opus-5", + "modelKey": "claude-opus-5", + "displayName": "Claude Opus 5", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-05", + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-07-23" + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "vercel", + "providerName": "Vercel AI Gateway", + "providerDoc": "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway", + "model": "anthropic/claude-opus-5", + "modelKey": "anthropic/claude-opus-5", + "displayName": "Claude Opus 5", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-05", + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-07-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + }, + { + "source": "litellm", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "provider": "anthropic", + "model": "claude-opus-5", + "mode": "chat", + "metadata": { + "providerSpecificEntry": { + "us": 1.1, + "fast": 2 + } + } + }, + { + "source": "litellm", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "provider": "azure_ai", + "model": "azure_ai/claude-opus-5", + "mode": "chat" + }, + { + "source": "litellm", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "provider": "vertex_ai-anthropic_models", + "model": "vertex_ai/claude-opus-5", + "mode": "chat" + }, + { + "source": "openrouter", + "sourceUrl": "https://openrouter.ai/api/v1/models", + "provider": "openrouter", + "model": "anthropic/claude-opus-5", + "displayName": "Claude Opus 5", + "metadata": { + "canonicalSlug": "anthropic/claude-opus-5-20260723", + "createdAt": "2026-07-24T17:02:24.000Z", + "links": { + "details": "/api/v1/models/anthropic/claude-opus-5-20260723/endpoints" + }, + "reasoning": { + "mandatory": false, + "default_enabled": true, + "supported_efforts": [ + "max", + "xhigh", + "high", + "medium", + "low" + ], + "default_effort": "high" + }, + "supportedParameters": [ + "include_reasoning", + "max_completion_tokens", + "max_tokens", + "reasoning", + "reasoning_effort", + "response_format", + "stop", + "structured_outputs", + "temperature", + "tool_choice", + "tools", + "verbosity" + ], + "tokenizer": "Claude", + "topProvider": { + "context_length": 1000000, + "max_completion_tokens": 128000, + "is_moderated": true + } + } + } + ] + }, + { + "id": "anthropic/claude-opus-5-fast", + "provider": "anthropic", + "model": "claude-opus-5-fast", + "displayName": "Claude Opus 5 (Fast)", + "family": "claude-opus", + "sources": [ + "models.dev", + "openrouter" + ], + "providers": [ + "openrouter", + "venice", + "vercel" + ], + "aliases": [ + "openrouter/anthropic/claude-opus-5-fast", + "venice/claude-opus-5-fast", + "vercel/anthropic/claude-opus-5-fast" + ], + "mergedProviderModelRecords": 3, + "limits": { + "contextTokens": 1000000, + "outputTokens": 128000, + "supports1MContext": true + }, + "modalities": { + "input": [ + "file", + "image", + "pdf", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": true, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "maxReasoningEffort": true, + "xhighReasoningEffort": true, + "structuredOutput": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "parallelFunctionCalling": false, + "responseSchema": true, + "toolChoice": true, + "webSearch": false, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "openrouter", + "model": "anthropic/claude-opus-5-fast", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 1, + "cacheWrite": 12.5, + "cacheWrite5m": 12.5, + "input": 10, + "output": 50 + } + }, + { + "source": "models.dev", + "provider": "venice", + "model": "claude-opus-5-fast", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 1.2, + "cacheWrite": 15, + "cacheWrite5m": 15, + "input": 12, + "output": 60 + } + }, + { + "source": "models.dev", + "provider": "vercel", + "model": "anthropic/claude-opus-5-fast", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 1, + "cacheWrite": 12.5, + "cacheWrite5m": 12.5, + "input": 10, + "output": 50 + } + }, + { + "source": "openrouter", + "provider": "openrouter", + "model": "anthropic/claude-opus-5-fast", + "sourceUrl": "https://openrouter.ai/api/v1/models", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "cacheRead": 1, + "cacheWrite": 12.5, + "cacheWrite1h": 20, + "cacheWrite5m": 12.5, + "input": 10, + "output": 50 + }, + "other": { + "webSearch": 0.01 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Claude Opus 5 (Fast)", + "Claude Opus 5 Fast" + ], + "families": [ + "claude-opus" + ], + "knowledgeCutoff": "2026-05", + "releaseDate": "2026-07-24", + "lastUpdated": "2026-07-24", + "supportedParameters": [ + "include_reasoning", + "max_tokens", + "reasoning", + "reasoning_effort", + "response_format", + "stop", + "structured_outputs", + "tool_choice", + "tools", + "verbosity" + ], + "providerModelRecordCount": 3 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "openrouter", + "providerName": "OpenRouter", + "providerApi": "https://openrouter.ai/api/v1", + "providerDoc": "https://openrouter.ai/models", + "model": "anthropic/claude-opus-5-fast", + "modelKey": "anthropic/claude-opus-5-fast", + "displayName": "Claude Opus 5 (Fast)", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-05", + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-07-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "venice", + "providerName": "Venice AI", + "providerDoc": "https://docs.venice.ai", + "model": "claude-opus-5-fast", + "modelKey": "claude-opus-5-fast", + "displayName": "Claude Opus 5 Fast", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-05", + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-07-23" + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "vercel", + "providerName": "Vercel AI Gateway", + "providerDoc": "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway", + "model": "anthropic/claude-opus-5-fast", + "modelKey": "anthropic/claude-opus-5-fast", + "displayName": "Claude Opus 5 (Fast)", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-05", + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-07-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + }, + { + "source": "openrouter", + "sourceUrl": "https://openrouter.ai/api/v1/models", + "provider": "openrouter", + "model": "anthropic/claude-opus-5-fast", + "displayName": "Claude Opus 5 (Fast)", + "metadata": { + "canonicalSlug": "anthropic/claude-opus-5-fast-20260723", + "createdAt": "2026-07-24T17:02:26.000Z", + "links": { + "details": "/api/v1/models/anthropic/claude-opus-5-fast-20260723/endpoints" + }, + "reasoning": { + "mandatory": false, + "default_enabled": true, + "supported_efforts": [ + "max", + "xhigh", + "high", + "medium", + "low" + ], + "default_effort": "high" + }, + "supportedParameters": [ + "include_reasoning", + "max_tokens", + "reasoning", + "reasoning_effort", + "response_format", + "stop", + "structured_outputs", + "tool_choice", + "tools", + "verbosity" + ], + "tokenizer": "Claude", + "topProvider": { + "context_length": 1000000, + "max_completion_tokens": 128000, + "is_moderated": true + } + } + } + ] + }, + { + "id": "anthropic/claude-opus-5@default", + "provider": "anthropic", + "model": "claude-opus-5@default", + "displayName": "Claude Opus 5", + "family": "claude-opus", + "mode": "chat", + "sources": [ + "litellm", + "models.dev" + ], + "providers": [ + "google-vertex", + "google-vertex-anthropic", + "vertex_ai-anthropic_models" + ], + "aliases": [ + "google-vertex-anthropic/claude-opus-5@default", + "google-vertex/claude-opus-5@default", + "vertex_ai-anthropic_models/vertex_ai/claude-opus-5@default" + ], + "mergedProviderModelRecords": 3, + "limits": { + "contextTokens": 1000000, + "inputTokens": 1000000, + "maxTokens": 128000, + "outputTokens": 128000, + "supports1MContext": true + }, + "modalities": { + "input": [ + "image", + "pdf", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": true, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "maxReasoningEffort": true, + "xhighReasoningEffort": true, + "temperature": false, + "toolCalling": true, + "videoInput": false, + "supports1MContext": true, + "adaptiveThinking": true, + "assistantPrefill": false, + "computerUse": true, + "embedding": false, + "functionCalling": true, + "imageGeneration": false, + "moderation": false, + "promptCaching": true, + "rerank": false, + "responseSchema": true, + "samplingParams": false, + "speech": false, + "toolChoice": true, + "transcription": false, + "vision": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "google-vertex-anthropic", + "model": "claude-opus-5@default", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + } + }, + { + "source": "models.dev", + "provider": "google-vertex", + "model": "claude-opus-5@default", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + } + }, + { + "source": "litellm", + "provider": "vertex_ai-anthropic_models", + "model": "vertex_ai/claude-opus-5@default", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + }, + "searchContextPerQuery": { + "search_context_size_high": 0.01, + "search_context_size_low": 0.01, + "search_context_size_medium": 0.01 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Claude Opus 5" + ], + "families": [ + "claude-opus" + ], + "modes": [ + "chat" + ], + "knowledgeCutoff": "2026-05", + "releaseDate": "2026-07-24", + "lastUpdated": "2026-07-24", + "providerModelRecordCount": 3 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "google-vertex-anthropic", + "providerName": "Vertex (Anthropic)", + "providerDoc": "https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude", + "model": "claude-opus-5@default", + "modelKey": "claude-opus-5@default", + "displayName": "Claude Opus 5", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-05", + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-07-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "google-vertex", + "providerName": "Vertex", + "providerDoc": "https://cloud.google.com/vertex-ai/generative-ai/docs/models", + "model": "claude-opus-5@default", + "modelKey": "claude-opus-5@default", + "displayName": "Claude Opus 5", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-05", + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-07-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + }, + { + "source": "litellm", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "provider": "vertex_ai-anthropic_models", + "model": "vertex_ai/claude-opus-5@default", + "mode": "chat" + } + ] + }, { "id": "anthropic/claude-opus-latest", "provider": "anthropic", @@ -112327,6 +116448,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": true, @@ -112353,6 +116476,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -112378,6 +116502,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -112391,14 +116516,13 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, "other": { "webSearch": 0.01 - }, - "extra": { - "input_cache_write_1h": 0.00001 } } ] @@ -112532,6 +116656,7 @@ }, "reasoning": { "mandatory": false, + "default_enabled": true, "supported_efforts": [ "max", "xhigh", @@ -112539,7 +116664,7 @@ "medium", "low" ], - "default_effort": "medium" + "default_effort": "high" }, "supportedParameters": [ "include_reasoning", @@ -112559,7 +116684,7 @@ "topProvider": { "context_length": 1000000, "max_completion_tokens": 128000, - "is_moderated": false + "is_moderated": true } } } @@ -112606,6 +116731,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -112716,6 +116843,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -112826,6 +116955,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": false, "toolCalling": true, "videoInput": false, @@ -112844,6 +116975,7 @@ "per1MTokens": { "cacheRead": 0.56, "cacheWrite": 6.99, + "cacheWrite5m": 6.99, "input": 5.6, "output": 27.99 } @@ -112934,6 +117066,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": false, "toolCalling": true, "videoInput": false, @@ -112952,6 +117086,7 @@ "per1MTokens": { "cacheRead": 0.563, "cacheWrite": 7.049, + "cacheWrite5m": 7.049, "input": 5.64, "output": 28.198 } @@ -113059,6 +117194,7 @@ "per1MTokens": { "cacheRead": 0.26, "cacheWrite": 3.2, + "cacheWrite5m": 3.2, "input": 2.6, "output": 13 } @@ -113158,6 +117294,7 @@ "per1MTokens": { "cacheRead": 0.26, "cacheWrite": 3.2, + "cacheWrite5m": 3.2, "input": 2.6, "output": 13 } @@ -113257,6 +117394,7 @@ "per1MTokens": { "cacheRead": 0.26, "cacheWrite": 3.2, + "cacheWrite5m": 3.2, "input": 2.6, "output": 13 } @@ -113395,6 +117533,8 @@ "webSearch": false, "supports1MContext": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true }, @@ -113411,6 +117551,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -113435,6 +117576,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -113448,6 +117590,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -113461,6 +117604,7 @@ "per1MTokens": { "cacheRead": 0.30000000000000004, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -113474,6 +117618,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -113487,6 +117632,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -113500,6 +117646,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -113532,6 +117679,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -113564,6 +117712,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -113577,6 +117726,7 @@ "per1MTokens": { "cacheRead": 0.26, "cacheWrite": 3.2, + "cacheWrite5m": 3.2, "input": 2.6, "output": 13 } @@ -113590,6 +117740,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -113603,6 +117754,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -113616,6 +117768,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -113647,6 +117800,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -113669,6 +117823,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -113682,6 +117837,8 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite1h": 6, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -113691,7 +117848,6 @@ "search_context_size_medium": 0.01 }, "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000006, "input_cost_per_token_above_200k_tokens": 0.000006, "output_cost_per_token_above_200k_tokens": 0.0000225, "cache_creation_input_token_cost_above_200k_tokens": 0.0000075, @@ -113707,6 +117863,8 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite1h": 6, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -113714,7 +117872,6 @@ "webSearch": 0.01 }, "extra": { - "input_cache_write_1h": 0.000006, "overrides": [ { "min_prompt_tokens": 200000, @@ -114301,6 +118458,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -114325,6 +118483,8 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite1h": 6, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -114334,7 +118494,6 @@ "search_context_size_medium": 0.01 }, "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000006, "input_cost_per_token_above_200k_tokens": 0.000006, "output_cost_per_token_above_200k_tokens": 0.0000225, "cache_creation_input_token_cost_above_200k_tokens": 0.0000075, @@ -114577,6 +118736,8 @@ "vision": true, "supports1MContext": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "interleaved": true, @@ -114607,6 +118768,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -114620,6 +118782,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -114633,6 +118796,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -114646,6 +118810,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -114659,6 +118824,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -114672,6 +118838,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15.5 } @@ -114685,6 +118852,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -114698,6 +118866,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -114742,6 +118911,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -114755,6 +118925,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -114768,6 +118939,7 @@ "per1MTokens": { "cacheRead": 0.375, "cacheWrite": 4.69, + "cacheWrite5m": 4.69, "input": 3.75, "output": 18.75 } @@ -114781,6 +118953,8 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite1h": 6, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -114790,7 +118964,6 @@ "search_context_size_medium": 0.01 }, "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000006, "cache_creation_input_token_cost_above_1hr_above_200k_tokens": 0.000012, "input_cost_per_token_above_200k_tokens": 0.000006, "output_cost_per_token_above_200k_tokens": 0.0000225, @@ -114807,11 +118980,10 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite1h": 6, + "cacheWrite5m": 3.75, "input": 3, "output": 15 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000006 } }, { @@ -114835,11 +119007,12 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite1h": 6, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000006, "input_cost_per_token_above_200k_tokens": 0.000006, "output_cost_per_token_above_200k_tokens": 0.0000225, "cache_creation_input_token_cost_above_200k_tokens": 0.0000075, @@ -115384,6 +119557,8 @@ "webSearch": true, "supports1MContext": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true }, @@ -115422,6 +119597,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -115435,6 +119611,7 @@ "per1MTokens": { "cacheRead": 0.30000000000000004, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -115459,6 +119636,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -115472,6 +119650,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -115507,6 +119686,8 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite1h": 6, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -115516,7 +119697,6 @@ "search_context_size_medium": 0.01 }, "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000006, "cache_creation_input_token_cost_above_1hr_above_200k_tokens": 0.000012, "input_cost_per_token_above_200k_tokens": 0.000006, "output_cost_per_token_above_200k_tokens": 0.0000225, @@ -115953,11 +120133,12 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite1h": 6, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000006, "cache_creation_input_token_cost_above_1hr_above_200k_tokens": 0.000012, "input_cost_per_token_above_200k_tokens": 0.000006, "output_cost_per_token_above_200k_tokens": 0.0000225, @@ -116063,6 +120244,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -116076,6 +120258,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -116089,11 +120272,12 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite1h": 6, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000006, "input_cost_per_token_above_200k_tokens": 0.000006, "output_cost_per_token_above_200k_tokens": 0.0000225, "cache_creation_input_token_cost_above_200k_tokens": 0.0000075, @@ -116200,7 +120384,6 @@ "daoxe", "freemodel", "frogbot", - "kenari", "llmgateway", "merge-gateway", "nearai", @@ -116229,7 +120412,6 @@ "daoxe/claude-sonnet-4-6", "freemodel/claude-sonnet-4-6", "frogbot/claude-sonnet-4-6", - "kenari/claude-sonnet-4-6", "llmgateway/claude-sonnet-4-6", "merge-gateway/anthropic/claude-sonnet-4-6", "nearai/anthropic/claude-sonnet-4-6", @@ -116244,7 +120426,7 @@ "venice/claude-sonnet-4-6", "vertex_ai-anthropic_models/vertex_ai/claude-sonnet-4-6" ], - "mergedProviderModelRecords": 27, + "mergedProviderModelRecords": 26, "limits": { "contextTokens": 1000000, "inputTokens": 1000000, @@ -116272,6 +120454,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -116333,6 +120517,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -116365,6 +120550,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -116378,6 +120564,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -116391,6 +120578,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -116404,6 +120592,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -116436,6 +120625,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -116449,6 +120639,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -116462,6 +120653,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -116475,21 +120667,11 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } }, - { - "source": "models.dev", - "provider": "kenari", - "model": "claude-sonnet-4-6", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0, - "output": 0 - } - }, { "source": "models.dev", "provider": "llmgateway", @@ -116499,6 +120681,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -116512,6 +120695,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -116525,6 +120709,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -116538,6 +120723,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -116551,6 +120737,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -116576,6 +120763,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -116589,6 +120777,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -116632,6 +120821,7 @@ "per1MTokens": { "cacheRead": 0.36, "cacheWrite": 4.5, + "cacheWrite5m": 4.5, "input": 3.6, "output": 18 } @@ -116645,6 +120835,8 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite1h": 6, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -116652,9 +120844,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000006 } }, { @@ -116666,11 +120855,10 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite1h": 6, + "cacheWrite5m": 3.75, "input": 3, "output": 15 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000006 } }, { @@ -116694,6 +120882,8 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite1h": 6, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -116701,9 +120891,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000006 } } ] @@ -116722,7 +120909,7 @@ "knowledgeCutoff": "2025-08-31", "releaseDate": "2026-02-18", "lastUpdated": "2026-03-13", - "providerModelRecordCount": 27 + "providerModelRecordCount": 26 }, "sourceRecords": [ { @@ -117091,35 +121278,6 @@ ] } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "kenari", - "providerName": "Kenari", - "providerApi": "https://kenari.id/v1", - "providerDoc": "https://kenari.id/docs", - "model": "claude-sonnet-4-6", - "modelKey": "claude-sonnet-4-6", - "displayName": "Claude Sonnet 4.6", - "family": "claude-sonnet", - "metadata": { - "knowledgeCutoff": "2025-08-31", - "lastUpdated": "2026-03-13", - "openWeights": false, - "releaseDate": "2026-02-17", - "reasoningOptions": [ - { - "type": "effort", - "values": [ - "low", - "medium", - "high", - "max" - ] - } - ] - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -117499,6 +121657,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -117519,6 +121679,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -117733,6 +121894,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -117766,6 +121929,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -117798,6 +121962,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -117830,6 +121995,8 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite1h": 6, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -117837,9 +122004,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000006 } } ] @@ -118463,6 +122627,8 @@ "webSearch": false, "supports1MContext": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true }, "pricing": { @@ -118478,6 +122644,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -118491,6 +122658,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -118504,6 +122672,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -118536,6 +122705,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -118549,6 +122719,7 @@ "per1MTokens": { "cacheRead": 0.26, "cacheWrite": 3.2, + "cacheWrite5m": 3.2, "input": 2.6, "output": 13 } @@ -118562,6 +122733,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -118575,6 +122747,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -118606,6 +122779,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -118628,6 +122802,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -118641,6 +122816,8 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite1h": 6, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -118648,7 +122825,6 @@ "webSearch": 0.01 }, "extra": { - "input_cache_write_1h": 0.000006, "overrides": [ { "min_prompt_tokens": 200000, @@ -119017,6 +123193,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -119066,6 +123244,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -119102,6 +123281,7 @@ "per1MTokens": { "cacheRead": 0.24, "cacheWrite": 3, + "cacheWrite5m": 3, "input": 2.4, "output": 12 } @@ -119126,6 +123306,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -119158,6 +123339,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -119171,6 +123353,7 @@ "per1MTokens": { "cacheRead": 0.26, "cacheWrite": 3.2, + "cacheWrite5m": 3.2, "input": 2.6, "output": 13 } @@ -119184,6 +123367,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -119216,6 +123400,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -119229,6 +123414,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -119248,14 +123434,13 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite1h": 6, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, "other": { "webSearch": 0.01 - }, - "extra": { - "input_cache_write_1h": 0.000006 } } ] @@ -119841,6 +124026,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -119854,6 +124040,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -119867,6 +124054,8 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite1h": 6, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -119876,7 +124065,6 @@ "search_context_size_medium": 0.01 }, "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000006, "input_cost_per_token_above_200k_tokens": 0.000006, "output_cost_per_token_above_200k_tokens": 0.0000225, "cache_creation_input_token_cost_above_200k_tokens": 0.0000075, @@ -119982,8 +124170,10 @@ "cloudflare-ai-gateway", "crossmodel", "github-copilot", + "kenari", "llmgateway", "model-oracle-ai", + "ofox", "opencode", "openrouter", "unorouter", @@ -120001,8 +124191,10 @@ "cloudflare-ai-gateway/anthropic/claude-sonnet-5", "crossmodel/anthropic/claude-sonnet-5", "github-copilot/claude-sonnet-5", + "kenari/claude-sonnet-5", "llmgateway/claude-sonnet-5", "model-oracle-ai/claude-sonnet-5", + "ofox/anthropic/claude-sonnet-5", "opencode/claude-sonnet-5", "openrouter/anthropic/claude-sonnet-5", "unorouter/claude-sonnet-5", @@ -120011,7 +124203,7 @@ "vertex_ai-anthropic_models/vertex_ai/claude-sonnet-5", "zenmux/anthropic/claude-sonnet-5" ], - "mergedProviderModelRecords": 17, + "mergedProviderModelRecords": 19, "limits": { "contextTokens": 1000000, "inputTokens": 1000000, @@ -120040,6 +124232,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -120090,6 +124284,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite5m": 2.5, "input": 2, "output": 10 } @@ -120103,6 +124298,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite5m": 2.5, "input": 2, "output": 10 } @@ -120116,6 +124312,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite5m": 2.5, "input": 2, "output": 10 } @@ -120129,6 +124326,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite5m": 2.5, "input": 2, "output": 10 } @@ -120142,6 +124340,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite5m": 2.5, "input": 2, "output": 10 } @@ -120155,10 +124354,22 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite5m": 2.5, "input": 2, "output": 10 } }, + { + "source": "models.dev", + "provider": "kenari", + "model": "claude-sonnet-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + }, { "source": "models.dev", "provider": "llmgateway", @@ -120168,6 +124379,21 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite5m": 2.5, + "input": 2, + "output": 10 + } + }, + { + "source": "models.dev", + "provider": "ofox", + "model": "anthropic/claude-sonnet-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.2, + "cacheWrite": 2.5, + "cacheWrite5m": 2.5, "input": 2, "output": 10 } @@ -120181,6 +124407,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite5m": 2.5, "input": 2, "output": 10 } @@ -120194,6 +124421,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite5m": 2.5, "input": 2, "output": 10 } @@ -120218,6 +124446,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -120231,6 +124460,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite5m": 2.5, "input": 2, "output": 10 } @@ -120244,6 +124474,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 4, + "cacheWrite5m": 4, "input": 2, "output": 10 } @@ -120257,6 +124488,8 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite1h": 4, + "cacheWrite5m": 2.5, "input": 2, "output": 10 }, @@ -120264,9 +124497,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000004 } }, { @@ -120278,6 +124508,8 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite1h": 4, + "cacheWrite5m": 2.5, "input": 2, "output": 10 }, @@ -120285,9 +124517,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000004 } }, { @@ -120299,6 +124528,8 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite1h": 4, + "cacheWrite5m": 2.5, "input": 2, "output": 10 }, @@ -120306,9 +124537,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000004 } }, { @@ -120320,14 +124548,13 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite1h": 4, + "cacheWrite5m": 2.5, "input": 2, "output": 10 }, "other": { "webSearch": 0.01 - }, - "extra": { - "input_cache_write_1h": 0.000004 } } ] @@ -120362,7 +124589,7 @@ "tools", "verbosity" ], - "providerModelRecordCount": 17 + "providerModelRecordCount": 19 }, "sourceRecords": [ { @@ -120572,6 +124799,36 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "kenari", + "providerName": "Kenari", + "providerApi": "https://kenari.id/v1", + "providerDoc": "https://kenari.id/docs", + "model": "claude-sonnet-5", + "modelKey": "claude-sonnet-5", + "displayName": "Claude Sonnet 5", + "family": "claude-sonnet", + "metadata": { + "knowledgeCutoff": "2026-01-31", + "lastUpdated": "2026-06-30", + "openWeights": false, + "releaseDate": "2026-06-30", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -120632,6 +124889,39 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "ofox", + "providerName": "Ofox", + "providerApi": "https://api.ofox.ai/v1", + "providerDoc": "https://ofox.ai/docs", + "model": "anthropic/claude-sonnet-5", + "modelKey": "anthropic/claude-sonnet-5", + "displayName": "Claude Sonnet 5", + "family": "claude-sonnet", + "metadata": { + "knowledgeCutoff": "2026-01-31", + "lastUpdated": "2026-06-30", + "openWeights": false, + "releaseDate": "2026-06-30", + "reasoningOptions": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -120826,6 +125116,7 @@ }, "reasoning": { "mandatory": false, + "default_enabled": true, "supported_efforts": [ "max", "xhigh", @@ -120833,7 +125124,7 @@ "medium", "low" ], - "default_effort": "medium" + "default_effort": "high" }, "supportedParameters": [ "include_reasoning", @@ -120899,6 +125190,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": false, "toolCalling": true, "videoInput": false, @@ -120917,6 +125210,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -121015,6 +125309,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -121050,6 +125346,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite5m": 2.5, "input": 2, "output": 10 } @@ -121063,6 +125360,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite5m": 2.5, "input": 2, "output": 10 } @@ -121076,6 +125374,8 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite1h": 4, + "cacheWrite5m": 2.5, "input": 2, "output": 10 }, @@ -121083,9 +125383,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000004 } } ] @@ -121227,6 +125524,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -121253,6 +125552,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -121278,6 +125578,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite5m": 2.5, "input": 2, "output": 10 } @@ -121291,14 +125592,13 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite1h": 4, + "cacheWrite5m": 2.5, "input": 2, "output": 10 }, "other": { "webSearch": 0.01 - }, - "extra": { - "input_cache_write_1h": 0.000004 } } ] @@ -121443,6 +125743,7 @@ }, "reasoning": { "mandatory": false, + "default_enabled": true, "supported_efforts": [ "max", "xhigh", @@ -121450,7 +125751,7 @@ "medium", "low" ], - "default_effort": "medium" + "default_effort": "high" }, "supportedParameters": [ "include_reasoning", @@ -121469,7 +125770,7 @@ "topProvider": { "context_length": 1000000, "max_completion_tokens": 128000, - "is_moderated": false + "is_moderated": true } } } @@ -125377,190 +129678,6 @@ } ] }, - { - "id": "azure-cognitive-services/cohere-command-r-08-2024", - "provider": "azure-cognitive-services", - "model": "cohere-command-r-08-2024", - "displayName": "Command R", - "family": "command-r", - "sources": [ - "models.dev" - ], - "providers": [ - "azure-cognitive-services" - ], - "aliases": [ - "azure-cognitive-services/cohere-command-r-08-2024" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 128000, - "outputTokens": 4000, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "temperature": true, - "toolCalling": true, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "cohere-command-r-08-2024", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.15, - "output": 0.6 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Command R" - ], - "families": [ - "command-r" - ], - "knowledgeCutoff": "2024-06-01", - "releaseDate": "2024-08-30", - "lastUpdated": "2024-08-30", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "cohere-command-r-08-2024", - "modelKey": "cohere-command-r-08-2024", - "displayName": "Command R", - "family": "command-r", - "metadata": { - "knowledgeCutoff": "2024-06-01", - "lastUpdated": "2024-08-30", - "openWeights": true, - "releaseDate": "2024-08-30" - } - } - ] - }, - { - "id": "azure-cognitive-services/cohere-command-r-plus-08-2024", - "provider": "azure-cognitive-services", - "model": "cohere-command-r-plus-08-2024", - "displayName": "Command R+", - "family": "command-r", - "sources": [ - "models.dev" - ], - "providers": [ - "azure-cognitive-services" - ], - "aliases": [ - "azure-cognitive-services/cohere-command-r-plus-08-2024" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 128000, - "outputTokens": 4000, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "temperature": true, - "toolCalling": true, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "cohere-command-r-plus-08-2024", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 2.5, - "output": 10 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Command R+" - ], - "families": [ - "command-r" - ], - "knowledgeCutoff": "2024-06-01", - "releaseDate": "2024-08-30", - "lastUpdated": "2024-08-30", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "cohere-command-r-plus-08-2024", - "modelKey": "cohere-command-r-plus-08-2024", - "displayName": "Command R+", - "family": "command-r", - "metadata": { - "knowledgeCutoff": "2024-06-01", - "lastUpdated": "2024-08-30", - "openWeights": true, - "releaseDate": "2024-08-30" - } - } - ] - }, { "id": "azure-cognitive-services/cohere-embed-v-4-0", "provider": "azure-cognitive-services", @@ -125962,6 +130079,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": false, "toolCalling": true, "videoInput": false, @@ -125992,6 +130111,9 @@ "families": [ "o" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2023-09", "releaseDate": "2024-12-05", "lastUpdated": "2024-12-05", @@ -126008,6 +130130,7 @@ "modelKey": "o1", "displayName": "o1", "family": "o", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2023-09", "lastUpdated": "2024-12-05", @@ -126067,6 +130190,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": false, "toolCalling": true, "videoInput": false, @@ -126132,742 +130257,6 @@ } ] }, - { - "id": "azure-cognitive-services/phi-3-medium-128k-instruct", - "provider": "azure-cognitive-services", - "model": "phi-3-medium-128k-instruct", - "displayName": "Phi-3-medium-instruct (128k)", - "family": "phi", - "sources": [ - "models.dev" - ], - "providers": [ - "azure-cognitive-services" - ], - "aliases": [ - "azure-cognitive-services/phi-3-medium-128k-instruct" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 128000, - "outputTokens": 4096, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "temperature": true, - "toolCalling": false, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "phi-3-medium-128k-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.17, - "output": 0.68 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Phi-3-medium-instruct (128k)" - ], - "families": [ - "phi" - ], - "knowledgeCutoff": "2023-10", - "releaseDate": "2024-04-23", - "lastUpdated": "2024-04-23", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "phi-3-medium-128k-instruct", - "modelKey": "phi-3-medium-128k-instruct", - "displayName": "Phi-3-medium-instruct (128k)", - "family": "phi", - "metadata": { - "knowledgeCutoff": "2023-10", - "lastUpdated": "2024-04-23", - "openWeights": true, - "releaseDate": "2024-04-23" - } - } - ] - }, - { - "id": "azure-cognitive-services/phi-3-medium-4k-instruct", - "provider": "azure-cognitive-services", - "model": "phi-3-medium-4k-instruct", - "displayName": "Phi-3-medium-instruct (4k)", - "family": "phi", - "sources": [ - "models.dev" - ], - "providers": [ - "azure-cognitive-services" - ], - "aliases": [ - "azure-cognitive-services/phi-3-medium-4k-instruct" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 4096, - "outputTokens": 1024, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "temperature": true, - "toolCalling": false, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "phi-3-medium-4k-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.17, - "output": 0.68 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Phi-3-medium-instruct (4k)" - ], - "families": [ - "phi" - ], - "knowledgeCutoff": "2023-10", - "releaseDate": "2024-04-23", - "lastUpdated": "2024-04-23", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "phi-3-medium-4k-instruct", - "modelKey": "phi-3-medium-4k-instruct", - "displayName": "Phi-3-medium-instruct (4k)", - "family": "phi", - "metadata": { - "knowledgeCutoff": "2023-10", - "lastUpdated": "2024-04-23", - "openWeights": true, - "releaseDate": "2024-04-23" - } - } - ] - }, - { - "id": "azure-cognitive-services/phi-3-mini-128k-instruct", - "provider": "azure-cognitive-services", - "model": "phi-3-mini-128k-instruct", - "displayName": "Phi-3-mini-instruct (128k)", - "family": "phi", - "sources": [ - "models.dev" - ], - "providers": [ - "azure-cognitive-services" - ], - "aliases": [ - "azure-cognitive-services/phi-3-mini-128k-instruct" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 128000, - "outputTokens": 4096, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "temperature": true, - "toolCalling": false, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "phi-3-mini-128k-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.13, - "output": 0.52 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Phi-3-mini-instruct (128k)" - ], - "families": [ - "phi" - ], - "knowledgeCutoff": "2023-10", - "releaseDate": "2024-04-23", - "lastUpdated": "2024-04-23", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "phi-3-mini-128k-instruct", - "modelKey": "phi-3-mini-128k-instruct", - "displayName": "Phi-3-mini-instruct (128k)", - "family": "phi", - "metadata": { - "knowledgeCutoff": "2023-10", - "lastUpdated": "2024-04-23", - "openWeights": true, - "releaseDate": "2024-04-23" - } - } - ] - }, - { - "id": "azure-cognitive-services/phi-3-mini-4k-instruct", - "provider": "azure-cognitive-services", - "model": "phi-3-mini-4k-instruct", - "displayName": "Phi-3-mini-instruct (4k)", - "family": "phi", - "sources": [ - "models.dev" - ], - "providers": [ - "azure-cognitive-services" - ], - "aliases": [ - "azure-cognitive-services/phi-3-mini-4k-instruct" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 4096, - "outputTokens": 1024, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "temperature": true, - "toolCalling": false, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "phi-3-mini-4k-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.13, - "output": 0.52 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Phi-3-mini-instruct (4k)" - ], - "families": [ - "phi" - ], - "knowledgeCutoff": "2023-10", - "releaseDate": "2024-04-23", - "lastUpdated": "2024-04-23", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "phi-3-mini-4k-instruct", - "modelKey": "phi-3-mini-4k-instruct", - "displayName": "Phi-3-mini-instruct (4k)", - "family": "phi", - "metadata": { - "knowledgeCutoff": "2023-10", - "lastUpdated": "2024-04-23", - "openWeights": true, - "releaseDate": "2024-04-23" - } - } - ] - }, - { - "id": "azure-cognitive-services/phi-3-small-128k-instruct", - "provider": "azure-cognitive-services", - "model": "phi-3-small-128k-instruct", - "displayName": "Phi-3-small-instruct (128k)", - "family": "phi", - "sources": [ - "models.dev" - ], - "providers": [ - "azure-cognitive-services" - ], - "aliases": [ - "azure-cognitive-services/phi-3-small-128k-instruct" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 128000, - "outputTokens": 4096, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "temperature": true, - "toolCalling": false, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "phi-3-small-128k-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.15, - "output": 0.6 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Phi-3-small-instruct (128k)" - ], - "families": [ - "phi" - ], - "knowledgeCutoff": "2023-10", - "releaseDate": "2024-04-23", - "lastUpdated": "2024-04-23", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "phi-3-small-128k-instruct", - "modelKey": "phi-3-small-128k-instruct", - "displayName": "Phi-3-small-instruct (128k)", - "family": "phi", - "metadata": { - "knowledgeCutoff": "2023-10", - "lastUpdated": "2024-04-23", - "openWeights": true, - "releaseDate": "2024-04-23" - } - } - ] - }, - { - "id": "azure-cognitive-services/phi-3-small-8k-instruct", - "provider": "azure-cognitive-services", - "model": "phi-3-small-8k-instruct", - "displayName": "Phi-3-small-instruct (8k)", - "family": "phi", - "sources": [ - "models.dev" - ], - "providers": [ - "azure-cognitive-services" - ], - "aliases": [ - "azure-cognitive-services/phi-3-small-8k-instruct" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 8192, - "outputTokens": 2048, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "temperature": true, - "toolCalling": false, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "phi-3-small-8k-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.15, - "output": 0.6 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Phi-3-small-instruct (8k)" - ], - "families": [ - "phi" - ], - "knowledgeCutoff": "2023-10", - "releaseDate": "2024-04-23", - "lastUpdated": "2024-04-23", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "phi-3-small-8k-instruct", - "modelKey": "phi-3-small-8k-instruct", - "displayName": "Phi-3-small-instruct (8k)", - "family": "phi", - "metadata": { - "knowledgeCutoff": "2023-10", - "lastUpdated": "2024-04-23", - "openWeights": true, - "releaseDate": "2024-04-23" - } - } - ] - }, - { - "id": "azure-cognitive-services/phi-3.5-mini-instruct", - "provider": "azure-cognitive-services", - "model": "phi-3.5-mini-instruct", - "displayName": "Phi-3.5-mini-instruct", - "family": "phi", - "sources": [ - "models.dev" - ], - "providers": [ - "azure-cognitive-services" - ], - "aliases": [ - "azure-cognitive-services/phi-3.5-mini-instruct" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 128000, - "outputTokens": 4096, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "temperature": true, - "toolCalling": false, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "phi-3.5-mini-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.13, - "output": 0.52 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Phi-3.5-mini-instruct" - ], - "families": [ - "phi" - ], - "knowledgeCutoff": "2023-10", - "releaseDate": "2024-08-20", - "lastUpdated": "2024-08-20", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "phi-3.5-mini-instruct", - "modelKey": "phi-3.5-mini-instruct", - "displayName": "Phi-3.5-mini-instruct", - "family": "phi", - "metadata": { - "knowledgeCutoff": "2023-10", - "lastUpdated": "2024-08-20", - "openWeights": true, - "releaseDate": "2024-08-20" - } - } - ] - }, - { - "id": "azure-cognitive-services/phi-3.5-moe-instruct", - "provider": "azure-cognitive-services", - "model": "phi-3.5-moe-instruct", - "displayName": "Phi-3.5-MoE-instruct", - "family": "phi", - "sources": [ - "models.dev" - ], - "providers": [ - "azure-cognitive-services" - ], - "aliases": [ - "azure-cognitive-services/phi-3.5-moe-instruct" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 128000, - "outputTokens": 4096, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "temperature": true, - "toolCalling": false, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "phi-3.5-moe-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.16, - "output": 0.64 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Phi-3.5-MoE-instruct" - ], - "families": [ - "phi" - ], - "knowledgeCutoff": "2023-10", - "releaseDate": "2024-08-20", - "lastUpdated": "2024-08-20", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "phi-3.5-moe-instruct", - "modelKey": "phi-3.5-moe-instruct", - "displayName": "Phi-3.5-MoE-instruct", - "family": "phi", - "metadata": { - "knowledgeCutoff": "2023-10", - "lastUpdated": "2024-08-20", - "openWeights": true, - "releaseDate": "2024-08-20" - } - } - ] - }, { "id": "azure-cognitive-services/phi-4", "provider": "azure-cognitive-services", @@ -127830,190 +131219,6 @@ } ] }, - { - "id": "azure/cohere-command-r-08-2024", - "provider": "azure", - "model": "cohere-command-r-08-2024", - "displayName": "Command R", - "family": "command-r", - "sources": [ - "models.dev" - ], - "providers": [ - "azure" - ], - "aliases": [ - "azure/cohere-command-r-08-2024" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 128000, - "outputTokens": 4000, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "temperature": true, - "toolCalling": true, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "azure", - "model": "cohere-command-r-08-2024", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.15, - "output": 0.6 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Command R" - ], - "families": [ - "command-r" - ], - "knowledgeCutoff": "2024-06-01", - "releaseDate": "2024-08-30", - "lastUpdated": "2024-08-30", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "cohere-command-r-08-2024", - "modelKey": "cohere-command-r-08-2024", - "displayName": "Command R", - "family": "command-r", - "metadata": { - "knowledgeCutoff": "2024-06-01", - "lastUpdated": "2024-08-30", - "openWeights": true, - "releaseDate": "2024-08-30" - } - } - ] - }, - { - "id": "azure/cohere-command-r-plus-08-2024", - "provider": "azure", - "model": "cohere-command-r-plus-08-2024", - "displayName": "Command R+", - "family": "command-r", - "sources": [ - "models.dev" - ], - "providers": [ - "azure" - ], - "aliases": [ - "azure/cohere-command-r-plus-08-2024" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 128000, - "outputTokens": 4000, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "temperature": true, - "toolCalling": true, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "azure", - "model": "cohere-command-r-plus-08-2024", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 2.5, - "output": 10 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Command R+" - ], - "families": [ - "command-r" - ], - "knowledgeCutoff": "2024-06-01", - "releaseDate": "2024-08-30", - "lastUpdated": "2024-08-30", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "cohere-command-r-plus-08-2024", - "modelKey": "cohere-command-r-plus-08-2024", - "displayName": "Command R+", - "family": "command-r", - "metadata": { - "knowledgeCutoff": "2024-06-01", - "lastUpdated": "2024-08-30", - "openWeights": true, - "releaseDate": "2024-08-30" - } - } - ] - }, { "id": "azure/cohere-embed-v-4-0", "provider": "azure", @@ -128610,6 +131815,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": false, "toolCalling": true, "videoInput": false, @@ -128666,6 +131873,9 @@ "modes": [ "chat" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2023-09", "releaseDate": "2024-12-05", "lastUpdated": "2024-12-05", @@ -128682,6 +131892,7 @@ "modelKey": "o1", "displayName": "o1", "family": "o", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2023-09", "lastUpdated": "2024-12-05", @@ -128752,6 +131963,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": false, "toolCalling": true, "videoInput": false, @@ -128863,742 +132076,6 @@ } ] }, - { - "id": "azure/phi-3-medium-128k-instruct", - "provider": "azure", - "model": "phi-3-medium-128k-instruct", - "displayName": "Phi-3-medium-instruct (128k)", - "family": "phi", - "sources": [ - "models.dev" - ], - "providers": [ - "azure" - ], - "aliases": [ - "azure/phi-3-medium-128k-instruct" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 128000, - "outputTokens": 4096, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "temperature": true, - "toolCalling": false, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "azure", - "model": "phi-3-medium-128k-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.17, - "output": 0.68 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Phi-3-medium-instruct (128k)" - ], - "families": [ - "phi" - ], - "knowledgeCutoff": "2023-10", - "releaseDate": "2024-04-23", - "lastUpdated": "2024-04-23", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "phi-3-medium-128k-instruct", - "modelKey": "phi-3-medium-128k-instruct", - "displayName": "Phi-3-medium-instruct (128k)", - "family": "phi", - "metadata": { - "knowledgeCutoff": "2023-10", - "lastUpdated": "2024-04-23", - "openWeights": true, - "releaseDate": "2024-04-23" - } - } - ] - }, - { - "id": "azure/phi-3-medium-4k-instruct", - "provider": "azure", - "model": "phi-3-medium-4k-instruct", - "displayName": "Phi-3-medium-instruct (4k)", - "family": "phi", - "sources": [ - "models.dev" - ], - "providers": [ - "azure" - ], - "aliases": [ - "azure/phi-3-medium-4k-instruct" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 4096, - "outputTokens": 1024, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "temperature": true, - "toolCalling": false, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "azure", - "model": "phi-3-medium-4k-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.17, - "output": 0.68 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Phi-3-medium-instruct (4k)" - ], - "families": [ - "phi" - ], - "knowledgeCutoff": "2023-10", - "releaseDate": "2024-04-23", - "lastUpdated": "2024-04-23", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "phi-3-medium-4k-instruct", - "modelKey": "phi-3-medium-4k-instruct", - "displayName": "Phi-3-medium-instruct (4k)", - "family": "phi", - "metadata": { - "knowledgeCutoff": "2023-10", - "lastUpdated": "2024-04-23", - "openWeights": true, - "releaseDate": "2024-04-23" - } - } - ] - }, - { - "id": "azure/phi-3-mini-128k-instruct", - "provider": "azure", - "model": "phi-3-mini-128k-instruct", - "displayName": "Phi-3-mini-instruct (128k)", - "family": "phi", - "sources": [ - "models.dev" - ], - "providers": [ - "azure" - ], - "aliases": [ - "azure/phi-3-mini-128k-instruct" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 128000, - "outputTokens": 4096, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "temperature": true, - "toolCalling": false, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "azure", - "model": "phi-3-mini-128k-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.13, - "output": 0.52 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Phi-3-mini-instruct (128k)" - ], - "families": [ - "phi" - ], - "knowledgeCutoff": "2023-10", - "releaseDate": "2024-04-23", - "lastUpdated": "2024-04-23", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "phi-3-mini-128k-instruct", - "modelKey": "phi-3-mini-128k-instruct", - "displayName": "Phi-3-mini-instruct (128k)", - "family": "phi", - "metadata": { - "knowledgeCutoff": "2023-10", - "lastUpdated": "2024-04-23", - "openWeights": true, - "releaseDate": "2024-04-23" - } - } - ] - }, - { - "id": "azure/phi-3-mini-4k-instruct", - "provider": "azure", - "model": "phi-3-mini-4k-instruct", - "displayName": "Phi-3-mini-instruct (4k)", - "family": "phi", - "sources": [ - "models.dev" - ], - "providers": [ - "azure" - ], - "aliases": [ - "azure/phi-3-mini-4k-instruct" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 4096, - "outputTokens": 1024, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "temperature": true, - "toolCalling": false, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "azure", - "model": "phi-3-mini-4k-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.13, - "output": 0.52 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Phi-3-mini-instruct (4k)" - ], - "families": [ - "phi" - ], - "knowledgeCutoff": "2023-10", - "releaseDate": "2024-04-23", - "lastUpdated": "2024-04-23", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "phi-3-mini-4k-instruct", - "modelKey": "phi-3-mini-4k-instruct", - "displayName": "Phi-3-mini-instruct (4k)", - "family": "phi", - "metadata": { - "knowledgeCutoff": "2023-10", - "lastUpdated": "2024-04-23", - "openWeights": true, - "releaseDate": "2024-04-23" - } - } - ] - }, - { - "id": "azure/phi-3-small-128k-instruct", - "provider": "azure", - "model": "phi-3-small-128k-instruct", - "displayName": "Phi-3-small-instruct (128k)", - "family": "phi", - "sources": [ - "models.dev" - ], - "providers": [ - "azure" - ], - "aliases": [ - "azure/phi-3-small-128k-instruct" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 128000, - "outputTokens": 4096, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "temperature": true, - "toolCalling": false, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "azure", - "model": "phi-3-small-128k-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.15, - "output": 0.6 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Phi-3-small-instruct (128k)" - ], - "families": [ - "phi" - ], - "knowledgeCutoff": "2023-10", - "releaseDate": "2024-04-23", - "lastUpdated": "2024-04-23", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "phi-3-small-128k-instruct", - "modelKey": "phi-3-small-128k-instruct", - "displayName": "Phi-3-small-instruct (128k)", - "family": "phi", - "metadata": { - "knowledgeCutoff": "2023-10", - "lastUpdated": "2024-04-23", - "openWeights": true, - "releaseDate": "2024-04-23" - } - } - ] - }, - { - "id": "azure/phi-3-small-8k-instruct", - "provider": "azure", - "model": "phi-3-small-8k-instruct", - "displayName": "Phi-3-small-instruct (8k)", - "family": "phi", - "sources": [ - "models.dev" - ], - "providers": [ - "azure" - ], - "aliases": [ - "azure/phi-3-small-8k-instruct" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 8192, - "outputTokens": 2048, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "temperature": true, - "toolCalling": false, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "azure", - "model": "phi-3-small-8k-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.15, - "output": 0.6 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Phi-3-small-instruct (8k)" - ], - "families": [ - "phi" - ], - "knowledgeCutoff": "2023-10", - "releaseDate": "2024-04-23", - "lastUpdated": "2024-04-23", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "phi-3-small-8k-instruct", - "modelKey": "phi-3-small-8k-instruct", - "displayName": "Phi-3-small-instruct (8k)", - "family": "phi", - "metadata": { - "knowledgeCutoff": "2023-10", - "lastUpdated": "2024-04-23", - "openWeights": true, - "releaseDate": "2024-04-23" - } - } - ] - }, - { - "id": "azure/phi-3.5-mini-instruct", - "provider": "azure", - "model": "phi-3.5-mini-instruct", - "displayName": "Phi-3.5-mini-instruct", - "family": "phi", - "sources": [ - "models.dev" - ], - "providers": [ - "azure" - ], - "aliases": [ - "azure/phi-3.5-mini-instruct" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 128000, - "outputTokens": 4096, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "temperature": true, - "toolCalling": false, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "azure", - "model": "phi-3.5-mini-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.13, - "output": 0.52 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Phi-3.5-mini-instruct" - ], - "families": [ - "phi" - ], - "knowledgeCutoff": "2023-10", - "releaseDate": "2024-08-20", - "lastUpdated": "2024-08-20", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "phi-3.5-mini-instruct", - "modelKey": "phi-3.5-mini-instruct", - "displayName": "Phi-3.5-mini-instruct", - "family": "phi", - "metadata": { - "knowledgeCutoff": "2023-10", - "lastUpdated": "2024-08-20", - "openWeights": true, - "releaseDate": "2024-08-20" - } - } - ] - }, - { - "id": "azure/phi-3.5-moe-instruct", - "provider": "azure", - "model": "phi-3.5-moe-instruct", - "displayName": "Phi-3.5-MoE-instruct", - "family": "phi", - "sources": [ - "models.dev" - ], - "providers": [ - "azure" - ], - "aliases": [ - "azure/phi-3.5-moe-instruct" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 128000, - "outputTokens": 4096, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "temperature": true, - "toolCalling": false, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "azure", - "model": "phi-3.5-moe-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.16, - "output": 0.64 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Phi-3.5-MoE-instruct" - ], - "families": [ - "phi" - ], - "knowledgeCutoff": "2023-10", - "releaseDate": "2024-08-20", - "lastUpdated": "2024-08-20", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "phi-3.5-moe-instruct", - "modelKey": "phi-3.5-moe-instruct", - "displayName": "Phi-3.5-MoE-instruct", - "family": "phi", - "metadata": { - "knowledgeCutoff": "2023-10", - "lastUpdated": "2024-08-20", - "openWeights": true, - "releaseDate": "2024-08-20" - } - } - ] - }, { "id": "azure/phi-4", "provider": "azure", @@ -130608,6 +133085,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, @@ -131399,6 +133878,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -131494,6 +133974,8 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite1h": 20, + "cacheWrite5m": 12.5, "input": 10, "output": 50 }, @@ -131501,9 +133983,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00002 } } ] @@ -131593,11 +134072,10 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite1h": 2, + "cacheWrite5m": 1.25, "input": 1, "output": 5 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000002 } } ] @@ -131691,11 +134169,10 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite1h": 2, + "cacheWrite5m": 1.25, "input": 1, "output": 5 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000002 } } ] @@ -131787,6 +134264,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 }, @@ -131882,6 +134360,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 }, @@ -131978,6 +134457,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -131985,9 +134466,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } } ] @@ -132079,6 +134557,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -132086,9 +134566,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } } ] @@ -132182,6 +134659,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -132189,9 +134668,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } } ] @@ -132285,6 +134761,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -132292,9 +134770,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } } ] @@ -132315,6 +134790,108 @@ } ] }, + { + "id": "bedrock-converse/anthropic.claude-opus-5", + "provider": "bedrock-converse", + "model": "anthropic.claude-opus-5", + "mode": "chat", + "sources": [ + "litellm" + ], + "providers": [ + "bedrock_converse" + ], + "aliases": [ + "bedrock_converse/anthropic.claude-opus-5" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1000000, + "inputTokens": 1000000, + "maxTokens": 128000, + "outputTokens": 128000, + "supports1MContext": true + }, + "modalities": { + "input": [ + "image", + "pdf", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "adaptiveThinking": true, + "assistantPrefill": false, + "audioInput": false, + "audioOutput": false, + "computerUse": true, + "embedding": false, + "functionCalling": true, + "imageGeneration": false, + "imageInput": true, + "imageOutput": false, + "maxReasoningEffort": true, + "moderation": false, + "nativeStructuredOutput": true, + "pdfInput": true, + "promptCaching": true, + "reasoning": true, + "rerank": false, + "responseSchema": true, + "samplingParams": false, + "speech": false, + "toolChoice": true, + "transcription": false, + "videoInput": false, + "vision": true, + "xhighReasoningEffort": true, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "litellm", + "provider": "bedrock_converse", + "model": "anthropic.claude-opus-5", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + }, + "searchContextPerQuery": { + "search_context_size_high": 0.01, + "search_context_size_low": 0.01, + "search_context_size_medium": 0.01 + } + } + ] + }, + "metadata": { + "modes": [ + "chat" + ], + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "litellm", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "provider": "bedrock_converse", + "model": "anthropic.claude-opus-5", + "mode": "chat" + } + ] + }, { "id": "bedrock-converse/anthropic.claude-sonnet-4-20250514-v1:0", "provider": "bedrock-converse", @@ -132383,6 +134960,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -132485,6 +135063,8 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite1h": 6, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -132494,7 +135074,6 @@ "search_context_size_medium": 0.01 }, "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000006, "input_cost_per_token_above_200k_tokens": 0.000006, "output_cost_per_token_above_200k_tokens": 0.0000225, "cache_creation_input_token_cost_above_200k_tokens": 0.0000075, @@ -132591,6 +135170,8 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite1h": 6, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -132598,9 +135179,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000006 } } ] @@ -132694,6 +135272,8 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite1h": 4, + "cacheWrite5m": 2.5, "input": 2, "output": 10 }, @@ -132701,9 +135281,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000004 } } ] @@ -133219,6 +135796,7 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 1.375, + "cacheWrite5m": 1.375, "input": 1.1, "output": 5.5 } @@ -133312,6 +135890,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -133414,11 +135993,10 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 1.375, + "cacheWrite1h": 2.2, + "cacheWrite5m": 1.375, "input": 1.1, "output": 5.5 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.0000022 } } ] @@ -133510,6 +136088,8 @@ "per1MTokens": { "cacheRead": 0.55, "cacheWrite": 6.875, + "cacheWrite1h": 11, + "cacheWrite5m": 6.875, "input": 5.5, "output": 27.5 }, @@ -133517,9 +136097,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000011 } } ] @@ -133613,6 +136190,8 @@ "per1MTokens": { "cacheRead": 0.55, "cacheWrite": 6.875, + "cacheWrite1h": 11, + "cacheWrite5m": 6.875, "input": 5.5, "output": 27.5 }, @@ -133620,9 +136199,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000011 } } ] @@ -133716,6 +136292,8 @@ "per1MTokens": { "cacheRead": 0.55, "cacheWrite": 6.875, + "cacheWrite1h": 11, + "cacheWrite5m": 6.875, "input": 5.5, "output": 27.5 }, @@ -133723,9 +136301,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000011 } } ] @@ -133746,6 +136321,108 @@ } ] }, + { + "id": "bedrock-converse/au.anthropic.claude-opus-5", + "provider": "bedrock-converse", + "model": "au.anthropic.claude-opus-5", + "mode": "chat", + "sources": [ + "litellm" + ], + "providers": [ + "bedrock_converse" + ], + "aliases": [ + "bedrock_converse/au.anthropic.claude-opus-5" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1000000, + "inputTokens": 1000000, + "maxTokens": 128000, + "outputTokens": 128000, + "supports1MContext": true + }, + "modalities": { + "input": [ + "image", + "pdf", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "adaptiveThinking": true, + "assistantPrefill": false, + "audioInput": false, + "audioOutput": false, + "computerUse": true, + "embedding": false, + "functionCalling": true, + "imageGeneration": false, + "imageInput": true, + "imageOutput": false, + "maxReasoningEffort": true, + "moderation": false, + "nativeStructuredOutput": true, + "pdfInput": true, + "promptCaching": true, + "reasoning": true, + "rerank": false, + "responseSchema": true, + "samplingParams": false, + "speech": false, + "toolChoice": true, + "transcription": false, + "videoInput": false, + "vision": true, + "xhighReasoningEffort": true, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "litellm", + "provider": "bedrock_converse", + "model": "au.anthropic.claude-opus-5", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "cacheRead": 0.55, + "cacheWrite": 6.875, + "cacheWrite1h": 11, + "cacheWrite5m": 6.875, + "input": 5.5, + "output": 27.5 + }, + "searchContextPerQuery": { + "search_context_size_high": 0.01, + "search_context_size_low": 0.01, + "search_context_size_medium": 0.01 + } + } + ] + }, + "metadata": { + "modes": [ + "chat" + ], + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "litellm", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "provider": "bedrock_converse", + "model": "au.anthropic.claude-opus-5", + "mode": "chat" + } + ] + }, { "id": "bedrock-converse/au.anthropic.claude-sonnet-4-5-20250929-v1:0", "provider": "bedrock-converse", @@ -133815,6 +136492,8 @@ "per1MTokens": { "cacheRead": 0.33, "cacheWrite": 4.125, + "cacheWrite1h": 6.6, + "cacheWrite5m": 4.125, "input": 3.3, "output": 16.5 }, @@ -133824,7 +136503,6 @@ "search_context_size_medium": 0.01 }, "extra": { - "cache_creation_input_token_cost_above_1hr": 0.0000066, "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, @@ -133921,6 +136599,8 @@ "per1MTokens": { "cacheRead": 0.33, "cacheWrite": 4.125, + "cacheWrite1h": 6.6, + "cacheWrite5m": 4.125, "input": 3.3, "output": 16.5 }, @@ -133928,9 +136608,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.0000066 } } ] @@ -134024,6 +136701,8 @@ "per1MTokens": { "cacheRead": 0.22, "cacheWrite": 2.75, + "cacheWrite1h": 4.4, + "cacheWrite5m": 2.75, "input": 2.2, "output": 11 }, @@ -134031,9 +136710,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.0000044 } } ] @@ -134722,6 +137398,8 @@ "per1MTokens": { "cacheRead": 1.1, "cacheWrite": 13.75, + "cacheWrite1h": 22, + "cacheWrite5m": 13.75, "input": 11, "output": 55 }, @@ -134729,9 +137407,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000022 } } ] @@ -134821,11 +137496,10 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 1.375, + "cacheWrite1h": 2.2, + "cacheWrite5m": 1.375, "input": 1.1, "output": 5.5 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.0000022 } } ] @@ -134919,6 +137593,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 }, @@ -135014,6 +137689,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 }, @@ -135110,6 +137786,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -135208,6 +137885,8 @@ "per1MTokens": { "cacheRead": 0.55, "cacheWrite": 6.875, + "cacheWrite1h": 11, + "cacheWrite5m": 6.875, "input": 5.5, "output": 27.5 }, @@ -135215,9 +137894,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000011 } } ] @@ -135311,6 +137987,8 @@ "per1MTokens": { "cacheRead": 0.55, "cacheWrite": 6.875, + "cacheWrite1h": 11, + "cacheWrite5m": 6.875, "input": 5.5, "output": 27.5 }, @@ -135318,9 +137996,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000011 } } ] @@ -135414,6 +138089,8 @@ "per1MTokens": { "cacheRead": 0.55, "cacheWrite": 6.875, + "cacheWrite1h": 11, + "cacheWrite5m": 6.875, "input": 5.5, "output": 27.5 }, @@ -135421,9 +138098,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000011 } } ] @@ -135444,6 +138118,108 @@ } ] }, + { + "id": "bedrock-converse/eu.anthropic.claude-opus-5", + "provider": "bedrock-converse", + "model": "eu.anthropic.claude-opus-5", + "mode": "chat", + "sources": [ + "litellm" + ], + "providers": [ + "bedrock_converse" + ], + "aliases": [ + "bedrock_converse/eu.anthropic.claude-opus-5" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1000000, + "inputTokens": 1000000, + "maxTokens": 128000, + "outputTokens": 128000, + "supports1MContext": true + }, + "modalities": { + "input": [ + "image", + "pdf", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "adaptiveThinking": true, + "assistantPrefill": false, + "audioInput": false, + "audioOutput": false, + "computerUse": true, + "embedding": false, + "functionCalling": true, + "imageGeneration": false, + "imageInput": true, + "imageOutput": false, + "maxReasoningEffort": true, + "moderation": false, + "nativeStructuredOutput": true, + "pdfInput": true, + "promptCaching": true, + "reasoning": true, + "rerank": false, + "responseSchema": true, + "samplingParams": false, + "speech": false, + "toolChoice": true, + "transcription": false, + "videoInput": false, + "vision": true, + "xhighReasoningEffort": true, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "litellm", + "provider": "bedrock_converse", + "model": "eu.anthropic.claude-opus-5", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "cacheRead": 0.55, + "cacheWrite": 6.875, + "cacheWrite1h": 11, + "cacheWrite5m": 6.875, + "input": 5.5, + "output": 27.5 + }, + "searchContextPerQuery": { + "search_context_size_high": 0.01, + "search_context_size_low": 0.01, + "search_context_size_medium": 0.01 + } + } + ] + }, + "metadata": { + "modes": [ + "chat" + ], + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "litellm", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "provider": "bedrock_converse", + "model": "eu.anthropic.claude-opus-5", + "mode": "chat" + } + ] + }, { "id": "bedrock-converse/eu.anthropic.claude-sonnet-4-20250514-v1:0", "provider": "bedrock-converse", @@ -135512,6 +138288,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -135614,6 +138391,8 @@ "per1MTokens": { "cacheRead": 0.33, "cacheWrite": 4.125, + "cacheWrite1h": 6.6, + "cacheWrite5m": 4.125, "input": 3.3, "output": 16.5 }, @@ -135623,7 +138402,6 @@ "search_context_size_medium": 0.01 }, "extra": { - "cache_creation_input_token_cost_above_1hr": 0.0000066, "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, @@ -135720,6 +138498,8 @@ "per1MTokens": { "cacheRead": 0.33, "cacheWrite": 4.125, + "cacheWrite1h": 6.6, + "cacheWrite5m": 4.125, "input": 3.3, "output": 16.5 }, @@ -135727,9 +138507,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.0000066 } } ] @@ -135823,6 +138600,8 @@ "per1MTokens": { "cacheRead": 0.22, "cacheWrite": 2.75, + "cacheWrite1h": 4.4, + "cacheWrite5m": 2.75, "input": 2.2, "output": 11 }, @@ -135830,9 +138609,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.0000044 } } ] @@ -136174,6 +138950,8 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 12.5, + "cacheWrite1h": 20, + "cacheWrite5m": 12.5, "input": 10, "output": 50 }, @@ -136181,9 +138959,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00002 } } ] @@ -136273,11 +139048,10 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite1h": 2, + "cacheWrite5m": 1.25, "input": 1, "output": 5 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000002 } } ] @@ -136370,6 +139144,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -136377,9 +139153,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } } ] @@ -136471,6 +139244,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -136478,9 +139253,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } } ] @@ -136574,6 +139346,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -136581,9 +139355,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } } ] @@ -136677,6 +139448,8 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -136684,9 +139457,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.00001 } } ] @@ -136707,6 +139477,108 @@ } ] }, + { + "id": "bedrock-converse/global.anthropic.claude-opus-5", + "provider": "bedrock-converse", + "model": "global.anthropic.claude-opus-5", + "mode": "chat", + "sources": [ + "litellm" + ], + "providers": [ + "bedrock_converse" + ], + "aliases": [ + "bedrock_converse/global.anthropic.claude-opus-5" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1000000, + "inputTokens": 1000000, + "maxTokens": 128000, + "outputTokens": 128000, + "supports1MContext": true + }, + "modalities": { + "input": [ + "image", + "pdf", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "adaptiveThinking": true, + "assistantPrefill": false, + "audioInput": false, + "audioOutput": false, + "computerUse": true, + "embedding": false, + "functionCalling": true, + "imageGeneration": false, + "imageInput": true, + "imageOutput": false, + "maxReasoningEffort": true, + "moderation": false, + "nativeStructuredOutput": true, + "pdfInput": true, + "promptCaching": true, + "reasoning": true, + "rerank": false, + "responseSchema": true, + "samplingParams": false, + "speech": false, + "toolChoice": true, + "transcription": false, + "videoInput": false, + "vision": true, + "xhighReasoningEffort": true, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "litellm", + "provider": "bedrock_converse", + "model": "global.anthropic.claude-opus-5", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite1h": 10, + "cacheWrite5m": 6.25, + "input": 5, + "output": 25 + }, + "searchContextPerQuery": { + "search_context_size_high": 0.01, + "search_context_size_low": 0.01, + "search_context_size_medium": 0.01 + } + } + ] + }, + "metadata": { + "modes": [ + "chat" + ], + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "litellm", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "provider": "bedrock_converse", + "model": "global.anthropic.claude-opus-5", + "mode": "chat" + } + ] + }, { "id": "bedrock-converse/global.anthropic.claude-sonnet-4-20250514-v1:0", "provider": "bedrock-converse", @@ -136775,6 +139647,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -136877,6 +139750,8 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite1h": 6, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -136886,7 +139761,6 @@ "search_context_size_medium": 0.01 }, "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000006, "input_cost_per_token_above_200k_tokens": 0.000006, "output_cost_per_token_above_200k_tokens": 0.0000225, "cache_creation_input_token_cost_above_200k_tokens": 0.0000075, @@ -136983,6 +139857,8 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite1h": 6, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -136990,9 +139866,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000006 } } ] @@ -137086,6 +139959,8 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2.5, + "cacheWrite1h": 4, + "cacheWrite5m": 2.5, "input": 2, "output": 10 }, @@ -137093,9 +139968,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000004 } } ] @@ -137428,11 +140300,10 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 1.375, + "cacheWrite1h": 2.2, + "cacheWrite5m": 1.375, "input": 1.1, "output": 5.5 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.0000022 } } ] @@ -137530,6 +140401,7 @@ "per1MTokens": { "cacheRead": 0.55, "cacheWrite": 6.875, + "cacheWrite5m": 6.875, "input": 5.5, "output": 27.5 }, @@ -137630,6 +140502,8 @@ "per1MTokens": { "cacheRead": 0.55, "cacheWrite": 6.875, + "cacheWrite1h": 11, + "cacheWrite5m": 6.875, "input": 5.5, "output": 27.5 }, @@ -137637,9 +140511,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000011 } } ] @@ -137660,6 +140531,108 @@ } ] }, + { + "id": "bedrock-converse/jp.anthropic.claude-opus-5", + "provider": "bedrock-converse", + "model": "jp.anthropic.claude-opus-5", + "mode": "chat", + "sources": [ + "litellm" + ], + "providers": [ + "bedrock_converse" + ], + "aliases": [ + "bedrock_converse/jp.anthropic.claude-opus-5" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1000000, + "inputTokens": 1000000, + "maxTokens": 128000, + "outputTokens": 128000, + "supports1MContext": true + }, + "modalities": { + "input": [ + "image", + "pdf", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "adaptiveThinking": true, + "assistantPrefill": false, + "audioInput": false, + "audioOutput": false, + "computerUse": true, + "embedding": false, + "functionCalling": true, + "imageGeneration": false, + "imageInput": true, + "imageOutput": false, + "maxReasoningEffort": true, + "moderation": false, + "nativeStructuredOutput": true, + "pdfInput": true, + "promptCaching": true, + "reasoning": true, + "rerank": false, + "responseSchema": true, + "samplingParams": false, + "speech": false, + "toolChoice": true, + "transcription": false, + "videoInput": false, + "vision": true, + "xhighReasoningEffort": true, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "litellm", + "provider": "bedrock_converse", + "model": "jp.anthropic.claude-opus-5", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "cacheRead": 0.55, + "cacheWrite": 6.875, + "cacheWrite1h": 11, + "cacheWrite5m": 6.875, + "input": 5.5, + "output": 27.5 + }, + "searchContextPerQuery": { + "search_context_size_high": 0.01, + "search_context_size_low": 0.01, + "search_context_size_medium": 0.01 + } + } + ] + }, + "metadata": { + "modes": [ + "chat" + ], + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "litellm", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "provider": "bedrock_converse", + "model": "jp.anthropic.claude-opus-5", + "mode": "chat" + } + ] + }, { "id": "bedrock-converse/jp.anthropic.claude-sonnet-4-5-20250929-v1:0", "provider": "bedrock-converse", @@ -137729,6 +140702,8 @@ "per1MTokens": { "cacheRead": 0.33, "cacheWrite": 4.125, + "cacheWrite1h": 6.6, + "cacheWrite5m": 4.125, "input": 3.3, "output": 16.5 }, @@ -137738,7 +140713,6 @@ "search_context_size_medium": 0.01 }, "extra": { - "cache_creation_input_token_cost_above_1hr": 0.0000066, "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, @@ -137835,6 +140809,8 @@ "per1MTokens": { "cacheRead": 0.33, "cacheWrite": 4.125, + "cacheWrite1h": 6.6, + "cacheWrite5m": 4.125, "input": 3.3, "output": 16.5 }, @@ -137842,9 +140818,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.0000066 } } ] @@ -137938,6 +140911,8 @@ "per1MTokens": { "cacheRead": 0.22, "cacheWrite": 2.75, + "cacheWrite1h": 4.4, + "cacheWrite5m": 2.75, "input": 2.2, "output": 11 }, @@ -137945,9 +140920,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.0000044 } } ] @@ -139104,11 +142076,12 @@ "per1MTokens": { "cacheRead": 0.36, "cacheWrite": 4.5, + "cacheWrite1h": 7.2, + "cacheWrite5m": 4.5, "input": 3.6, "output": 18 }, "extra": { - "cache_creation_input_token_cost_above_1hr": 0.0000072, "input_cost_per_token_above_200k_tokens": 0.0000072, "output_cost_per_token_above_200k_tokens": 0.000027, "cache_creation_input_token_cost_above_200k_tokens": 0.000009, @@ -139712,6 +142685,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -139807,6 +142781,8 @@ "per1MTokens": { "cacheRead": 1.1, "cacheWrite": 13.75, + "cacheWrite1h": 22, + "cacheWrite5m": 13.75, "input": 11, "output": 55 }, @@ -139814,9 +142790,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000022 } } ] @@ -139906,11 +142879,10 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 1.375, + "cacheWrite1h": 2.2, + "cacheWrite5m": 1.375, "input": 1.1, "output": 5.5 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.0000022 } } ] @@ -140002,6 +142974,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 }, @@ -140097,6 +143070,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 }, @@ -140193,6 +143167,8 @@ "per1MTokens": { "cacheRead": 0.55, "cacheWrite": 6.875, + "cacheWrite1h": 11, + "cacheWrite5m": 6.875, "input": 5.5, "output": 27.5 }, @@ -140200,9 +143176,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000011 } } ] @@ -140294,6 +143267,8 @@ "per1MTokens": { "cacheRead": 0.55, "cacheWrite": 6.875, + "cacheWrite1h": 11, + "cacheWrite5m": 6.875, "input": 5.5, "output": 27.5 }, @@ -140301,9 +143276,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000011 } } ] @@ -140397,6 +143369,8 @@ "per1MTokens": { "cacheRead": 0.55, "cacheWrite": 6.875, + "cacheWrite1h": 11, + "cacheWrite5m": 6.875, "input": 5.5, "output": 27.5 }, @@ -140404,9 +143378,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000011 } } ] @@ -140500,6 +143471,8 @@ "per1MTokens": { "cacheRead": 0.55, "cacheWrite": 6.875, + "cacheWrite1h": 11, + "cacheWrite5m": 6.875, "input": 5.5, "output": 27.5 }, @@ -140507,9 +143480,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.000011 } } ] @@ -140530,6 +143500,108 @@ } ] }, + { + "id": "bedrock-converse/us.anthropic.claude-opus-5", + "provider": "bedrock-converse", + "model": "us.anthropic.claude-opus-5", + "mode": "chat", + "sources": [ + "litellm" + ], + "providers": [ + "bedrock_converse" + ], + "aliases": [ + "bedrock_converse/us.anthropic.claude-opus-5" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1000000, + "inputTokens": 1000000, + "maxTokens": 128000, + "outputTokens": 128000, + "supports1MContext": true + }, + "modalities": { + "input": [ + "image", + "pdf", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "adaptiveThinking": true, + "assistantPrefill": false, + "audioInput": false, + "audioOutput": false, + "computerUse": true, + "embedding": false, + "functionCalling": true, + "imageGeneration": false, + "imageInput": true, + "imageOutput": false, + "maxReasoningEffort": true, + "moderation": false, + "nativeStructuredOutput": true, + "pdfInput": true, + "promptCaching": true, + "reasoning": true, + "rerank": false, + "responseSchema": true, + "samplingParams": false, + "speech": false, + "toolChoice": true, + "transcription": false, + "videoInput": false, + "vision": true, + "xhighReasoningEffort": true, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "litellm", + "provider": "bedrock_converse", + "model": "us.anthropic.claude-opus-5", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "cacheRead": 0.55, + "cacheWrite": 6.875, + "cacheWrite1h": 11, + "cacheWrite5m": 6.875, + "input": 5.5, + "output": 27.5 + }, + "searchContextPerQuery": { + "search_context_size_high": 0.01, + "search_context_size_low": 0.01, + "search_context_size_medium": 0.01 + } + } + ] + }, + "metadata": { + "modes": [ + "chat" + ], + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "litellm", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "provider": "bedrock_converse", + "model": "us.anthropic.claude-opus-5", + "mode": "chat" + } + ] + }, { "id": "bedrock-converse/us.anthropic.claude-sonnet-4-20250514-v1:0", "provider": "bedrock-converse", @@ -140598,6 +143670,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -140700,6 +143773,8 @@ "per1MTokens": { "cacheRead": 0.33, "cacheWrite": 4.125, + "cacheWrite1h": 6.6, + "cacheWrite5m": 4.125, "input": 3.3, "output": 16.5 }, @@ -140709,7 +143784,6 @@ "search_context_size_medium": 0.01 }, "extra": { - "cache_creation_input_token_cost_above_1hr": 0.0000066, "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, @@ -140806,6 +143880,8 @@ "per1MTokens": { "cacheRead": 0.33, "cacheWrite": 4.125, + "cacheWrite1h": 6.6, + "cacheWrite5m": 4.125, "input": 3.3, "output": 16.5 }, @@ -140813,9 +143889,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.0000066 } } ] @@ -140909,6 +143982,8 @@ "per1MTokens": { "cacheRead": 0.22, "cacheWrite": 2.75, + "cacheWrite1h": 4.4, + "cacheWrite5m": 2.75, "input": 2.2, "output": 11 }, @@ -140916,9 +143991,6 @@ "search_context_size_high": 0.01, "search_context_size_low": 0.01, "search_context_size_medium": 0.01 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0.0000044 } } ] @@ -142539,6 +145611,7 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 1.375, + "cacheWrite5m": 1.375, "input": 1.1, "output": 6.6 } @@ -142634,6 +145707,7 @@ "per1MTokens": { "cacheRead": 0.55, "cacheWrite": 6.875, + "cacheWrite5m": 6.875, "input": 5.5, "output": 33 } @@ -142729,6 +145803,7 @@ "per1MTokens": { "cacheRead": 0.275, "cacheWrite": 3.4375, + "cacheWrite5m": 3.4375, "input": 2.75, "output": 16.5 } @@ -143921,6 +146996,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -144305,6 +147382,7 @@ "per1MTokens": { "cacheRead": 2.25, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 2.25, "output": 2.75 } @@ -144373,6 +147451,98 @@ } ] }, + { + "id": "chutes/nemotron-3-nano-omni-30b-tee", + "provider": "chutes", + "model": "nemotron-3-nano-omni-30b-tee", + "displayName": "Nemotron 3 Nano Omni 30B TEE", + "family": "nemotron", + "sources": [ + "models.dev" + ], + "providers": [ + "chutes" + ], + "aliases": [ + "chutes/Nemotron-3-Nano-Omni-30B-TEE" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 131072, + "outputTokens": 0, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": false, + "temperature": true, + "toolCalling": false, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "chutes", + "model": "Nemotron-3-Nano-Omni-30B-TEE", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.01225, + "input": 0.0245, + "output": 0.0978 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Nemotron 3 Nano Omni 30B TEE" + ], + "families": [ + "nemotron" + ], + "releaseDate": "2026-07-23", + "lastUpdated": "2026-07-23", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "chutes", + "providerName": "Chutes", + "providerApi": "https://llm.chutes.ai/v1", + "providerDoc": "https://llm.chutes.ai/v1/models", + "model": "Nemotron-3-Nano-Omni-30B-TEE", + "modelKey": "Nemotron-3-Nano-Omni-30B-TEE", + "displayName": "Nemotron 3 Nano Omni 30B TEE", + "family": "nemotron", + "metadata": { + "lastUpdated": "2026-07-23", + "openWeights": true, + "releaseDate": "2026-07-23" + } + } + ] + }, { "id": "clarifai/mm-poly-8b", "provider": "clarifai", @@ -144741,6 +147911,231 @@ } ] }, + { + "id": "cline-pass/mimo-v2.5", + "provider": "cline-pass", + "model": "mimo-v2.5", + "displayName": "MiMo-V2.5", + "family": "mimo", + "sources": [ + "models.dev" + ], + "providers": [ + "cline-pass" + ], + "aliases": [ + "cline-pass/mimo-v2.5" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1048576, + "outputTokens": 131072, + "supports1MContext": true + }, + "modalities": { + "input": [ + "audio", + "image", + "text", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": true, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "noneReasoningEffort": true, + "xhighReasoningEffort": true, + "temperature": true, + "toolCalling": true, + "videoInput": true, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "cline-pass", + "model": "cline-pass/mimo-v2.5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.0028, + "input": 0.14, + "output": 0.28 + } + } + ] + }, + "metadata": { + "displayNames": [ + "MiMo-V2.5" + ], + "families": [ + "mimo" + ], + "knowledgeCutoff": "2024-12", + "releaseDate": "2026-04-22", + "lastUpdated": "2026-04-22", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "cline-pass", + "providerName": "ClinePass", + "providerApi": "https://api.cline.bot/api/v1", + "providerDoc": "https://docs.cline.bot/getting-started/clinepass", + "model": "cline-pass/mimo-v2.5", + "modelKey": "cline-pass/mimo-v2.5", + "displayName": "MiMo-V2.5", + "family": "mimo", + "metadata": { + "knowledgeCutoff": "2024-12", + "lastUpdated": "2026-04-22", + "openWeights": true, + "releaseDate": "2026-04-22", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high", + "xhigh" + ] + } + ] + } + } + ] + }, + { + "id": "cline-pass/mimo-v2.5-pro", + "provider": "cline-pass", + "model": "mimo-v2.5-pro", + "displayName": "MiMo-V2.5-Pro", + "family": "mimo", + "sources": [ + "models.dev" + ], + "providers": [ + "cline-pass" + ], + "aliases": [ + "cline-pass/mimo-v2.5-pro" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1048576, + "outputTokens": 131072, + "supports1MContext": true + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "noneReasoningEffort": true, + "xhighReasoningEffort": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "cline-pass", + "model": "cline-pass/mimo-v2.5-pro", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.0145, + "input": 1.74, + "output": 3.48 + } + } + ] + }, + "metadata": { + "displayNames": [ + "MiMo-V2.5-Pro" + ], + "families": [ + "mimo" + ], + "knowledgeCutoff": "2024-12", + "releaseDate": "2026-04-22", + "lastUpdated": "2026-04-22", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "cline-pass", + "providerName": "ClinePass", + "providerApi": "https://api.cline.bot/api/v1", + "providerDoc": "https://docs.cline.bot/getting-started/clinepass", + "model": "cline-pass/mimo-v2.5-pro", + "modelKey": "cline-pass/mimo-v2.5-pro", + "displayName": "MiMo-V2.5-Pro", + "family": "mimo", + "metadata": { + "knowledgeCutoff": "2024-12", + "lastUpdated": "2026-04-22", + "openWeights": true, + "releaseDate": "2026-04-22", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high", + "xhigh" + ] + } + ] + } + } + ] + }, { "id": "cloudferro-sherlock/bielik-11b-v2.6-instruct", "provider": "cloudferro-sherlock", @@ -146128,6 +149523,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -146597,6 +149994,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -148173,7 +151572,9 @@ "toolCalling": true, "videoInput": false, "supports1MContext": false, - "lowReasoningEffort": true + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true }, "pricing": { "currency": "USD", @@ -150738,6 +154139,7 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -151638,6 +155040,112 @@ } ] }, + { + "id": "cortecs/hy3", + "provider": "cortecs", + "model": "hy3", + "displayName": "Hy3", + "family": "Hy", + "sources": [ + "models.dev" + ], + "providers": [ + "cortecs" + ], + "aliases": [ + "cortecs/hy3" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 262144, + "outputTokens": 64000, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "lowReasoningEffort": true, + "highReasoningEffort": true, + "noneReasoningEffort": true, + "structuredOutput": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "cortecs", + "model": "hy3", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.103, + "input": 0.41, + "output": 1.025 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Hy3" + ], + "families": [ + "Hy" + ], + "releaseDate": "2026-07-06", + "lastUpdated": "2026-07-06", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "cortecs", + "providerName": "Cortecs", + "providerApi": "https://api.cortecs.ai/v1", + "providerDoc": "https://api.cortecs.ai/v1/models", + "model": "hy3", + "modelKey": "hy3", + "displayName": "Hy3", + "family": "Hy", + "metadata": { + "lastUpdated": "2026-07-06", + "openWeights": true, + "releaseDate": "2026-07-06", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "high" + ] + } + ] + } + } + ] + }, { "id": "cortecs/intellect-3", "provider": "cortecs", @@ -151859,6 +155367,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -152313,6 +155823,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -152398,6 +155910,113 @@ } ] }, + { + "id": "crossmodel/hy3", + "provider": "crossmodel", + "model": "hy3", + "displayName": "Hy3", + "family": "Hy", + "sources": [ + "models.dev" + ], + "providers": [ + "crossmodel" + ], + "aliases": [ + "crossmodel/tencent/hy3" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 262144, + "outputTokens": 262144, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "lowReasoningEffort": true, + "highReasoningEffort": true, + "noneReasoningEffort": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "crossmodel", + "model": "tencent/hy3", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.04, + "cacheWrite": 0.16, + "cacheWrite5m": 0.16, + "input": 0.16, + "output": 0.64 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Hy3" + ], + "families": [ + "Hy" + ], + "releaseDate": "2026-07-06", + "lastUpdated": "2026-07-06", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "crossmodel", + "providerName": "CrossModel", + "providerApi": "https://api.crossmodel.ai/v1", + "providerDoc": "https://www.crossmodel.ai/docs", + "model": "tencent/hy3", + "modelKey": "tencent/hy3", + "displayName": "Hy3", + "family": "Hy", + "metadata": { + "lastUpdated": "2026-07-06", + "openWeights": true, + "releaseDate": "2026-07-06", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "high" + ] + } + ] + } + } + ] + }, { "id": "crossmodel/hy3-preview", "provider": "crossmodel", @@ -152437,6 +156056,7 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -152456,6 +156076,7 @@ "per1MTokens": { "cacheRead": 0.063, "cacheWrite": 0.19, + "cacheWrite5m": 0.19, "input": 0.19, "output": 0.63 }, @@ -152582,6 +156203,7 @@ "per1MTokens": { "cacheRead": 0.004, "cacheWrite": 0.16, + "cacheWrite5m": 0.16, "input": 0.16, "output": 0.32 } @@ -152682,6 +156304,7 @@ "per1MTokens": { "cacheRead": 0.005, "cacheWrite": 0.47, + "cacheWrite5m": 0.47, "input": 0.47, "output": 0.94 } @@ -153069,6 +156692,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -153302,6 +156926,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -153449,6 +157074,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -153583,6 +157209,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -153686,6 +157313,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -153802,6 +157430,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -154041,6 +157670,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -154175,6 +157805,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -154579,6 +158210,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -154690,6 +158323,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -154817,6 +158452,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -154928,6 +158565,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -155139,6 +158778,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -155248,6 +158889,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": false, @@ -155398,6 +159041,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": false, @@ -155545,6 +159190,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": false, @@ -155656,6 +159303,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true, @@ -155781,6 +159430,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true, @@ -155889,6 +159540,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true, @@ -155998,6 +159651,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true, @@ -156124,6 +159779,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true, @@ -156250,6 +159907,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": false, @@ -156378,6 +160037,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true, @@ -156506,6 +160167,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": false, @@ -156656,6 +160319,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": false, @@ -156805,6 +160470,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -156949,6 +160616,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -157180,6 +160849,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true, @@ -160682,6 +164353,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -161008,6 +164681,7 @@ "per1MTokens": { "cacheRead": 0.028, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.28, "output": 0.42 }, @@ -162843,6 +166517,7 @@ "openWeights": false, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, "toolCalling": true, @@ -164245,6 +167920,7 @@ "modelKey": "deepseek-r1", "displayName": "DeepSeek-R1", "family": "deepseek-thinking", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2024-07", "lastUpdated": "2025-01-20", @@ -164262,6 +167938,7 @@ "modelKey": "deepseek-r1", "displayName": "DeepSeek-R1", "family": "deepseek-thinking", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2024-07", "lastUpdated": "2025-01-20", @@ -164688,8 +168365,6 @@ ], "providers": [ "alibaba-cn", - "azure", - "azure-cognitive-services", "cortecs", "crusoe", "deepinfra", @@ -164714,8 +168389,6 @@ "aliases": [ "alibaba-cn/deepseek-r1-0528", "alibaba-cn/siliconflow/deepseek-r1-0528", - "azure-cognitive-services/deepseek-r1-0528", - "azure/deepseek-r1-0528", "cortecs/deepseek-r1-0528", "crusoe/deepseek-ai/DeepSeek-R1-0528", "deepinfra/deepseek-ai/DeepSeek-R1-0528", @@ -164737,7 +168410,7 @@ "submodel/deepseek-ai/DeepSeek-R1-0528", "wandb/deepseek-ai/DeepSeek-R1-0528" ], - "mergedProviderModelRecords": 24, + "mergedProviderModelRecords": 22, "limits": { "contextTokens": 164000, "inputTokens": 164000, @@ -164808,28 +168481,6 @@ "output": 2.18 } }, - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "deepseek-r1-0528", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 1.35, - "output": 5.4 - } - }, - { - "source": "models.dev", - "provider": "azure", - "model": "deepseek-r1-0528", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 1.35, - "output": 5.4 - } - }, { "source": "models.dev", "provider": "cortecs", @@ -164884,6 +168535,7 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 4, + "cacheWrite5m": 4, "input": 2, "output": 8.75 } @@ -165129,7 +168781,7 @@ "top_logprobs", "top_p" ], - "providerModelRecordCount": 24 + "providerModelRecordCount": 22 }, "sourceRecords": [ { @@ -165166,40 +168818,6 @@ "releaseDate": "2025-05-28" } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "deepseek-r1-0528", - "modelKey": "deepseek-r1-0528", - "displayName": "DeepSeek-R1-0528", - "family": "deepseek-thinking", - "metadata": { - "knowledgeCutoff": "2024-07", - "lastUpdated": "2025-05-28", - "openWeights": true, - "releaseDate": "2025-05-28" - } - }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "deepseek-r1-0528", - "modelKey": "deepseek-r1-0528", - "displayName": "DeepSeek-R1-0528", - "family": "deepseek-thinking", - "metadata": { - "knowledgeCutoff": "2024-07", - "lastUpdated": "2025-05-28", - "openWeights": true, - "releaseDate": "2025-05-28" - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -166402,6 +170020,8 @@ "videoInput": false, "supports1MContext": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -169283,6 +172903,7 @@ "per1MTokens": { "cacheRead": 0.07, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.27, "output": 1.1 }, @@ -169659,8 +173280,6 @@ ], "providers": [ "alibaba-cn", - "azure", - "azure-cognitive-services", "azure_ai", "baseten", "cortecs", @@ -169684,8 +173303,6 @@ ], "aliases": [ "alibaba-cn/siliconflow/deepseek-v3-0324", - "azure-cognitive-services/deepseek-v3-0324", - "azure/deepseek-v3-0324", "azure_ai/deepseek-v3-0324", "baseten/deepseek-ai/DeepSeek-V3-0324", "cortecs/deepseek-v3-0324", @@ -169707,7 +173324,7 @@ "submodel/deepseek-ai/DeepSeek-V3-0324", "wandb/deepseek-ai/DeepSeek-V3-0324" ], - "mergedProviderModelRecords": 23, + "mergedProviderModelRecords": 21, "limits": { "contextTokens": 163840, "inputTokens": 163840, @@ -169764,28 +173381,6 @@ "output": 1 } }, - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "deepseek-v3-0324", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 1.14, - "output": 4.56 - } - }, - { - "source": "models.dev", - "provider": "azure", - "model": "deepseek-v3-0324", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 1.14, - "output": 4.56 - } - }, { "source": "models.dev", "provider": "cortecs", @@ -170019,7 +173614,7 @@ "releaseDate": "2024-12-26", "lastUpdated": "2025-11-25", "deprecationDate": "2026-04-14", - "providerModelRecordCount": 23 + "providerModelRecordCount": 21 }, "sourceRecords": [ { @@ -170039,40 +173634,6 @@ "releaseDate": "2024-12-26" } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "deepseek-v3-0324", - "modelKey": "deepseek-v3-0324", - "displayName": "DeepSeek-V3-0324", - "family": "deepseek", - "metadata": { - "knowledgeCutoff": "2024-07", - "lastUpdated": "2025-03-24", - "openWeights": true, - "releaseDate": "2025-03-24" - } - }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "deepseek-v3-0324", - "modelKey": "deepseek-v3-0324", - "displayName": "DeepSeek-V3-0324", - "family": "deepseek", - "metadata": { - "knowledgeCutoff": "2024-07", - "lastUpdated": "2025-03-24", - "openWeights": true, - "releaseDate": "2025-03-24" - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -170750,8 +174311,6 @@ ], "providers": [ "abacus", - "azure", - "azure-cognitive-services", "azure_ai", "baseten", "deepinfra", @@ -170771,8 +174330,6 @@ ], "aliases": [ "abacus/deepseek/deepseek-v3.1", - "azure-cognitive-services/deepseek-v3.1", - "azure/deepseek-v3.1", "azure_ai/deepseek-v3.1", "baseten/deepseek-ai/DeepSeek-V3.1", "deepinfra/deepseek-ai/DeepSeek-V3.1", @@ -170791,7 +174348,7 @@ "vercel/deepseek/deepseek-v3.1", "wandb/deepseek-ai/DeepSeek-V3.1" ], - "mergedProviderModelRecords": 20, + "mergedProviderModelRecords": 18, "limits": { "contextTokens": 164000, "inputTokens": 164000, @@ -170849,28 +174406,6 @@ "output": 1.66 } }, - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "deepseek-v3.1", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.56, - "output": 1.68 - } - }, - { - "source": "models.dev", - "provider": "azure", - "model": "deepseek-v3.1", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.56, - "output": 1.68 - } - }, { "source": "models.dev", "provider": "baseten", @@ -171098,7 +174633,7 @@ "knowledgeCutoff": "2024-07", "releaseDate": "2025-01-20", "lastUpdated": "2025-01-20", - "providerModelRecordCount": 20 + "providerModelRecordCount": 18 }, "sourceRecords": [ { @@ -171118,40 +174653,6 @@ "releaseDate": "2025-01-20" } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "deepseek-v3.1", - "modelKey": "deepseek-v3.1", - "displayName": "DeepSeek-V3.1", - "family": "deepseek", - "metadata": { - "knowledgeCutoff": "2024-07", - "lastUpdated": "2025-08-21", - "openWeights": true, - "releaseDate": "2025-08-21" - } - }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "deepseek-v3.1", - "modelKey": "deepseek-v3.1", - "displayName": "DeepSeek-V3.1", - "family": "deepseek", - "metadata": { - "knowledgeCutoff": "2024-07", - "lastUpdated": "2025-08-21", - "openWeights": true, - "releaseDate": "2025-08-21" - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -171532,6 +175033,9 @@ "modes": [ "chat" ], + "statuses": [ + "deprecated" + ], "releaseDate": "2025-08-28", "lastUpdated": "2025-08-28", "supportedRegions": [ @@ -171550,6 +175054,7 @@ "modelKey": "deepseek-ai/deepseek-v3.1-maas", "displayName": "DeepSeek V3.1", "family": "deepseek", + "status": "deprecated", "metadata": { "lastUpdated": "2025-08-28", "openWeights": true, @@ -172765,6 +176270,8 @@ "responseSchema": true, "webSearch": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "systemMessages": true }, @@ -172995,6 +176502,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 0.45, "reasoningOutput": 0.45 @@ -174673,6 +178181,7 @@ "per1MTokens": { "cacheRead": 0.04, "cacheWrite": 0.5, + "cacheWrite5m": 0.5, "input": 0.4, "output": 2 } @@ -174821,6 +178330,9 @@ "modes": [ "chat" ], + "statuses": [ + "deprecated" + ], "releaseDate": "2025-12-17", "lastUpdated": "2026-04-04", "supportedRegions": [ @@ -174839,6 +178351,7 @@ "modelKey": "deepseek-ai/deepseek-v3.2-maas", "displayName": "DeepSeek V3.2", "family": "deepseek", + "status": "deprecated", "metadata": { "lastUpdated": "2026-04-04", "openWeights": true, @@ -175756,6 +179269,7 @@ ], "providers": [ "abacus", + "aiand", "alibaba-cn", "alibaba-token-plan", "alibaba-token-plan-cn", @@ -175764,6 +179278,7 @@ "auriko", "azure", "azure_ai", + "cline-pass", "cortecs", "crof", "crossmodel", @@ -175776,6 +179291,7 @@ "gmicloud", "hpc-ai", "huggingface", + "hyper", "kenari", "kilo", "libertai", @@ -175805,6 +179321,7 @@ ], "aliases": [ "abacus/deepseek-ai/DeepSeek-V4-Flash", + "aiand/deepseek-ai/deepseek-v4-flash", "alibaba-cn/deepseek-v4-flash", "alibaba-token-plan-cn/deepseek-v4-flash", "alibaba-token-plan/deepseek-v4-flash", @@ -175813,6 +179330,7 @@ "auriko/deepseek-v4-flash", "azure/deepseek-v4-flash", "azure_ai/deepseek-v4-flash", + "cline-pass/deepseek-v4-flash", "cortecs/deepseek-v4-flash", "crof/deepseek-v4-flash", "crossmodel/deepseek/deepseek-v4-flash", @@ -175826,6 +179344,7 @@ "gmicloud/deepseek-ai/DeepSeek-V4-Flash", "hpc-ai/deepseek/deepseek-v4-flash", "huggingface/deepseek-ai/DeepSeek-V4-Flash", + "hyper/deepseek-v4-flash", "kenari/deepseek-v4-flash", "kilo/deepseek/deepseek-v4-flash", "libertai/deepseek-v4-flash", @@ -175853,7 +179372,7 @@ "wandb/deepseek-ai/DeepSeek-V4-Flash", "zenmux/deepseek/deepseek-v4-flash" ], - "mergedProviderModelRecords": 48, + "mergedProviderModelRecords": 51, "limits": { "contextTokens": 1050000, "inputTokens": 1048576, @@ -175878,6 +179397,7 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -175900,9 +179420,10 @@ "vision": false, "supports1MContext": true, "lowReasoningEffort": true, - "xhighReasoningEffort": true, - "noneReasoningEffort": true, + "mediumReasoningEffort": true, "minimalReasoningEffort": true, + "noneReasoningEffort": true, + "xhighReasoningEffort": true, "webSearch": false }, "pricing": { @@ -175921,6 +179442,17 @@ "output": 0.28 } }, + { + "source": "models.dev", + "provider": "aiand", + "model": "deepseek-ai/deepseek-v4-flash", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0.15, + "output": 0.25 + } + }, { "source": "models.dev", "provider": "alibaba-cn", @@ -175941,6 +179473,8 @@ "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { "cacheRead": 0, + "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -175953,6 +179487,8 @@ "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { "cacheRead": 0, + "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -175964,10 +179500,11 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.2, + "cacheRead": 0.028, "cacheWrite": 0, - "input": 0.5, - "output": 0.8 + "cacheWrite5m": 0, + "input": 0.14, + "output": 0.28 } }, { @@ -175993,6 +179530,18 @@ "output": 0.51 } }, + { + "source": "models.dev", + "provider": "cline-pass", + "model": "cline-pass/deepseek-v4-flash", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.0028, + "input": 0.14, + "output": 0.28 + } + }, { "source": "models.dev", "provider": "cortecs", @@ -176026,6 +179575,7 @@ "per1MTokens": { "cacheRead": 0.004, "cacheWrite": 0.16, + "cacheWrite5m": 0.16, "input": 0.16, "output": 0.32 } @@ -176123,6 +179673,18 @@ "output": 0.28 } }, + { + "source": "models.dev", + "provider": "hyper", + "model": "deepseek-v4-flash", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.04, + "input": 0.2, + "output": 0.4 + } + }, { "source": "models.dev", "provider": "kenari", @@ -176153,9 +179715,9 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.0028, - "input": 0.14, - "output": 0.28 + "cacheRead": 0.014, + "input": 0.076, + "output": 0.153 } }, { @@ -176237,9 +179799,9 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.0196, - "input": 0.098, - "output": 0.196 + "cacheRead": 0.028, + "input": 0.14, + "output": 0.28 } }, { @@ -176263,6 +179825,7 @@ "per1MTokens": { "cacheRead": 0.0197, "cacheWrite": 0.1, + "cacheWrite5m": 0.1, "input": 0.1, "output": 0.2 } @@ -176392,6 +179955,7 @@ "per1MTokens": { "cacheRead": 0.0028, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.14, "output": 0.28 }, @@ -176408,6 +179972,7 @@ "per1MTokens": { "cacheRead": 0.0028, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.14, "output": 0.28 }, @@ -176470,6 +180035,7 @@ "per1MTokens": { "cacheRead": 0.0028, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.14, "output": 0.28 }, @@ -176496,9 +180062,9 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "cacheRead": 0.0196, - "input": 0.098, - "output": 0.196 + "cacheRead": 0.028, + "input": 0.14, + "output": 0.28 } } ] @@ -176538,6 +180104,7 @@ "temperature", "tool_choice", "tools", + "top_a", "top_k", "top_logprobs", "top_p" @@ -176545,7 +180112,7 @@ "supportedEndpoints": [ "/v1/chat/completions" ], - "providerModelRecordCount": 48 + "providerModelRecordCount": 51 }, "sourceRecords": [ { @@ -176566,6 +180133,37 @@ "releaseDate": "2026-04-24" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "aiand", + "providerName": "ai&", + "providerApi": "https://api.aiand.com/v1", + "providerDoc": "https://docs.aiand.com/", + "model": "deepseek-ai/deepseek-v4-flash", + "modelKey": "deepseek-ai/deepseek-v4-flash", + "displayName": "DeepSeek V4 Flash", + "family": "deepseek-flash", + "metadata": { + "knowledgeCutoff": "2025-05", + "lastUpdated": "2026-04-24", + "openWeights": true, + "releaseDate": "2026-04-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -176747,6 +180345,36 @@ "releaseDate": "2026-04-24" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "cline-pass", + "providerName": "ClinePass", + "providerApi": "https://api.cline.bot/api/v1", + "providerDoc": "https://docs.cline.bot/getting-started/clinepass", + "model": "cline-pass/deepseek-v4-flash", + "modelKey": "cline-pass/deepseek-v4-flash", + "displayName": "DeepSeek V4 Flash", + "family": "deepseek-flash", + "metadata": { + "knowledgeCutoff": "2025-05", + "lastUpdated": "2026-04-24", + "openWeights": true, + "releaseDate": "2026-04-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high", + "xhigh" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -177044,6 +180672,34 @@ "releaseDate": "2026-04-24" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "hyper", + "providerName": "Charm Hyper", + "providerApi": "https://hyper.charm.land/v1", + "providerDoc": "https://hyper.charm.land", + "model": "deepseek-v4-flash", + "modelKey": "deepseek-v4-flash", + "displayName": "DeepSeek V4 Flash", + "family": "deepseek-flash", + "metadata": { + "knowledgeCutoff": "2025-05", + "lastUpdated": "2026-07-22", + "openWeights": true, + "releaseDate": "2026-07-06", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "high", + "xhigh" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -177722,14 +181378,15 @@ "temperature", "tool_choice", "tools", + "top_a", "top_k", "top_logprobs", "top_p" ], "tokenizer": "DeepSeek", "topProvider": { - "context_length": 1048575, - "max_completion_tokens": null, + "context_length": 1048576, + "max_completion_tokens": 393216, "is_moderated": false } } @@ -177860,6 +181517,7 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -178056,6 +181714,7 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -178190,6 +181849,7 @@ "openWeights": false, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, "toolCalling": true, @@ -178264,6 +181924,7 @@ ], "providers": [ "abacus", + "aiand", "alibaba-cn", "alibaba-token-plan", "alibaba-token-plan-cn", @@ -178272,6 +181933,7 @@ "azure", "azure_ai", "baseten", + "cline-pass", "cortecs", "crof", "crossmodel", @@ -178287,6 +181949,7 @@ "gmicloud", "hpc-ai", "huggingface", + "hyper", "kenari", "kilo", "llmgateway", @@ -178296,6 +181959,7 @@ "nebius", "novita-ai", "nvidia", + "ofox", "ollama-cloud", "opencode", "opencode-go", @@ -178316,6 +181980,7 @@ ], "aliases": [ "abacus/deepseek-ai/DeepSeek-V4-Pro", + "aiand/deepseek-ai/deepseek-v4-pro", "alibaba-cn/deepseek-v4-pro", "alibaba-token-plan-cn/deepseek-v4-pro", "alibaba-token-plan/deepseek-v4-pro", @@ -178324,6 +181989,7 @@ "azure/deepseek-v4-pro", "azure_ai/deepseek-v4-pro", "baseten/deepseek-ai/DeepSeek-V4-Pro", + "cline-pass/deepseek-v4-pro", "cortecs/deepseek-v4-pro", "crof/deepseek-v4-pro", "crossmodel/deepseek/deepseek-v4-pro", @@ -178340,6 +182006,7 @@ "gmicloud/deepseek-ai/DeepSeek-V4-Pro", "hpc-ai/deepseek/deepseek-v4-pro", "huggingface/deepseek-ai/DeepSeek-V4-Pro", + "hyper/deepseek-v4-pro", "kenari/deepseek-v4-pro", "kilo/deepseek/deepseek-v4-pro", "llmgateway/deepseek-v4-pro", @@ -178350,6 +182017,7 @@ "nebius/deepseek-ai/DeepSeek-V4-Pro", "novita-ai/deepseek/deepseek-v4-pro", "nvidia/deepseek-ai/deepseek-v4-pro", + "ofox/deepseek/deepseek-v4-pro", "ollama-cloud/deepseek-v4-pro", "opencode-go/deepseek-v4-pro", "opencode/deepseek-v4-pro", @@ -178368,7 +182036,7 @@ "wandb/deepseek-ai/DeepSeek-V4-Pro", "zenmux/deepseek/deepseek-v4-pro" ], - "mergedProviderModelRecords": 52, + "mergedProviderModelRecords": 56, "limits": { "contextTokens": 1050000, "inputTokens": 1048576, @@ -178393,6 +182061,7 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -178415,8 +182084,10 @@ "vision": false, "supports1MContext": true, "lowReasoningEffort": true, - "xhighReasoningEffort": true, + "mediumReasoningEffort": true, + "minimalReasoningEffort": true, "noneReasoningEffort": true, + "xhighReasoningEffort": true, "webSearch": false }, "pricing": { @@ -178435,6 +182106,17 @@ "output": 3.48 } }, + { + "source": "models.dev", + "provider": "aiand", + "model": "deepseek-ai/deepseek-v4-pro", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 1, + "output": 2.5 + } + }, { "source": "models.dev", "provider": "alibaba-cn", @@ -178455,6 +182137,8 @@ "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { "cacheRead": 0, + "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -178467,6 +182151,8 @@ "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { "cacheRead": 0, + "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -178506,6 +182192,18 @@ "output": 3.48 } }, + { + "source": "models.dev", + "provider": "cline-pass", + "model": "cline-pass/deepseek-v4-pro", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.0145, + "input": 1.74, + "output": 3.48 + } + }, { "source": "models.dev", "provider": "cortecs", @@ -178539,6 +182237,7 @@ "per1MTokens": { "cacheRead": 0.005, "cacheWrite": 0.47, + "cacheWrite5m": 0.47, "input": 0.47, "output": 0.94 } @@ -178671,6 +182370,18 @@ "output": 0.87 } }, + { + "source": "models.dev", + "provider": "hyper", + "model": "deepseek-v4-pro", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.2, + "input": 2.4, + "output": 4.8 + } + }, { "source": "models.dev", "provider": "kenari", @@ -178778,6 +182489,18 @@ "output": 0.87 } }, + { + "source": "models.dev", + "provider": "ofox", + "model": "deepseek/deepseek-v4-pro", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.0037, + "input": 0.45, + "output": 0.88 + } + }, { "source": "models.dev", "provider": "opencode-go", @@ -178835,6 +182558,7 @@ "per1MTokens": { "cacheRead": 0.003625, "cacheWrite": 0.435, + "cacheWrite5m": 0.435, "input": 0.435, "output": 0.87 } @@ -178977,6 +182701,7 @@ "per1MTokens": { "cacheRead": 0.003625, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.435, "output": 0.87 }, @@ -178993,6 +182718,7 @@ "per1MTokens": { "cacheRead": 0.003625, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.435, "output": 0.87 }, @@ -179033,6 +182759,7 @@ "per1MTokens": { "cacheRead": 0.003625, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.435, "output": 0.87 }, @@ -179100,7 +182827,7 @@ "supportedEndpoints": [ "/v1/chat/completions" ], - "providerModelRecordCount": 52 + "providerModelRecordCount": 56 }, "sourceRecords": [ { @@ -179121,6 +182848,37 @@ "releaseDate": "2026-04-24" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "aiand", + "providerName": "ai&", + "providerApi": "https://api.aiand.com/v1", + "providerDoc": "https://docs.aiand.com/", + "model": "deepseek-ai/deepseek-v4-pro", + "modelKey": "deepseek-ai/deepseek-v4-pro", + "displayName": "DeepSeek V4 Pro", + "family": "deepseek-thinking", + "metadata": { + "knowledgeCutoff": "2025-05", + "lastUpdated": "2026-04-24", + "openWeights": true, + "releaseDate": "2026-04-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -179301,6 +183059,36 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "cline-pass", + "providerName": "ClinePass", + "providerApi": "https://api.cline.bot/api/v1", + "providerDoc": "https://docs.cline.bot/getting-started/clinepass", + "model": "cline-pass/deepseek-v4-pro", + "modelKey": "cline-pass/deepseek-v4-pro", + "displayName": "DeepSeek V4 Pro", + "family": "deepseek-thinking", + "metadata": { + "knowledgeCutoff": "2025-05", + "lastUpdated": "2026-04-24", + "openWeights": true, + "releaseDate": "2026-04-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high", + "xhigh" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -179676,6 +183464,33 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "hyper", + "providerName": "Charm Hyper", + "providerApi": "https://hyper.charm.land/v1", + "providerDoc": "https://hyper.charm.land", + "model": "deepseek-v4-pro", + "modelKey": "deepseek-v4-pro", + "displayName": "DeepSeek V4 Pro", + "family": "deepseek-thinking", + "metadata": { + "knowledgeCutoff": "2025-05", + "lastUpdated": "2026-07-22", + "openWeights": true, + "releaseDate": "2026-07-06", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "high", + "xhigh" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -179934,6 +183749,36 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "ofox", + "providerName": "Ofox", + "providerApi": "https://api.ofox.ai/v1", + "providerDoc": "https://ofox.ai/docs", + "model": "deepseek/deepseek-v4-pro", + "modelKey": "deepseek/deepseek-v4-pro", + "displayName": "DeepSeek V4 Pro", + "family": "deepseek-thinking", + "metadata": { + "knowledgeCutoff": "2025-05", + "lastUpdated": "2026-04-24", + "openWeights": true, + "releaseDate": "2026-04-24", + "reasoningOptions": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": [ + "high", + "max" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -180488,6 +184333,7 @@ "openWeights": false, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -180588,6 +184434,7 @@ "openWeights": false, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, "toolCalling": true, @@ -180773,6 +184620,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -180846,20 +184695,18 @@ "id": "deepseek/deepseek-v4-pro:free", "provider": "deepseek", "model": "deepseek-v4-pro:free", - "displayName": "DeepSeek V4 Pro (Free)", + "displayName": "DeepSeek V4 Pro", "family": "deepseek-thinking", "sources": [ "models.dev" ], "providers": [ - "kenari", "unorouter" ], "aliases": [ - "kenari/deepseek-v4-pro:free", "unorouter/deepseek-v4-pro:free" ], - "mergedProviderModelRecords": 2, + "mergedProviderModelRecords": 1, "limits": { "contextTokens": 1000000, "outputTokens": 384000, @@ -180882,7 +184729,6 @@ "openWeights": true, "pdfInput": false, "reasoning": true, - "xhighReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -180893,17 +184739,6 @@ "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ - { - "source": "models.dev", - "provider": "kenari", - "model": "deepseek-v4-pro:free", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0, - "output": 0 - } - }, { "source": "models.dev", "provider": "unorouter", @@ -180919,8 +184754,7 @@ }, "metadata": { "displayNames": [ - "DeepSeek V4 Pro", - "DeepSeek V4 Pro (Free)" + "DeepSeek V4 Pro" ], "families": [ "deepseek-thinking" @@ -180928,36 +184762,9 @@ "knowledgeCutoff": "2025-05", "releaseDate": "2026-04-24", "lastUpdated": "2026-04-24", - "providerModelRecordCount": 2 + "providerModelRecordCount": 1 }, "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "kenari", - "providerName": "Kenari", - "providerApi": "https://kenari.id/v1", - "providerDoc": "https://kenari.id/docs", - "model": "deepseek-v4-pro:free", - "modelKey": "deepseek-v4-pro:free", - "displayName": "DeepSeek V4 Pro (Free)", - "family": "deepseek-thinking", - "metadata": { - "knowledgeCutoff": "2025-05", - "lastUpdated": "2026-04-24", - "openWeights": true, - "releaseDate": "2026-04-24", - "reasoningOptions": [ - { - "type": "effort", - "values": [ - "high", - "xhigh" - ] - } - ] - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -181017,6 +184824,7 @@ "openWeights": false, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, "toolCalling": true, @@ -181145,6 +184953,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -181361,6 +185171,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -181460,6 +185271,7 @@ "per1MTokens": { "cacheRead": 0.08, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 0.8, "output": 4 } @@ -181560,6 +185372,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -181643,6 +185456,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -181661,6 +185476,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -181755,6 +185571,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -181773,6 +185591,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -181862,6 +185681,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -181880,6 +185701,7 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -181970,6 +185792,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -181988,6 +185812,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -182097,6 +185922,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -182115,6 +185942,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -182223,6 +186051,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -182312,6 +186142,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -182330,6 +186162,7 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -182420,6 +186253,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -182438,6 +186273,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -182528,6 +186364,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -182546,6 +186384,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -182636,6 +186475,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -182654,6 +186495,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 }, @@ -182763,6 +186605,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, "toolCalling": true, @@ -182782,6 +186626,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -182872,6 +186717,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -182891,6 +186738,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -182980,6 +186828,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -182998,6 +186848,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 }, @@ -183105,6 +186956,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -184094,6 +187947,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "temperature": true, @@ -184186,6 +188041,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -184368,6 +188225,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "temperature": true, @@ -184476,6 +188335,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -184881,6 +188742,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": false, @@ -184990,6 +188853,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": false, @@ -185099,6 +188964,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": false, @@ -185208,6 +189075,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, "temperature": false, @@ -185317,6 +189186,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -185427,6 +189298,8 @@ "openWeights": false, "pdfInput": false, "reasoning": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, "toolCalling": true, @@ -185534,6 +189407,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -185646,6 +189521,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -185757,6 +189634,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -185868,6 +189747,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -185978,6 +189859,8 @@ "openWeights": false, "pdfInput": false, "reasoning": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, "toolCalling": true, @@ -186085,6 +189968,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -186473,6 +190358,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -186578,6 +190465,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -186685,6 +190574,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true, @@ -186793,6 +190684,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true, @@ -186899,6 +190792,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true, @@ -187716,129 +191611,6 @@ } ] }, - { - "id": "empiriolabs/fugu-ultra", - "provider": "empiriolabs", - "model": "fugu-ultra", - "displayName": "Fugu Ultra", - "family": "fugu", - "sources": [ - "models.dev" - ], - "providers": [ - "empiriolabs" - ], - "aliases": [ - "empiriolabs/fugu-ultra" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 1000000, - "outputTokens": 131072, - "supports1MContext": true - }, - "modalities": { - "input": [ - "image", - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": true, - "audioInput": false, - "audioOutput": false, - "imageInput": true, - "imageOutput": false, - "openWeights": false, - "pdfInput": false, - "reasoning": true, - "maxReasoningEffort": true, - "xhighReasoningEffort": true, - "structuredOutput": true, - "temperature": false, - "toolCalling": true, - "videoInput": false, - "supports1MContext": true - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "empiriolabs", - "model": "fugu-ultra", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 1.5, - "input": 7.5, - "output": 45 - }, - "tiered": { - "contextOver200K": { - "input": 15, - "output": 67.5, - "cache_read": 1.5 - }, - "tiers": [ - { - "input": 15, - "output": 67.5, - "cache_read": 1.5, - "tier": { - "size": 272000 - } - } - ] - } - } - ] - }, - "metadata": { - "displayNames": [ - "Fugu Ultra" - ], - "families": [ - "fugu" - ], - "releaseDate": "2026-06-15", - "lastUpdated": "2026-06-15", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "empiriolabs", - "providerName": "EmpirioLabs AI", - "providerApi": "https://api.empiriolabs.ai/v1", - "providerDoc": "https://docs.empiriolabs.ai", - "model": "fugu-ultra", - "modelKey": "fugu-ultra", - "displayName": "Fugu Ultra", - "family": "fugu", - "metadata": { - "lastUpdated": "2026-06-15", - "openWeights": false, - "releaseDate": "2026-06-15", - "reasoningOptions": [ - { - "type": "effort", - "values": [ - "high", - "xhigh", - "max" - ] - } - ] - } - } - ] - }, { "id": "empiriolabs/gemma-4-26b-a4b", "provider": "empiriolabs", @@ -187880,6 +191652,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -188201,6 +191975,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -188400,6 +192176,7 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -188503,6 +192280,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -200132,6 +203911,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -201917,6 +205698,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -201937,6 +205720,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -202811,6 +206595,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -202909,6 +206694,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -203007,6 +206793,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -203293,6 +207080,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -203389,6 +207177,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -203485,6 +207274,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -203581,6 +207371,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -203677,6 +207468,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -203715,6 +207507,120 @@ } ] }, + { + "id": "gitlab/duo-chat-opus-5", + "provider": "gitlab", + "model": "duo-chat-opus-5", + "displayName": "Agentic Chat (Claude Opus 5)", + "family": "claude-opus", + "sources": [ + "models.dev" + ], + "providers": [ + "gitlab" + ], + "aliases": [ + "gitlab/duo-chat-opus-5" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1000000, + "outputTokens": 128000, + "supports1MContext": true + }, + "modalities": { + "input": [ + "image", + "pdf", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": true, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "maxReasoningEffort": true, + "xhighReasoningEffort": true, + "temperature": false, + "toolCalling": true, + "videoInput": false, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "gitlab", + "model": "duo-chat-opus-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0, + "cacheWrite": 0, + "cacheWrite5m": 0, + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Agentic Chat (Claude Opus 5)" + ], + "families": [ + "claude-opus" + ], + "knowledgeCutoff": "2026-05", + "releaseDate": "2026-07-24", + "lastUpdated": "2026-07-24", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "gitlab", + "providerName": "GitLab Duo", + "providerDoc": "https://docs.gitlab.com/user/duo_agent_platform/", + "model": "duo-chat-opus-5", + "modelKey": "duo-chat-opus-5", + "displayName": "Agentic Chat (Claude Opus 5)", + "family": "claude-opus", + "metadata": { + "knowledgeCutoff": "2026-05", + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-07-24", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + } + ] + }, { "id": "gitlab/duo-chat-sonnet-4-5", "provider": "gitlab", @@ -203773,6 +207679,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -203869,6 +207776,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -203948,6 +207856,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -203968,6 +207878,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -204094,6 +208005,236 @@ } ] }, + { + "id": "google/deep-research-max-preview-04-2026", + "provider": "google", + "model": "deep-research-max-preview-04-2026", + "displayName": "Deep Research Max Preview (Apr-21-2026)", + "family": "gemini-pro", + "sources": [ + "models.dev" + ], + "providers": [ + "google" + ], + "aliases": [ + "google/deep-research-max-preview-04-2026" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 131072, + "outputTokens": 65536, + "supports1MContext": false + }, + "modalities": { + "input": [ + "audio", + "image", + "pdf", + "text", + "video" + ], + "output": [ + "image", + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": true, + "audioOutput": false, + "imageInput": true, + "imageOutput": true, + "openWeights": false, + "pdfInput": true, + "reasoning": true, + "temperature": true, + "toolCalling": true, + "videoInput": true, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "google", + "model": "deep-research-max-preview-04-2026", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.2, + "input": 2, + "output": 12 + }, + "tiered": { + "contextOver200K": { + "input": 4, + "output": 18, + "cache_read": 0.4 + }, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { + "size": 200000 + } + } + ] + } + } + ] + }, + "metadata": { + "displayNames": [ + "Deep Research Max Preview (Apr-21-2026)" + ], + "families": [ + "gemini-pro" + ], + "knowledgeCutoff": "2025-01", + "releaseDate": "2026-04-21", + "lastUpdated": "2026-04-21", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "google", + "providerName": "Google", + "providerDoc": "https://ai.google.dev/gemini-api/docs/models", + "model": "deep-research-max-preview-04-2026", + "modelKey": "deep-research-max-preview-04-2026", + "displayName": "Deep Research Max Preview (Apr-21-2026)", + "family": "gemini-pro", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-04-21", + "openWeights": false, + "releaseDate": "2026-04-21" + } + } + ] + }, + { + "id": "google/deep-research-preview-04-2026", + "provider": "google", + "model": "deep-research-preview-04-2026", + "displayName": "Deep Research Preview (Apr-21-2026)", + "family": "gemini-pro", + "sources": [ + "models.dev" + ], + "providers": [ + "google" + ], + "aliases": [ + "google/deep-research-preview-04-2026" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 131072, + "outputTokens": 65536, + "supports1MContext": false + }, + "modalities": { + "input": [ + "audio", + "image", + "pdf", + "text", + "video" + ], + "output": [ + "image", + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": true, + "audioOutput": false, + "imageInput": true, + "imageOutput": true, + "openWeights": false, + "pdfInput": true, + "reasoning": true, + "temperature": true, + "toolCalling": true, + "videoInput": true, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "google", + "model": "deep-research-preview-04-2026", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.2, + "input": 2, + "output": 12 + }, + "tiered": { + "contextOver200K": { + "input": 4, + "output": 18, + "cache_read": 0.4 + }, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { + "size": 200000 + } + } + ] + } + } + ] + }, + "metadata": { + "displayNames": [ + "Deep Research Preview (Apr-21-2026)" + ], + "families": [ + "gemini-pro" + ], + "knowledgeCutoff": "2025-01", + "releaseDate": "2026-04-21", + "lastUpdated": "2026-04-21", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "google", + "providerName": "Google", + "providerDoc": "https://ai.google.dev/gemini-api/docs/models", + "model": "deep-research-preview-04-2026", + "modelKey": "deep-research-preview-04-2026", + "displayName": "Deep Research Preview (Apr-21-2026)", + "family": "gemini-pro", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-04-21", + "openWeights": false, + "releaseDate": "2026-04-21" + } + } + ] + }, { "id": "google/deep-research-pro-preview-12-2025", "provider": "google", @@ -204244,6 +208385,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -204263,6 +208406,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 0.5, + "cacheWrite5m": 0.5, "input": 0.5, "output": 0.5 } @@ -204486,11 +208630,152 @@ "models.dev" ], "providers": [ + "kenari", "neon" ], "aliases": [ + "kenari/gemini-2-5-flash", "neon/gemini-2-5-flash" ], + "mergedProviderModelRecords": 2, + "limits": { + "contextTokens": 1048576, + "outputTokens": 65536, + "supports1MContext": true + }, + "modalities": { + "input": [ + "audio", + "image", + "pdf", + "text", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": true, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": true, + "reasoning": true, + "structuredOutput": true, + "temperature": true, + "toolCalling": true, + "videoInput": true, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "kenari", + "model": "gemini-2-5-flash", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + }, + { + "source": "models.dev", + "provider": "neon", + "model": "gemini-2-5-flash", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.03, + "input": 0.3, + "inputAudio": 1, + "output": 2.5 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Gemini 2.5 Flash" + ], + "families": [ + "gemini-flash" + ], + "knowledgeCutoff": "2025-01", + "releaseDate": "2025-06-17", + "lastUpdated": "2025-06-17", + "providerModelRecordCount": 2 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "kenari", + "providerName": "Kenari", + "providerApi": "https://kenari.id/v1", + "providerDoc": "https://kenari.id/docs", + "model": "gemini-2-5-flash", + "modelKey": "gemini-2-5-flash", + "displayName": "Gemini 2.5 Flash", + "family": "gemini-flash", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2025-06-17", + "openWeights": false, + "releaseDate": "2025-06-17" + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "neon", + "providerName": "Neon", + "providerApi": "${NEON_AI_GATEWAY_BASE_URL}/v1", + "providerDoc": "https://neon.com/docs", + "model": "gemini-2-5-flash", + "modelKey": "gemini-2-5-flash", + "displayName": "Gemini 2.5 Flash", + "family": "gemini-flash", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2025-06-17", + "openWeights": false, + "releaseDate": "2025-06-17", + "reasoningOptions": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 0, + "max": 24576 + } + ] + } + } + ] + }, + { + "id": "google/gemini-2-5-flash-lite", + "provider": "google", + "model": "gemini-2-5-flash-lite", + "displayName": "Gemini 2.5 Flash-Lite", + "family": "gemini-flash-lite", + "sources": [ + "models.dev" + ], + "providers": [ + "kenari" + ], + "aliases": [ + "kenari/gemini-2-5-flash-lite" + ], "mergedProviderModelRecords": 1, "limits": { "contextTokens": 1048576, @@ -204530,25 +208815,23 @@ "offers": [ { "source": "models.dev", - "provider": "neon", - "model": "gemini-2-5-flash", + "provider": "kenari", + "model": "gemini-2-5-flash-lite", "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.03, - "input": 0.3, - "inputAudio": 1, - "output": 2.5 + "input": 0, + "output": 0 } } ] }, "metadata": { "displayNames": [ - "Gemini 2.5 Flash" + "Gemini 2.5 Flash-Lite" ], "families": [ - "gemini-flash" + "gemini-flash-lite" ], "knowledgeCutoff": "2025-01", "releaseDate": "2025-06-17", @@ -204559,29 +208842,19 @@ { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", - "provider": "neon", - "providerName": "Neon", - "providerApi": "${NEON_AI_GATEWAY_BASE_URL}/v1", - "providerDoc": "https://neon.com/docs", - "model": "gemini-2-5-flash", - "modelKey": "gemini-2-5-flash", - "displayName": "Gemini 2.5 Flash", - "family": "gemini-flash", + "provider": "kenari", + "providerName": "Kenari", + "providerApi": "https://kenari.id/v1", + "providerDoc": "https://kenari.id/docs", + "model": "gemini-2-5-flash-lite", + "modelKey": "gemini-2-5-flash-lite", + "displayName": "Gemini 2.5 Flash-Lite", + "family": "gemini-flash-lite", "metadata": { "knowledgeCutoff": "2025-01", "lastUpdated": "2025-06-17", "openWeights": false, - "releaseDate": "2025-06-17", - "reasoningOptions": [ - { - "type": "toggle" - }, - { - "type": "budget_tokens", - "min": 0, - "max": 24576 - } - ] + "releaseDate": "2025-06-17" } } ] @@ -205058,6 +209331,7 @@ "per1MTokens": { "cacheRead": 0.025, "cacheWrite": 0.083333, + "cacheWrite5m": 0.083333, "input": 0.1, "output": 0.4 } @@ -206195,24 +210469,29 @@ "id": "google/gemini-2.5-computer-use-preview-10-2025", "provider": "google", "model": "gemini-2.5-computer-use-preview-10-2025", + "displayName": "Gemini 2.5 Computer Use Preview 10-2025", + "family": "gemini-pro", "mode": "chat", "sources": [ - "litellm" + "litellm", + "models.dev" ], "providers": [ "gemini", + "google", "vertex_ai-language-models" ], "aliases": [ "gemini/gemini-2.5-computer-use-preview-10-2025", + "google/gemini-2.5-computer-use-preview-10-2025", "vertex_ai-language-models/gemini-2.5-computer-use-preview-10-2025" ], - "mergedProviderModelRecords": 2, + "mergedProviderModelRecords": 3, "limits": { - "contextTokens": 128000, + "contextTokens": 131072, "inputTokens": 128000, "maxTokens": 64000, - "outputTokens": 64000, + "outputTokens": 65536, "supports1MContext": false }, "modalities": { @@ -206225,29 +210504,60 @@ ] }, "capabilities": { + "attachments": true, "audioInput": false, "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false, "computerUse": true, "embedding": false, "functionCalling": true, "imageGeneration": false, - "imageInput": true, - "imageOutput": false, "moderation": false, - "pdfInput": false, "rerank": false, "speech": false, "systemMessages": true, "toolChoice": true, "transcription": false, - "videoInput": false, - "vision": true, - "supports1MContext": false + "vision": true }, "pricing": { "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ + { + "source": "models.dev", + "provider": "google", + "model": "gemini-2.5-computer-use-preview-10-2025", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 1.25, + "output": 10 + }, + "tiered": { + "contextOver200K": { + "input": 2.5, + "output": 15 + }, + "tiers": [ + { + "input": 2.5, + "output": 15, + "tier": { + "size": 200000 + } + } + ] + } + }, { "source": "litellm", "provider": "gemini", @@ -206281,16 +210591,42 @@ ] }, "metadata": { + "displayNames": [ + "Gemini 2.5 Computer Use Preview 10-2025" + ], + "families": [ + "gemini-pro" + ], "modes": [ "chat" ], + "knowledgeCutoff": "2025-01", + "releaseDate": "2025-10-07", + "lastUpdated": "2025-10-07", "supportedEndpoints": [ "/v1/chat/completions", "/v1/completions" ], - "providerModelRecordCount": 2 + "providerModelRecordCount": 3 }, "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "google", + "providerName": "Google", + "providerDoc": "https://ai.google.dev/gemini-api/docs/models", + "model": "gemini-2.5-computer-use-preview-10-2025", + "modelKey": "gemini-2.5-computer-use-preview-10-2025", + "displayName": "Gemini 2.5 Computer Use Preview 10-2025", + "family": "gemini-pro", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2025-10-07", + "openWeights": false, + "releaseDate": "2025-10-07" + } + }, { "source": "litellm", "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", @@ -206447,6 +210783,8 @@ "parallelFunctionCalling": true, "webSearch": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "noneReasoningEffort": true, @@ -206515,6 +210853,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.3, + "cacheWrite5m": 0.3, "input": 0.3, "output": 2.5 } @@ -206552,6 +210891,7 @@ "per1MTokens": { "cacheRead": 0.075, "cacheWrite": 0.383, + "cacheWrite5m": 0.383, "input": 0.3, "output": 2.5 } @@ -206578,6 +210918,7 @@ "per1MTokens": { "cacheRead": 0.075, "cacheWrite": 0.3, + "cacheWrite5m": 0.3, "input": 0.3, "output": 2.5 } @@ -206602,6 +210943,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.083333, + "cacheWrite5m": 0.083333, "input": 0.3, "output": 2.5, "reasoningOutput": 2.5 @@ -206665,6 +211007,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.083333, + "cacheWrite5m": 0.083333, "input": 0.3, "output": 2.5, "reasoningOutput": 2.5 @@ -206742,6 +211085,7 @@ "per1MTokens": { "cacheRead": 0.075, "cacheWrite": 0.55, + "cacheWrite5m": 0.55, "input": 0.3, "output": 2.5 } @@ -206781,6 +211125,7 @@ "per1MTokens": { "cacheRead": 0.07, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 0.3, "output": 2.5 } @@ -206877,6 +211222,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.0833333333333, + "cacheWrite5m": 0.0833333333333, "input": 0.3, "internalReasoning": 2.5, "output": 2.5 @@ -207889,6 +212235,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.083333, + "cacheWrite5m": 0.083333, "input": 0.3, "output": 2.5 } @@ -207973,6 +212320,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.0833333333333, + "cacheWrite5m": 0.0833333333333, "input": 0.3, "internalReasoning": 2.5, "output": 2.5 @@ -208328,6 +212676,8 @@ "videoInput": true, "supports1MContext": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "parallelFunctionCalling": true, "responseSchema": true, @@ -208358,6 +212708,7 @@ "per1MTokens": { "cacheRead": 0.01, "cacheWrite": 0.1, + "cacheWrite5m": 0.1, "input": 0.1, "output": 0.4 } @@ -208397,6 +212748,7 @@ "per1MTokens": { "cacheRead": 0.024999999999999998, "cacheWrite": 0.09999999999999999, + "cacheWrite5m": 0.09999999999999999, "input": 0.09999999999999999, "output": 0.39999999999999997 } @@ -208421,6 +212773,7 @@ "per1MTokens": { "cacheRead": 0.01, "cacheWrite": 0.083333, + "cacheWrite5m": 0.083333, "input": 0.1, "output": 0.4, "reasoningOutput": 0.4 @@ -208484,6 +212837,7 @@ "per1MTokens": { "cacheRead": 0.01, "cacheWrite": 0.083333, + "cacheWrite5m": 0.083333, "input": 0.1, "output": 0.4, "reasoningOutput": 0.4 @@ -208547,6 +212901,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 0.1, "output": 0.4 } @@ -208598,6 +212953,7 @@ "per1MTokens": { "cacheRead": 0.01, "cacheWrite": 0.0833333333333, + "cacheWrite5m": 0.0833333333333, "input": 0.1, "internalReasoning": 0.4, "output": 0.4 @@ -209216,6 +213572,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -209476,6 +213834,8 @@ "videoInput": true, "supports1MContext": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "embedding": false, @@ -209529,6 +213889,7 @@ "per1MTokens": { "cacheRead": 0.01, "cacheWrite": 0.083333, + "cacheWrite5m": 0.083333, "input": 0.1, "output": 0.4, "reasoningOutput": 0.4 @@ -210390,6 +214751,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": false, "toolCalling": false, @@ -210584,6 +214947,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -210821,6 +215186,8 @@ "videoInput": false, "supports1MContext": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "embedding": false, @@ -211469,6 +215836,8 @@ "parallelFunctionCalling": true, "webSearch": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "noneReasoningEffort": true, @@ -211580,6 +215949,7 @@ "per1MTokens": { "cacheRead": 0.125, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1.25, "output": 10 }, @@ -211706,6 +216076,7 @@ "per1MTokens": { "cacheRead": 0.3125, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1.25, "output": 10 } @@ -211730,6 +216101,7 @@ "per1MTokens": { "cacheRead": 0.125, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 1.25, "output": 10, "reasoningOutput": 10 @@ -211842,6 +216214,7 @@ "per1MTokens": { "cacheRead": 0.125, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 1.25, "output": 10, "reasoningOutput": 10 @@ -211926,6 +216299,7 @@ "per1MTokens": { "cacheRead": 0.31, "cacheWrite": 2.375, + "cacheWrite5m": 2.375, "input": 1.25, "output": 10 }, @@ -211997,6 +216371,7 @@ "per1MTokens": { "cacheRead": 0.31, "cacheWrite": 4.5, + "cacheWrite5m": 4.5, "input": 1.25, "output": 10 } @@ -212100,6 +216475,7 @@ "per1MTokens": { "cacheRead": 0.125, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 1.25, "internalReasoning": 10, "output": 10 @@ -212986,6 +217362,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": false, "toolCalling": false, "videoInput": false, @@ -213113,6 +217491,7 @@ "per1MTokens": { "cacheRead": 0.125, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 1.25, "output": 10, "reasoningOutput": 10 @@ -213127,6 +217506,7 @@ "per1MTokens": { "cacheRead": 0.125, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 1.25, "output": 10, "reasoningOutput": 10 @@ -213141,6 +217521,7 @@ "per1MTokens": { "cacheRead": 0.125, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 1.25, "internalReasoning": 10, "output": 10 @@ -213318,6 +217699,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": false, "toolCalling": false, "videoInput": false, @@ -213431,6 +217814,8 @@ "videoInput": true, "supports1MContext": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "parallelFunctionCalling": false, "responseSchema": true, @@ -213450,6 +217835,7 @@ "per1MTokens": { "cacheRead": 0.125, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 1.25, "output": 10, "reasoningOutput": 10 @@ -213475,6 +217861,7 @@ "per1MTokens": { "cacheRead": 0.125, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 1.25, "output": 10, "reasoningOutput": 10 @@ -213489,6 +217876,7 @@ "per1MTokens": { "cacheRead": 0.125, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 1.25, "internalReasoning": 10, "output": 10 @@ -213698,6 +218086,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -214165,18 +218555,20 @@ "id": "google/gemini-3-1-flash-lite", "provider": "google", "model": "gemini-3-1-flash-lite", - "displayName": "Gemini 3.1 Flash Lite Preview", + "displayName": "Gemini 3.1 Flash Lite", "family": "gemini-flash-lite", "sources": [ "models.dev" ], "providers": [ + "kenari", "neon" ], "aliases": [ + "kenari/gemini-3-1-flash-lite", "neon/gemini-3-1-flash-lite" ], - "mergedProviderModelRecords": 1, + "mergedProviderModelRecords": 2, "limits": { "contextTokens": 1048576, "outputTokens": 65536, @@ -214204,6 +218596,9 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "minimalReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -214214,6 +218609,17 @@ "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ + { + "source": "models.dev", + "provider": "kenari", + "model": "gemini-3-1-flash-lite", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + }, { "source": "models.dev", "provider": "neon", @@ -214231,17 +218637,47 @@ }, "metadata": { "displayNames": [ + "Gemini 3.1 Flash Lite", "Gemini 3.1 Flash Lite Preview" ], "families": [ "gemini-flash-lite" ], "knowledgeCutoff": "2025-01", - "releaseDate": "2026-03-03", - "lastUpdated": "2026-03-03", - "providerModelRecordCount": 1 + "releaseDate": "2026-05-07", + "lastUpdated": "2026-05-07", + "providerModelRecordCount": 2 }, "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "kenari", + "providerName": "Kenari", + "providerApi": "https://kenari.id/v1", + "providerDoc": "https://kenari.id/docs", + "model": "gemini-3-1-flash-lite", + "modelKey": "gemini-3-1-flash-lite", + "displayName": "Gemini 3.1 Flash Lite", + "family": "gemini-flash-lite", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-05-07", + "openWeights": false, + "releaseDate": "2026-05-07", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "minimal", + "low", + "medium", + "high" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -214315,6 +218751,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -214444,6 +218882,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -214475,6 +218915,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 0.5, + "cacheWrite5m": 0.5, "input": 2.5, "output": 15 }, @@ -214616,6 +219057,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -214649,6 +219092,7 @@ "per1MTokens": { "cacheRead": 0.155, "cacheWrite": 0.086, + "cacheWrite5m": 0.086, "input": 1.55, "output": 9.45 } @@ -214727,6 +219171,200 @@ } ] }, + { + "id": "google/gemini-3-5-flash-lite", + "provider": "google", + "model": "gemini-3-5-flash-lite", + "displayName": "Gemini 3.5 Flash-Lite", + "family": "gemini-flash-lite", + "sources": [ + "models.dev" + ], + "providers": [ + "venice" + ], + "aliases": [ + "venice/gemini-3-5-flash-lite" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1000000, + "outputTokens": 65536, + "supports1MContext": true + }, + "modalities": { + "input": [ + "audio", + "image", + "text", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": true, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": true, + "structuredOutput": true, + "temperature": true, + "toolCalling": true, + "videoInput": true, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "venice", + "model": "gemini-3-5-flash-lite", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.0375, + "input": 0.375, + "output": 3.125 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Gemini 3.5 Flash-Lite" + ], + "families": [ + "gemini-flash-lite" + ], + "knowledgeCutoff": "2026-03", + "releaseDate": "2026-07-09", + "lastUpdated": "2026-07-21", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "venice", + "providerName": "Venice AI", + "providerDoc": "https://docs.venice.ai", + "model": "gemini-3-5-flash-lite", + "modelKey": "gemini-3-5-flash-lite", + "displayName": "Gemini 3.5 Flash-Lite", + "family": "gemini-flash-lite", + "metadata": { + "knowledgeCutoff": "2026-03", + "lastUpdated": "2026-07-21", + "openWeights": false, + "releaseDate": "2026-07-09" + } + } + ] + }, + { + "id": "google/gemini-3-6-flash", + "provider": "google", + "model": "gemini-3-6-flash", + "displayName": "Gemini 3.6 Flash", + "family": "gemini-flash", + "sources": [ + "models.dev" + ], + "providers": [ + "venice" + ], + "aliases": [ + "venice/gemini-3-6-flash" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1000000, + "outputTokens": 65536, + "supports1MContext": true + }, + "modalities": { + "input": [ + "audio", + "image", + "text", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": true, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": true, + "structuredOutput": true, + "temperature": true, + "toolCalling": true, + "videoInput": true, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "venice", + "model": "gemini-3-6-flash", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.1875, + "input": 1.875, + "output": 9.375 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Gemini 3.6 Flash" + ], + "families": [ + "gemini-flash" + ], + "knowledgeCutoff": "2026-03", + "releaseDate": "2026-07-09", + "lastUpdated": "2026-07-21", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "venice", + "providerName": "Venice AI", + "providerDoc": "https://docs.venice.ai", + "model": "gemini-3-6-flash", + "modelKey": "gemini-3-6-flash", + "displayName": "Gemini 3.6 Flash", + "family": "gemini-flash", + "metadata": { + "knowledgeCutoff": "2026-03", + "lastUpdated": "2026-07-21", + "openWeights": false, + "releaseDate": "2026-07-09" + } + } + ] + }, { "id": "google/gemini-3-flash", "provider": "google", @@ -214778,6 +219416,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -214823,6 +219463,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0.083333, + "cacheWrite5m": 0.083333, "input": 0.5, "output": 3 } @@ -215106,6 +219747,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -215197,6 +219840,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0.5, + "cacheWrite5m": 0.5, "input": 0.5, "output": 3 } @@ -215272,6 +219916,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0.083333, + "cacheWrite5m": 0.083333, "input": 0.5, "output": 3, "reasoningOutput": 3 @@ -215322,6 +219967,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0.083333, + "cacheWrite5m": 0.083333, "input": 0.5, "output": 3, "reasoningOutput": 3 @@ -215404,6 +220050,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 0.5, "output": 3 } @@ -215429,6 +220076,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 0.5, "output": 3 } @@ -215541,6 +220189,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0.0833333333333, + "cacheWrite5m": 0.0833333333333, "input": 0.5, "internalReasoning": 3, "output": 3 @@ -216411,6 +221060,8 @@ "videoInput": true, "supports1MContext": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "embedding": false, "functionCalling": true, "imageGeneration": false, @@ -216659,6 +221310,7 @@ ], "providers": [ "gemini", + "google", "google-vertex", "openrouter", "vercel", @@ -216667,14 +221319,15 @@ "aliases": [ "gemini/gemini-3-pro-image", "google-vertex/gemini-3-pro-image", + "google/gemini-3-pro-image", "openrouter/google/gemini-3-pro-image", "vercel/google/gemini-3-pro-image", "vertex_ai-language-models/gemini-3-pro-image", "vertex_ai-language-models/vertex_ai/gemini-3-pro-image" ], - "mergedProviderModelRecords": 6, + "mergedProviderModelRecords": 7, "limits": { - "contextTokens": 65536, + "contextTokens": 131072, "inputTokens": 65536, "maxTokens": 32768, "outputTokens": 32768, @@ -216699,6 +221352,8 @@ "openWeights": false, "pdfInput": false, "reasoning": true, + "lowReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -216734,6 +221389,17 @@ "output": 120 } }, + { + "source": "models.dev", + "provider": "google", + "model": "gemini-3-pro-image", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 2, + "output": 120 + } + }, { "source": "models.dev", "provider": "openrouter", @@ -216743,6 +221409,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 2, "output": 12, "reasoningOutput": 12 @@ -216839,6 +221506,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 2, "internalReasoning": 12, "output": 12 @@ -216887,7 +221555,7 @@ "/v1/chat/completions", "/v1/completions" ], - "providerModelRecordCount": 6 + "providerModelRecordCount": 7 }, "sourceRecords": [ { @@ -216907,6 +221575,32 @@ "releaseDate": "2026-05-28" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "google", + "providerName": "Google", + "providerDoc": "https://ai.google.dev/gemini-api/docs/models", + "model": "gemini-3-pro-image", + "modelKey": "gemini-3-pro-image", + "displayName": "Nano Banana Pro", + "family": "gemini-pro", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-05-28", + "openWeights": false, + "releaseDate": "2026-05-28", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "high" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -217087,6 +221781,8 @@ "videoInput": false, "supports1MContext": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, "parallelFunctionCalling": false, @@ -217185,6 +221881,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 2, "output": 12, "reasoningOutput": 12 @@ -217269,6 +221966,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 2, "internalReasoning": 12, "output": 12 @@ -217604,11 +222302,13 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, "videoInput": true, "supports1MContext": true, + "mediumReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "embedding": false, @@ -217772,6 +222472,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 4.5, + "cacheWrite5m": 4.5, "input": 2, "output": 12 } @@ -218513,6 +223214,7 @@ ], "providers": [ "gemini", + "google", "google-vertex", "openrouter", "vercel", @@ -218521,17 +223223,18 @@ "aliases": [ "gemini/gemini-3.1-flash-image", "google-vertex/gemini-3.1-flash-image", + "google/gemini-3.1-flash-image", "openrouter/google/gemini-3.1-flash-image", "vercel/google/gemini-3.1-flash-image", "vertex_ai-language-models/gemini-3.1-flash-image", "vertex_ai-language-models/vertex_ai/gemini-3.1-flash-image" ], - "mergedProviderModelRecords": 6, + "mergedProviderModelRecords": 7, "limits": { "contextTokens": 131072, "inputTokens": 65536, "maxTokens": 32768, - "outputTokens": 32768, + "outputTokens": 65536, "supports1MContext": false }, "modalities": { @@ -218555,6 +223258,7 @@ "openWeights": false, "pdfInput": true, "reasoning": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "temperature": true, "toolCalling": false, @@ -218591,6 +223295,17 @@ "output": 60 } }, + { + "source": "models.dev", + "provider": "google", + "model": "gemini-3.1-flash-image", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0.5, + "output": 60 + } + }, { "source": "models.dev", "provider": "openrouter", @@ -218724,7 +223439,7 @@ "/v1/chat/completions", "/v1/completions" ], - "providerModelRecordCount": 6 + "providerModelRecordCount": 7 }, "sourceRecords": [ { @@ -218753,6 +223468,32 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "google", + "providerName": "Google", + "providerDoc": "https://ai.google.dev/gemini-api/docs/models", + "model": "gemini-3.1-flash-image", + "modelKey": "gemini-3.1-flash-image", + "displayName": "Nano Banana 2", + "family": "gemini-flash", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-05-28", + "openWeights": false, + "releaseDate": "2026-05-28", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "minimal", + "high" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -218951,12 +223692,14 @@ "openWeights": false, "pdfInput": true, "reasoning": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "temperature": true, "toolCalling": false, "videoInput": false, "supports1MContext": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, "parallelFunctionCalling": false, @@ -219415,8 +224158,8 @@ ], "tokenizer": "Gemini", "topProvider": { - "context_length": 131072, - "max_completion_tokens": 32768, + "context_length": 65536, + "max_completion_tokens": 65536, "is_moderated": false } } @@ -219503,6 +224246,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -219552,6 +224297,7 @@ "per1MTokens": { "cacheRead": 0.025, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 0.25, "output": 1.5 } @@ -219591,6 +224337,7 @@ "per1MTokens": { "cacheRead": 0.025, "cacheWrite": 0.08333, + "cacheWrite5m": 0.08333, "input": 0.25, "output": 1.5, "reasoningOutput": 1.5 @@ -219605,6 +224352,7 @@ "per1MTokens": { "cacheRead": 0.025, "cacheWrite": 0.08333, + "cacheWrite5m": 0.08333, "input": 0.25, "output": 1.5 } @@ -219656,6 +224404,7 @@ "per1MTokens": { "cacheRead": 0.025, "cacheWrite": 0.083333, + "cacheWrite5m": 0.083333, "input": 0.25, "output": 1.5, "reasoningOutput": 1.5 @@ -219819,6 +224568,7 @@ "per1MTokens": { "cacheRead": 0.025, "cacheWrite": 0.0833333333333, + "cacheWrite5m": 0.0833333333333, "input": 0.25, "internalReasoning": 1.5, "output": 1.5 @@ -220354,24 +225104,26 @@ "id": "google/gemini-3.1-flash-lite-image", "provider": "google", "model": "gemini-3.1-flash-lite-image", - "displayName": "Nano Banana 2 Lite (Gemini 3.1 Flash Lite Image)", - "family": "gemini", + "displayName": "Nano Banana 2 Lite", + "family": "gemini-flash-lite", "sources": [ "models.dev", "openrouter" ], "providers": [ + "google", "openrouter", "vercel" ], "aliases": [ + "google/gemini-3.1-flash-lite-image", "openrouter/google/gemini-3.1-flash-lite-image", "vercel/google/gemini-3.1-flash-lite-image" ], - "mergedProviderModelRecords": 2, + "mergedProviderModelRecords": 3, "limits": { "contextTokens": 65536, - "outputTokens": 65536, + "outputTokens": 66000, "supports1MContext": false }, "modalities": { @@ -220393,21 +225145,33 @@ "openWeights": false, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": false, "temperature": true, - "toolCalling": false, + "toolCalling": true, "videoInput": false, + "supports1MContext": false, "parallelFunctionCalling": false, "responseSchema": true, "toolChoice": false, - "webSearch": false, - "supports1MContext": false + "webSearch": false }, "pricing": { "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ + { + "source": "models.dev", + "provider": "google", + "model": "gemini-3.1-flash-lite-image", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0.25, + "output": 30 + } + }, { "source": "models.dev", "provider": "openrouter", @@ -220454,12 +225218,13 @@ "displayNames": [ "Gemini 3.1 Flash Lite Image (Nano Banana 2 Lite)", "Google: Nano Banana 2 Lite (Gemini 3.1 Flash Lite Image)", - "Nano Banana 2 Lite (Gemini 3.1 Flash Lite Image)" + "Nano Banana 2 Lite" ], "families": [ - "gemini" + "gemini", + "gemini-flash-lite" ], - "knowledgeCutoff": "2025-01-01", + "knowledgeCutoff": "2025-01", "releaseDate": "2026-06-30", "lastUpdated": "2026-06-30", "supportedParameters": [ @@ -220472,9 +225237,35 @@ "temperature", "top_p" ], - "providerModelRecordCount": 2 + "providerModelRecordCount": 3 }, "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "google", + "providerName": "Google", + "providerDoc": "https://ai.google.dev/gemini-api/docs/models", + "model": "gemini-3.1-flash-lite-image", + "modelKey": "gemini-3.1-flash-lite-image", + "displayName": "Nano Banana 2 Lite", + "family": "gemini-flash-lite", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-06-30", + "openWeights": false, + "releaseDate": "2026-06-30", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "minimal", + "high" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -220484,10 +225275,10 @@ "providerDoc": "https://openrouter.ai/models", "model": "google/gemini-3.1-flash-lite-image", "modelKey": "google/gemini-3.1-flash-lite-image", - "displayName": "Nano Banana 2 Lite (Gemini 3.1 Flash Lite Image)", - "family": "gemini", + "displayName": "Nano Banana 2 Lite", + "family": "gemini-flash-lite", "metadata": { - "knowledgeCutoff": "2025-01-01", + "knowledgeCutoff": "2025-01", "lastUpdated": "2026-06-30", "openWeights": false, "releaseDate": "2026-06-30", @@ -220513,6 +225304,7 @@ "displayName": "Gemini 3.1 Flash Lite Image (Nano Banana 2 Lite)", "family": "gemini", "metadata": { + "knowledgeCutoff": "2025-01", "lastUpdated": "2026-06-30", "openWeights": false, "releaseDate": "2026-06-30" @@ -220553,7 +225345,7 @@ "tokenizer": "Gemini", "topProvider": { "context_length": 65536, - "max_completion_tokens": 65536, + "max_completion_tokens": 66000, "is_moderated": false } } @@ -220581,7 +225373,6 @@ "merge-gateway", "openrouter", "orcarouter", - "vercel", "vertex_ai-language-models", "vivgrid", "zenmux" @@ -220595,13 +225386,12 @@ "merge-gateway/google/gemini-3.1-flash-lite-preview", "openrouter/google/gemini-3.1-flash-lite-preview", "orcarouter/google/gemini-3.1-flash-lite-preview", - "vercel/google/gemini-3.1-flash-lite-preview", "vertex_ai-language-models/gemini-3.1-flash-lite-preview", "vertex_ai-language-models/vertex_ai/gemini-3.1-flash-lite-preview", "vivgrid/gemini-3.1-flash-lite-preview", "zenmux/google/gemini-3.1-flash-lite-preview" ], - "mergedProviderModelRecords": 13, + "mergedProviderModelRecords": 12, "limits": { "contextTokens": 1050000, "inputTokens": 1048576, @@ -220632,6 +225422,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -220670,6 +225462,7 @@ "per1MTokens": { "cacheRead": 0.025, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 0.25, "output": 1.5 } @@ -220734,6 +225527,7 @@ "per1MTokens": { "cacheRead": 0.025, "cacheWrite": 0.083333, + "cacheWrite5m": 0.083333, "input": 0.25, "output": 1.5, "reasoningOutput": 1.5 @@ -220752,18 +225546,6 @@ "output": 1.5 } }, - { - "source": "models.dev", - "provider": "vercel", - "model": "google/gemini-3.1-flash-lite-preview", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.03, - "input": 0.25, - "output": 1.5 - } - }, { "source": "models.dev", "provider": "vivgrid", @@ -220773,6 +225555,7 @@ "per1MTokens": { "cacheRead": 0.025, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 0.25, "output": 1.5 } @@ -220868,6 +225651,7 @@ "per1MTokens": { "cacheRead": 0.025, "cacheWrite": 0.0833333333333, + "cacheWrite5m": 0.0833333333333, "input": 0.25, "internalReasoning": 1.5, "output": 1.5 @@ -220889,7 +225673,6 @@ "Google: Gemini 3.1 Flash Lite Preview" ], "families": [ - "gemini", "gemini-flash", "gemini-flash-lite" ], @@ -220920,7 +225703,7 @@ "/v1/chat/completions", "/v1/completions" ], - "providerModelRecordCount": 13 + "providerModelRecordCount": 12 }, "sourceRecords": [ { @@ -221110,34 +225893,6 @@ ] } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "vercel", - "providerName": "Vercel AI Gateway", - "providerDoc": "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway", - "model": "google/gemini-3.1-flash-lite-preview", - "modelKey": "google/gemini-3.1-flash-lite-preview", - "displayName": "Gemini 3.1 Flash Lite Preview", - "family": "gemini", - "metadata": { - "knowledgeCutoff": "2025-01", - "lastUpdated": "2026-03-03", - "openWeights": false, - "releaseDate": "2026-03-03", - "reasoningOptions": [ - { - "type": "effort", - "values": [ - "minimal", - "low", - "medium", - "high" - ] - } - ] - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -221293,17 +226048,22 @@ "id": "google/gemini-3.1-flash-live-preview", "provider": "google", "model": "gemini-3.1-flash-live-preview", + "displayName": "Gemini 3.1 Flash Live Preview", + "family": "gemini-flash", "mode": "chat", "sources": [ - "litellm" + "litellm", + "models.dev" ], "providers": [ - "gemini" + "gemini", + "google" ], "aliases": [ - "gemini/gemini-3.1-flash-live-preview" + "gemini/gemini-3.1-flash-live-preview", + "google/gemini-3.1-flash-live-preview" ], - "mergedProviderModelRecords": 1, + "mergedProviderModelRecords": 2, "limits": { "contextTokens": 131072, "inputTokens": 131072, @@ -221324,27 +226084,50 @@ ] }, "capabilities": { + "attachments": true, "audioInput": true, "audioOutput": true, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "minimalReasoningEffort": true, + "structuredOutput": false, + "temperature": true, + "toolCalling": true, + "videoInput": true, + "supports1MContext": false, "embedding": false, "functionCalling": true, "imageGeneration": false, - "imageInput": true, - "imageOutput": false, "moderation": false, - "pdfInput": false, "rerank": false, "speech": false, "transcription": false, - "videoInput": true, "vision": true, - "webSearch": true, - "supports1MContext": false + "webSearch": true }, "pricing": { "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ + { + "source": "models.dev", + "provider": "google", + "model": "gemini-3.1-flash-live-preview", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0.75, + "inputAudio": 3, + "output": 4.5, + "outputAudio": 12 + } + }, { "source": "litellm", "provider": "gemini", @@ -221382,15 +226165,52 @@ ] }, "metadata": { + "displayNames": [ + "Gemini 3.1 Flash Live Preview" + ], + "families": [ + "gemini-flash" + ], "modes": [ "chat" ], + "knowledgeCutoff": "2025-01", + "releaseDate": "2026-03-26", + "lastUpdated": "2026-03-26", "supportedEndpoints": [ "/v1/realtime" ], - "providerModelRecordCount": 1 + "providerModelRecordCount": 2 }, "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "google", + "providerName": "Google", + "providerDoc": "https://ai.google.dev/gemini-api/docs/models", + "model": "gemini-3.1-flash-live-preview", + "modelKey": "gemini-3.1-flash-live-preview", + "displayName": "Gemini 3.1 Flash Live Preview", + "family": "gemini-flash", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-03-26", + "openWeights": false, + "releaseDate": "2026-03-26", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "minimal", + "low", + "medium", + "high" + ] + } + ] + } + }, { "source": "litellm", "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", @@ -221419,6 +226239,98 @@ } ] }, + { + "id": "google/gemini-3.1-flash-tts-preview", + "provider": "google", + "model": "gemini-3.1-flash-tts-preview", + "displayName": "Gemini 3.1 Flash TTS Preview", + "family": "gemini-flash", + "sources": [ + "models.dev" + ], + "providers": [ + "google" + ], + "aliases": [ + "google/gemini-3.1-flash-tts-preview" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 8192, + "outputTokens": 16384, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "audio" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": true, + "imageInput": false, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": true, + "temperature": true, + "toolCalling": false, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "google", + "model": "gemini-3.1-flash-tts-preview", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 1, + "output": 20 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Gemini 3.1 Flash TTS Preview" + ], + "families": [ + "gemini-flash" + ], + "knowledgeCutoff": "2025-01", + "releaseDate": "2026-04-15", + "lastUpdated": "2026-04-15", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "google", + "providerName": "Google", + "providerDoc": "https://ai.google.dev/gemini-api/docs/models", + "model": "gemini-3.1-flash-tts-preview", + "modelKey": "gemini-3.1-flash-tts-preview", + "displayName": "Gemini 3.1 Flash TTS Preview", + "family": "gemini-flash", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-04-15", + "openWeights": false, + "releaseDate": "2026-04-15" + } + } + ] + }, { "id": "google/gemini-3.1-pro", "provider": "google", @@ -221468,6 +226380,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -221516,6 +226430,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 2, "output": 12 } @@ -221676,6 +226591,7 @@ "llmgateway", "merge-gateway", "nano-gpt", + "ofox", "openrouter", "orcarouter", "perplexity-agent", @@ -221700,6 +226616,7 @@ "llmgateway/gemini-3.1-pro-preview", "merge-gateway/google/gemini-3.1-pro-preview", "nano-gpt/google/gemini-3.1-pro-preview", + "ofox/google/gemini-3.1-pro-preview", "openrouter/google/gemini-3.1-pro-preview", "orcarouter/google/gemini-3.1-pro-preview", "perplexity-agent/google/gemini-3.1-pro-preview", @@ -221709,7 +226626,7 @@ "vivgrid/gemini-3.1-pro-preview", "zenmux/google/gemini-3.1-pro-preview" ], - "mergedProviderModelRecords": 22, + "mergedProviderModelRecords": 23, "limits": { "contextTokens": 1048756, "inputTokens": 1048756, @@ -221740,6 +226657,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -221848,6 +226767,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 2, + "cacheWrite5m": 2, "input": 2, "output": 12 }, @@ -222063,6 +226983,18 @@ "output": 12 } }, + { + "source": "models.dev", + "provider": "ofox", + "model": "google/gemini-3.1-pro-preview", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.2, + "input": 2, + "output": 12 + } + }, { "source": "models.dev", "provider": "openrouter", @@ -222072,6 +227004,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 2, "output": 12, "reasoningOutput": 12 @@ -222202,6 +227135,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 4.5, + "cacheWrite5m": 4.5, "input": 2, "output": 12 } @@ -222331,6 +227265,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 2, "internalReasoning": 12, "output": 12 @@ -222391,7 +227326,7 @@ "/v1/chat/completions", "/v1/completions" ], - "providerModelRecordCount": 22 + "providerModelRecordCount": 23 }, "sourceRecords": [ { @@ -222746,6 +227681,34 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "ofox", + "providerName": "Ofox", + "providerApi": "https://api.ofox.ai/v1", + "providerDoc": "https://ofox.ai/docs", + "model": "google/gemini-3.1-pro-preview", + "modelKey": "google/gemini-3.1-pro-preview", + "displayName": "Gemini 3.1 Pro Preview", + "family": "gemini-pro", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-02-19", + "openWeights": false, + "releaseDate": "2026-02-19", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -223084,6 +228047,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -223260,6 +228225,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 2, "output": 12, "reasoningOutput": 12 @@ -223412,6 +228378,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 2, "internalReasoning": 12, "output": 12 @@ -224050,6 +229017,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -224111,6 +229080,7 @@ "per1MTokens": { "cacheRead": 0.15, "cacheWrite": 1.5, + "cacheWrite5m": 1.5, "input": 1.5, "output": 9 } @@ -224174,6 +229144,7 @@ "per1MTokens": { "cacheRead": 0.15, "cacheWrite": 0.08333, + "cacheWrite5m": 0.08333, "input": 1.5, "output": 9, "reasoningOutput": 9 @@ -224188,6 +229159,7 @@ "per1MTokens": { "cacheRead": 0.15, "cacheWrite": 0.08333, + "cacheWrite5m": 0.08333, "input": 1.5, "output": 9 } @@ -224252,6 +229224,7 @@ "per1MTokens": { "cacheRead": 0.15, "cacheWrite": 0.083333, + "cacheWrite5m": 0.083333, "input": 1.5, "output": 9, "reasoningOutput": 9 @@ -224266,6 +229239,7 @@ "per1MTokens": { "cacheRead": 0.15, "cacheWrite": 0.083333, + "cacheWrite5m": 0.083333, "input": 1.5, "output": 9 } @@ -224414,6 +229388,7 @@ "per1MTokens": { "cacheRead": 0.15, "cacheWrite": 0.0833333333333, + "cacheWrite5m": 0.0833333333333, "input": 1.5, "internalReasoning": 9, "output": 9 @@ -225102,6 +230077,585 @@ } ] }, + { + "id": "google/gemini-3.5-flash-lite", + "provider": "google", + "model": "gemini-3.5-flash-lite", + "displayName": "Gemini 3.5 Flash Lite", + "family": "gemini-flash-lite", + "mode": "chat", + "sources": [ + "litellm", + "models.dev", + "openrouter" + ], + "providers": [ + "gemini", + "google", + "google-vertex", + "llmgateway", + "opencode", + "openrouter", + "vercel", + "vertex_ai-language-models" + ], + "aliases": [ + "gemini/gemini-3.5-flash-lite", + "google-vertex/gemini-3.5-flash-lite", + "google/gemini-3.5-flash-lite", + "llmgateway/gemini-3.5-flash-lite", + "opencode/gemini-3.5-flash-lite", + "openrouter/google/gemini-3.5-flash-lite", + "vercel/google/gemini-3.5-flash-lite", + "vertex_ai-language-models/gemini-3.5-flash-lite", + "vertex_ai-language-models/vertex_ai/gemini-3.5-flash-lite" + ], + "mergedProviderModelRecords": 9, + "limits": { + "contextTokens": 1048576, + "inputTokens": 1048576, + "maxTokens": 65536, + "outputTokens": 65536, + "supports1MContext": true + }, + "modalities": { + "input": [ + "audio", + "file", + "image", + "pdf", + "text", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": true, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": true, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "minimalReasoningEffort": true, + "structuredOutput": true, + "temperature": true, + "toolCalling": true, + "videoInput": true, + "supports1MContext": true, + "parallelFunctionCalling": true, + "responseSchema": true, + "toolChoice": true, + "webSearch": true, + "embedding": false, + "functionCalling": true, + "imageGeneration": false, + "moderation": false, + "nativeStreaming": true, + "promptCaching": true, + "rerank": false, + "speech": false, + "systemMessages": true, + "transcription": false, + "urlContext": true, + "vision": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "google-vertex", + "model": "gemini-3.5-flash-lite", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.03, + "input": 0.3, + "output": 2.5 + } + }, + { + "source": "models.dev", + "provider": "google", + "model": "gemini-3.5-flash-lite", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.03, + "input": 0.3, + "output": 2.5 + } + }, + { + "source": "models.dev", + "provider": "llmgateway", + "model": "gemini-3.5-flash-lite", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.03, + "cacheWrite": 0.08333, + "cacheWrite5m": 0.08333, + "input": 0.3, + "output": 2.5 + } + }, + { + "source": "models.dev", + "provider": "opencode", + "model": "gemini-3.5-flash-lite", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.03, + "input": 0.3, + "output": 2.5 + } + }, + { + "source": "models.dev", + "provider": "openrouter", + "model": "google/gemini-3.5-flash-lite", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.03, + "cacheWrite": 0.083333, + "cacheWrite5m": 0.083333, + "input": 0.3, + "output": 2.5, + "reasoningOutput": 2.5 + } + }, + { + "source": "models.dev", + "provider": "vercel", + "model": "google/gemini-3.5-flash-lite", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.03, + "input": 0.3, + "output": 2.5 + } + }, + { + "source": "litellm", + "provider": "gemini", + "model": "gemini/gemini-3.5-flash-lite", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "cacheRead": 0.03, + "input": 0.3, + "output": 2.5, + "reasoningOutput": 2.5 + }, + "searchContextPerQuery": { + "search_context_size_low": 0.014, + "search_context_size_medium": 0.014, + "search_context_size_high": 0.014 + }, + "extra": { + "cache_read_input_token_cost_flex": 2e-8, + "cache_read_input_token_cost_priority": 5e-8, + "input_cost_per_token_batches": 1.5e-7, + "input_cost_per_token_flex": 1.5e-7, + "input_cost_per_token_priority": 5.4e-7, + "output_cost_per_token_batches": 0.00000125, + "output_cost_per_token_flex": 0.00000125, + "output_cost_per_token_priority": 0.0000045 + } + }, + { + "source": "litellm", + "provider": "vertex_ai-language-models", + "model": "gemini-3.5-flash-lite", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "cacheRead": 0.03, + "input": 0.3, + "output": 2.5, + "reasoningOutput": 2.5 + }, + "searchContextPerQuery": { + "search_context_size_low": 0.014, + "search_context_size_medium": 0.014, + "search_context_size_high": 0.014 + }, + "extra": { + "cache_read_input_token_cost_flex": 2e-8, + "cache_read_input_token_cost_priority": 5e-8, + "input_cost_per_token_batches": 1.5e-7, + "input_cost_per_token_flex": 1.5e-7, + "input_cost_per_token_priority": 5.4e-7, + "output_cost_per_token_batches": 0.00000125, + "output_cost_per_token_flex": 0.00000125, + "output_cost_per_token_priority": 0.0000045 + } + }, + { + "source": "litellm", + "provider": "vertex_ai-language-models", + "model": "vertex_ai/gemini-3.5-flash-lite", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "cacheRead": 0.03, + "input": 0.3, + "output": 2.5, + "reasoningOutput": 2.5 + }, + "searchContextPerQuery": { + "search_context_size_low": 0.014, + "search_context_size_medium": 0.014, + "search_context_size_high": 0.014 + }, + "extra": { + "cache_read_input_token_cost_flex": 2e-8, + "cache_read_input_token_cost_priority": 5e-8, + "input_cost_per_token_batches": 1.5e-7, + "input_cost_per_token_flex": 1.5e-7, + "input_cost_per_token_priority": 5.4e-7, + "output_cost_per_token_batches": 0.00000125, + "output_cost_per_token_flex": 0.00000125, + "output_cost_per_token_priority": 0.0000045 + } + }, + { + "source": "openrouter", + "provider": "openrouter", + "model": "google/gemini-3.5-flash-lite", + "sourceUrl": "https://openrouter.ai/api/v1/models", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "cacheRead": 0.03, + "cacheWrite": 0.0833333333333, + "cacheWrite5m": 0.0833333333333, + "input": 0.3, + "internalReasoning": 2.5, + "output": 2.5 + }, + "other": { + "audio": 3e-7, + "image": 3e-7, + "webSearch": 0.014 + }, + "extra": { + "input_audio_cache": 3e-8 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Gemini 3.5 Flash Lite", + "Google: Gemini 3.5 Flash Lite" + ], + "families": [ + "gemini", + "gemini-flash-lite" + ], + "modes": [ + "chat" + ], + "knowledgeCutoff": "2026-03", + "releaseDate": "2026-07-21", + "lastUpdated": "2026-07-21", + "supportedParameters": [ + "include_reasoning", + "max_tokens", + "reasoning", + "reasoning_effort", + "response_format", + "seed", + "stop", + "structured_outputs", + "temperature", + "tool_choice", + "tools", + "top_p" + ], + "supportedEndpoints": [ + "/v1/batch", + "/v1/chat/completions", + "/v1/completions" + ], + "providerModelRecordCount": 9 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "google-vertex", + "providerName": "Vertex", + "providerDoc": "https://cloud.google.com/vertex-ai/generative-ai/docs/models", + "model": "gemini-3.5-flash-lite", + "modelKey": "gemini-3.5-flash-lite", + "displayName": "Gemini 3.5 Flash Lite", + "family": "gemini-flash-lite", + "metadata": { + "knowledgeCutoff": "2026-03", + "lastUpdated": "2026-07-21", + "openWeights": false, + "releaseDate": "2026-07-21", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "minimal", + "low", + "medium", + "high" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "google", + "providerName": "Google", + "providerDoc": "https://ai.google.dev/gemini-api/docs/models", + "model": "gemini-3.5-flash-lite", + "modelKey": "gemini-3.5-flash-lite", + "displayName": "Gemini 3.5 Flash Lite", + "family": "gemini-flash-lite", + "metadata": { + "knowledgeCutoff": "2026-03", + "lastUpdated": "2026-07-21", + "openWeights": false, + "releaseDate": "2026-07-21", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "minimal", + "low", + "medium", + "high" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "llmgateway", + "providerName": "LLM Gateway", + "providerApi": "https://api.llmgateway.io/v1", + "providerDoc": "https://llmgateway.io/docs", + "model": "gemini-3.5-flash-lite", + "modelKey": "gemini-3.5-flash-lite", + "displayName": "Gemini 3.5 Flash Lite", + "family": "gemini-flash-lite", + "metadata": { + "knowledgeCutoff": "2026-03", + "lastUpdated": "2026-07-21", + "openWeights": false, + "releaseDate": "2026-07-21", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "minimal", + "low", + "medium", + "high" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "opencode", + "providerName": "OpenCode Zen", + "providerApi": "https://opencode.ai/zen/v1", + "providerDoc": "https://opencode.ai/docs/zen", + "model": "gemini-3.5-flash-lite", + "modelKey": "gemini-3.5-flash-lite", + "displayName": "Gemini 3.5 Flash Lite", + "family": "gemini-flash-lite", + "metadata": { + "knowledgeCutoff": "2026-03", + "lastUpdated": "2026-07-21", + "openWeights": false, + "releaseDate": "2026-07-21", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "minimal", + "low", + "medium", + "high" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "openrouter", + "providerName": "OpenRouter", + "providerApi": "https://openrouter.ai/api/v1", + "providerDoc": "https://openrouter.ai/models", + "model": "google/gemini-3.5-flash-lite", + "modelKey": "google/gemini-3.5-flash-lite", + "displayName": "Gemini 3.5 Flash Lite", + "family": "gemini-flash-lite", + "metadata": { + "knowledgeCutoff": "2026-03", + "lastUpdated": "2026-07-21", + "openWeights": false, + "releaseDate": "2026-07-21", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "minimal", + "low", + "medium", + "high" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "vercel", + "providerName": "Vercel AI Gateway", + "providerDoc": "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway", + "model": "google/gemini-3.5-flash-lite", + "modelKey": "google/gemini-3.5-flash-lite", + "displayName": "Gemini 3.5 Flash Lite", + "family": "gemini", + "metadata": { + "knowledgeCutoff": "2026-03", + "lastUpdated": "2026-07-21", + "openWeights": false, + "releaseDate": "2026-07-21", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "minimal", + "low", + "medium", + "high" + ] + } + ] + } + }, + { + "source": "litellm", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "provider": "gemini", + "model": "gemini/gemini-3.5-flash-lite", + "mode": "chat", + "metadata": { + "source": "https://ai.google.dev/gemini-api/docs/pricing", + "supportedEndpoints": [ + "/v1/chat/completions", + "/v1/completions", + "/v1/batch" + ] + } + }, + { + "source": "litellm", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "provider": "vertex_ai-language-models", + "model": "gemini-3.5-flash-lite", + "mode": "chat", + "metadata": { + "source": "https://ai.google.dev/gemini-api/docs/pricing", + "supportedEndpoints": [ + "/v1/chat/completions", + "/v1/completions", + "/v1/batch" + ] + } + }, + { + "source": "litellm", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "provider": "vertex_ai-language-models", + "model": "vertex_ai/gemini-3.5-flash-lite", + "mode": "chat", + "metadata": { + "source": "https://cloud.google.com/vertex-ai/generative-ai/pricing#gemini-models", + "supportedEndpoints": [ + "/v1/chat/completions", + "/v1/completions", + "/v1/batch" + ] + } + }, + { + "source": "openrouter", + "sourceUrl": "https://openrouter.ai/api/v1/models", + "provider": "openrouter", + "model": "google/gemini-3.5-flash-lite", + "displayName": "Google: Gemini 3.5 Flash Lite", + "metadata": { + "canonicalSlug": "google/gemini-3.5-flash-lite-20260721", + "createdAt": "2026-07-21T15:12:06.000Z", + "links": { + "details": "/api/v1/models/google/gemini-3.5-flash-lite-20260721/endpoints" + }, + "reasoning": { + "mandatory": true, + "default_enabled": true, + "supported_efforts": [ + "high", + "medium", + "low", + "minimal" + ], + "default_effort": "minimal" + }, + "supportedParameters": [ + "include_reasoning", + "max_tokens", + "reasoning", + "reasoning_effort", + "response_format", + "seed", + "stop", + "structured_outputs", + "temperature", + "tool_choice", + "tools", + "top_p" + ], + "tokenizer": "Gemini", + "topProvider": { + "context_length": 1048576, + "max_completion_tokens": 65536, + "is_moderated": false + } + } + } + ] + }, { "id": "google/gemini-3.5-flash-thinking", "provider": "google", @@ -225191,6 +230745,684 @@ } ] }, + { + "id": "google/gemini-3.5-live-translate-preview", + "provider": "google", + "model": "gemini-3.5-live-translate-preview", + "displayName": "Gemini 3.5 Live Translate Preview", + "family": "gemini-pro", + "sources": [ + "models.dev" + ], + "providers": [ + "google" + ], + "aliases": [ + "google/gemini-3.5-live-translate-preview" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 16384, + "outputTokens": 32768, + "supports1MContext": false + }, + "modalities": { + "input": [ + "audio" + ], + "output": [ + "audio", + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": true, + "audioOutput": true, + "imageInput": false, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": false, + "temperature": true, + "toolCalling": false, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "google", + "model": "gemini-3.5-live-translate-preview", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 3.5, + "inputAudio": 3.5, + "output": 21, + "outputAudio": 21 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Gemini 3.5 Live Translate Preview" + ], + "families": [ + "gemini-pro" + ], + "knowledgeCutoff": "2025-01", + "releaseDate": "2026-06-09", + "lastUpdated": "2026-06-09", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "google", + "providerName": "Google", + "providerDoc": "https://ai.google.dev/gemini-api/docs/models", + "model": "gemini-3.5-live-translate-preview", + "modelKey": "gemini-3.5-live-translate-preview", + "displayName": "Gemini 3.5 Live Translate Preview", + "family": "gemini-pro", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-06-09", + "openWeights": false, + "releaseDate": "2026-06-09" + } + } + ] + }, + { + "id": "google/gemini-3.6-flash", + "provider": "google", + "model": "gemini-3.6-flash", + "displayName": "Gemini 3.6 Flash", + "family": "gemini-flash", + "mode": "chat", + "sources": [ + "litellm", + "models.dev", + "openrouter" + ], + "providers": [ + "gemini", + "google", + "google-vertex", + "llmgateway", + "opencode", + "openrouter", + "vercel", + "vertex_ai", + "vertex_ai-language-models" + ], + "aliases": [ + "gemini/gemini-3.6-flash", + "google-vertex/gemini-3.6-flash", + "google/gemini-3.6-flash", + "llmgateway/gemini-3.6-flash", + "opencode/gemini-3.6-flash", + "openrouter/google/gemini-3.6-flash", + "vercel/google/gemini-3.6-flash", + "vertex_ai-language-models/gemini-3.6-flash", + "vertex_ai/gemini-3.6-flash" + ], + "mergedProviderModelRecords": 9, + "limits": { + "contextTokens": 1048576, + "inputTokens": 1048576, + "maxTokens": 65536, + "outputTokens": 65536, + "supports1MContext": true + }, + "modalities": { + "input": [ + "audio", + "file", + "image", + "pdf", + "text", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": true, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": true, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "minimalReasoningEffort": true, + "structuredOutput": true, + "temperature": true, + "toolCalling": true, + "videoInput": true, + "supports1MContext": true, + "parallelFunctionCalling": true, + "responseSchema": true, + "toolChoice": true, + "webSearch": true, + "embedding": false, + "functionCalling": true, + "imageGeneration": false, + "moderation": false, + "nativeStreaming": true, + "promptCaching": true, + "rerank": false, + "speech": false, + "systemMessages": true, + "transcription": false, + "urlContext": true, + "vision": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "google-vertex", + "model": "gemini-3.6-flash", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.15, + "input": 1.5, + "inputAudio": 1.5, + "output": 7.5 + } + }, + { + "source": "models.dev", + "provider": "google", + "model": "gemini-3.6-flash", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.15, + "input": 1.5, + "inputAudio": 1.5, + "output": 7.5 + } + }, + { + "source": "models.dev", + "provider": "llmgateway", + "model": "gemini-3.6-flash", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.15, + "cacheWrite": 0.08333, + "cacheWrite5m": 0.08333, + "input": 1.5, + "output": 7.5 + } + }, + { + "source": "models.dev", + "provider": "opencode", + "model": "gemini-3.6-flash", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.15, + "input": 1.5, + "inputAudio": 1.5, + "output": 7.5 + } + }, + { + "source": "models.dev", + "provider": "openrouter", + "model": "google/gemini-3.6-flash", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.15, + "cacheWrite": 0.083333, + "cacheWrite5m": 0.083333, + "input": 1.5, + "output": 7.5, + "reasoningOutput": 7.5 + } + }, + { + "source": "models.dev", + "provider": "vercel", + "model": "google/gemini-3.6-flash", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.15, + "input": 1.5, + "output": 7.5 + } + }, + { + "source": "litellm", + "provider": "gemini", + "model": "gemini/gemini-3.6-flash", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "cacheRead": 0.15, + "input": 1.5, + "output": 7.5, + "reasoningOutput": 7.5 + }, + "searchContextPerQuery": { + "search_context_size_low": 0.014, + "search_context_size_medium": 0.014, + "search_context_size_high": 0.014 + }, + "extra": { + "cache_read_input_token_cost_flex": 7.5e-8, + "input_cost_per_token_batches": 7.5e-7, + "input_cost_per_token_flex": 7.5e-7, + "output_cost_per_token_batches": 0.00000375, + "output_cost_per_token_flex": 0.00000375, + "input_cost_per_token_priority": 0.0000027, + "output_cost_per_token_priority": 0.0000135, + "cache_read_input_token_cost_priority": 2.7e-7 + } + }, + { + "source": "litellm", + "provider": "vertex_ai-language-models", + "model": "gemini-3.6-flash", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "cacheRead": 0.15, + "input": 1.5, + "output": 7.5, + "reasoningOutput": 7.5 + }, + "searchContextPerQuery": { + "search_context_size_low": 0.014, + "search_context_size_medium": 0.014, + "search_context_size_high": 0.014 + }, + "extra": { + "cache_read_input_token_cost_flex": 7.5e-8, + "input_cost_per_token_batches": 7.5e-7, + "input_cost_per_token_flex": 7.5e-7, + "output_cost_per_token_batches": 0.00000375, + "output_cost_per_token_flex": 0.00000375, + "input_cost_per_token_priority": 0.0000027, + "output_cost_per_token_priority": 0.0000135, + "cache_read_input_token_cost_priority": 2.7e-7 + } + }, + { + "source": "litellm", + "provider": "vertex_ai", + "model": "vertex_ai/gemini-3.6-flash", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "cacheRead": 0.15, + "input": 1.5, + "output": 7.5, + "reasoningOutput": 7.5 + }, + "searchContextPerQuery": { + "search_context_size_low": 0.014, + "search_context_size_medium": 0.014, + "search_context_size_high": 0.014 + }, + "extra": { + "cache_read_input_token_cost_flex": 7.5e-8, + "input_cost_per_token_batches": 7.5e-7, + "input_cost_per_token_flex": 7.5e-7, + "output_cost_per_token_batches": 0.00000375, + "output_cost_per_token_flex": 0.00000375, + "input_cost_per_token_priority": 0.0000027, + "output_cost_per_token_priority": 0.0000135, + "cache_read_input_token_cost_priority": 2.7e-7 + } + }, + { + "source": "openrouter", + "provider": "openrouter", + "model": "google/gemini-3.6-flash", + "sourceUrl": "https://openrouter.ai/api/v1/models", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "cacheRead": 0.15, + "cacheWrite": 0.0833333333333, + "cacheWrite5m": 0.0833333333333, + "input": 1.5, + "internalReasoning": 7.5, + "output": 7.5 + }, + "other": { + "audio": 0.0000015, + "image": 0.0000015, + "webSearch": 0.014 + }, + "extra": { + "input_audio_cache": 1.5e-7 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Gemini 3.6 Flash", + "Google: Gemini 3.6 Flash" + ], + "families": [ + "gemini", + "gemini-flash" + ], + "modes": [ + "chat" + ], + "knowledgeCutoff": "2026-03", + "releaseDate": "2026-07-21", + "lastUpdated": "2026-07-21", + "supportedParameters": [ + "include_reasoning", + "max_tokens", + "reasoning", + "reasoning_effort", + "response_format", + "seed", + "stop", + "structured_outputs", + "temperature", + "tool_choice", + "tools", + "top_p" + ], + "supportedEndpoints": [ + "/v1/batch", + "/v1/chat/completions", + "/v1/completions" + ], + "providerModelRecordCount": 9 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "google-vertex", + "providerName": "Vertex", + "providerDoc": "https://cloud.google.com/vertex-ai/generative-ai/docs/models", + "model": "gemini-3.6-flash", + "modelKey": "gemini-3.6-flash", + "displayName": "Gemini 3.6 Flash", + "family": "gemini-flash", + "metadata": { + "knowledgeCutoff": "2026-03", + "lastUpdated": "2026-07-21", + "openWeights": false, + "releaseDate": "2026-07-21", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "minimal", + "low", + "medium", + "high" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "google", + "providerName": "Google", + "providerDoc": "https://ai.google.dev/gemini-api/docs/models", + "model": "gemini-3.6-flash", + "modelKey": "gemini-3.6-flash", + "displayName": "Gemini 3.6 Flash", + "family": "gemini-flash", + "metadata": { + "knowledgeCutoff": "2026-03", + "lastUpdated": "2026-07-21", + "openWeights": false, + "releaseDate": "2026-07-21", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "minimal", + "low", + "medium", + "high" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "llmgateway", + "providerName": "LLM Gateway", + "providerApi": "https://api.llmgateway.io/v1", + "providerDoc": "https://llmgateway.io/docs", + "model": "gemini-3.6-flash", + "modelKey": "gemini-3.6-flash", + "displayName": "Gemini 3.6 Flash", + "family": "gemini-flash", + "metadata": { + "knowledgeCutoff": "2026-03", + "lastUpdated": "2026-07-21", + "openWeights": false, + "releaseDate": "2026-07-21", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "minimal", + "low", + "medium", + "high" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "opencode", + "providerName": "OpenCode Zen", + "providerApi": "https://opencode.ai/zen/v1", + "providerDoc": "https://opencode.ai/docs/zen", + "model": "gemini-3.6-flash", + "modelKey": "gemini-3.6-flash", + "displayName": "Gemini 3.6 Flash", + "family": "gemini-flash", + "metadata": { + "knowledgeCutoff": "2026-03", + "lastUpdated": "2026-07-21", + "openWeights": false, + "releaseDate": "2026-07-21", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "minimal", + "low", + "medium", + "high" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "openrouter", + "providerName": "OpenRouter", + "providerApi": "https://openrouter.ai/api/v1", + "providerDoc": "https://openrouter.ai/models", + "model": "google/gemini-3.6-flash", + "modelKey": "google/gemini-3.6-flash", + "displayName": "Gemini 3.6 Flash", + "family": "gemini-flash", + "metadata": { + "knowledgeCutoff": "2026-03", + "lastUpdated": "2026-07-21", + "openWeights": false, + "releaseDate": "2026-07-21", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "minimal", + "low", + "medium", + "high" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "vercel", + "providerName": "Vercel AI Gateway", + "providerDoc": "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway", + "model": "google/gemini-3.6-flash", + "modelKey": "google/gemini-3.6-flash", + "displayName": "Gemini 3.6 Flash", + "family": "gemini", + "metadata": { + "knowledgeCutoff": "2026-03", + "lastUpdated": "2026-07-21", + "openWeights": false, + "releaseDate": "2026-07-21", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "minimal", + "low", + "medium", + "high" + ] + } + ] + } + }, + { + "source": "litellm", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "provider": "gemini", + "model": "gemini/gemini-3.6-flash", + "mode": "chat", + "metadata": { + "source": "https://ai.google.dev/pricing/gemini-3", + "supportedEndpoints": [ + "/v1/chat/completions", + "/v1/completions", + "/v1/batch" + ] + } + }, + { + "source": "litellm", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "provider": "vertex_ai-language-models", + "model": "gemini-3.6-flash", + "mode": "chat", + "metadata": { + "source": "https://ai.google.dev/pricing/gemini-3", + "supportedEndpoints": [ + "/v1/chat/completions", + "/v1/completions", + "/v1/batch" + ] + } + }, + { + "source": "litellm", + "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", + "provider": "vertex_ai", + "model": "vertex_ai/gemini-3.6-flash", + "mode": "chat", + "metadata": { + "source": "https://cloud.google.com/vertex-ai/generative-ai/pricing", + "supportedEndpoints": [ + "/v1/chat/completions", + "/v1/completions", + "/v1/batch" + ] + } + }, + { + "source": "openrouter", + "sourceUrl": "https://openrouter.ai/api/v1/models", + "provider": "openrouter", + "model": "google/gemini-3.6-flash", + "displayName": "Google: Gemini 3.6 Flash", + "metadata": { + "canonicalSlug": "google/gemini-3.6-flash-20260721", + "createdAt": "2026-07-21T15:12:13.000Z", + "links": { + "details": "/api/v1/models/google/gemini-3.6-flash-20260721/endpoints" + }, + "reasoning": { + "mandatory": true, + "default_enabled": true, + "supported_efforts": [ + "high", + "medium", + "low", + "minimal" + ], + "default_effort": "medium" + }, + "supportedParameters": [ + "include_reasoning", + "max_tokens", + "reasoning", + "reasoning_effort", + "response_format", + "seed", + "stop", + "structured_outputs", + "temperature", + "tool_choice", + "tools", + "top_p" + ], + "tokenizer": "Gemini", + "topProvider": { + "context_length": 1048576, + "max_completion_tokens": 65536, + "is_moderated": false + } + } + } + ] + }, { "id": "google/gemini-deep-research", "provider": "google", @@ -225511,7 +231743,7 @@ "provider": "google", "model": "gemini-embedding-2", "displayName": "Gemini Embedding 2", - "family": "gemini-embedding", + "family": "gemini", "mode": "embedding", "sources": [ "litellm", @@ -225519,17 +231751,19 @@ ], "providers": [ "gemini", + "google", "vercel", "vertex_ai", "vertex_ai-embedding-models" ], "aliases": [ "gemini/gemini-embedding-2", + "google/gemini-embedding-2", "vercel/google/gemini-embedding-2", "vertex_ai-embedding-models/gemini-embedding-2", "vertex_ai/gemini-embedding-2" ], - "mergedProviderModelRecords": 4, + "mergedProviderModelRecords": 5, "limits": { "contextTokens": 8192, "inputTokens": 8192, @@ -225540,7 +231774,9 @@ }, "modalities": { "input": [ + "audio", "image", + "pdf", "text", "video" ], @@ -225550,30 +231786,42 @@ ] }, "capabilities": { - "audioInput": false, + "attachments": true, + "audioInput": true, "audioOutput": false, - "embedding": true, - "imageGeneration": false, "imageInput": true, "imageOutput": false, - "moderation": false, - "multimodal": true, - "pdfInput": false, - "rerank": false, - "speech": false, - "transcription": false, - "videoInput": true, - "supports1MContext": false, - "attachments": false, "openWeights": false, + "pdfInput": true, "reasoning": false, "temperature": true, - "toolCalling": false + "toolCalling": false, + "videoInput": true, + "supports1MContext": false, + "embedding": true, + "imageGeneration": false, + "moderation": false, + "multimodal": true, + "rerank": false, + "speech": false, + "transcription": false }, "pricing": { "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ + { + "source": "models.dev", + "provider": "google", + "model": "gemini-embedding-2", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0.2, + "inputAudio": 6.5, + "output": 0 + } + }, { "source": "litellm", "provider": "gemini", @@ -225641,16 +231889,35 @@ "Gemini Embedding 2" ], "families": [ + "gemini", "gemini-embedding" ], "modes": [ "embedding" ], - "releaseDate": "2026-03-10", - "lastUpdated": "2026-03-23", - "providerModelRecordCount": 4 + "knowledgeCutoff": "2025-11", + "releaseDate": "2026-04-22", + "lastUpdated": "2026-04-22", + "providerModelRecordCount": 5 }, "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "google", + "providerName": "Google", + "providerDoc": "https://ai.google.dev/gemini-api/docs/models", + "model": "gemini-embedding-2", + "modelKey": "gemini-embedding-2", + "displayName": "Gemini Embedding 2", + "family": "gemini", + "metadata": { + "knowledgeCutoff": "2025-11", + "lastUpdated": "2026-04-22", + "openWeights": false, + "releaseDate": "2026-04-22" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -225662,7 +231929,8 @@ "displayName": "Gemini Embedding 2", "family": "gemini-embedding", "metadata": { - "lastUpdated": "2026-03-23", + "knowledgeCutoff": "2025-11", + "lastUpdated": "2026-04-22", "openWeights": false, "releaseDate": "2026-03-10" } @@ -226373,6 +232641,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -226434,6 +232704,7 @@ "per1MTokens": { "cacheRead": 0.15, "cacheWrite": 0.08333333333333334, + "cacheWrite5m": 0.08333333333333334, "input": 1.5, "output": 9 } @@ -226472,9 +232743,10 @@ "per1MTokens": { "cacheRead": 0.15, "cacheWrite": 0.083333, + "cacheWrite5m": 0.083333, "input": 1.5, - "output": 9, - "reasoningOutput": 9 + "output": 7.5, + "reasoningOutput": 7.5 } }, { @@ -226537,17 +232809,18 @@ "per1MTokens": { "cacheRead": 0.15, "cacheWrite": 0.0833333333333, + "cacheWrite5m": 0.0833333333333, "input": 1.5, - "internalReasoning": 9, - "output": 9 + "internalReasoning": 7.5, + "output": 7.5 }, "other": { - "audio": 0.000003, + "audio": 0.0000015, "image": 0.0000015, "webSearch": 0.014 }, "extra": { - "input_audio_cache": 3e-7 + "input_audio_cache": 1.5e-7 } } ] @@ -226824,7 +233097,6 @@ "metadata": { "canonicalSlug": "~google/gemini-flash-latest", "createdAt": "2026-04-27T19:33:18.000Z", - "knowledgeCutoff": "2025-01-01", "links": { "details": "/api/v1/models/~google/gemini-flash-latest/endpoints" }, @@ -226920,6 +233192,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -227816,6 +234090,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": true, @@ -227849,6 +234125,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 2, "output": 12 } @@ -227886,6 +234163,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 2, "output": 12, "reasoningOutput": 12 @@ -227961,6 +234239,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 2, "internalReasoning": 12, "output": 12 @@ -228342,6 +234621,112 @@ } ] }, + { + "id": "google/gemini-robotics-er-1.6-preview", + "provider": "google", + "model": "gemini-robotics-er-1.6-preview", + "displayName": "Gemini Robotics-ER 1.6 Preview", + "family": "gemini", + "sources": [ + "models.dev" + ], + "providers": [ + "google" + ], + "aliases": [ + "google/gemini-robotics-er-1.6-preview" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 131072, + "outputTokens": 65536, + "supports1MContext": false + }, + "modalities": { + "input": [ + "audio", + "image", + "text", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": true, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": true, + "structuredOutput": true, + "temperature": true, + "toolCalling": true, + "videoInput": true, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "google", + "model": "gemini-robotics-er-1.6-preview", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 1, + "inputAudio": 2, + "output": 5 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Gemini Robotics-ER 1.6 Preview" + ], + "families": [ + "gemini" + ], + "knowledgeCutoff": "2025-01", + "releaseDate": "2026-04-14", + "lastUpdated": "2026-04-14", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "google", + "providerName": "Google", + "providerDoc": "https://ai.google.dev/gemini-api/docs/models", + "model": "gemini-robotics-er-1.6-preview", + "modelKey": "gemini-robotics-er-1.6-preview", + "displayName": "Gemini Robotics-ER 1.6 Preview", + "family": "gemini", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-04-14", + "openWeights": false, + "releaseDate": "2026-04-14", + "reasoningOptions": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 0 + } + ] + } + } + ] + }, { "id": "google/gemma-2-27b-it", "provider": "google", @@ -228889,6 +235274,7 @@ "kilo", "novita", "novita-ai", + "nvidia", "openrouter" ], "aliases": [ @@ -228898,9 +235284,10 @@ "kilo/google/gemma-3-12b-it", "novita-ai/google/gemma-3-12b-it", "novita/google/gemma-3-12b-it", + "nvidia/google/gemma-3-12b-it", "openrouter/google/gemma-3-12b-it" ], - "mergedProviderModelRecords": 7, + "mergedProviderModelRecords": 8, "limits": { "contextTokens": 131072, "inputTokens": 131072, @@ -228983,6 +235370,17 @@ "output": 0.1 } }, + { + "source": "models.dev", + "provider": "nvidia", + "model": "google/gemma-3-12b-it", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + }, { "source": "models.dev", "provider": "openrouter", @@ -229072,7 +235470,7 @@ "top_k", "top_p" ], - "providerModelRecordCount": 7 + "providerModelRecordCount": 8 }, "sourceRecords": [ { @@ -229124,6 +235522,23 @@ "releaseDate": "2025-03-13" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "nvidia", + "providerName": "Nvidia", + "providerApi": "https://integrate.api.nvidia.com/v1", + "providerDoc": "https://docs.api.nvidia.com/nim/", + "model": "google/gemma-3-12b-it", + "modelKey": "google/gemma-3-12b-it", + "displayName": "Gemma 3 12B IT", + "family": "gemma", + "metadata": { + "lastUpdated": "2025-03-12", + "openWeights": true, + "releaseDate": "2025-03-12" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -229241,7 +235656,7 @@ ], "mergedProviderModelRecords": 9, "limits": { - "contextTokens": 131072, + "contextTokens": 262144, "inputTokens": 131072, "maxTokens": 131072, "outputTokens": 131072, @@ -229310,6 +235725,7 @@ "per1MTokens": { "cacheRead": 0.01, "cacheWrite": 0.125, + "cacheWrite5m": 0.125, "input": 0.1, "output": 0.3 } @@ -229332,8 +235748,9 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "input": 0.1, - "output": 0.3 + "cacheRead": 0.04, + "input": 0.08, + "output": 0.45 } }, { @@ -229431,8 +235848,9 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "input": 0.1, - "output": 0.3 + "cacheRead": 0.04, + "input": 0.08, + "output": 0.45 } } ] @@ -229636,8 +236054,8 @@ ], "tokenizer": "Gemini", "topProvider": { - "context_length": 110000, - "max_completion_tokens": null, + "context_length": 131072, + "max_completion_tokens": 131072, "is_moderated": false } } @@ -229659,14 +236077,16 @@ "providers": [ "deepinfra", "kilo", + "nvidia", "openrouter" ], "aliases": [ "deepinfra/google/gemma-3-4b-it", "kilo/google/gemma-3-4b-it", + "nvidia/google/gemma-3-4b-it", "openrouter/google/gemma-3-4b-it" ], - "mergedProviderModelRecords": 3, + "mergedProviderModelRecords": 4, "limits": { "contextTokens": 131072, "inputTokens": 131072, @@ -229693,7 +236113,7 @@ "pdfInput": false, "reasoning": false, "temperature": true, - "toolCalling": false, + "toolCalling": true, "videoInput": false, "supports1MContext": false, "structuredOutput": true, @@ -229724,6 +236144,17 @@ "output": 0.08 } }, + { + "source": "models.dev", + "provider": "nvidia", + "model": "google/gemma-3-4b-it", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + }, { "source": "models.dev", "provider": "openrouter", @@ -229762,6 +236193,7 @@ "metadata": { "displayNames": [ "Gemma 3 4B", + "Gemma 3 4B IT", "Google: Gemma 3 4B" ], "families": [ @@ -229788,7 +236220,7 @@ "top_k", "top_p" ], - "providerModelRecordCount": 3 + "providerModelRecordCount": 4 }, "sourceRecords": [ { @@ -229807,6 +236239,23 @@ "releaseDate": "2025-03-13" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "nvidia", + "providerName": "Nvidia", + "providerApi": "https://integrate.api.nvidia.com/v1", + "providerDoc": "https://docs.api.nvidia.com/nim/", + "model": "google/gemma-3-4b-it", + "modelKey": "google/gemma-3-4b-it", + "displayName": "Gemma 3 4B IT", + "family": "gemma", + "metadata": { + "lastUpdated": "2025-03-12", + "openWeights": true, + "releaseDate": "2025-03-12" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -229910,6 +236359,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -229928,6 +236379,7 @@ "per1MTokens": { "cacheRead": 0.15, "cacheWrite": 0.15, + "cacheWrite5m": 0.15, "input": 0.15, "output": 0.15 } @@ -230351,6 +236803,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -230369,6 +236823,7 @@ "per1MTokens": { "cacheRead": 0.25, "cacheWrite": 0.25, + "cacheWrite5m": 0.25, "input": 0.25, "output": 0.25 } @@ -230493,6 +236948,8 @@ "supports1MContext": false, "interleaved": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "parallelFunctionCalling": false, "responseSchema": true, "toolChoice": true, @@ -230594,8 +237051,9 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "input": 0.07, - "output": 0.34 + "cacheRead": 0.05, + "input": 0.14, + "output": 0.42 } }, { @@ -230661,8 +237119,9 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "input": 0.07, - "output": 0.34 + "cacheRead": 0.05, + "input": 0.15, + "output": 0.45 } } ] @@ -231028,7 +237487,7 @@ "tokenizer": "Gemma", "topProvider": { "context_length": 262144, - "max_completion_tokens": 16384, + "max_completion_tokens": 262144, "is_moderated": false } } @@ -231494,6 +237953,7 @@ ], "providers": [ "abacus", + "aiand", "berget", "deepinfra", "fastrouter", @@ -231518,6 +237978,7 @@ ], "aliases": [ "abacus/google/gemma-4-31b-it", + "aiand/google/gemma-4-31b-it", "berget/google/gemma-4-31B-it", "deepinfra/google/gemma-4-31B-it", "fastrouter/google/gemma-4-31b-it", @@ -231540,7 +238001,7 @@ "vercel/google/gemma-4-31b-it", "wandb/google/gemma-4-31B-it" ], - "mergedProviderModelRecords": 22, + "mergedProviderModelRecords": 23, "limits": { "contextTokens": 262144, "inputTokens": 262144, @@ -231573,11 +238034,16 @@ "toolCalling": true, "videoInput": true, "supports1MContext": false, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "minimalReasoningEffort": true, + "noneReasoningEffort": true, + "xhighReasoningEffort": true, "parallelFunctionCalling": false, "responseSchema": true, "toolChoice": true, "webSearch": false, - "lowReasoningEffort": true, "embedding": false, "functionCalling": true, "imageGeneration": false, @@ -231603,6 +238069,17 @@ "output": 0.4 } }, + { + "source": "models.dev", + "provider": "aiand", + "model": "google/gemma-4-31b-it", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0.2, + "output": 0.5 + } + }, { "source": "models.dev", "provider": "berget", @@ -231732,9 +238209,8 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.12, - "input": 0.22, - "output": 0.55 + "input": 0.14, + "output": 0.4 } }, { @@ -231757,6 +238233,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 0.5, + "cacheWrite5m": 0.5, "input": 0.5, "output": 0.5 } @@ -231801,9 +238278,9 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.09, - "input": 0.12, - "output": 0.35 + "cacheRead": 0.1, + "input": 0.1, + "output": 0.34 } }, { @@ -231825,9 +238302,8 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "cacheRead": 0.12, - "input": 0.22, - "output": 0.55 + "input": 0.14, + "output": 0.4 } } ] @@ -231871,7 +238347,7 @@ "top_logprobs", "top_p" ], - "providerModelRecordCount": 22 + "providerModelRecordCount": 23 }, "sourceRecords": [ { @@ -231891,6 +238367,36 @@ "releaseDate": "2026-04-02" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "aiand", + "providerName": "ai&", + "providerApi": "https://api.aiand.com/v1", + "providerDoc": "https://docs.aiand.com/", + "model": "google/gemma-4-31b-it", + "modelKey": "google/gemma-4-31b-it", + "displayName": "Gemma 4 31B IT", + "family": "gemma", + "metadata": { + "lastUpdated": "2026-04-02", + "openWeights": true, + "releaseDate": "2026-04-02", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -232841,6 +239347,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -232860,6 +239368,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 0.1, + "cacheWrite5m": 0.1, "input": 0.1, "output": 0.1 } @@ -232948,6 +239457,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -232967,6 +239478,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0.2, + "cacheWrite5m": 0.2, "input": 0.2, "output": 0.2 } @@ -234772,7 +241284,7 @@ "id": "google/lyria-3-clip-preview", "provider": "google", "model": "lyria-3-clip-preview", - "displayName": "Google: Lyria 3 Clip Preview", + "displayName": "Lyria 3 Clip Preview", "family": "lyria", "mode": "chat", "sources": [ @@ -234782,15 +241294,17 @@ ], "providers": [ "gemini", + "google", "kilo", "openrouter" ], "aliases": [ "gemini/lyria-3-clip-preview", + "google/lyria-3-clip-preview", "kilo/google/lyria-3-clip-preview", "openrouter/google/lyria-3-clip-preview" ], - "mergedProviderModelRecords": 3, + "mergedProviderModelRecords": 4, "limits": { "contextTokens": 1048576, "inputTokens": 131072, @@ -234817,11 +241331,11 @@ "openWeights": false, "pdfInput": false, "reasoning": false, + "structuredOutput": false, "temperature": true, "toolCalling": false, "videoInput": false, "supports1MContext": true, - "structuredOutput": false, "parallelFunctionCalling": false, "responseSchema": true, "toolChoice": false, @@ -234841,6 +241355,17 @@ "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ + { + "source": "models.dev", + "provider": "google", + "model": "lyria-3-clip-preview", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + }, { "source": "models.dev", "provider": "kilo", @@ -234901,8 +241426,8 @@ "modes": [ "chat" ], - "releaseDate": "2026-03-30", - "lastUpdated": "2026-04-11", + "releaseDate": "2026-03-25", + "lastUpdated": "2026-03-25", "supportedParameters": [ "max_tokens", "response_format", @@ -234910,9 +241435,25 @@ "temperature", "top_p" ], - "providerModelRecordCount": 3 + "providerModelRecordCount": 4 }, "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "google", + "providerName": "Google", + "providerDoc": "https://ai.google.dev/gemini-api/docs/models", + "model": "lyria-3-clip-preview", + "modelKey": "lyria-3-clip-preview", + "displayName": "Lyria 3 Clip Preview", + "family": "lyria", + "metadata": { + "lastUpdated": "2026-03-25", + "openWeights": false, + "releaseDate": "2026-03-25" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -234941,9 +241482,9 @@ "displayName": "Lyria 3 Clip Preview", "family": "lyria", "metadata": { - "lastUpdated": "2026-03-30", + "lastUpdated": "2026-03-25", "openWeights": false, - "releaseDate": "2026-03-30" + "releaseDate": "2026-03-25" } }, { @@ -234989,7 +241530,7 @@ "id": "google/lyria-3-pro-preview", "provider": "google", "model": "lyria-3-pro-preview", - "displayName": "Google: Lyria 3 Pro Preview", + "displayName": "Lyria 3 Pro Preview", "family": "lyria", "mode": "chat", "sources": [ @@ -234999,15 +241540,17 @@ ], "providers": [ "gemini", + "google", "kilo", "openrouter" ], "aliases": [ "gemini/lyria-3-pro-preview", + "google/lyria-3-pro-preview", "kilo/google/lyria-3-pro-preview", "openrouter/google/lyria-3-pro-preview" ], - "mergedProviderModelRecords": 3, + "mergedProviderModelRecords": 4, "limits": { "contextTokens": 1048576, "inputTokens": 131072, @@ -235034,11 +241577,11 @@ "openWeights": false, "pdfInput": false, "reasoning": false, + "structuredOutput": false, "temperature": true, "toolCalling": false, "videoInput": false, "supports1MContext": true, - "structuredOutput": false, "parallelFunctionCalling": false, "responseSchema": true, "toolChoice": false, @@ -235058,6 +241601,17 @@ "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ + { + "source": "models.dev", + "provider": "google", + "model": "lyria-3-pro-preview", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + }, { "source": "models.dev", "provider": "kilo", @@ -235115,8 +241669,8 @@ "modes": [ "chat" ], - "releaseDate": "2026-03-30", - "lastUpdated": "2026-04-11", + "releaseDate": "2026-03-25", + "lastUpdated": "2026-03-25", "supportedParameters": [ "max_tokens", "response_format", @@ -235124,9 +241678,25 @@ "temperature", "top_p" ], - "providerModelRecordCount": 3 + "providerModelRecordCount": 4 }, "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "google", + "providerName": "Google", + "providerDoc": "https://ai.google.dev/gemini-api/docs/models", + "model": "lyria-3-pro-preview", + "modelKey": "lyria-3-pro-preview", + "displayName": "Lyria 3 Pro Preview", + "family": "lyria", + "metadata": { + "lastUpdated": "2026-03-25", + "openWeights": false, + "releaseDate": "2026-03-25" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -235155,9 +241725,9 @@ "displayName": "Lyria 3 Pro Preview", "family": "lyria", "metadata": { - "lastUpdated": "2026-03-30", + "lastUpdated": "2026-03-25", "openWeights": false, - "releaseDate": "2026-03-30" + "releaseDate": "2026-03-25" } }, { @@ -236498,48 +243068,61 @@ "id": "google/veo-3.1-fast-generate-preview", "provider": "google", "model": "veo-3.1-fast-generate-preview", + "displayName": "Veo 3.1 fast", + "family": "veo", "mode": "video_generation", "sources": [ - "litellm" + "litellm", + "models.dev" ], "providers": [ "gemini", + "google", "vertex_ai-video-models" ], "aliases": [ "gemini/veo-3.1-fast-generate-preview", + "google/veo-3.1-fast-generate-preview", "vertex_ai-video-models/vertex_ai/veo-3.1-fast-generate-preview" ], - "mergedProviderModelRecords": 2, + "mergedProviderModelRecords": 3, "limits": { "contextTokens": 1024, "inputTokens": 1024, "maxTokens": 1024, - "outputTokens": 1024, + "outputTokens": 8192, "supports1MContext": false }, "modalities": { "input": [ - "text" + "image", + "text", + "video" ], "output": [ - "text" + "text", + "video" ] }, "capabilities": { + "attachments": true, "audioInput": false, "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": false, + "temperature": false, + "toolCalling": false, + "videoInput": true, + "supports1MContext": false, "embedding": false, "imageGeneration": false, - "imageInput": false, - "imageOutput": false, "moderation": false, - "pdfInput": false, "rerank": false, "speech": false, - "transcription": false, - "videoInput": false, - "supports1MContext": false + "transcription": false }, "pricing": { "currency": "USD", @@ -236568,12 +243151,36 @@ ] }, "metadata": { + "displayNames": [ + "Veo 3.1 fast" + ], + "families": [ + "veo" + ], "modes": [ "video_generation" ], - "providerModelRecordCount": 2 + "releaseDate": "2025-10-15", + "lastUpdated": "2026-01-01", + "providerModelRecordCount": 3 }, "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "google", + "providerName": "Google", + "providerDoc": "https://ai.google.dev/gemini-api/docs/models", + "model": "veo-3.1-fast-generate-preview", + "modelKey": "veo-3.1-fast-generate-preview", + "displayName": "Veo 3.1 fast", + "family": "veo", + "metadata": { + "lastUpdated": "2026-01-01", + "openWeights": false, + "releaseDate": "2025-10-15" + } + }, { "source": "litellm", "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", @@ -236737,48 +243344,60 @@ "id": "google/veo-3.1-generate-preview", "provider": "google", "model": "veo-3.1-generate-preview", + "displayName": "Veo 3.1", + "family": "veo", "mode": "video_generation", "sources": [ - "litellm" + "litellm", + "models.dev" ], "providers": [ "gemini", + "google", "vertex_ai-video-models" ], "aliases": [ "gemini/veo-3.1-generate-preview", + "google/veo-3.1-generate-preview", "vertex_ai-video-models/vertex_ai/veo-3.1-generate-preview" ], - "mergedProviderModelRecords": 2, + "mergedProviderModelRecords": 3, "limits": { "contextTokens": 1024, "inputTokens": 1024, "maxTokens": 1024, - "outputTokens": 1024, + "outputTokens": 8192, "supports1MContext": false }, "modalities": { "input": [ + "image", "text" ], "output": [ - "text" + "text", + "video" ] }, "capabilities": { + "attachments": true, "audioInput": false, "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": false, + "temperature": false, + "toolCalling": false, + "videoInput": false, + "supports1MContext": false, "embedding": false, "imageGeneration": false, - "imageInput": false, - "imageOutput": false, "moderation": false, - "pdfInput": false, "rerank": false, "speech": false, - "transcription": false, - "videoInput": false, - "supports1MContext": false + "transcription": false }, "pricing": { "currency": "USD", @@ -236807,12 +243426,40 @@ ] }, "metadata": { + "displayNames": [ + "Veo 3.1" + ], + "families": [ + "veo" + ], "modes": [ "video_generation" ], - "providerModelRecordCount": 2 + "statuses": [ + "beta" + ], + "releaseDate": "2025-10-15", + "lastUpdated": "2026-01", + "providerModelRecordCount": 3 }, "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "google", + "providerName": "Google", + "providerDoc": "https://ai.google.dev/gemini-api/docs/models", + "model": "veo-3.1-generate-preview", + "modelKey": "veo-3.1-generate-preview", + "displayName": "Veo 3.1", + "family": "veo", + "status": "beta", + "metadata": { + "lastUpdated": "2026-01", + "openWeights": false, + "releaseDate": "2025-10-15" + } + }, { "source": "litellm", "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", @@ -236839,46 +243486,58 @@ "id": "google/veo-3.1-lite-generate-preview", "provider": "google", "model": "veo-3.1-lite-generate-preview", + "displayName": "Veo 3.1 lite", + "family": "veo", "mode": "video_generation", "sources": [ - "litellm" + "litellm", + "models.dev" ], "providers": [ - "gemini" + "gemini", + "google" ], "aliases": [ - "gemini/veo-3.1-lite-generate-preview" + "gemini/veo-3.1-lite-generate-preview", + "google/veo-3.1-lite-generate-preview" ], - "mergedProviderModelRecords": 1, + "mergedProviderModelRecords": 2, "limits": { "contextTokens": 1024, "inputTokens": 1024, "maxTokens": 1024, - "outputTokens": 1024, + "outputTokens": 8192, "supports1MContext": false }, "modalities": { "input": [ + "image", "text" ], "output": [ - "text" + "text", + "video" ] }, "capabilities": { + "attachments": true, "audioInput": false, "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": false, + "temperature": false, + "toolCalling": false, + "videoInput": false, + "supports1MContext": false, "embedding": false, "imageGeneration": false, - "imageInput": false, - "imageOutput": false, "moderation": false, - "pdfInput": false, "rerank": false, "speech": false, - "transcription": false, - "videoInput": false, - "supports1MContext": false + "transcription": false }, "pricing": { "currency": "USD", @@ -236900,12 +243559,36 @@ ] }, "metadata": { + "displayNames": [ + "Veo 3.1 lite" + ], + "families": [ + "veo" + ], "modes": [ "video_generation" ], - "providerModelRecordCount": 1 + "releaseDate": "2026-03-31", + "lastUpdated": "2026-03-31", + "providerModelRecordCount": 2 }, "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "google", + "providerName": "Google", + "providerDoc": "https://ai.google.dev/gemini-api/docs/models", + "model": "veo-3.1-lite-generate-preview", + "modelKey": "veo-3.1-lite-generate-preview", + "displayName": "Veo 3.1 lite", + "family": "veo", + "metadata": { + "lastUpdated": "2026-03-31", + "openWeights": false, + "releaseDate": "2026-03-31" + } + }, { "source": "litellm", "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", @@ -239294,6 +245977,120 @@ } ] }, + { + "id": "huggingface/mimo-v2.5", + "provider": "huggingface", + "model": "mimo-v2.5", + "displayName": "MiMo-V2.5", + "family": "mimo", + "sources": [ + "models.dev" + ], + "providers": [ + "huggingface" + ], + "aliases": [ + "huggingface/XiaomiMiMo/MiMo-V2.5" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 262144, + "outputTokens": 131072, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "noneReasoningEffort": true, + "xhighReasoningEffort": true, + "structuredOutput": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "huggingface", + "model": "XiaomiMiMo/MiMo-V2.5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0.4, + "output": 2 + } + } + ] + }, + "metadata": { + "displayNames": [ + "MiMo-V2.5" + ], + "families": [ + "mimo" + ], + "knowledgeCutoff": "2024-12", + "releaseDate": "2026-04-22", + "lastUpdated": "2026-04-22", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "huggingface", + "providerName": "Hugging Face", + "providerApi": "https://router.huggingface.co/v1", + "providerDoc": "https://huggingface.co/docs/inference-providers", + "model": "XiaomiMiMo/MiMo-V2.5", + "modelKey": "XiaomiMiMo/MiMo-V2.5", + "displayName": "MiMo-V2.5", + "family": "mimo", + "metadata": { + "knowledgeCutoff": "2024-12", + "lastUpdated": "2026-04-22", + "openWeights": true, + "releaseDate": "2026-04-22", + "reasoningOptions": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high", + "xhigh" + ] + } + ] + } + } + ] + }, { "id": "huggingface/mimo-v2.5-pro", "provider": "huggingface", @@ -239332,6 +246129,11 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "noneReasoningEffort": true, + "xhighReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -239383,7 +246185,22 @@ "knowledgeCutoff": "2024-12", "lastUpdated": "2026-04-22", "openWeights": true, - "releaseDate": "2026-04-22" + "releaseDate": "2026-04-22", + "reasoningOptions": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high", + "xhigh" + ] + } + ] } } ] @@ -239516,6 +246333,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": true, @@ -239577,6 +246396,100 @@ } ] }, + { + "id": "hyper/gemma-4-26b-a4b-it", + "provider": "hyper", + "model": "gemma-4-26b-a4b-it", + "displayName": "Gemma 4 26B A4B IT", + "family": "gemma", + "sources": [ + "models.dev" + ], + "providers": [ + "hyper" + ], + "aliases": [ + "hyper/gemma-4-26b-a4b-it" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 256000, + "outputTokens": 25600, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": false, + "structuredOutput": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "hyper", + "model": "gemma-4-26b-a4b-it", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheWrite": 0.057, + "cacheWrite5m": 0.057, + "input": 0.114, + "output": 0.398 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Gemma 4 26B A4B IT" + ], + "families": [ + "gemma" + ], + "releaseDate": "2026-04-30", + "lastUpdated": "2026-07-22", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "hyper", + "providerName": "Charm Hyper", + "providerApi": "https://hyper.charm.land/v1", + "providerDoc": "https://hyper.charm.land", + "model": "gemma-4-26b-a4b-it", + "modelKey": "gemma-4-26b-a4b-it", + "displayName": "Gemma 4 26B A4B IT", + "family": "gemma", + "metadata": { + "lastUpdated": "2026-07-22", + "openWeights": true, + "releaseDate": "2026-04-30" + } + } + ] + }, { "id": "hyperbolic/hermes-3-llama-3.1-70b", "provider": "hyperbolic", @@ -239702,6 +246615,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -240707,6 +247622,499 @@ } ] }, + { + "id": "kenari/mimo-v2-5:free", + "provider": "kenari", + "model": "mimo-v2-5:free", + "displayName": "MiMo-V2.5 (Free)", + "family": "mimo", + "sources": [ + "models.dev" + ], + "providers": [ + "kenari" + ], + "aliases": [ + "kenari/mimo-v2-5:free" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1048576, + "outputTokens": 131072, + "supports1MContext": true + }, + "modalities": { + "input": [ + "audio", + "image", + "text", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": true, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "temperature": true, + "toolCalling": true, + "videoInput": true, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "kenari", + "model": "mimo-v2-5:free", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "MiMo-V2.5 (Free)" + ], + "families": [ + "mimo" + ], + "knowledgeCutoff": "2024-12", + "releaseDate": "2026-04-22", + "lastUpdated": "2026-04-22", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "kenari", + "providerName": "Kenari", + "providerApi": "https://kenari.id/v1", + "providerDoc": "https://kenari.id/docs", + "model": "mimo-v2-5:free", + "modelKey": "mimo-v2-5:free", + "displayName": "MiMo-V2.5 (Free)", + "family": "mimo", + "metadata": { + "knowledgeCutoff": "2024-12", + "lastUpdated": "2026-04-22", + "openWeights": true, + "releaseDate": "2026-04-22" + } + } + ] + }, + { + "id": "kenari/nemotron-3-nano-30b-a3b", + "provider": "kenari", + "model": "nemotron-3-nano-30b-a3b", + "displayName": "Nemotron 3 Nano 30B A3B", + "family": "nemotron", + "sources": [ + "models.dev" + ], + "providers": [ + "kenari" + ], + "aliases": [ + "kenari/nemotron-3-nano-30b-a3b" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 262144, + "outputTokens": 262144, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "kenari", + "model": "nemotron-3-nano-30b-a3b", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Nemotron 3 Nano 30B A3B" + ], + "families": [ + "nemotron" + ], + "releaseDate": "2025-12-15", + "lastUpdated": "2025-12-15", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "kenari", + "providerName": "Kenari", + "providerApi": "https://kenari.id/v1", + "providerDoc": "https://kenari.id/docs", + "model": "nemotron-3-nano-30b-a3b", + "modelKey": "nemotron-3-nano-30b-a3b", + "displayName": "Nemotron 3 Nano 30B A3B", + "family": "nemotron", + "metadata": { + "lastUpdated": "2025-12-15", + "openWeights": true, + "releaseDate": "2025-12-15" + } + } + ] + }, + { + "id": "kenari/nemotron-3-super-120b-a12b", + "provider": "kenari", + "model": "nemotron-3-super-120b-a12b", + "displayName": "Nemotron 3 Super 120B A12B", + "family": "nemotron", + "sources": [ + "models.dev" + ], + "providers": [ + "kenari" + ], + "aliases": [ + "kenari/nemotron-3-super-120b-a12b" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 262144, + "outputTokens": 262144, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "kenari", + "model": "nemotron-3-super-120b-a12b", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Nemotron 3 Super 120B A12B" + ], + "families": [ + "nemotron" + ], + "releaseDate": "2026-03-11", + "lastUpdated": "2026-03-11", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "kenari", + "providerName": "Kenari", + "providerApi": "https://kenari.id/v1", + "providerDoc": "https://kenari.id/docs", + "model": "nemotron-3-super-120b-a12b", + "modelKey": "nemotron-3-super-120b-a12b", + "displayName": "Nemotron 3 Super 120B A12B", + "family": "nemotron", + "metadata": { + "lastUpdated": "2026-03-11", + "openWeights": true, + "releaseDate": "2026-03-11", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium" + ] + } + ] + } + } + ] + }, + { + "id": "kenari/nemotron-3-super-120b-a12b:free", + "provider": "kenari", + "model": "nemotron-3-super-120b-a12b:free", + "displayName": "Nemotron 3 Super 120B A12B (Free)", + "family": "nemotron", + "sources": [ + "models.dev" + ], + "providers": [ + "kenari" + ], + "aliases": [ + "kenari/nemotron-3-super-120b-a12b:free" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 262144, + "outputTokens": 262144, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "kenari", + "model": "nemotron-3-super-120b-a12b:free", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Nemotron 3 Super 120B A12B (Free)" + ], + "families": [ + "nemotron" + ], + "releaseDate": "2026-03-11", + "lastUpdated": "2026-03-11", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "kenari", + "providerName": "Kenari", + "providerApi": "https://kenari.id/v1", + "providerDoc": "https://kenari.id/docs", + "model": "nemotron-3-super-120b-a12b:free", + "modelKey": "nemotron-3-super-120b-a12b:free", + "displayName": "Nemotron 3 Super 120B A12B (Free)", + "family": "nemotron", + "metadata": { + "lastUpdated": "2026-03-11", + "openWeights": true, + "releaseDate": "2026-03-11", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium" + ] + } + ] + } + } + ] + }, + { + "id": "kenari/nemotron-3-ultra-550b-a55b", + "provider": "kenari", + "model": "nemotron-3-ultra-550b-a55b", + "displayName": "Nemotron 3 Ultra 550B A55B", + "family": "nemotron", + "sources": [ + "models.dev" + ], + "providers": [ + "kenari" + ], + "aliases": [ + "kenari/nemotron-3-ultra-550b-a55b" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1000000, + "outputTokens": 128000, + "supports1MContext": true + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "kenari", + "model": "nemotron-3-ultra-550b-a55b", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Nemotron 3 Ultra 550B A55B" + ], + "families": [ + "nemotron" + ], + "releaseDate": "2026-06-04", + "lastUpdated": "2026-06-04", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "kenari", + "providerName": "Kenari", + "providerApi": "https://kenari.id/v1", + "providerDoc": "https://kenari.id/docs", + "model": "nemotron-3-ultra-550b-a55b", + "modelKey": "nemotron-3-ultra-550b-a55b", + "displayName": "Nemotron 3 Ultra 550B A55B", + "family": "nemotron", + "metadata": { + "lastUpdated": "2026-06-04", + "openWeights": true, + "releaseDate": "2026-06-04", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "medium", + "high" + ] + } + ] + } + } + ] + }, { "id": "kilo/aion-1.0", "provider": "kilo", @@ -243039,6 +250447,7 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -244529,6 +251938,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -247374,6 +254785,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -247478,6 +254891,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -247582,6 +254997,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -247686,6 +255103,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -248134,6 +255553,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -248797,104 +256218,6 @@ } ] }, - { - "id": "kimi-for-coding/k2p7", - "provider": "kimi-for-coding", - "model": "k2p7", - "displayName": "Kimi K2.7 Code", - "family": "kimi-k2", - "sources": [ - "models.dev" - ], - "providers": [ - "kimi-for-coding" - ], - "aliases": [ - "kimi-for-coding/k2p7" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 262144, - "outputTokens": 32768, - "supports1MContext": false - }, - "modalities": { - "input": [ - "image", - "text", - "video" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": true, - "audioInput": false, - "audioOutput": false, - "imageInput": true, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": true, - "structuredOutput": true, - "temperature": false, - "toolCalling": true, - "videoInput": true, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "kimi-for-coding", - "model": "k2p7", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0, - "cacheWrite": 0, - "input": 0, - "output": 0 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Kimi K2.7 Code" - ], - "families": [ - "kimi-k2" - ], - "knowledgeCutoff": "2025-01", - "releaseDate": "2026-06-12", - "lastUpdated": "2026-06-12", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "kimi-for-coding", - "providerName": "Kimi For Coding", - "providerApi": "https://api.kimi.com/coding/v1", - "providerDoc": "https://www.kimi.com/code/docs/en/third-party-tools/other-coding-agents.html", - "model": "k2p7", - "modelKey": "k2p7", - "displayName": "Kimi K2.7 Code", - "family": "kimi-k2", - "metadata": { - "knowledgeCutoff": "2025-01", - "lastUpdated": "2026-06-12", - "openWeights": true, - "releaseDate": "2026-06-12" - } - } - ] - }, { "id": "kimi-for-coding/k3", "provider": "kimi-for-coding", @@ -248936,6 +256259,7 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": false, @@ -248956,6 +256280,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -249006,6 +256331,115 @@ } ] }, + { + "id": "kimi-for-coding/k3-256k", + "provider": "kimi-for-coding", + "model": "k3-256k", + "displayName": "Kimi K3-256K", + "family": "kimi-k3", + "sources": [ + "models.dev" + ], + "providers": [ + "kimi-for-coding" + ], + "aliases": [ + "kimi-for-coding/k3-256k" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 262144, + "outputTokens": 131072, + "supports1MContext": false + }, + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "lowReasoningEffort": true, + "highReasoningEffort": true, + "maxReasoningEffort": true, + "structuredOutput": true, + "temperature": false, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "kimi-for-coding", + "model": "k3-256k", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0, + "cacheWrite": 0, + "cacheWrite5m": 0, + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Kimi K3-256K" + ], + "families": [ + "kimi-k3" + ], + "releaseDate": "2026-07-16", + "lastUpdated": "2026-07-16", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "kimi-for-coding", + "providerName": "Kimi For Coding", + "providerApi": "https://api.kimi.com/coding/v1", + "providerDoc": "https://www.kimi.com/code/docs/en/third-party-tools/other-coding-agents.html", + "model": "k3-256k", + "modelKey": "k3-256k", + "displayName": "Kimi K3-256K", + "family": "kimi-k3", + "metadata": { + "lastUpdated": "2026-07-16", + "openWeights": true, + "releaseDate": "2026-07-16", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "high", + "max" + ] + } + ] + } + } + ] + }, { "id": "lambda-ai/hermes3-405b", "provider": "lambda-ai", @@ -251053,6 +258487,99 @@ } ] }, + { + "id": "llmgateway/cosmos3-super-reasoner", + "provider": "llmgateway", + "model": "cosmos3-super-reasoner", + "displayName": "Cosmos 3 Super Reasoner", + "sources": [ + "models.dev" + ], + "providers": [ + "llmgateway" + ], + "aliases": [ + "llmgateway/cosmos3-super-reasoner" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 262144, + "outputTokens": 262144, + "supports1MContext": false + }, + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": true, + "structuredOutput": false, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "llmgateway", + "model": "cosmos3-super-reasoner", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0.1, + "output": 0.3 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Cosmos 3 Super Reasoner" + ], + "releaseDate": "2026-06-01", + "lastUpdated": "2026-06-01", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "llmgateway", + "providerName": "LLM Gateway", + "providerApi": "https://api.llmgateway.io/v1", + "providerDoc": "https://llmgateway.io/docs", + "model": "cosmos3-super-reasoner", + "modelKey": "cosmos3-super-reasoner", + "displayName": "Cosmos 3 Super Reasoner", + "metadata": { + "lastUpdated": "2026-06-01", + "openWeights": false, + "releaseDate": "2026-06-01", + "reasoningOptions": [ + { + "type": "toggle" + } + ] + } + } + ] + }, { "id": "llmgateway/custom", "provider": "llmgateway", @@ -251235,6 +258762,99 @@ } ] }, + { + "id": "llmgateway/gemma-3-27b", + "provider": "llmgateway", + "model": "gemma-3-27b", + "displayName": "Gemma 3 27B", + "family": "gemma", + "sources": [ + "models.dev" + ], + "providers": [ + "llmgateway" + ], + "aliases": [ + "llmgateway/gemma-3-27b" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 110000, + "outputTokens": 110000, + "supports1MContext": false + }, + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": false, + "structuredOutput": false, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "llmgateway", + "model": "gemma-3-27b", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0.1, + "output": 0.3 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Gemma 3 27B" + ], + "families": [ + "gemma" + ], + "releaseDate": "2025-03-12", + "lastUpdated": "2025-03-12", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "llmgateway", + "providerName": "LLM Gateway", + "providerApi": "https://api.llmgateway.io/v1", + "providerDoc": "https://llmgateway.io/docs", + "model": "gemma-3-27b", + "modelKey": "gemma-3-27b", + "displayName": "Gemma 3 27B", + "family": "gemma", + "metadata": { + "lastUpdated": "2025-03-12", + "openWeights": false, + "releaseDate": "2025-03-12" + } + } + ] + }, { "id": "llmgateway/gemma-4-26b-a4b-it", "provider": "llmgateway", @@ -251384,8 +259004,9 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "input": 0.13, - "output": 0.38 + "cacheRead": 0.012, + "input": 0.102, + "output": 0.297 } } ] @@ -251421,6 +259042,200 @@ } ] }, + { + "id": "llmgateway/hermes-4-405b", + "provider": "llmgateway", + "model": "hermes-4-405b", + "displayName": "Hermes 4 405B", + "family": "hermes", + "sources": [ + "models.dev" + ], + "providers": [ + "llmgateway" + ], + "aliases": [ + "llmgateway/hermes-4-405b" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 131072, + "outputTokens": 131072, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": true, + "structuredOutput": false, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "llmgateway", + "model": "hermes-4-405b", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 1, + "output": 3 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Hermes 4 405B" + ], + "families": [ + "hermes" + ], + "releaseDate": "2025-08-26", + "lastUpdated": "2025-08-26", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "llmgateway", + "providerName": "LLM Gateway", + "providerApi": "https://api.llmgateway.io/v1", + "providerDoc": "https://llmgateway.io/docs", + "model": "hermes-4-405b", + "modelKey": "hermes-4-405b", + "displayName": "Hermes 4 405B", + "family": "hermes", + "metadata": { + "lastUpdated": "2025-08-26", + "openWeights": false, + "releaseDate": "2025-08-26", + "reasoningOptions": [ + { + "type": "toggle" + } + ] + } + } + ] + }, + { + "id": "llmgateway/hermes-4-70b", + "provider": "llmgateway", + "model": "hermes-4-70b", + "displayName": "Hermes 4 70B", + "family": "hermes", + "sources": [ + "models.dev" + ], + "providers": [ + "llmgateway" + ], + "aliases": [ + "llmgateway/hermes-4-70b" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 131072, + "outputTokens": 131072, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": true, + "structuredOutput": false, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "llmgateway", + "model": "hermes-4-70b", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0.13, + "output": 0.4 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Hermes 4 70B" + ], + "families": [ + "hermes" + ], + "releaseDate": "2025-08-26", + "lastUpdated": "2025-08-26", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "llmgateway", + "providerName": "LLM Gateway", + "providerApi": "https://api.llmgateway.io/v1", + "providerDoc": "https://llmgateway.io/docs", + "model": "hermes-4-70b", + "modelKey": "hermes-4-70b", + "displayName": "Hermes 4 70B", + "family": "hermes", + "metadata": { + "lastUpdated": "2025-08-26", + "openWeights": false, + "releaseDate": "2025-08-26", + "reasoningOptions": [ + { + "type": "toggle" + } + ] + } + } + ] + }, { "id": "llmgateway/mimo-v2.5", "provider": "llmgateway", @@ -251656,6 +259471,94 @@ } ] }, + { + "id": "llmgateway/minicpm-v-4.5", + "provider": "llmgateway", + "model": "minicpm-v-4.5", + "displayName": "MiniCPM-V 4.5", + "sources": [ + "models.dev" + ], + "providers": [ + "llmgateway" + ], + "aliases": [ + "llmgateway/minicpm-v-4.5" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 32000, + "outputTokens": 32000, + "supports1MContext": false + }, + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": false, + "structuredOutput": false, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "llmgateway", + "model": "minicpm-v-4.5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0.658, + "output": 1.11 + } + } + ] + }, + "metadata": { + "displayNames": [ + "MiniCPM-V 4.5" + ], + "releaseDate": "2025-08-26", + "lastUpdated": "2025-08-26", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "llmgateway", + "providerName": "LLM Gateway", + "providerApi": "https://api.llmgateway.io/v1", + "providerDoc": "https://llmgateway.io/docs", + "model": "minicpm-v-4.5", + "modelKey": "minicpm-v-4.5", + "displayName": "MiniCPM-V 4.5", + "metadata": { + "lastUpdated": "2025-08-26", + "openWeights": false, + "releaseDate": "2025-08-26" + } + } + ] + }, { "id": "llmgateway/muse-spark-1.1", "provider": "llmgateway", @@ -251698,8 +259601,9 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, - "noneReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -251756,7 +259660,6 @@ { "type": "effort", "values": [ - "none", "minimal", "low", "medium", @@ -251769,6 +259672,298 @@ } ] }, + { + "id": "llmgateway/nemotron-3-nano-30b", + "provider": "llmgateway", + "model": "nemotron-3-nano-30b", + "displayName": "Nemotron 3 Nano 30B", + "family": "nemotron", + "sources": [ + "models.dev" + ], + "providers": [ + "llmgateway" + ], + "aliases": [ + "llmgateway/nemotron-3-nano-30b" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 262144, + "outputTokens": 262144, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": true, + "structuredOutput": false, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "llmgateway", + "model": "nemotron-3-nano-30b", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0.06, + "output": 0.24 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Nemotron 3 Nano 30B" + ], + "families": [ + "nemotron" + ], + "releaseDate": "2025-12-15", + "lastUpdated": "2025-12-15", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "llmgateway", + "providerName": "LLM Gateway", + "providerApi": "https://api.llmgateway.io/v1", + "providerDoc": "https://llmgateway.io/docs", + "model": "nemotron-3-nano-30b", + "modelKey": "nemotron-3-nano-30b", + "displayName": "Nemotron 3 Nano 30B", + "family": "nemotron", + "metadata": { + "lastUpdated": "2025-12-15", + "openWeights": false, + "releaseDate": "2025-12-15", + "reasoningOptions": [ + { + "type": "toggle" + } + ] + } + } + ] + }, + { + "id": "llmgateway/nemotron-3-nano-omni", + "provider": "llmgateway", + "model": "nemotron-3-nano-omni", + "displayName": "Nemotron 3 Nano Omni", + "family": "nemotron", + "sources": [ + "models.dev" + ], + "providers": [ + "llmgateway" + ], + "aliases": [ + "llmgateway/nemotron-3-nano-omni" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 262144, + "outputTokens": 262144, + "supports1MContext": false + }, + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": true, + "structuredOutput": false, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "llmgateway", + "model": "nemotron-3-nano-omni", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0.06, + "output": 0.24 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Nemotron 3 Nano Omni" + ], + "families": [ + "nemotron" + ], + "releaseDate": "2026-04-28", + "lastUpdated": "2026-04-28", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "llmgateway", + "providerName": "LLM Gateway", + "providerApi": "https://api.llmgateway.io/v1", + "providerDoc": "https://llmgateway.io/docs", + "model": "nemotron-3-nano-omni", + "modelKey": "nemotron-3-nano-omni", + "displayName": "Nemotron 3 Nano Omni", + "family": "nemotron", + "metadata": { + "lastUpdated": "2026-04-28", + "openWeights": false, + "releaseDate": "2026-04-28", + "reasoningOptions": [ + { + "type": "toggle" + } + ] + } + } + ] + }, + { + "id": "llmgateway/nemotron-3-super-120b", + "provider": "llmgateway", + "model": "nemotron-3-super-120b", + "displayName": "Nemotron 3 Super 120B", + "family": "nemotron", + "sources": [ + "models.dev" + ], + "providers": [ + "llmgateway" + ], + "aliases": [ + "llmgateway/nemotron-3-super-120b" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 262144, + "outputTokens": 262144, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": true, + "structuredOutput": false, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "llmgateway", + "model": "nemotron-3-super-120b", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0.3, + "output": 0.9 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Nemotron 3 Super 120B" + ], + "families": [ + "nemotron" + ], + "releaseDate": "2026-03-11", + "lastUpdated": "2026-03-11", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "llmgateway", + "providerName": "LLM Gateway", + "providerApi": "https://api.llmgateway.io/v1", + "providerDoc": "https://llmgateway.io/docs", + "model": "nemotron-3-super-120b", + "modelKey": "nemotron-3-super-120b", + "displayName": "Nemotron 3 Super 120B", + "family": "nemotron", + "metadata": { + "lastUpdated": "2026-03-11", + "openWeights": false, + "releaseDate": "2026-03-11", + "reasoningOptions": [ + { + "type": "toggle" + } + ] + } + } + ] + }, { "id": "llmgateway/nemotron-3-ultra-550b", "provider": "llmgateway", @@ -251786,9 +259981,9 @@ ], "mergedProviderModelRecords": 1, "limits": { - "contextTokens": 262144, + "contextTokens": 1048576, "outputTokens": 128000, - "supports1MContext": false + "supports1MContext": true }, "modalities": { "input": [ @@ -251810,7 +260005,7 @@ "temperature": true, "toolCalling": true, "videoInput": false, - "supports1MContext": false + "supports1MContext": true }, "pricing": { "currency": "USD", @@ -251907,6 +260102,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true, @@ -252111,6 +260308,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -252218,6 +260417,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -252325,6 +260526,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -252432,6 +260635,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -255675,97 +263880,6 @@ } ] }, - { - "id": "meta-llama/llama-3-1-nemotron-safety-guard-8b-v3", - "provider": "meta-llama", - "model": "llama-3-1-nemotron-safety-guard-8b-v3", - "displayName": "llama-3.1-nemotron-safety-guard-8b-v3", - "family": "nemotron", - "sources": [ - "models.dev" - ], - "providers": [ - "nvidia" - ], - "aliases": [ - "nvidia/llama-3_1-nemotron-safety-guard-8b-v3" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 128000, - "outputTokens": 4096, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "temperature": false, - "toolCalling": false, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "nvidia", - "model": "nvidia/llama-3_1-nemotron-safety-guard-8b-v3", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0, - "output": 0 - } - } - ] - }, - "metadata": { - "displayNames": [ - "llama-3.1-nemotron-safety-guard-8b-v3" - ], - "families": [ - "nemotron" - ], - "releaseDate": "2025-10-28", - "lastUpdated": "2025-10-28", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "nvidia", - "providerName": "Nvidia", - "providerApi": "https://integrate.api.nvidia.com/v1", - "providerDoc": "https://docs.api.nvidia.com/nim/", - "model": "nvidia/llama-3_1-nemotron-safety-guard-8b-v3", - "modelKey": "nvidia/llama-3_1-nemotron-safety-guard-8b-v3", - "displayName": "llama-3.1-nemotron-safety-guard-8b-v3", - "family": "nemotron", - "metadata": { - "lastUpdated": "2025-10-28", - "openWeights": true, - "releaseDate": "2025-10-28" - } - } - ] - }, { "id": "meta-llama/llama-3-1-nemotron-ultra-253b-v1", "provider": "meta-llama", @@ -255824,6 +263938,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.75, + "cacheWrite5m": 0.75, "input": 0.6, "output": 1.8 } @@ -258594,6 +266709,8 @@ "toolChoice": true, "webSearch": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "systemMessages": true, "functionCalling": true }, @@ -258699,6 +266816,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0.2, + "cacheWrite5m": 0.2, "input": 0.2, "output": 0.2 } @@ -259535,17 +267653,22 @@ "id": "meta-llama/llama-3.1-nemotron-70b-instruct", "provider": "meta-llama", "model": "llama-3.1-nemotron-70b-instruct", + "displayName": "Llama 3.1 Nemotron 70B Instruct", + "family": "nemotron", "mode": "chat", "sources": [ - "litellm" + "litellm", + "models.dev" ], "providers": [ - "deepinfra" + "deepinfra", + "nvidia" ], "aliases": [ - "deepinfra/nvidia/Llama-3.1-Nemotron-70B-Instruct" + "deepinfra/nvidia/Llama-3.1-Nemotron-70B-Instruct", + "nvidia/llama-3.1-nemotron-70b-instruct" ], - "mergedProviderModelRecords": 1, + "mergedProviderModelRecords": 2, "limits": { "contextTokens": 131072, "inputTokens": 131072, @@ -259562,26 +267685,42 @@ ] }, "capabilities": { + "attachments": false, "audioInput": false, "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": false, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false, "embedding": false, "functionCalling": true, "imageGeneration": false, - "imageInput": false, - "imageOutput": false, "moderation": false, - "pdfInput": false, "rerank": false, "speech": false, "toolChoice": true, - "transcription": false, - "videoInput": false, - "supports1MContext": false + "transcription": false }, "pricing": { "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ + { + "source": "models.dev", + "provider": "nvidia", + "model": "nvidia/llama-3.1-nemotron-70b-instruct", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + }, { "source": "litellm", "provider": "deepinfra", @@ -259596,12 +267735,37 @@ ] }, "metadata": { + "displayNames": [ + "Llama 3.1 Nemotron 70B Instruct" + ], + "families": [ + "nemotron" + ], "modes": [ "chat" ], - "providerModelRecordCount": 1 + "releaseDate": "2025-04-15", + "lastUpdated": "2025-04-15", + "providerModelRecordCount": 2 }, "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "nvidia", + "providerName": "Nvidia", + "providerApi": "https://integrate.api.nvidia.com/v1", + "providerDoc": "https://docs.api.nvidia.com/nim/", + "model": "nvidia/llama-3.1-nemotron-70b-instruct", + "modelKey": "nvidia/llama-3.1-nemotron-70b-instruct", + "displayName": "Llama 3.1 Nemotron 70B Instruct", + "family": "nemotron", + "metadata": { + "lastUpdated": "2025-04-15", + "openWeights": true, + "releaseDate": "2025-04-15" + } + }, { "source": "litellm", "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", @@ -259704,6 +267868,285 @@ } ] }, + { + "id": "meta-llama/llama-3.1-nemotron-nano-8b-v1", + "provider": "meta-llama", + "model": "llama-3.1-nemotron-nano-8b-v1", + "displayName": "Llama 3.1 Nemotron Nano 8B v1", + "family": "nemotron", + "sources": [ + "models.dev" + ], + "providers": [ + "nvidia" + ], + "aliases": [ + "nvidia/llama-3.1-nemotron-nano-8b-v1" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 131072, + "outputTokens": 16384, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "nvidia", + "model": "nvidia/llama-3.1-nemotron-nano-8b-v1", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Llama 3.1 Nemotron Nano 8B v1" + ], + "families": [ + "nemotron" + ], + "releaseDate": "2025-03-18", + "lastUpdated": "2025-03-18", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "nvidia", + "providerName": "Nvidia", + "providerApi": "https://integrate.api.nvidia.com/v1", + "providerDoc": "https://docs.api.nvidia.com/nim/", + "model": "nvidia/llama-3.1-nemotron-nano-8b-v1", + "modelKey": "nvidia/llama-3.1-nemotron-nano-8b-v1", + "displayName": "Llama 3.1 Nemotron Nano 8B v1", + "family": "nemotron", + "metadata": { + "lastUpdated": "2025-03-18", + "openWeights": true, + "releaseDate": "2025-03-18", + "reasoningOptions": [ + { + "type": "toggle" + } + ] + } + } + ] + }, + { + "id": "meta-llama/llama-3.1-nemotron-nano-vl-8b-v1", + "provider": "meta-llama", + "model": "llama-3.1-nemotron-nano-vl-8b-v1", + "displayName": "Llama 3.1 Nemotron Nano VL 8B v1", + "family": "nemotron", + "sources": [ + "models.dev" + ], + "providers": [ + "nvidia" + ], + "aliases": [ + "nvidia/llama-3.1-nemotron-nano-vl-8b-v1" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 32768, + "outputTokens": 16384, + "supports1MContext": false + }, + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "nvidia", + "model": "nvidia/llama-3.1-nemotron-nano-vl-8b-v1", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Llama 3.1 Nemotron Nano VL 8B v1" + ], + "families": [ + "nemotron" + ], + "releaseDate": "2025-04-10", + "lastUpdated": "2025-04-10", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "nvidia", + "providerName": "Nvidia", + "providerApi": "https://integrate.api.nvidia.com/v1", + "providerDoc": "https://docs.api.nvidia.com/nim/", + "model": "nvidia/llama-3.1-nemotron-nano-vl-8b-v1", + "modelKey": "nvidia/llama-3.1-nemotron-nano-vl-8b-v1", + "displayName": "Llama 3.1 Nemotron Nano VL 8B v1", + "family": "nemotron", + "metadata": { + "lastUpdated": "2025-04-10", + "openWeights": true, + "releaseDate": "2025-04-10" + } + } + ] + }, + { + "id": "meta-llama/llama-3.1-nemotron-safety-guard-8b-v3", + "provider": "meta-llama", + "model": "llama-3.1-nemotron-safety-guard-8b-v3", + "displayName": "llama-3.1-nemotron-safety-guard-8b-v3", + "family": "nemotron", + "sources": [ + "models.dev" + ], + "providers": [ + "nvidia" + ], + "aliases": [ + "nvidia/llama-3.1-nemotron-safety-guard-8b-v3" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 128000, + "outputTokens": 4096, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": false, + "temperature": false, + "toolCalling": false, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "nvidia", + "model": "nvidia/llama-3.1-nemotron-safety-guard-8b-v3", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "llama-3.1-nemotron-safety-guard-8b-v3" + ], + "families": [ + "nemotron" + ], + "releaseDate": "2025-10-28", + "lastUpdated": "2025-10-28", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "nvidia", + "providerName": "Nvidia", + "providerApi": "https://integrate.api.nvidia.com/v1", + "providerDoc": "https://docs.api.nvidia.com/nim/", + "model": "nvidia/llama-3.1-nemotron-safety-guard-8b-v3", + "modelKey": "nvidia/llama-3.1-nemotron-safety-guard-8b-v3", + "displayName": "llama-3.1-nemotron-safety-guard-8b-v3", + "family": "nemotron", + "metadata": { + "lastUpdated": "2025-10-28", + "openWeights": true, + "releaseDate": "2025-10-28" + } + } + ] + }, { "id": "meta-llama/llama-3.1-nemotron-ultra-253b", "provider": "meta-llama", @@ -259800,17 +268243,22 @@ "id": "meta-llama/llama-3.1-nemotron-ultra-253b-v1", "provider": "meta-llama", "model": "llama-3.1-nemotron-ultra-253b-v1", + "displayName": "Llama 3.1 Nemotron Ultra 253B", + "family": "nemotron", "mode": "chat", "sources": [ - "litellm" + "litellm", + "models.dev" ], "providers": [ - "nebius" + "nebius", + "nvidia" ], "aliases": [ - "nebius/nvidia/Llama-3.1-Nemotron-Ultra-253B-v1" + "nebius/nvidia/Llama-3.1-Nemotron-Ultra-253B-v1", + "nvidia/llama-3.1-nemotron-ultra-253b-v1" ], - "mergedProviderModelRecords": 1, + "mergedProviderModelRecords": 2, "limits": { "contextTokens": 128000, "inputTokens": 128000, @@ -259827,25 +268275,41 @@ ] }, "capabilities": { + "attachments": false, "audioInput": false, "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false, "embedding": false, "functionCalling": true, "imageGeneration": false, - "imageInput": false, - "imageOutput": false, "moderation": false, - "pdfInput": false, "rerank": false, "speech": false, - "transcription": false, - "videoInput": false, - "supports1MContext": false + "transcription": false }, "pricing": { "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ + { + "source": "models.dev", + "provider": "nvidia", + "model": "nvidia/llama-3.1-nemotron-ultra-253b-v1", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + }, { "source": "litellm", "provider": "nebius", @@ -259860,12 +268324,42 @@ ] }, "metadata": { + "displayNames": [ + "Llama 3.1 Nemotron Ultra 253B" + ], + "families": [ + "nemotron" + ], "modes": [ "chat" ], - "providerModelRecordCount": 1 + "releaseDate": "2025-04-07", + "lastUpdated": "2025-04-07", + "providerModelRecordCount": 2 }, "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "nvidia", + "providerName": "Nvidia", + "providerApi": "https://integrate.api.nvidia.com/v1", + "providerDoc": "https://docs.api.nvidia.com/nim/", + "model": "nvidia/llama-3.1-nemotron-ultra-253b-v1", + "modelKey": "nvidia/llama-3.1-nemotron-ultra-253b-v1", + "displayName": "Llama 3.1 Nemotron Ultra 253B", + "family": "nemotron", + "metadata": { + "lastUpdated": "2025-04-07", + "openWeights": true, + "releaseDate": "2025-04-07", + "reasoningOptions": [ + { + "type": "toggle" + } + ] + } + }, { "source": "litellm", "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", @@ -260056,7 +268550,7 @@ "id": "meta-llama/llama-3.2-11b-vision-instruct", "provider": "meta-llama", "model": "llama-3.2-11b-vision-instruct", - "displayName": "Llama-3.2-11B-Vision-Instruct", + "displayName": "Llama 3.2 11B Vision Instruct", "family": "llama", "mode": "chat", "sources": [ @@ -260064,8 +268558,6 @@ "models.dev" ], "providers": [ - "azure", - "azure-cognitive-services", "azure_ai", "cloudflare", "cloudflare-ai-gateway", @@ -260077,8 +268569,6 @@ "nvidia" ], "aliases": [ - "azure-cognitive-services/llama-3.2-11b-vision-instruct", - "azure/llama-3.2-11b-vision-instruct", "azure_ai/Llama-3.2-11B-Vision-Instruct", "cloudflare-ai-gateway/workers-ai/@cf/meta/llama-3.2-11b-vision-instruct", "cloudflare-workers-ai/@cf/meta/llama-3.2-11b-vision-instruct", @@ -260089,7 +268579,7 @@ "kilo/meta-llama/llama-3.2-11b-vision-instruct", "nvidia/meta/llama-3.2-11b-vision-instruct" ], - "mergedProviderModelRecords": 11, + "mergedProviderModelRecords": 9, "limits": { "contextTokens": 131072, "inputTokens": 131072, @@ -260135,28 +268625,6 @@ "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "llama-3.2-11b-vision-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.37, - "output": 0.37 - } - }, - { - "source": "models.dev", - "provider": "azure", - "model": "llama-3.2-11b-vision-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.37, - "output": 0.37 - } - }, { "source": "models.dev", "provider": "cloudflare-ai-gateway", @@ -260272,45 +268740,11 @@ "chat" ], "knowledgeCutoff": "2023-12", - "releaseDate": "2024-09-25", - "lastUpdated": "2024-09-25", - "providerModelRecordCount": 11 + "releaseDate": "2025-04-03", + "lastUpdated": "2025-04-03", + "providerModelRecordCount": 9 }, "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "llama-3.2-11b-vision-instruct", - "modelKey": "llama-3.2-11b-vision-instruct", - "displayName": "Llama-3.2-11B-Vision-Instruct", - "family": "llama", - "metadata": { - "knowledgeCutoff": "2023-12", - "lastUpdated": "2024-09-25", - "openWeights": true, - "releaseDate": "2024-09-25" - } - }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "llama-3.2-11b-vision-instruct", - "modelKey": "llama-3.2-11b-vision-instruct", - "displayName": "Llama-3.2-11B-Vision-Instruct", - "family": "llama", - "metadata": { - "knowledgeCutoff": "2023-12", - "lastUpdated": "2024-09-25", - "openWeights": true, - "releaseDate": "2024-09-25" - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -260584,6 +269018,8 @@ "toolChoice": false, "webSearch": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "embedding": false, "imageGeneration": false, "moderation": false, @@ -260670,6 +269106,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 0.1, + "cacheWrite5m": 0.1, "input": 0.1, "output": 0.201 } @@ -261128,6 +269565,8 @@ "toolChoice": true, "webSearch": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "embedding": false, "imageGeneration": false, "moderation": false, @@ -261236,8 +269675,8 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "input": 0.0509, - "output": 0.335 + "input": 0.05, + "output": 0.33 } }, { @@ -261249,6 +269688,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 0.1, + "cacheWrite5m": 0.1, "input": 0.1, "output": 0.335 } @@ -261304,8 +269744,8 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "input": 0.0509, - "output": 0.335 + "input": 0.05, + "output": 0.33 } } ] @@ -261586,8 +270026,8 @@ ], "tokenizer": "Llama3", "topProvider": { - "context_length": 80000, - "max_completion_tokens": 80000, + "context_length": 131072, + "max_completion_tokens": 131072, "is_moderated": false } } @@ -261668,100 +270108,6 @@ } ] }, - { - "id": "meta-llama/llama-3.2-3b-instruct:free", - "provider": "meta-llama", - "model": "llama-3.2-3b-instruct:free", - "displayName": "Llama 3.2 3B Instruct (free)", - "family": "llama", - "sources": [ - "models.dev" - ], - "providers": [ - "openrouter" - ], - "aliases": [ - "openrouter/meta-llama/llama-3.2-3b-instruct:free" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 131072, - "outputTokens": 131072, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "structuredOutput": false, - "temperature": true, - "toolCalling": false, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "openrouter", - "model": "meta-llama/llama-3.2-3b-instruct:free", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0, - "output": 0 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Llama 3.2 3B Instruct (free)" - ], - "families": [ - "llama" - ], - "knowledgeCutoff": "2023-12-31", - "releaseDate": "2024-09-25", - "lastUpdated": "2024-09-25", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "openrouter", - "providerName": "OpenRouter", - "providerApi": "https://openrouter.ai/api/v1", - "providerDoc": "https://openrouter.ai/models", - "model": "meta-llama/llama-3.2-3b-instruct:free", - "modelKey": "meta-llama/llama-3.2-3b-instruct:free", - "displayName": "Llama 3.2 3B Instruct (free)", - "family": "llama", - "metadata": { - "knowledgeCutoff": "2023-12-31", - "lastUpdated": "2024-09-25", - "openWeights": true, - "releaseDate": "2024-09-25" - } - } - ] - }, { "id": "meta-llama/llama-3.2-90b", "provider": "meta-llama", @@ -261856,22 +270202,18 @@ "models.dev" ], "providers": [ - "azure", - "azure-cognitive-services", "azure_ai", "github-models", "io-net", "nvidia" ], "aliases": [ - "azure-cognitive-services/llama-3.2-90b-vision-instruct", - "azure/llama-3.2-90b-vision-instruct", "azure_ai/Llama-3.2-90B-Vision-Instruct", "github-models/meta/llama-3.2-90b-vision-instruct", "io-net/meta-llama/Llama-3.2-90B-Vision-Instruct", "nvidia/meta/llama-3.2-90b-vision-instruct" ], - "mergedProviderModelRecords": 6, + "mergedProviderModelRecords": 4, "limits": { "contextTokens": 128000, "inputTokens": 128000, @@ -261916,28 +270258,6 @@ "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "llama-3.2-90b-vision-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 2.04, - "output": 2.04 - } - }, - { - "source": "models.dev", - "provider": "azure", - "model": "llama-3.2-90b-vision-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 2.04, - "output": 2.04 - } - }, { "source": "models.dev", "provider": "github-models", @@ -261958,6 +270278,7 @@ "per1MTokens": { "cacheRead": 0.175, "cacheWrite": 0.7, + "cacheWrite5m": 0.7, "input": 0.35, "output": 0.4 } @@ -262000,43 +270321,9 @@ "knowledgeCutoff": "2023-12", "releaseDate": "2024-09-25", "lastUpdated": "2024-09-25", - "providerModelRecordCount": 6 + "providerModelRecordCount": 4 }, "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "llama-3.2-90b-vision-instruct", - "modelKey": "llama-3.2-90b-vision-instruct", - "displayName": "Llama-3.2-90B-Vision-Instruct", - "family": "llama", - "metadata": { - "knowledgeCutoff": "2023-12", - "lastUpdated": "2024-09-25", - "openWeights": true, - "releaseDate": "2024-09-25" - } - }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "llama-3.2-90b-vision-instruct", - "modelKey": "llama-3.2-90b-vision-instruct", - "displayName": "Llama-3.2-90B-Vision-Instruct", - "family": "llama", - "metadata": { - "knowledgeCutoff": "2023-12", - "lastUpdated": "2024-09-25", - "openWeights": true, - "releaseDate": "2024-09-25" - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -262542,6 +270829,7 @@ "github-models", "helicone", "huggingface", + "hyper", "hyperbolic", "io-net", "kilo", @@ -262573,6 +270861,7 @@ "github-models/meta/llama-3.3-70b-instruct", "helicone/llama-3.3-70b-instruct", "huggingface/meta-llama/Llama-3.3-70B-Instruct", + "hyper/llama-3.3-70b-instruct", "hyperbolic/meta-llama/Llama-3.3-70B-Instruct", "io-net/meta-llama/Llama-3.3-70B-Instruct", "kilo/meta-llama/llama-3.3-70b-instruct", @@ -262593,7 +270882,7 @@ "scaleway/meta/llama-3.3-70b-instruct", "wandb/meta-llama/Llama-3.3-70B-Instruct" ], - "mergedProviderModelRecords": 30, + "mergedProviderModelRecords": 31, "limits": { "contextTokens": 131072, "inputTokens": 131072, @@ -262635,6 +270924,8 @@ "toolChoice": true, "webSearch": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "systemMessages": true }, "pricing": { @@ -262729,6 +271020,19 @@ "output": 0.79 } }, + { + "source": "models.dev", + "provider": "hyper", + "model": "llama-3.3-70b-instruct", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheWrite": 0.3033, + "cacheWrite5m": 0.3033, + "input": 0.6066, + "output": 1.0386 + } + }, { "source": "models.dev", "provider": "io-net", @@ -262738,6 +271042,7 @@ "per1MTokens": { "cacheRead": 0.065, "cacheWrite": 0.26, + "cacheWrite5m": 0.26, "input": 0.13, "output": 0.38 } @@ -262806,6 +271111,7 @@ "per1MTokens": { "cacheRead": 0.013, "cacheWrite": 0.16, + "cacheWrite5m": 0.16, "input": 0.13, "output": 0.4 } @@ -262852,6 +271158,7 @@ "per1MTokens": { "cacheRead": 0.9, "cacheWrite": 0.9, + "cacheWrite5m": 0.9, "input": 0.9, "output": 0.9 } @@ -263046,7 +271353,7 @@ "top_logprobs", "top_p" ], - "providerModelRecordCount": 30 + "providerModelRecordCount": 31 }, "sourceRecords": [ { @@ -263191,6 +271498,24 @@ "releaseDate": "2024-12-06" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "hyper", + "providerName": "Charm Hyper", + "providerApi": "https://hyper.charm.land/v1", + "providerDoc": "https://hyper.charm.land", + "model": "llama-3.3-70b-instruct", + "modelKey": "llama-3.3-70b-instruct", + "displayName": "Llama-3.3-70B-Instruct", + "family": "llama", + "metadata": { + "knowledgeCutoff": "2023-12", + "lastUpdated": "2026-07-22", + "openWeights": true, + "releaseDate": "2026-04-30" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -264077,6 +272402,9 @@ "families": [ "llama" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2023-12", "releaseDate": "2025-04-29", "lastUpdated": "2025-04-29", @@ -264093,6 +272421,7 @@ "modelKey": "meta/llama-3.3-70b-instruct-maas", "displayName": "Llama 3.3 70B Instruct", "family": "llama", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2023-12", "lastUpdated": "2025-04-29", @@ -264358,100 +272687,6 @@ } ] }, - { - "id": "meta-llama/llama-3.3-70b-instruct:free", - "provider": "meta-llama", - "model": "llama-3.3-70b-instruct:free", - "displayName": "Llama 3.3 70B Instruct (free)", - "family": "llama", - "sources": [ - "models.dev" - ], - "providers": [ - "openrouter" - ], - "aliases": [ - "openrouter/meta-llama/llama-3.3-70b-instruct:free" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 131072, - "outputTokens": 131072, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "structuredOutput": false, - "temperature": true, - "toolCalling": true, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "openrouter", - "model": "meta-llama/llama-3.3-70b-instruct:free", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0, - "output": 0 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Llama 3.3 70B Instruct (free)" - ], - "families": [ - "llama" - ], - "knowledgeCutoff": "2023-12", - "releaseDate": "2024-12-06", - "lastUpdated": "2024-12-06", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "openrouter", - "providerName": "OpenRouter", - "providerApi": "https://openrouter.ai/api/v1", - "providerDoc": "https://openrouter.ai/models", - "model": "meta-llama/llama-3.3-70b-instruct:free", - "modelKey": "meta-llama/llama-3.3-70b-instruct:free", - "displayName": "Llama 3.3 70B Instruct (free)", - "family": "llama", - "metadata": { - "knowledgeCutoff": "2023-12", - "lastUpdated": "2024-12-06", - "openWeights": true, - "releaseDate": "2024-12-06" - } - } - ] - }, { "id": "meta-llama/llama-3.3-70b-versatile", "provider": "meta-llama", @@ -264781,13 +273016,15 @@ ], "providers": [ "nano-gpt", - "nebius" + "nebius", + "nvidia" ], "aliases": [ "nano-gpt/nvidia/Llama-3.3-Nemotron-Super-49B-v1", - "nebius/nvidia/Llama-3.3-Nemotron-Super-49B-v1" + "nebius/nvidia/Llama-3.3-Nemotron-Super-49B-v1", + "nvidia/llama-3.3-nemotron-super-49b-v1" ], - "mergedProviderModelRecords": 2, + "mergedProviderModelRecords": 3, "limits": { "contextTokens": 131072, "inputTokens": 131072, @@ -264809,12 +273046,12 @@ "audioOutput": false, "imageInput": false, "imageOutput": false, - "openWeights": false, + "openWeights": true, "pdfInput": false, - "reasoning": false, + "reasoning": true, "structuredOutput": false, "temperature": true, - "toolCalling": false, + "toolCalling": true, "videoInput": false, "supports1MContext": false, "embedding": false, @@ -264840,6 +273077,17 @@ "output": 0.15 } }, + { + "source": "models.dev", + "provider": "nvidia", + "model": "nvidia/llama-3.3-nemotron-super-49b-v1", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + }, { "source": "litellm", "provider": "nebius", @@ -264855,6 +273103,7 @@ }, "metadata": { "displayNames": [ + "Llama 3.3 Nemotron Super 49B v1", "Nvidia Nemotron Super 49B" ], "families": [ @@ -264865,7 +273114,7 @@ ], "releaseDate": "2025-08-08", "lastUpdated": "2025-08-08", - "providerModelRecordCount": 2 + "providerModelRecordCount": 3 }, "sourceRecords": [ { @@ -264885,6 +273134,28 @@ "releaseDate": "2025-08-08" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "nvidia", + "providerName": "Nvidia", + "providerApi": "https://integrate.api.nvidia.com/v1", + "providerDoc": "https://docs.api.nvidia.com/nim/", + "model": "nvidia/llama-3.3-nemotron-super-49b-v1", + "modelKey": "nvidia/llama-3.3-nemotron-super-49b-v1", + "displayName": "Llama 3.3 Nemotron Super 49B v1", + "family": "nemotron", + "metadata": { + "lastUpdated": "2025-04-07", + "openWeights": true, + "releaseDate": "2025-04-07", + "reasoningOptions": [ + { + "type": "toggle" + } + ] + } + }, { "source": "litellm", "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", @@ -264910,13 +273181,15 @@ ], "providers": [ "deepinfra", - "kilo" + "kilo", + "nvidia" ], "aliases": [ "deepinfra/nvidia/Llama-3.3-Nemotron-Super-49B-v1.5", - "kilo/nvidia/llama-3.3-nemotron-super-49b-v1.5" + "kilo/nvidia/llama-3.3-nemotron-super-49b-v1.5", + "nvidia/llama-3.3-nemotron-super-49b-v1.5" ], - "mergedProviderModelRecords": 2, + "mergedProviderModelRecords": 3, "limits": { "contextTokens": 131072, "inputTokens": 131072, @@ -264981,6 +273254,17 @@ "output": 0.4 } }, + { + "source": "models.dev", + "provider": "nvidia", + "model": "nvidia/llama-3.3-nemotron-super-49b-v1.5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + }, { "source": "litellm", "provider": "deepinfra", @@ -265010,7 +273294,7 @@ ], "releaseDate": "2025-07-25", "lastUpdated": "2025-07-25", - "providerModelRecordCount": 2 + "providerModelRecordCount": 3 }, "sourceRecords": [ { @@ -265052,6 +273336,28 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "nvidia", + "providerName": "Nvidia", + "providerApi": "https://integrate.api.nvidia.com/v1", + "providerDoc": "https://docs.api.nvidia.com/nim/", + "model": "nvidia/llama-3.3-nemotron-super-49b-v1.5", + "modelKey": "nvidia/llama-3.3-nemotron-super-49b-v1.5", + "displayName": "Llama 3.3 Nemotron Super 49B v1.5", + "family": "nemotron", + "metadata": { + "lastUpdated": "2025-07-25", + "openWeights": true, + "releaseDate": "2025-07-25", + "reasoningOptions": [ + { + "type": "toggle" + } + ] + } + }, { "source": "litellm", "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", @@ -265150,6 +273456,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.151, + "cacheWrite5m": 0.151, "input": 0.124, "output": 0.603 } @@ -265737,6 +274044,7 @@ "azure_ai", "deepinfra", "github-models", + "hyper", "io-net", "lambda_ai", "llama", @@ -265752,6 +274060,7 @@ "azure_ai/Llama-4-Maverick-17B-128E-Instruct-FP8", "deepinfra/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", "github-models/meta/llama-4-maverick-17b-128e-instruct-fp8", + "hyper/llama-4-maverick-17b-128e-instruct-fp8", "io-net/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", "lambda_ai/llama-4-maverick-17b-128e-instruct-fp8", "llama/llama-4-maverick-17b-128e-instruct-fp8", @@ -265760,7 +274069,7 @@ "novita/meta-llama/llama-4-maverick-17b-128e-instruct-fp8", "together_ai/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8" ], - "mergedProviderModelRecords": 13, + "mergedProviderModelRecords": 14, "limits": { "contextTokens": 1048576, "inputTokens": 1048576, @@ -265863,6 +274172,19 @@ "output": 0 } }, + { + "source": "models.dev", + "provider": "hyper", + "model": "llama-4-maverick-17b-128e-instruct-fp8", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheWrite": 0.13375, + "cacheWrite5m": 0.13375, + "input": 0.2675, + "output": 0.9175 + } + }, { "source": "models.dev", "provider": "io-net", @@ -265872,6 +274194,7 @@ "per1MTokens": { "cacheRead": 0.075, "cacheWrite": 0.3, + "cacheWrite5m": 0.3, "input": 0.15, "output": 0.6 } @@ -265980,7 +274303,7 @@ "knowledgeCutoff": "2024-08", "releaseDate": "2025-04-05", "lastUpdated": "2025-04-05", - "providerModelRecordCount": 13 + "providerModelRecordCount": 14 }, "sourceRecords": [ { @@ -266069,6 +274392,24 @@ "releaseDate": "2025-01-31" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "hyper", + "providerName": "Charm Hyper", + "providerApi": "https://hyper.charm.land/v1", + "providerDoc": "https://hyper.charm.land", + "model": "llama-4-maverick-17b-128e-instruct-fp8", + "modelKey": "llama-4-maverick-17b-128e-instruct-fp8", + "displayName": "Llama 4 Maverick 17B Instruct", + "family": "llama", + "metadata": { + "knowledgeCutoff": "2024-08", + "lastUpdated": "2026-07-22", + "openWeights": true, + "releaseDate": "2026-04-30" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -266509,7 +274850,7 @@ ], "mergedProviderModelRecords": 6, "limits": { - "contextTokens": 10000000, + "contextTokens": 1310720, "inputTokens": 328000, "maxTokens": 8192, "outputTokens": 65536, @@ -268337,11 +276678,11 @@ ], "mergedProviderModelRecords": 5, "limits": { - "contextTokens": 163840, + "contextTokens": 1048576, "inputTokens": 163840, "maxTokens": 163840, "outputTokens": 163840, - "supports1MContext": false + "supports1MContext": true }, "modalities": { "input": [ @@ -268364,7 +276705,7 @@ "temperature": true, "toolCalling": false, "videoInput": false, - "supports1MContext": false, + "supports1MContext": true, "structuredOutput": false, "parallelFunctionCalling": false, "responseSchema": true, @@ -271813,21 +280154,17 @@ ], "providers": [ "anyscale", - "azure", - "azure-cognitive-services", "azure_ai", "github-models", "hyperbolic" ], "aliases": [ "anyscale/meta-llama/Meta-Llama-3-70B-Instruct", - "azure-cognitive-services/meta-llama-3-70b-instruct", - "azure/meta-llama-3-70b-instruct", "azure_ai/Meta-Llama-3-70B-Instruct", "github-models/meta/meta-llama-3-70b-instruct", "hyperbolic/meta-llama/Meta-Llama-3-70B-Instruct" ], - "mergedProviderModelRecords": 6, + "mergedProviderModelRecords": 4, "limits": { "contextTokens": 131072, "inputTokens": 131072, @@ -271871,28 +280208,6 @@ "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "meta-llama-3-70b-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 2.68, - "output": 3.54 - } - }, - { - "source": "models.dev", - "provider": "azure", - "model": "meta-llama-3-70b-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 2.68, - "output": 3.54 - } - }, { "source": "models.dev", "provider": "github-models", @@ -271952,43 +280267,9 @@ "knowledgeCutoff": "2023-12", "releaseDate": "2024-04-18", "lastUpdated": "2024-04-18", - "providerModelRecordCount": 6 + "providerModelRecordCount": 4 }, "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "meta-llama-3-70b-instruct", - "modelKey": "meta-llama-3-70b-instruct", - "displayName": "Meta-Llama-3-70B-Instruct", - "family": "llama", - "metadata": { - "knowledgeCutoff": "2023-12", - "lastUpdated": "2024-04-18", - "openWeights": true, - "releaseDate": "2024-04-18" - } - }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "meta-llama-3-70b-instruct", - "modelKey": "meta-llama-3-70b-instruct", - "displayName": "Meta-Llama-3-70B-Instruct", - "family": "llama", - "metadata": { - "knowledgeCutoff": "2023-12", - "lastUpdated": "2024-04-18", - "openWeights": true, - "releaseDate": "2024-04-18" - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -272138,19 +280419,15 @@ ], "providers": [ "anyscale", - "azure", - "azure-cognitive-services", "deepinfra", "github-models" ], "aliases": [ "anyscale/meta-llama/Meta-Llama-3-8B-Instruct", - "azure-cognitive-services/meta-llama-3-8b-instruct", - "azure/meta-llama-3-8b-instruct", "deepinfra/meta-llama/Meta-Llama-3-8B-Instruct", "github-models/meta/meta-llama-3-8b-instruct" ], - "mergedProviderModelRecords": 5, + "mergedProviderModelRecords": 3, "limits": { "contextTokens": 8192, "inputTokens": 8192, @@ -272192,28 +280469,6 @@ "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "meta-llama-3-8b-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.3, - "output": 0.61 - } - }, - { - "source": "models.dev", - "provider": "azure", - "model": "meta-llama-3-8b-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.3, - "output": 0.61 - } - }, { "source": "models.dev", "provider": "github-models", @@ -272262,43 +280517,9 @@ "knowledgeCutoff": "2023-12", "releaseDate": "2024-04-18", "lastUpdated": "2024-04-18", - "providerModelRecordCount": 5 + "providerModelRecordCount": 3 }, "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "meta-llama-3-8b-instruct", - "modelKey": "meta-llama-3-8b-instruct", - "displayName": "Meta-Llama-3-8B-Instruct", - "family": "llama", - "metadata": { - "knowledgeCutoff": "2023-12", - "lastUpdated": "2024-04-18", - "openWeights": true, - "releaseDate": "2024-04-18" - } - }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "meta-llama-3-8b-instruct", - "modelKey": "meta-llama-3-8b-instruct", - "displayName": "Meta-Llama-3-8B-Instruct", - "family": "llama", - "metadata": { - "knowledgeCutoff": "2023-12", - "lastUpdated": "2024-04-18", - "openWeights": true, - "releaseDate": "2024-04-18" - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -272438,8 +280659,6 @@ "models.dev" ], "providers": [ - "azure", - "azure-cognitive-services", "azure_ai", "github-models", "hyperbolic", @@ -272447,15 +280666,13 @@ "sambanova" ], "aliases": [ - "azure-cognitive-services/meta-llama-3.1-405b-instruct", - "azure/meta-llama-3.1-405b-instruct", "azure_ai/Meta-Llama-3.1-405B-Instruct", "github-models/meta/meta-llama-3.1-405b-instruct", "hyperbolic/meta-llama/Meta-Llama-3.1-405B-Instruct", "nebius/meta-llama/Meta-Llama-3.1-405B-Instruct", "sambanova/Meta-Llama-3.1-405B-Instruct" ], - "mergedProviderModelRecords": 7, + "mergedProviderModelRecords": 5, "limits": { "contextTokens": 128000, "inputTokens": 128000, @@ -272500,28 +280717,6 @@ "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "meta-llama-3.1-405b-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 5.33, - "output": 16 - } - }, - { - "source": "models.dev", - "provider": "azure", - "model": "meta-llama-3.1-405b-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 5.33, - "output": 16 - } - }, { "source": "models.dev", "provider": "github-models", @@ -272593,43 +280788,9 @@ "releaseDate": "2024-07-23", "lastUpdated": "2024-07-23", "deprecationDate": "2025-06-25", - "providerModelRecordCount": 7 + "providerModelRecordCount": 5 }, "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "meta-llama-3.1-405b-instruct", - "modelKey": "meta-llama-3.1-405b-instruct", - "displayName": "Meta-Llama-3.1-405B-Instruct", - "family": "llama", - "metadata": { - "knowledgeCutoff": "2023-12", - "lastUpdated": "2024-07-23", - "openWeights": true, - "releaseDate": "2024-07-23" - } - }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "meta-llama-3.1-405b-instruct", - "modelKey": "meta-llama-3.1-405b-instruct", - "displayName": "Meta-Llama-3.1-405B-Instruct", - "family": "llama", - "metadata": { - "knowledgeCutoff": "2023-12", - "lastUpdated": "2024-07-23", - "openWeights": true, - "releaseDate": "2024-07-23" - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -272826,8 +280987,6 @@ "models.dev" ], "providers": [ - "azure", - "azure-cognitive-services", "azure_ai", "deepinfra", "friendliai", @@ -272836,8 +280995,6 @@ "nebius" ], "aliases": [ - "azure-cognitive-services/meta-llama-3.1-70b-instruct", - "azure/meta-llama-3.1-70b-instruct", "azure_ai/Meta-Llama-3.1-70B-Instruct", "deepinfra/meta-llama/Meta-Llama-3.1-70B-Instruct", "friendliai/meta-llama-3.1-70b-instruct", @@ -272845,7 +281002,7 @@ "hyperbolic/meta-llama/Meta-Llama-3.1-70B-Instruct", "nebius/meta-llama/Meta-Llama-3.1-70B-Instruct" ], - "mergedProviderModelRecords": 8, + "mergedProviderModelRecords": 6, "limits": { "contextTokens": 131072, "inputTokens": 131072, @@ -272890,28 +281047,6 @@ "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "meta-llama-3.1-70b-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 2.68, - "output": 3.54 - } - }, - { - "source": "models.dev", - "provider": "azure", - "model": "meta-llama-3.1-70b-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 2.68, - "output": 3.54 - } - }, { "source": "models.dev", "provider": "github-models", @@ -272993,43 +281128,9 @@ "knowledgeCutoff": "2023-12", "releaseDate": "2024-07-23", "lastUpdated": "2024-07-23", - "providerModelRecordCount": 8 + "providerModelRecordCount": 6 }, "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "meta-llama-3.1-70b-instruct", - "modelKey": "meta-llama-3.1-70b-instruct", - "displayName": "Meta-Llama-3.1-70B-Instruct", - "family": "llama", - "metadata": { - "knowledgeCutoff": "2023-12", - "lastUpdated": "2024-07-23", - "openWeights": true, - "releaseDate": "2024-07-23" - } - }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "meta-llama-3.1-70b-instruct", - "modelKey": "meta-llama-3.1-70b-instruct", - "displayName": "Meta-Llama-3.1-70B-Instruct", - "family": "llama", - "metadata": { - "knowledgeCutoff": "2023-12", - "lastUpdated": "2024-07-23", - "openWeights": true, - "releaseDate": "2024-07-23" - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -273206,8 +281307,6 @@ ], "providers": [ "abacus", - "azure", - "azure-cognitive-services", "azure_ai", "deepinfra", "friendliai", @@ -273218,8 +281317,6 @@ ], "aliases": [ "abacus/meta-llama/Meta-Llama-3.1-8B-Instruct", - "azure-cognitive-services/meta-llama-3.1-8b-instruct", - "azure/meta-llama-3.1-8b-instruct", "azure_ai/Meta-Llama-3.1-8B-Instruct", "deepinfra/meta-llama/Meta-Llama-3.1-8B-Instruct", "friendliai/meta-llama-3.1-8b-instruct", @@ -273228,7 +281325,7 @@ "nebius/meta-llama/Meta-Llama-3.1-8B-Instruct", "sambanova/Meta-Llama-3.1-8B-Instruct" ], - "mergedProviderModelRecords": 10, + "mergedProviderModelRecords": 8, "limits": { "contextTokens": 131072, "inputTokens": 131072, @@ -273284,28 +281381,6 @@ "output": 0.05 } }, - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "meta-llama-3.1-8b-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.3, - "output": 0.61 - } - }, - { - "source": "models.dev", - "provider": "azure", - "model": "meta-llama-3.1-8b-instruct", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.3, - "output": 0.61 - } - }, { "source": "models.dev", "provider": "github-models", @@ -273400,7 +281475,7 @@ "releaseDate": "2024-07-23", "lastUpdated": "2024-07-23", "deprecationDate": "2026-04-14", - "providerModelRecordCount": 10 + "providerModelRecordCount": 8 }, "sourceRecords": [ { @@ -273420,40 +281495,6 @@ "releaseDate": "2024-07-23" } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "meta-llama-3.1-8b-instruct", - "modelKey": "meta-llama-3.1-8b-instruct", - "displayName": "Meta-Llama-3.1-8B-Instruct", - "family": "llama", - "metadata": { - "knowledgeCutoff": "2023-12", - "lastUpdated": "2024-07-23", - "openWeights": true, - "releaseDate": "2024-07-23" - } - }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "meta-llama-3.1-8b-instruct", - "modelKey": "meta-llama-3.1-8b-instruct", - "displayName": "Meta-Llama-3.1-8B-Instruct", - "family": "llama", - "metadata": { - "knowledgeCutoff": "2023-12", - "lastUpdated": "2024-07-23", - "openWeights": true, - "releaseDate": "2024-07-23" - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -274062,8 +282103,9 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, - "noneReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -274208,7 +282250,6 @@ { "type": "effort", "values": [ - "none", "minimal", "low", "medium", @@ -274266,7 +282307,6 @@ { "type": "effort", "values": [ - "none", "minimal", "low", "medium", @@ -275370,9 +283410,8 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.03, - "input": 0.3, - "output": 1.2 + "input": 0.255, + "output": 1.02 } }, { @@ -275384,6 +283423,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.2 } @@ -275397,6 +283437,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.38, + "cacheWrite5m": 0.38, "input": 0.3, "output": 1.2 } @@ -275421,6 +283462,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.2 } @@ -275458,9 +283500,8 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "cacheRead": 0.03, - "input": 0.3, - "output": 1.2 + "input": 0.255, + "output": 1.02 } } ] @@ -276094,6 +284135,7 @@ "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.2 } @@ -276250,6 +284292,7 @@ "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.6, "output": 2.4 } @@ -276915,6 +284958,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.2 } @@ -276928,6 +284972,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.38, + "cacheWrite5m": 0.38, "input": 0.3, "output": 1.2 } @@ -276952,6 +284997,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.2 } @@ -276980,6 +285026,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.27, "output": 1.2 } @@ -277663,6 +285710,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 2.4 } @@ -277676,6 +285724,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 2.4 } @@ -277887,7 +285936,9 @@ "parallelFunctionCalling": true, "responseSchema": true, "webSearch": false, - "lowReasoningEffort": true + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true }, "pricing": { "currency": "USD", @@ -277913,6 +285964,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -277926,6 +285978,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -277939,6 +285992,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -277952,6 +286006,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -277998,6 +286053,7 @@ "per1MTokens": { "cacheRead": 0.02, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.11, "output": 0.95 } @@ -278081,6 +286137,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.15, "output": 0.9 } @@ -278106,6 +286163,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.2 } @@ -278130,6 +286188,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.2 } @@ -278143,6 +286202,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -278156,6 +286216,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.2 } @@ -278169,6 +286230,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -278182,6 +286244,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.2 } @@ -278217,6 +286280,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.2 } @@ -278278,6 +286342,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.2 } @@ -278324,6 +286389,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -278349,6 +286415,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.2 } @@ -278374,6 +286441,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.2 } @@ -278398,6 +286466,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.2 } @@ -279338,6 +287407,97 @@ } ] }, + { + "id": "minimax/minimax-m2.5-230b", + "provider": "minimax", + "model": "minimax-m2.5-230b", + "displayName": "MiniMax-M2.5", + "family": "minimax", + "sources": [ + "models.dev" + ], + "providers": [ + "aki-io" + ], + "aliases": [ + "aki-io/minimax-m2.5-230b" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 196608, + "outputTokens": 65536, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "aki-io", + "model": "minimax-m2.5-230b", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0.25, + "output": 1.2 + } + } + ] + }, + "metadata": { + "displayNames": [ + "MiniMax-M2.5" + ], + "families": [ + "minimax" + ], + "releaseDate": "2026-02-12", + "lastUpdated": "2026-02-12", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "aki-io", + "providerName": "AKI.IO", + "providerApi": "https://aki.io/v1", + "providerDoc": "https://aki.io/docs/", + "model": "minimax-m2.5-230b", + "modelKey": "minimax-m2.5-230b", + "displayName": "MiniMax-M2.5", + "family": "minimax", + "metadata": { + "lastUpdated": "2026-02-12", + "openWeights": true, + "releaseDate": "2026-02-12" + } + } + ] + }, { "id": "minimax/minimax-m2.5-fast", "provider": "minimax", @@ -279395,6 +287555,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.2 } @@ -279607,6 +287768,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.6, "output": 2.4 } @@ -279620,6 +287782,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.6, "output": 2.4 } @@ -279633,6 +287796,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -279646,6 +287810,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.6, "output": 2.4 } @@ -279659,6 +287824,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -279672,6 +287838,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.6, "output": 2.4 } @@ -279697,6 +287864,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.6, "output": 2.4 } @@ -279710,6 +287878,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.6, "output": 2.4 } @@ -279976,6 +288145,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.75, + "cacheWrite5m": 0.75, "input": 0.6, "output": 4.8 } @@ -279989,6 +288159,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 2.4 } @@ -280149,6 +288320,7 @@ "deepinfra", "fastrouter", "huggingface", + "hyper", "kilo", "llmgateway", "merge-gateway", @@ -280183,6 +288355,7 @@ "deepinfra/MiniMaxAI/MiniMax-M2.7", "fastrouter/minimax/minimax-m2.7", "huggingface/MiniMaxAI/MiniMax-M2.7", + "hyper/minimax-m2.7", "kilo/minimax/minimax-m2.7", "llmgateway/minimax-m2.7", "merge-gateway/minimax/minimax-m2.7", @@ -280207,7 +288380,7 @@ "vultr/MiniMaxAI/MiniMax-M2.7", "zenmux/minimax/minimax-m2.7" ], - "mergedProviderModelRecords": 32, + "mergedProviderModelRecords": 33, "limits": { "contextTokens": 1000192, "inputTokens": 1000192, @@ -280237,11 +288410,15 @@ "videoInput": false, "supports1MContext": true, "structuredOutput": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "maxReasoningEffort": true, + "xhighReasoningEffort": true, "parallelFunctionCalling": false, "responseSchema": true, "toolChoice": true, "webSearch": false, - "lowReasoningEffort": true, "assistantPrefill": true, "embedding": false, "functionCalling": true, @@ -280286,6 +288463,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.2 } @@ -280299,6 +288477,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.2 } @@ -280323,6 +288502,7 @@ "per1MTokens": { "cacheRead": 0.066, "cacheWrite": 0.42, + "cacheWrite5m": 0.42, "input": 0.33, "output": 1.32 } @@ -280362,6 +288542,19 @@ "output": 1.2 } }, + { + "source": "models.dev", + "provider": "hyper", + "model": "minimax-m2.7", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheWrite": 0.21, + "cacheWrite5m": 0.21, + "input": 0.42, + "output": 1.62 + } + }, { "source": "models.dev", "provider": "kilo", @@ -280381,10 +288574,11 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.06, + "cacheRead": 0.017, "cacheWrite": 0.375, - "input": 0.3, - "output": 1.2 + "cacheWrite5m": 0.375, + "input": 0.08, + "output": 0.32 } }, { @@ -280396,6 +288590,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.2 } @@ -280409,6 +288604,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -280422,6 +288618,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.2 } @@ -280435,6 +288632,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -280448,6 +288646,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.2 } @@ -280531,6 +288730,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.2 } @@ -280544,6 +288744,7 @@ "per1MTokens": { "cacheRead": 0.279, "cacheWrite": 0.279, + "cacheWrite5m": 0.279, "input": 0.279, "output": 1.2 } @@ -280580,6 +288781,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.3, "output": 1.2 } @@ -280682,7 +288884,7 @@ "top_logprobs", "top_p" ], - "providerModelRecordCount": 32 + "providerModelRecordCount": 33 }, "sourceRecords": [ { @@ -280835,6 +289037,23 @@ "releaseDate": "2026-03-18" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "hyper", + "providerName": "Charm Hyper", + "providerApi": "https://hyper.charm.land/v1", + "providerDoc": "https://hyper.charm.land", + "model": "minimax-m2.7", + "modelKey": "minimax-m2.7", + "displayName": "MiniMax-M2.7", + "family": "minimax", + "metadata": { + "lastUpdated": "2026-07-22", + "openWeights": true, + "releaseDate": "2026-06-05" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -280866,7 +289085,19 @@ "metadata": { "lastUpdated": "2026-03-18", "openWeights": true, - "releaseDate": "2026-03-18" + "releaseDate": "2026-03-18", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] } }, { @@ -281374,6 +289605,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.6, "output": 2.4 } @@ -281387,6 +289619,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.6, "output": 2.4 } @@ -281400,6 +289633,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -281413,6 +289647,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.6, "output": 2.4 } @@ -281426,6 +289661,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -281439,6 +289675,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.6, "output": 2.4 } @@ -281452,6 +289689,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.6, "output": 2.4 } @@ -281465,6 +289703,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.6, "output": 2.4 } @@ -281478,6 +289717,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.375, + "cacheWrite5m": 0.375, "input": 0.6, "output": 2.4 } @@ -281935,7 +290175,9 @@ "toolCalling": true, "videoInput": false, "supports1MContext": false, - "lowReasoningEffort": true + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true }, "pricing": { "currency": "USD", @@ -282062,6 +290304,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -282281,6 +290525,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -282416,6 +290662,7 @@ ], "providers": [ "abacus", + "cline-pass", "cortecs", "crossmodel", "deepinfra", @@ -282444,10 +290691,12 @@ "togetherai", "vercel", "wafer.ai", + "wandb", "zenmux" ], "aliases": [ "abacus/MiniMaxAI/MiniMax-M3", + "cline-pass/minimax-m3", "cortecs/minimax-m3", "crossmodel/minimax/minimax-m3", "deepinfra/MiniMaxAI/MiniMax-M3", @@ -282477,9 +290726,10 @@ "togetherai/MiniMaxAI/MiniMax-M3", "vercel/minimax/minimax-m3", "wafer.ai/MiniMax-M3", + "wandb/MiniMaxAI/MiniMax-M3", "zenmux/minimax/minimax-m3" ], - "mergedProviderModelRecords": 31, + "mergedProviderModelRecords": 33, "limits": { "contextTokens": 1048576, "inputTokens": 1000000, @@ -282522,13 +290772,17 @@ "transcription": false, "vision": true, "supports1MContext": true, - "structuredOutput": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "noneReasoningEffort": true, + "xhighReasoningEffort": true, + "structuredOutput": true, + "maxReasoningEffort": true, + "minimalReasoningEffort": true, "parallelFunctionCalling": false, "responseSchema": true, - "webSearch": false, - "maxReasoningEffort": true, - "noneReasoningEffort": true + "webSearch": false }, "pricing": { "currency": "USD", @@ -282545,6 +290799,18 @@ "output": 1.2 } }, + { + "source": "models.dev", + "provider": "cline-pass", + "model": "cline-pass/minimax-m3", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.06, + "input": 0.3, + "output": 1.2 + } + }, { "source": "models.dev", "provider": "cortecs", @@ -282566,6 +290832,7 @@ "per1MTokens": { "cacheRead": 0.066, "cacheWrite": 0.33, + "cacheWrite5m": 0.33, "input": 0.33, "output": 1.32 }, @@ -282616,13 +290883,13 @@ "contextOver200K": { "input": 0.45, "output": 1.8, - "cache_read": 0.045 + "cache_read": 0.09 }, "tiers": [ { "input": 0.45, "output": 1.8, - "cache_read": 0.045, + "cache_read": 0.09, "tier": { "size": 512000 } @@ -282720,6 +290987,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -282762,6 +291030,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -282891,6 +291160,7 @@ "per1MTokens": { "cacheRead": 0.06, "cacheWrite": 0.3, + "cacheWrite5m": 0.3, "input": 0.3, "output": 1.2 } @@ -282940,6 +291210,7 @@ "per1MTokens": { "cacheRead": 0.07, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.33, "output": 1.32 }, @@ -282963,6 +291234,18 @@ ] } }, + { + "source": "models.dev", + "provider": "wandb", + "model": "MiniMaxAI/MiniMax-M3", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.05, + "input": 0.23, + "output": 0.96 + } + }, { "source": "models.dev", "provider": "zenmux", @@ -283067,7 +291350,7 @@ "top_logprobs", "top_p" ], - "providerModelRecordCount": 31 + "providerModelRecordCount": 33 }, "sourceRecords": [ { @@ -283087,6 +291370,35 @@ "releaseDate": "2026-06-01" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "cline-pass", + "providerName": "ClinePass", + "providerApi": "https://api.cline.bot/api/v1", + "providerDoc": "https://docs.cline.bot/getting-started/clinepass", + "model": "cline-pass/minimax-m3", + "modelKey": "cline-pass/minimax-m3", + "displayName": "MiniMax-M3", + "family": "minimax", + "metadata": { + "lastUpdated": "2026-06-01", + "openWeights": true, + "releaseDate": "2026-06-01", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high", + "xhigh" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -283283,7 +291595,21 @@ "metadata": { "lastUpdated": "2026-06-01", "openWeights": true, - "releaseDate": "2026-06-01" + "releaseDate": "2026-06-01", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] } }, { @@ -283667,6 +291993,23 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "wandb", + "providerName": "Weights & Biases", + "providerApi": "https://api.inference.wandb.ai/v1", + "providerDoc": "https://docs.wandb.ai/guides/integrations/inference/", + "model": "MiniMaxAI/MiniMax-M3", + "modelKey": "MiniMaxAI/MiniMax-M3", + "displayName": "MiniMax M3", + "family": "minimax-m3", + "metadata": { + "lastUpdated": "2026-06-12", + "openWeights": true, + "releaseDate": "2026-06-12" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -287971,6 +296314,7 @@ "per1MTokens": { "cacheRead": 0.025, "cacheWrite": 0.1, + "cacheWrite5m": 0.1, "input": 0.05, "output": 0.22 } @@ -289363,6 +297707,7 @@ "per1MTokens": { "cacheRead": 0.25, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 0.5, "output": 1.5 } @@ -289838,10 +298183,8 @@ "lastUpdated": "2025-12-16", "supportedParameters": [ "frequency_penalty", - "logprobs", "max_tokens", "presence_penalty", - "repetition_penalty", "response_format", "seed", "stop", @@ -289849,7 +298192,6 @@ "temperature", "tool_choice", "tools", - "top_logprobs", "top_p" ], "providerModelRecordCount": 5 @@ -289961,10 +298303,8 @@ }, "supportedParameters": [ "frequency_penalty", - "logprobs", "max_tokens", "presence_penalty", - "repetition_penalty", "response_format", "seed", "stop", @@ -289972,7 +298312,6 @@ "temperature", "tool_choice", "tools", - "top_logprobs", "top_p" ], "tokenizer": "Mistral", @@ -289995,12 +298334,14 @@ "models.dev" ], "providers": [ - "nano-gpt" + "nano-gpt", + "nvidia" ], "aliases": [ - "nano-gpt/mistralai/ministral-14b-instruct-2512" + "nano-gpt/mistralai/ministral-14b-instruct-2512", + "nvidia/mistralai/ministral-14b-instruct-2512" ], - "mergedProviderModelRecords": 1, + "mergedProviderModelRecords": 2, "limits": { "contextTokens": 262144, "inputTokens": 262144, @@ -290022,13 +298363,14 @@ "audioOutput": false, "imageInput": true, "imageOutput": false, - "openWeights": false, + "openWeights": true, "pdfInput": false, "reasoning": false, "structuredOutput": false, - "toolCalling": false, + "toolCalling": true, "videoInput": false, - "supports1MContext": false + "supports1MContext": false, + "temperature": true }, "pricing": { "currency": "USD", @@ -290044,19 +298386,31 @@ "input": 0.1, "output": 0.4 } + }, + { + "source": "models.dev", + "provider": "nvidia", + "model": "mistralai/ministral-14b-instruct-2512", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } } ] }, "metadata": { "displayNames": [ - "Ministral 3 14B" + "Ministral 3 14B", + "Ministral 3 14B Instruct 2512" ], "families": [ "ministral" ], "releaseDate": "2025-12-02", "lastUpdated": "2025-12-02", - "providerModelRecordCount": 1 + "providerModelRecordCount": 2 }, "sourceRecords": [ { @@ -290075,6 +298429,23 @@ "openWeights": false, "releaseDate": "2025-12-02" } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "nvidia", + "providerName": "Nvidia", + "providerApi": "https://integrate.api.nvidia.com/v1", + "providerDoc": "https://docs.api.nvidia.com/nim/", + "model": "mistralai/ministral-14b-instruct-2512", + "modelKey": "mistralai/ministral-14b-instruct-2512", + "displayName": "Ministral 3 14B Instruct 2512", + "family": "ministral", + "metadata": { + "lastUpdated": "2025-12-02", + "openWeights": true, + "releaseDate": "2025-12-02" + } } ] }, @@ -291200,10 +299571,8 @@ "lastUpdated": "2026-03-15", "supportedParameters": [ "frequency_penalty", - "logprobs", "max_tokens", "presence_penalty", - "repetition_penalty", "response_format", "seed", "stop", @@ -291211,7 +299580,6 @@ "temperature", "tool_choice", "tools", - "top_logprobs", "top_p" ], "providerModelRecordCount": 4 @@ -291306,10 +299674,8 @@ }, "supportedParameters": [ "frequency_penalty", - "logprobs", "max_tokens", "presence_penalty", - "repetition_penalty", "response_format", "seed", "stop", @@ -291317,7 +299683,6 @@ "temperature", "tool_choice", "tools", - "top_logprobs", "top_p" ], "tokenizer": "Mistral", @@ -292829,16 +301194,18 @@ ], "providers": [ "digitalocean", + "nvidia", "ovhcloud", "pioneer" ], "aliases": [ "digitalocean/mistral-7b-instruct-v0.3", + "nvidia/mistralai/mistral-7b-instruct-v0.3", "ovhcloud/Mistral-7B-Instruct-v0.3", "ovhcloud/mistral-7b-instruct-v0.3", "pioneer/mistralai/Mistral-7B-Instruct-v0.3" ], - "mergedProviderModelRecords": 3, + "mergedProviderModelRecords": 4, "limits": { "contextTokens": 127000, "inputTokens": 127000, @@ -292877,12 +301244,25 @@ "toolChoice": true, "transcription": false, "supports1MContext": false, - "lowReasoningEffort": true + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true }, "pricing": { "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ + { + "source": "models.dev", + "provider": "nvidia", + "model": "mistralai/mistral-7b-instruct-v0.3", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + }, { "source": "models.dev", "provider": "ovhcloud", @@ -292903,6 +301283,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0.2, + "cacheWrite5m": 0.2, "input": 0.2, "output": 0.2 } @@ -292933,7 +301314,7 @@ ], "releaseDate": "2024-05-22", "lastUpdated": "2024-05-22", - "providerModelRecordCount": 3 + "providerModelRecordCount": 4 }, "sourceRecords": [ { @@ -292953,6 +301334,22 @@ "releaseDate": "2024-05-22" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "nvidia", + "providerName": "Nvidia", + "providerApi": "https://integrate.api.nvidia.com/v1", + "providerDoc": "https://docs.api.nvidia.com/nim/", + "model": "mistralai/mistral-7b-instruct-v0.3", + "modelKey": "mistralai/mistral-7b-instruct-v0.3", + "displayName": "Mistral-7B-Instruct-v0.3", + "metadata": { + "lastUpdated": "2025-04-01", + "openWeights": true, + "releaseDate": "2025-04-01" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -293007,93 +301404,6 @@ } ] }, - { - "id": "mistral/mistral-7b-instruct-v03", - "provider": "mistral", - "model": "mistral-7b-instruct-v03", - "displayName": "Mistral-7B-Instruct-v0.3", - "sources": [ - "models.dev" - ], - "providers": [ - "nvidia" - ], - "aliases": [ - "nvidia/mistralai/mistral-7b-instruct-v03" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 65536, - "outputTokens": 65536, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "structuredOutput": true, - "temperature": true, - "toolCalling": true, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "nvidia", - "model": "mistralai/mistral-7b-instruct-v03", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0, - "output": 0 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Mistral-7B-Instruct-v0.3" - ], - "releaseDate": "2025-04-01", - "lastUpdated": "2025-04-01", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "nvidia", - "providerName": "Nvidia", - "providerApi": "https://integrate.api.nvidia.com/v1", - "providerDoc": "https://docs.api.nvidia.com/nim/", - "model": "mistralai/mistral-7b-instruct-v03", - "modelKey": "mistralai/mistral-7b-instruct-v03", - "displayName": "Mistral-7B-Instruct-v0.3", - "metadata": { - "lastUpdated": "2025-04-01", - "openWeights": true, - "releaseDate": "2025-04-01" - } - } - ] - }, { "id": "mistral/mistral-7b-instruct-v0p2", "provider": "mistral", @@ -294679,8 +302989,6 @@ "models.dev" ], "providers": [ - "azure", - "azure-cognitive-services", "github-models", "helicone", "kilo", @@ -294689,8 +302997,6 @@ "vertex_ai-mistral_models" ], "aliases": [ - "azure-cognitive-services/mistral-large-2411", - "azure/mistral-large-2411", "github-models/mistral-ai/mistral-large-2411", "helicone/mistral-large-2411", "kilo/mistralai/mistral-large-2411", @@ -294698,7 +303004,7 @@ "mistral/mistral-large-2411", "vertex_ai-mistral_models/vertex_ai/mistral-large-2411" ], - "mergedProviderModelRecords": 8, + "mergedProviderModelRecords": 6, "limits": { "contextTokens": 131072, "inputTokens": 128000, @@ -294742,28 +303048,6 @@ "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "mistral-large-2411", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 2, - "output": 6 - } - }, - { - "source": "models.dev", - "provider": "azure", - "model": "mistral-large-2411", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 2, - "output": 6 - } - }, { "source": "models.dev", "provider": "github-models", @@ -294859,43 +303143,9 @@ "knowledgeCutoff": "2024-09", "releaseDate": "2024-11-01", "lastUpdated": "2024-11-01", - "providerModelRecordCount": 8 + "providerModelRecordCount": 6 }, "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "mistral-large-2411", - "modelKey": "mistral-large-2411", - "displayName": "Mistral Large 24.11", - "family": "mistral-large", - "metadata": { - "knowledgeCutoff": "2024-09", - "lastUpdated": "2024-11-01", - "openWeights": false, - "releaseDate": "2024-11-01" - } - }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "mistral-large-2411", - "modelKey": "mistral-large-2411", - "displayName": "Mistral Large 24.11", - "family": "mistral-large", - "metadata": { - "knowledgeCutoff": "2024-09", - "lastUpdated": "2024-11-01", - "openWeights": false, - "releaseDate": "2024-11-01" - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -295995,6 +304245,7 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 4, + "cacheWrite5m": 4, "input": 2, "output": 6 } @@ -297306,6 +305557,7 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -297863,6 +306115,7 @@ "structuredOutput": true, "temperature": true, "toolCalling": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "parallelFunctionCalling": false, "webSearch": false @@ -298417,6 +306670,8 @@ "videoInput": false, "supports1MContext": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "noneReasoningEffort": true }, @@ -298444,6 +306699,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 1.5, + "cacheWrite5m": 1.5, "input": 1.5, "output": 7.5 } @@ -298563,15 +306819,17 @@ "providers": [ "berget", "evroc", + "nvidia", "scaleway" ], "aliases": [ "berget/mistralai/Mistral-Medium-3.5-128B", "evroc/mistralai/Mistral-Medium-3.5-128B", + "nvidia/mistralai/mistral-medium-3.5-128b", "scaleway/mistral-medium-3.5-128b", "scaleway/mistralai/mistral-medium-3.5-128b" ], - "mergedProviderModelRecords": 4, + "mergedProviderModelRecords": 5, "limits": { "contextTokens": 262144, "inputTokens": 256000, @@ -298597,6 +306855,7 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -298639,6 +306898,17 @@ "output": 6.9 } }, + { + "source": "models.dev", + "provider": "nvidia", + "model": "mistralai/mistral-medium-3.5-128b", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + }, { "source": "models.dev", "provider": "scaleway", @@ -298677,7 +306947,7 @@ "knowledgeCutoff": "2026-04", "releaseDate": "2026-04-29", "lastUpdated": "2026-04-29", - "providerModelRecordCount": 4 + "providerModelRecordCount": 5 }, "sourceRecords": [ { @@ -298733,6 +307003,32 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "nvidia", + "providerName": "Nvidia", + "providerApi": "https://integrate.api.nvidia.com/v1", + "providerDoc": "https://docs.api.nvidia.com/nim/", + "model": "mistralai/mistral-medium-3.5-128b", + "modelKey": "mistralai/mistral-medium-3.5-128b", + "displayName": "Mistral Medium 3.5", + "family": "mistral-medium", + "metadata": { + "lastUpdated": "2026-04-29", + "openWeights": true, + "releaseDate": "2026-04-29", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "high" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -299000,6 +307296,7 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -299138,8 +307435,6 @@ "openrouter" ], "providers": [ - "azure", - "azure-cognitive-services", "azure_ai", "github-models", "helicone", @@ -299151,8 +307446,6 @@ "vercel" ], "aliases": [ - "azure-cognitive-services/mistral-nemo", - "azure/mistral-nemo", "azure_ai/mistral-nemo", "github-models/mistral-ai/mistral-nemo", "helicone/mistral-nemo", @@ -299163,7 +307456,7 @@ "openrouter/mistralai/mistral-nemo", "vercel/mistral/mistral-nemo" ], - "mergedProviderModelRecords": 11, + "mergedProviderModelRecords": 9, "limits": { "contextTokens": 131072, "inputTokens": 131072, @@ -299211,28 +307504,6 @@ "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "mistral-nemo", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.15, - "output": 0.15 - } - }, - { - "source": "models.dev", - "provider": "azure", - "model": "mistral-nemo", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.15, - "output": 0.15 - } - }, { "source": "models.dev", "provider": "github-models", @@ -299356,7 +307627,7 @@ "modes": [ "chat" ], - "knowledgeCutoff": "2024-07", + "knowledgeCutoff": "2024-03", "releaseDate": "2024-07-18", "lastUpdated": "2024-07-18", "supportedParameters": [ @@ -299378,43 +307649,9 @@ "top_logprobs", "top_p" ], - "providerModelRecordCount": 11 + "providerModelRecordCount": 9 }, "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "mistral-nemo", - "modelKey": "mistral-nemo", - "displayName": "Mistral Nemo", - "family": "mistral-nemo", - "metadata": { - "knowledgeCutoff": "2024-07", - "lastUpdated": "2024-07-18", - "openWeights": true, - "releaseDate": "2024-07-18" - } - }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "mistral-nemo", - "modelKey": "mistral-nemo", - "displayName": "Mistral Nemo", - "family": "mistral-nemo", - "metadata": { - "knowledgeCutoff": "2024-07", - "lastUpdated": "2024-07-18", - "openWeights": true, - "releaseDate": "2024-07-18" - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -299843,7 +308080,9 @@ "toolChoice": true, "transcription": false, "supports1MContext": false, - "lowReasoningEffort": true + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true }, "pricing": { "currency": "USD", @@ -299869,6 +308108,7 @@ "per1MTokens": { "cacheRead": 0.01, "cacheWrite": 0.04, + "cacheWrite5m": 0.04, "input": 0.02, "output": 0.04 } @@ -299915,6 +308155,7 @@ "per1MTokens": { "cacheRead": 0.02, "cacheWrite": 0.02, + "cacheWrite5m": 0.02, "input": 0.02, "output": 0.03 } @@ -302169,6 +310410,7 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -303005,7 +311247,7 @@ ], "mergedProviderModelRecords": 2, "limits": { - "contextTokens": 131072, + "contextTokens": 256000, "inputTokens": 128000, "maxTokens": 128000, "outputTokens": 131072, @@ -303115,7 +311357,6 @@ "supportedParameters": [ "frequency_penalty", "logit_bias", - "logprobs", "max_tokens", "min_p", "presence_penalty", @@ -303128,7 +311369,6 @@ "tool_choice", "tools", "top_k", - "top_logprobs", "top_p" ], "providerModelRecordCount": 2 @@ -303192,7 +311432,6 @@ "supportedParameters": [ "frequency_penalty", "logit_bias", - "logprobs", "max_tokens", "min_p", "presence_penalty", @@ -303205,7 +311444,6 @@ "tool_choice", "tools", "top_k", - "top_logprobs", "top_p" ], "tokenizer": "Mistral", @@ -303840,9 +312078,11 @@ "toolCalling": true, "videoInput": false, "supports1MContext": false, + "highReasoningEffort": true, "noneReasoningEffort": true, "temperature": true, - "lowReasoningEffort": true + "lowReasoningEffort": true, + "mediumReasoningEffort": true }, "pricing": { "currency": "USD", @@ -303879,6 +312119,7 @@ "per1MTokens": { "cacheRead": 0.015, "cacheWrite": 0.15, + "cacheWrite5m": 0.15, "input": 0.15, "output": 0.6 } @@ -304109,6 +312350,7 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -305916,6 +314158,111 @@ } ] }, + { + "id": "mistral/mistral4-119b", + "provider": "mistral", + "model": "mistral4-119b", + "displayName": "Mistral Small 4", + "family": "mistral-small", + "sources": [ + "models.dev" + ], + "providers": [ + "aki-io" + ], + "aliases": [ + "aki-io/mistral4-119b" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 262144, + "outputTokens": 81920, + "supports1MContext": false + }, + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "highReasoningEffort": true, + "noneReasoningEffort": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "aki-io", + "model": "mistral4-119b", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0.2, + "output": 0.6 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Mistral Small 4" + ], + "families": [ + "mistral-small" + ], + "knowledgeCutoff": "2025-06", + "releaseDate": "2026-03-16", + "lastUpdated": "2026-03-16", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "aki-io", + "providerName": "AKI.IO", + "providerApi": "https://aki.io/v1", + "providerDoc": "https://aki.io/docs/", + "model": "mistral4-119b", + "modelKey": "mistral4-119b", + "displayName": "Mistral Small 4", + "family": "mistral-small", + "metadata": { + "knowledgeCutoff": "2025-06", + "lastUpdated": "2026-03-16", + "openWeights": true, + "releaseDate": "2026-03-16", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "high" + ] + } + ] + } + } + ] + }, { "id": "mistral/mistralai-mistral-medium-instruct", "provider": "mistral", @@ -306048,6 +314395,7 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -309100,6 +317448,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, @@ -309151,6 +317501,105 @@ } ] }, + { + "id": "moonshotai/kimi-for-coding", + "provider": "moonshotai", + "model": "kimi-for-coding", + "displayName": "Kimi K2.7 Code", + "family": "kimi-k2", + "sources": [ + "models.dev" + ], + "providers": [ + "kimi-for-coding" + ], + "aliases": [ + "kimi-for-coding/kimi-for-coding" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 262144, + "outputTokens": 32768, + "supports1MContext": false + }, + "modalities": { + "input": [ + "image", + "text", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "structuredOutput": true, + "temperature": false, + "toolCalling": true, + "videoInput": true, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "kimi-for-coding", + "model": "kimi-for-coding", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0, + "cacheWrite": 0, + "cacheWrite5m": 0, + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Kimi K2.7 Code" + ], + "families": [ + "kimi-k2" + ], + "knowledgeCutoff": "2025-01", + "releaseDate": "2026-06-12", + "lastUpdated": "2026-06-12", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "kimi-for-coding", + "providerName": "Kimi For Coding", + "providerApi": "https://api.kimi.com/coding/v1", + "providerDoc": "https://www.kimi.com/code/docs/en/third-party-tools/other-coding-agents.html", + "model": "kimi-for-coding", + "modelKey": "kimi-for-coding", + "displayName": "Kimi K2.7 Code", + "family": "kimi-k2", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-06-12", + "openWeights": true, + "releaseDate": "2026-06-12" + } + } + ] + }, { "id": "moonshotai/kimi-for-coding-highspeed", "provider": "moonshotai", @@ -309210,6 +317659,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -310553,6 +319003,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": false, @@ -310677,6 +319129,8 @@ "videoInput": true, "supports1MContext": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "minimalReasoningEffort": true, @@ -310907,7 +319361,114 @@ "knowledgeCutoff": "2025-01", "lastUpdated": "2026-06-11", "openWeights": true, - "releaseDate": "2026-04-20" + "releaseDate": "2026-04-20", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high" + ] + } + ] + } + } + ] + }, + { + "id": "moonshotai/kimi-k2-6:free", + "provider": "moonshotai", + "model": "kimi-k2-6:free", + "displayName": "Kimi K2.6 (Free)", + "family": "kimi-k2", + "sources": [ + "models.dev" + ], + "providers": [ + "kenari" + ], + "aliases": [ + "kenari/kimi-k2-6:free" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 262144, + "outputTokens": 262144, + "supports1MContext": false + }, + "modalities": { + "input": [ + "image", + "text", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "structuredOutput": true, + "temperature": true, + "toolCalling": true, + "videoInput": true, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "kenari", + "model": "kimi-k2-6:free", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Kimi K2.6 (Free)" + ], + "families": [ + "kimi-k2" + ], + "knowledgeCutoff": "2025-01", + "releaseDate": "2026-04-21", + "lastUpdated": "2026-04-21", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "kenari", + "providerName": "Kenari", + "providerApi": "https://kenari.id/v1", + "providerDoc": "https://kenari.id/docs", + "model": "kimi-k2-6:free", + "modelKey": "kimi-k2-6:free", + "displayName": "Kimi K2.6 (Free)", + "family": "kimi-k2", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-04-21", + "openWeights": true, + "releaseDate": "2026-04-21" } } ] @@ -310961,7 +319522,9 @@ "toolCalling": true, "videoInput": true, "supports1MContext": false, - "lowReasoningEffort": true + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true }, "pricing": { "currency": "USD", @@ -311177,6 +319740,102 @@ } ] }, + { + "id": "moonshotai/kimi-k2-7-code:free", + "provider": "moonshotai", + "model": "kimi-k2-7-code:free", + "displayName": "Kimi K2.7 Code (Free)", + "family": "kimi-k2", + "sources": [ + "models.dev" + ], + "providers": [ + "kenari" + ], + "aliases": [ + "kenari/kimi-k2-7-code:free" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 262144, + "outputTokens": 262144, + "supports1MContext": false + }, + "modalities": { + "input": [ + "image", + "text", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "structuredOutput": true, + "temperature": false, + "toolCalling": true, + "videoInput": true, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "kenari", + "model": "kimi-k2-7-code:free", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Kimi K2.7 Code (Free)" + ], + "families": [ + "kimi-k2" + ], + "knowledgeCutoff": "2025-01", + "releaseDate": "2026-06-12", + "lastUpdated": "2026-06-12", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "kenari", + "providerName": "Kenari", + "providerApi": "https://kenari.id/v1", + "providerDoc": "https://kenari.id/docs", + "model": "kimi-k2-7-code:free", + "modelKey": "kimi-k2-7-code:free", + "displayName": "Kimi K2.7 Code (Free)", + "family": "kimi-k2", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-06-12", + "openWeights": true, + "releaseDate": "2026-06-12" + } + } + ] + }, { "id": "moonshotai/kimi-k2-instruct", "provider": "moonshotai", @@ -311726,6 +320385,7 @@ "per1MTokens": { "cacheRead": 0.195, "cacheWrite": 0.78, + "cacheWrite5m": 0.78, "input": 0.39, "output": 1.9 } @@ -312142,8 +320802,6 @@ "providers": [ "302ai", "alibaba-cn", - "azure", - "azure-cognitive-services", "baseten", "cortecs", "crusoe", @@ -312172,8 +320830,6 @@ "aliases": [ "302ai/kimi-k2-thinking", "alibaba-cn/kimi-k2-thinking", - "azure-cognitive-services/kimi-k2-thinking", - "azure/kimi-k2-thinking", "baseten/moonshotai/Kimi-K2-Thinking", "cortecs/kimi-k2-thinking", "crusoe/moonshotai/Kimi-K2-Thinking", @@ -312199,7 +320855,7 @@ "vercel/moonshotai/kimi-k2-thinking", "zenmux/moonshotai/kimi-k2-thinking" ], - "mergedProviderModelRecords": 28, + "mergedProviderModelRecords": 26, "limits": { "contextTokens": 262144, "inputTokens": 262144, @@ -312229,11 +320885,11 @@ "videoInput": false, "supports1MContext": false, "structuredOutput": true, - "interleaved": true, "parallelFunctionCalling": true, "responseSchema": true, "toolChoice": true, "webSearch": true, + "interleaved": true, "embedding": false, "imageGeneration": false, "moderation": false, @@ -312269,30 +320925,6 @@ "output": 2.294 } }, - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "kimi-k2-thinking", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.15, - "input": 0.6, - "output": 2.5 - } - }, - { - "source": "models.dev", - "provider": "azure", - "model": "kimi-k2-thinking", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.15, - "input": 0.6, - "output": 2.5 - } - }, { "source": "models.dev", "provider": "cortecs", @@ -312336,6 +320968,7 @@ "per1MTokens": { "cacheRead": 0.275, "cacheWrite": 1.1, + "cacheWrite5m": 1.1, "input": 0.55, "output": 2.25 } @@ -312602,7 +321235,7 @@ "top_logprobs", "top_p" ], - "providerModelRecordCount": 28 + "providerModelRecordCount": 26 }, "sourceRecords": [ { @@ -312644,40 +321277,6 @@ ] } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "kimi-k2-thinking", - "modelKey": "kimi-k2-thinking", - "displayName": "Kimi K2 Thinking", - "family": "kimi-thinking", - "metadata": { - "knowledgeCutoff": "2024-08", - "lastUpdated": "2025-12-02", - "openWeights": true, - "releaseDate": "2025-11-06" - } - }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "kimi-k2-thinking", - "modelKey": "kimi-k2-thinking", - "displayName": "Kimi K2 Thinking", - "family": "kimi-thinking", - "metadata": { - "knowledgeCutoff": "2024-08", - "lastUpdated": "2025-12-02", - "openWeights": true, - "releaseDate": "2025-11-06" - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -313287,6 +321886,9 @@ "modes": [ "chat" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2024-08", "releaseDate": "2025-11-13", "lastUpdated": "2025-11-13", @@ -313303,6 +321905,7 @@ "modelKey": "moonshotai/kimi-k2-thinking-maas", "displayName": "Kimi K2 Thinking", "family": "kimi-thinking", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2024-08", "lastUpdated": "2025-11-13", @@ -313970,6 +322573,7 @@ "frogbot", "hpc-ai", "huggingface", + "hyper", "jiekou", "kilo", "llmgateway", @@ -314022,6 +322626,7 @@ "frogbot/kimi-k2.5", "hpc-ai/moonshotai/kimi-k2.5", "huggingface/moonshotai/Kimi-K2.5", + "hyper/kimi-k2.5", "jiekou/moonshotai/kimi-k2.5", "kilo/moonshotai/kimi-k2.5", "llmgateway/kimi-k2.5", @@ -314051,7 +322656,7 @@ "wandb/moonshotai/Kimi-K2.5", "zenmux/moonshotai/kimi-k2.5" ], - "mergedProviderModelRecords": 51, + "mergedProviderModelRecords": 52, "limits": { "contextTokens": 262144, "inputTokens": 262144, @@ -314096,6 +322701,8 @@ "responseSchema": true, "webSearch": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "interleaved": true, @@ -314160,6 +322767,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -314173,6 +322781,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -314186,6 +322795,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -314199,6 +322809,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -314292,6 +322903,7 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 0.62, + "cacheWrite5m": 0.62, "input": 0.62, "output": 3.3 } @@ -314367,6 +322979,19 @@ "output": 3 } }, + { + "source": "models.dev", + "provider": "hyper", + "model": "kimi-k2.5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheWrite": 0.265, + "cacheWrite5m": 0.265, + "input": 0.53, + "output": 2.66 + } + }, { "source": "models.dev", "provider": "jiekou", @@ -314478,6 +323103,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0.625, + "cacheWrite5m": 0.625, "input": 0.5, "output": 2.5, "reasoningOutput": 2.5 @@ -314598,6 +323224,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -314780,7 +323407,7 @@ "top_logprobs", "top_p" ], - "providerModelRecordCount": 51 + "providerModelRecordCount": 52 }, "sourceRecords": [ { @@ -315309,6 +323936,24 @@ "releaseDate": "2026-01-01" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "hyper", + "providerName": "Charm Hyper", + "providerApi": "https://hyper.charm.land/v1", + "providerDoc": "https://hyper.charm.land", + "model": "kimi-k2.5", + "modelKey": "kimi-k2.5", + "displayName": "Kimi K2.5", + "family": "kimi-k2", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-07-22", + "openWeights": true, + "releaseDate": "2026-04-13" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -316018,6 +324663,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0.625, + "cacheWrite5m": 0.625, "input": 0.5, "output": 2.5 } @@ -316330,6 +324976,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": false, @@ -316693,6 +325341,7 @@ ], "providers": [ "abacus", + "aiand", "aihubmix", "alibaba-cn", "alibaba-token-plan", @@ -316704,6 +325353,7 @@ "azure_ai", "baseten", "berget", + "cline-pass", "cloudflare", "cloudflare-ai-gateway", "cloudflare-workers-ai", @@ -316717,6 +325367,7 @@ "fastrouter", "gmicloud", "huggingface", + "hyper", "inceptron", "kilo", "lilac", @@ -316729,6 +325380,7 @@ "neuralwatt", "novita-ai", "nvidia", + "ofox", "ollama-cloud", "opencode", "opencode-go", @@ -316751,6 +325403,7 @@ ], "aliases": [ "abacus/moonshotai/Kimi-K2.6", + "aiand/moonshotai/kimi-k2.6", "aihubmix/kimi-k2.6", "alibaba-cn/kimi-k2.6", "alibaba-token-plan-cn/kimi-k2.6", @@ -316762,6 +325415,7 @@ "azure_ai/kimi-k2.6", "baseten/moonshotai/Kimi-K2.6", "berget/moonshotai/Kimi-K2.6", + "cline-pass/kimi-k2.6", "cloudflare-ai-gateway/workers-ai/@cf/moonshotai/kimi-k2.6", "cloudflare-workers-ai/@cf/moonshotai/kimi-k2.6", "cloudflare/@cf/moonshotai/kimi-k2.6", @@ -316775,6 +325429,7 @@ "fastrouter/moonshotai/kimi-k2.6", "gmicloud/moonshotai/Kimi-K2.6", "huggingface/moonshotai/Kimi-K2.6", + "hyper/kimi-k2.6", "inceptron/moonshotai/Kimi-K2.6", "kilo/moonshotai/kimi-k2.6", "lilac/moonshotai/kimi-k2.6", @@ -316788,6 +325443,7 @@ "neuralwatt/moonshotai/Kimi-K2.6", "novita-ai/moonshotai/kimi-k2.6", "nvidia/moonshotai/kimi-k2.6", + "ofox/moonshotai/kimi-k2.6", "ollama-cloud/kimi-k2.6", "opencode-go/kimi-k2.6", "opencode/kimi-k2.6", @@ -316808,7 +325464,7 @@ "wandb/moonshotai/Kimi-K2.6", "zenmux/moonshotai/kimi-k2.6" ], - "mergedProviderModelRecords": 57, + "mergedProviderModelRecords": 61, "limits": { "contextTokens": 262144, "inputTokens": 262144, @@ -316819,6 +325475,7 @@ "modalities": { "input": [ "image", + "pdf", "text", "video" ], @@ -316833,7 +325490,7 @@ "imageInput": true, "imageOutput": false, "openWeights": true, - "pdfInput": false, + "pdfInput": true, "reasoning": true, "structuredOutput": true, "temperature": true, @@ -316841,6 +325498,8 @@ "videoInput": true, "supports1MContext": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "interleaved": true, @@ -316877,6 +325536,17 @@ "output": 4 } }, + { + "source": "models.dev", + "provider": "aiand", + "model": "moonshotai/kimi-k2.6", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0.85, + "output": 3.5 + } + }, { "source": "models.dev", "provider": "aihubmix", @@ -316909,6 +325579,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -316922,6 +325593,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -316935,6 +325607,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.95, "output": 4 } @@ -316997,6 +325670,18 @@ "output": 3.85 } }, + { + "source": "models.dev", + "provider": "cline-pass", + "model": "cline-pass/kimi-k2.6", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.16, + "input": 0.95, + "output": 4 + } + }, { "source": "models.dev", "provider": "cloudflare-ai-gateway", @@ -317054,6 +325739,7 @@ "per1MTokens": { "cacheRead": 0.18, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 1, "output": 4.16 } @@ -317138,6 +325824,19 @@ "output": 4 } }, + { + "source": "models.dev", + "provider": "hyper", + "model": "kimi-k2.6", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheWrite": 0.16, + "cacheWrite5m": 0.16, + "input": 0.95, + "output": 4 + } + }, { "source": "models.dev", "provider": "inceptron", @@ -317147,6 +325846,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.66, "output": 3.5 } @@ -317182,9 +325882,9 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.08, - "input": 0.4, - "output": 2.2 + "cacheRead": 0.048, + "input": 0.22, + "output": 1.137 } }, { @@ -317280,6 +325980,18 @@ "output": 0 } }, + { + "source": "models.dev", + "provider": "ofox", + "model": "moonshotai/kimi-k2.6", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.16, + "input": 0.95, + "output": 4 + } + }, { "source": "models.dev", "provider": "opencode-go", @@ -317311,9 +326023,9 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.144, - "input": 0.684, - "output": 3.42 + "cacheRead": 0.1088, + "input": 0.646, + "output": 2.72 } }, { @@ -317337,6 +326049,7 @@ "per1MTokens": { "cacheRead": 0.34, "cacheWrite": 0.95, + "cacheWrite5m": 0.95, "input": 0.95, "output": 4 } @@ -317454,6 +326167,7 @@ "per1MTokens": { "cacheRead": 0.19, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.14, "output": 4.8 } @@ -317465,9 +326179,9 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.16, - "input": 0.95, - "output": 4 + "cacheRead": 0.15, + "input": 0.65, + "output": 3.41 } }, { @@ -317536,9 +326250,9 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "cacheRead": 0.144, - "input": 0.684, - "output": 3.42 + "cacheRead": 0.1088, + "input": 0.646, + "output": 2.72 } } ] @@ -317590,7 +326304,7 @@ "top_logprobs", "top_p" ], - "providerModelRecordCount": 57 + "providerModelRecordCount": 61 }, "sourceRecords": [ { @@ -317611,6 +326325,24 @@ "releaseDate": "2026-04-21" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "aiand", + "providerName": "ai&", + "providerApi": "https://api.aiand.com/v1", + "providerDoc": "https://docs.aiand.com/", + "model": "moonshotai/kimi-k2.6", + "modelKey": "moonshotai/kimi-k2.6", + "displayName": "Kimi K2.6", + "family": "kimi-k2", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-04-21", + "openWeights": true, + "releaseDate": "2026-04-21" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -317850,6 +326582,36 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "cline-pass", + "providerName": "ClinePass", + "providerApi": "https://api.cline.bot/api/v1", + "providerDoc": "https://docs.cline.bot/getting-started/clinepass", + "model": "cline-pass/kimi-k2.6", + "modelKey": "cline-pass/kimi-k2.6", + "displayName": "Kimi K2.6", + "family": "kimi-k2", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-04-21", + "openWeights": true, + "releaseDate": "2026-04-21", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high", + "xhigh" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -318136,6 +326898,34 @@ "releaseDate": "2026-04-20" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "hyper", + "providerName": "Charm Hyper", + "providerApi": "https://hyper.charm.land/v1", + "providerDoc": "https://hyper.charm.land", + "model": "kimi-k2.6", + "modelKey": "kimi-k2.6", + "displayName": "Kimi K2.6", + "family": "kimi-k2", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-07-22", + "openWeights": true, + "releaseDate": "2026-07-03", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -318213,7 +327003,21 @@ "knowledgeCutoff": "2025-01", "lastUpdated": "2026-04-21", "openWeights": true, - "releaseDate": "2026-04-21" + "releaseDate": "2026-04-21", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] } }, { @@ -318400,6 +327204,29 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "ofox", + "providerName": "Ofox", + "providerApi": "https://api.ofox.ai/v1", + "providerDoc": "https://ofox.ai/docs", + "model": "moonshotai/kimi-k2.6", + "modelKey": "moonshotai/kimi-k2.6", + "displayName": "Kimi K2.6", + "family": "kimi-k2", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-04-21", + "openWeights": true, + "releaseDate": "2026-04-21", + "reasoningOptions": [ + { + "type": "toggle" + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -318920,6 +327747,7 @@ "per1MTokens": { "cacheRead": 0.4, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.32, "output": 7 } @@ -319388,11 +328216,13 @@ "openrouter" ], "providers": [ + "aiand", "aihubmix", "alibaba-token-plan", "alibaba-token-plan-cn", "ambient", "baseten", + "cline-pass", "cloudflare", "cloudflare-workers-ai", "cortecs", @@ -319402,6 +328232,7 @@ "github-copilot", "hpc-ai", "huggingface", + "hyper", "inceptron", "llmgateway", "merge-gateway", @@ -319409,6 +328240,7 @@ "moonshotai-cn", "nebius", "neuralwatt", + "novita-ai", "ollama-cloud", "opencode", "opencode-go", @@ -319422,11 +328254,13 @@ "zenmux" ], "aliases": [ + "aiand/moonshotai/kimi-k2.7-code", "aihubmix/kimi-k2.7-code", "alibaba-token-plan-cn/kimi-k2.7-code", "alibaba-token-plan/kimi-k2.7-code", "ambient/moonshotai/kimi-k2.7-code", "baseten/moonshotai/Kimi-K2.7-Code", + "cline-pass/kimi-k2.7-code", "cloudflare-workers-ai/@cf/moonshotai/kimi-k2.7-code", "cloudflare/@cf/moonshotai/kimi-k2.7-code", "cortecs/kimi-k2.7-code", @@ -319436,6 +328270,7 @@ "github-copilot/kimi-k2.7-code", "hpc-ai/moonshotai/kimi-k2.7-code", "huggingface/moonshotai/Kimi-K2.7-Code", + "hyper/kimi-k2.7-code", "inceptron/moonshotai/Kimi-K2.7-Code", "llmgateway/kimi-k2.7-code", "merge-gateway/moonshotai/kimi-k2.7-code", @@ -319443,6 +328278,7 @@ "moonshotai/kimi-k2.7-code", "nebius/moonshotai/Kimi-K2.7-Code", "neuralwatt/moonshotai/Kimi-K2.7-Code", + "novita-ai/moonshotai/kimi-k2.7-code", "ollama-cloud/kimi-k2.7-code", "opencode-go/kimi-k2.7-code", "opencode/kimi-k2.7-code", @@ -319455,7 +328291,7 @@ "wandb/moonshotai/Kimi-K2.7-Code", "zenmux/moonshotai/kimi-k2.7-code" ], - "mergedProviderModelRecords": 32, + "mergedProviderModelRecords": 36, "limits": { "contextTokens": 262144, "inputTokens": 262144, @@ -319489,7 +328325,11 @@ "videoInput": true, "supports1MContext": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "minimalReasoningEffort": true, "noneReasoningEffort": true, + "xhighReasoningEffort": true, "parallelFunctionCalling": true, "responseSchema": true, "toolChoice": true, @@ -319506,6 +328346,17 @@ "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ + { + "source": "models.dev", + "provider": "aiand", + "model": "moonshotai/kimi-k2.7-code", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0.75, + "output": 3.5 + } + }, { "source": "models.dev", "provider": "aihubmix", @@ -319527,6 +328378,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -319540,6 +328392,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -319551,10 +328404,11 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.17, + "cacheRead": 0.15, "cacheWrite": 0, - "input": 0.85, - "output": 3.8 + "cacheWrite5m": 0, + "input": 0.73, + "output": 3.5 } }, { @@ -319569,6 +328423,18 @@ "output": 4 } }, + { + "source": "models.dev", + "provider": "cline-pass", + "model": "cline-pass/kimi-k2.7-code", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.19, + "input": 0.95, + "output": 4 + } + }, { "source": "models.dev", "provider": "cloudflare-workers-ai", @@ -319614,6 +328480,7 @@ "per1MTokens": { "cacheRead": 0.18, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 1, "output": 4.16 } @@ -319665,6 +328532,18 @@ "output": 4 } }, + { + "source": "models.dev", + "provider": "hyper", + "model": "kimi-k2.7-code", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.19, + "input": 0.95, + "output": 4 + } + }, { "source": "models.dev", "provider": "inceptron", @@ -319674,6 +328553,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.75, "output": 3.5 } @@ -319748,6 +328628,18 @@ "output": 4 } }, + { + "source": "models.dev", + "provider": "novita-ai", + "model": "moonshotai/kimi-k2.7-code", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.19, + "input": 0.95, + "output": 4 + } + }, { "source": "models.dev", "provider": "opencode-go", @@ -319779,9 +328671,9 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.17, - "input": 0.85, - "output": 3.8 + "cacheRead": 0.15, + "input": 0.73, + "output": 3.5 } }, { @@ -319793,6 +328685,7 @@ "per1MTokens": { "cacheRead": 0.19, "cacheWrite": 0.95, + "cacheWrite5m": 0.95, "input": 0.95, "output": 4 } @@ -319851,9 +328744,9 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.19, - "input": 0.94, - "output": 4 + "cacheRead": 0.15, + "input": 0.71, + "output": 3.5 } }, { @@ -319887,9 +328780,9 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "cacheRead": 0.17, - "input": 0.85, - "output": 3.8 + "cacheRead": 0.15, + "input": 0.73, + "output": 3.5 } } ] @@ -319931,9 +328824,40 @@ "top_logprobs", "top_p" ], - "providerModelRecordCount": 32 + "providerModelRecordCount": 36 }, "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "aiand", + "providerName": "ai&", + "providerApi": "https://api.aiand.com/v1", + "providerDoc": "https://docs.aiand.com/", + "model": "moonshotai/kimi-k2.7-code", + "modelKey": "moonshotai/kimi-k2.7-code", + "displayName": "Kimi K2.7 Code", + "family": "kimi-k2", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-06-12", + "openWeights": true, + "releaseDate": "2026-06-12", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -320049,6 +328973,36 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "cline-pass", + "providerName": "ClinePass", + "providerApi": "https://api.cline.bot/api/v1", + "providerDoc": "https://docs.cline.bot/getting-started/clinepass", + "model": "cline-pass/kimi-k2.7-code", + "modelKey": "cline-pass/kimi-k2.7-code", + "displayName": "Kimi K2.7 Code", + "family": "kimi-k2", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-06-12", + "openWeights": true, + "releaseDate": "2026-06-12", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high", + "xhigh" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -320221,6 +329175,24 @@ "releaseDate": "2026-06-12" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "hyper", + "providerName": "Charm Hyper", + "providerApi": "https://hyper.charm.land/v1", + "providerDoc": "https://hyper.charm.land", + "model": "kimi-k2.7-code", + "modelKey": "kimi-k2.7-code", + "displayName": "Kimi K2.7 Code", + "family": "kimi-k2", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-07-22", + "openWeights": true, + "releaseDate": "2026-07-03" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -320366,6 +329338,29 @@ "releaseDate": "2026-06-12" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "novita-ai", + "providerName": "NovitaAI", + "providerApi": "https://api.novita.ai/openai", + "providerDoc": "https://novita.ai/docs/guides/introduction", + "model": "moonshotai/kimi-k2.7-code", + "modelKey": "moonshotai/kimi-k2.7-code", + "displayName": "Kimi K2.7 Code", + "family": "kimi-k2", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-06-12", + "openWeights": true, + "releaseDate": "2026-06-12", + "reasoningOptions": [ + { + "type": "toggle" + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -320642,6 +329637,101 @@ } ] }, + { + "id": "moonshotai/kimi-k2.7-code-1100b", + "provider": "moonshotai", + "model": "kimi-k2.7-code-1100b", + "displayName": "Kimi K2.7 Code", + "family": "kimi-k2", + "sources": [ + "models.dev" + ], + "providers": [ + "aki-io" + ], + "aliases": [ + "aki-io/kimi-k2.7-code-1100b" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 262144, + "outputTokens": 81920, + "supports1MContext": false + }, + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "structuredOutput": true, + "temperature": false, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "aki-io", + "model": "kimi-k2.7-code-1100b", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0.86, + "output": 3 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Kimi K2.7 Code" + ], + "families": [ + "kimi-k2" + ], + "knowledgeCutoff": "2025-01", + "releaseDate": "2026-06-12", + "lastUpdated": "2026-06-12", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "aki-io", + "providerName": "AKI.IO", + "providerApi": "https://aki.io/v1", + "providerDoc": "https://aki.io/docs/", + "model": "kimi-k2.7-code-1100b", + "modelKey": "kimi-k2.7-code-1100b", + "displayName": "Kimi K2.7 Code", + "family": "kimi-k2", + "metadata": { + "knowledgeCutoff": "2025-01", + "lastUpdated": "2026-06-12", + "openWeights": true, + "releaseDate": "2026-06-12" + } + } + ] + }, { "id": "moonshotai/kimi-k2.7-code-flex", "provider": "moonshotai", @@ -320893,7 +329983,9 @@ "toolCalling": true, "videoInput": true, "supports1MContext": false, - "lowReasoningEffort": true + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true }, "pricing": { "currency": "USD", @@ -322110,32 +331202,62 @@ "openrouter" ], "providers": [ + "aiand", + "aihubmix", + "baseten", + "cline-pass", "cloudflare-ai-gateway", + "crof", "crossmodel", + "deepinfra", "empiriolabs", + "fireworks-ai", + "huggingface", + "kenari", "llmgateway", "moonshotai", "moonshotai-cn", + "nebius", + "novita-ai", + "ollama-cloud", + "opencode", "opencode-go", "openrouter", + "synthetic", + "togetherai", "venice", "vercel", "zenmux" ], "aliases": [ + "aiand/moonshotai/kimi-k3", + "aihubmix/kimi-k3", + "baseten/moonshotai/Kimi-K3", + "cline-pass/kimi-k3", "cloudflare-ai-gateway/moonshotai/kimi-k3", + "crof/kimi-k3", "crossmodel/moonshot/kimi-k3", + "deepinfra/moonshotai/Kimi-K3", "empiriolabs/kimi-k3", + "fireworks-ai/accounts/fireworks/models/kimi-k3", + "huggingface/moonshotai/Kimi-K3", + "kenari/kimi-k3", "llmgateway/kimi-k3", "moonshotai-cn/kimi-k3", "moonshotai/kimi-k3", + "nebius/moonshotai/Kimi-K3", + "novita-ai/moonshotai/kimi-k3", + "ollama-cloud/kimi-k3", "opencode-go/kimi-k3", + "opencode/kimi-k3", "openrouter/moonshotai/kimi-k3", + "synthetic/hf:moonshotai/Kimi-K3", + "togetherai/moonshotai/Kimi-K3", "venice/kimi-k3", "vercel/moonshotai/kimi-k3", "zenmux/moonshotai/kimi-k3" ], - "mergedProviderModelRecords": 11, + "mergedProviderModelRecords": 26, "limits": { "contextTokens": 1048576, "outputTokens": 1048576, @@ -322162,12 +331284,16 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, - "temperature": false, + "temperature": true, "toolCalling": true, "videoInput": true, "supports1MContext": true, + "noneReasoningEffort": true, + "mediumReasoningEffort": true, + "xhighReasoningEffort": true, "parallelFunctionCalling": false, "responseSchema": true, "toolChoice": true, @@ -322177,6 +331303,53 @@ "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ + { + "source": "models.dev", + "provider": "aiand", + "model": "moonshotai/kimi-k3", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, + "input": 3, + "output": 12.5 + } + }, + { + "source": "models.dev", + "provider": "aihubmix", + "model": "kimi-k3", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.3, + "input": 3, + "output": 15 + } + }, + { + "source": "models.dev", + "provider": "baseten", + "model": "moonshotai/Kimi-K3", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 3, + "output": 15 + } + }, + { + "source": "models.dev", + "provider": "cline-pass", + "model": "cline-pass/kimi-k3", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.3, + "input": 3, + "output": 15 + } + }, { "source": "models.dev", "provider": "cloudflare-ai-gateway", @@ -322189,6 +331362,18 @@ "output": 15 } }, + { + "source": "models.dev", + "provider": "crof", + "model": "kimi-k3", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.25, + "input": 2, + "output": 8 + } + }, { "source": "models.dev", "provider": "crossmodel", @@ -322198,10 +331383,23 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3, + "cacheWrite5m": 3, "input": 3, "output": 15 } }, + { + "source": "models.dev", + "provider": "deepinfra", + "model": "moonshotai/Kimi-K3", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.27, + "input": 2.7, + "output": 13.5 + } + }, { "source": "models.dev", "provider": "empiriolabs", @@ -322213,6 +331411,40 @@ "output": 15 } }, + { + "source": "models.dev", + "provider": "fireworks-ai", + "model": "accounts/fireworks/models/kimi-k3", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.3, + "input": 3, + "output": 15 + } + }, + { + "source": "models.dev", + "provider": "huggingface", + "model": "moonshotai/Kimi-K3", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 3, + "output": 15 + } + }, + { + "source": "models.dev", + "provider": "kenari", + "model": "kimi-k3", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + }, { "source": "models.dev", "provider": "llmgateway", @@ -322249,6 +331481,29 @@ "output": 15 } }, + { + "source": "models.dev", + "provider": "nebius", + "model": "moonshotai/Kimi-K3", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 3, + "output": 15 + } + }, + { + "source": "models.dev", + "provider": "novita-ai", + "model": "moonshotai/kimi-k3", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.3, + "input": 3, + "output": 15 + } + }, { "source": "models.dev", "provider": "opencode-go", @@ -322261,6 +331516,18 @@ "output": 15 } }, + { + "source": "models.dev", + "provider": "opencode", + "model": "kimi-k3", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.3, + "input": 3, + "output": 15 + } + }, { "source": "models.dev", "provider": "openrouter", @@ -322273,6 +331540,30 @@ "output": 15 } }, + { + "source": "models.dev", + "provider": "synthetic", + "model": "hf:moonshotai/Kimi-K3", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.45, + "input": 3, + "output": 15 + } + }, + { + "source": "models.dev", + "provider": "togetherai", + "model": "moonshotai/Kimi-K3", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.3, + "input": 3, + "output": 15 + } + }, { "source": "models.dev", "provider": "venice", @@ -322280,9 +331571,9 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.375, - "input": 3.75, - "output": 18.75 + "cacheRead": 0.46875, + "input": 4.6875, + "output": 23.4375 } }, { @@ -322327,7 +331618,8 @@ "displayNames": [ "Kimi K3", "Kimi K3 (2x usage)", - "MoonshotAI: Kimi K3" + "MoonshotAI: Kimi K3", + "kimi-k3" ], "families": [ "kimi-k3" @@ -322337,19 +331629,131 @@ "supportedParameters": [ "frequency_penalty", "include_reasoning", + "logit_bias", + "logprobs", "max_tokens", + "min_p", "presence_penalty", "reasoning", "reasoning_effort", + "repetition_penalty", "response_format", + "seed", "stop", "structured_outputs", + "temperature", "tool_choice", - "tools" + "tools", + "top_k", + "top_logprobs", + "top_p" ], - "providerModelRecordCount": 11 + "providerModelRecordCount": 26 }, "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "aiand", + "providerName": "ai&", + "providerApi": "https://api.aiand.com/v1", + "providerDoc": "https://docs.aiand.com/", + "model": "moonshotai/kimi-k3", + "modelKey": "moonshotai/kimi-k3", + "displayName": "Kimi K3", + "family": "kimi-k3", + "metadata": { + "lastUpdated": "2026-07-16", + "openWeights": true, + "releaseDate": "2026-07-16", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "high", + "max" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "aihubmix", + "providerName": "AIHubMix", + "providerDoc": "https://docs.aihubmix.com", + "model": "kimi-k3", + "modelKey": "kimi-k3", + "displayName": "Kimi K3", + "family": "kimi-k3", + "metadata": { + "lastUpdated": "2026-07-27", + "openWeights": true, + "releaseDate": "2026-07-16", + "reasoningOptions": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": [ + "low", + "high", + "max" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "baseten", + "providerName": "Baseten", + "providerApi": "https://inference.baseten.co/v1", + "providerDoc": "https://docs.baseten.co/inference/model-apis/overview", + "model": "moonshotai/Kimi-K3", + "modelKey": "moonshotai/Kimi-K3", + "displayName": "Kimi K3", + "family": "kimi-k3", + "metadata": { + "lastUpdated": "2026-07-16", + "openWeights": true, + "releaseDate": "2026-07-16" + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "cline-pass", + "providerName": "ClinePass", + "providerApi": "https://api.cline.bot/api/v1", + "providerDoc": "https://docs.cline.bot/getting-started/clinepass", + "model": "cline-pass/kimi-k3", + "modelKey": "cline-pass/kimi-k3", + "displayName": "Kimi K3", + "family": "kimi-k3", + "metadata": { + "lastUpdated": "2026-07-16", + "openWeights": true, + "releaseDate": "2026-07-16", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high", + "xhigh" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -322374,6 +331778,34 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "crof", + "providerName": "CrofAI", + "providerApi": "https://crof.ai/v1", + "providerDoc": "https://crof.ai/docs", + "model": "kimi-k3", + "modelKey": "kimi-k3", + "displayName": "Kimi K3", + "family": "kimi-k3", + "metadata": { + "lastUpdated": "2026-07-16", + "openWeights": true, + "releaseDate": "2026-07-16", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "high", + "max" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -322399,6 +331831,32 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "deepinfra", + "providerName": "Deep Infra", + "providerDoc": "https://deepinfra.com/models", + "model": "moonshotai/Kimi-K3", + "modelKey": "moonshotai/Kimi-K3", + "displayName": "Kimi K3", + "family": "kimi-k3", + "metadata": { + "lastUpdated": "2026-07-16", + "openWeights": true, + "releaseDate": "2026-07-16", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "high", + "max" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -322415,6 +331873,36 @@ "openWeights": true, "releaseDate": "2026-07-16", "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "high", + "max" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "fireworks-ai", + "providerName": "Fireworks AI", + "providerApi": "https://api.fireworks.ai/inference/v1/", + "providerDoc": "https://fireworks.ai/docs/", + "model": "accounts/fireworks/models/kimi-k3", + "modelKey": "accounts/fireworks/models/kimi-k3", + "displayName": "Kimi K3", + "family": "kimi-k3", + "metadata": { + "lastUpdated": "2026-07-27", + "openWeights": true, + "releaseDate": "2026-07-27", + "reasoningOptions": [ + { + "type": "toggle" + }, { "type": "effort", "values": [ @@ -322423,6 +331911,64 @@ "high", "max" ] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "huggingface", + "providerName": "Hugging Face", + "providerApi": "https://router.huggingface.co/v1", + "providerDoc": "https://huggingface.co/docs/inference-providers", + "model": "moonshotai/Kimi-K3", + "modelKey": "moonshotai/Kimi-K3", + "displayName": "Kimi K3", + "family": "kimi-k3", + "metadata": { + "lastUpdated": "2026-07-16", + "openWeights": true, + "releaseDate": "2026-07-16", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "high", + "max" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "kenari", + "providerName": "Kenari", + "providerApi": "https://kenari.id/v1", + "providerDoc": "https://kenari.id/docs", + "model": "kimi-k3", + "modelKey": "kimi-k3", + "displayName": "Kimi K3", + "family": "kimi-k3", + "metadata": { + "lastUpdated": "2026-07-16", + "openWeights": true, + "releaseDate": "2026-07-16", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "high", + "max" + ] } ] } @@ -322504,6 +332050,95 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "nebius", + "providerName": "Nebius Token Factory", + "providerApi": "https://api.tokenfactory.nebius.com/v1", + "providerDoc": "https://docs.tokenfactory.nebius.com/", + "model": "moonshotai/Kimi-K3", + "modelKey": "moonshotai/Kimi-K3", + "displayName": "Kimi K3", + "family": "kimi-k3", + "metadata": { + "lastUpdated": "2026-07-16", + "openWeights": true, + "releaseDate": "2026-07-16", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high", + "max" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "novita-ai", + "providerName": "NovitaAI", + "providerApi": "https://api.novita.ai/openai", + "providerDoc": "https://novita.ai/docs/guides/introduction", + "model": "moonshotai/kimi-k3", + "modelKey": "moonshotai/kimi-k3", + "displayName": "Kimi K3", + "family": "kimi-k3", + "metadata": { + "lastUpdated": "2026-07-16", + "openWeights": true, + "releaseDate": "2026-07-16", + "reasoningOptions": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": [ + "low", + "high", + "max" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "ollama-cloud", + "providerName": "Ollama Cloud", + "providerApi": "https://ollama.com/v1", + "providerDoc": "https://docs.ollama.com/cloud", + "model": "kimi-k3", + "modelKey": "kimi-k3", + "displayName": "kimi-k3", + "family": "kimi-k3", + "metadata": { + "lastUpdated": "2026-07-27", + "openWeights": true, + "releaseDate": "2026-07-16", + "reasoningOptions": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": [ + "low", + "high", + "max" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -322529,6 +332164,31 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "opencode", + "providerName": "OpenCode Zen", + "providerApi": "https://opencode.ai/zen/v1", + "providerDoc": "https://opencode.ai/docs/zen", + "model": "kimi-k3", + "modelKey": "kimi-k3", + "displayName": "Kimi K3", + "family": "kimi-k3", + "metadata": { + "lastUpdated": "2026-07-16", + "openWeights": true, + "releaseDate": "2026-07-16", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "max" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -322548,6 +332208,61 @@ { "type": "effort", "values": [ + "low", + "high", + "max" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "synthetic", + "providerName": "Synthetic", + "providerApi": "https://api.synthetic.new/openai/v1", + "providerDoc": "https://synthetic.new/pricing", + "model": "hf:moonshotai/Kimi-K3", + "modelKey": "hf:moonshotai/Kimi-K3", + "displayName": "Kimi K3", + "family": "kimi-k3", + "metadata": { + "lastUpdated": "2026-07-27", + "openWeights": true, + "releaseDate": "2026-07-16", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "togetherai", + "providerName": "Together AI", + "providerDoc": "https://docs.together.ai/docs/serverless-models", + "model": "moonshotai/Kimi-K3", + "modelKey": "moonshotai/Kimi-K3", + "displayName": "Kimi K3", + "family": "kimi-k3", + "metadata": { + "lastUpdated": "2026-07-16", + "openWeights": true, + "releaseDate": "2026-07-16", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "high", "max" ] } @@ -322566,16 +332281,8 @@ "family": "kimi-k3", "metadata": { "lastUpdated": "2026-07-17", - "openWeights": false, - "releaseDate": "2026-07-16", - "reasoningOptions": [ - { - "type": "effort", - "values": [ - "max" - ] - } - ] + "openWeights": true, + "releaseDate": "2026-07-16" } }, { @@ -322631,6 +332338,7 @@ "metadata": { "canonicalSlug": "moonshotai/kimi-k3-20260715", "createdAt": "2026-07-16T15:30:58.000Z", + "huggingFaceId": "moonshotai/Kimi-K3", "links": { "details": "/api/v1/models/moonshotai/kimi-k3-20260715/endpoints" }, @@ -322647,15 +332355,24 @@ "supportedParameters": [ "frequency_penalty", "include_reasoning", + "logit_bias", + "logprobs", "max_tokens", + "min_p", "presence_penalty", "reasoning", "reasoning_effort", + "repetition_penalty", "response_format", + "seed", "stop", "structured_outputs", + "temperature", "tool_choice", - "tools" + "tools", + "top_k", + "top_logprobs", + "top_p" ], "tokenizer": "Other", "topProvider": { @@ -322667,6 +332384,270 @@ } ] }, + { + "id": "moonshotai/kimi-k3-fast", + "provider": "moonshotai", + "model": "kimi-k3-fast", + "displayName": "Kimi K3 Fast", + "family": "kimi-k3", + "sources": [ + "models.dev" + ], + "providers": [ + "fireworks-ai", + "vercel" + ], + "aliases": [ + "fireworks-ai/accounts/fireworks/routers/kimi-k3-fast", + "vercel/moonshotai/kimi-k3-fast" + ], + "mergedProviderModelRecords": 2, + "limits": { + "contextTokens": 1048576, + "outputTokens": 131072, + "supports1MContext": true + }, + "modalities": { + "input": [ + "image", + "pdf", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": true, + "pdfInput": true, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "maxReasoningEffort": true, + "structuredOutput": true, + "temperature": false, + "toolCalling": true, + "videoInput": false, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "fireworks-ai", + "model": "accounts/fireworks/routers/kimi-k3-fast", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.45, + "input": 4.5, + "output": 22.5 + } + }, + { + "source": "models.dev", + "provider": "vercel", + "model": "moonshotai/kimi-k3-fast", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.45, + "input": 4.5, + "output": 22.5 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Kimi K3 Fast" + ], + "families": [ + "kimi-k3" + ], + "releaseDate": "2026-07-27", + "lastUpdated": "2026-07-27", + "providerModelRecordCount": 2 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "fireworks-ai", + "providerName": "Fireworks AI", + "providerApi": "https://api.fireworks.ai/inference/v1/", + "providerDoc": "https://fireworks.ai/docs/", + "model": "accounts/fireworks/routers/kimi-k3-fast", + "modelKey": "accounts/fireworks/routers/kimi-k3-fast", + "displayName": "Kimi K3 Fast", + "family": "kimi-k3", + "metadata": { + "lastUpdated": "2026-07-27", + "openWeights": true, + "releaseDate": "2026-07-27", + "reasoningOptions": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "max" + ] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "vercel", + "providerName": "Vercel AI Gateway", + "providerDoc": "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway", + "model": "moonshotai/kimi-k3-fast", + "modelKey": "moonshotai/kimi-k3-fast", + "displayName": "Kimi K3 Fast", + "family": "kimi-k3", + "metadata": { + "lastUpdated": "2026-07-16", + "openWeights": false, + "releaseDate": "2026-07-27", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "high", + "max" + ] + } + ] + } + } + ] + }, + { + "id": "moonshotai/kimi-k3-free", + "provider": "moonshotai", + "model": "kimi-k3-free", + "displayName": "Kimi K3 (Free)", + "family": "kimi-k3", + "sources": [ + "models.dev" + ], + "providers": [ + "zenmux" + ], + "aliases": [ + "zenmux/moonshotai/kimi-k3-free" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1048576, + "outputTokens": 131072, + "supports1MContext": true + }, + "modalities": { + "input": [ + "image", + "text", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "maxReasoningEffort": true, + "structuredOutput": true, + "temperature": false, + "toolCalling": true, + "videoInput": true, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "zenmux", + "model": "moonshotai/kimi-k3-free", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0, + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Kimi K3 (Free)" + ], + "families": [ + "kimi-k3" + ], + "releaseDate": "2026-07-16", + "lastUpdated": "2026-07-16", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "zenmux", + "providerName": "ZenMux", + "providerApi": "https://zenmux.ai/api/v1", + "providerDoc": "https://docs.zenmux.ai", + "model": "moonshotai/kimi-k3-free", + "modelKey": "moonshotai/kimi-k3-free", + "displayName": "Kimi K3 (Free)", + "family": "kimi-k3", + "metadata": { + "lastUpdated": "2026-07-16", + "openWeights": true, + "releaseDate": "2026-07-16", + "reasoningOptions": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": [ + "max" + ] + } + ] + } + } + ] + }, { "id": "moonshotai/kimi-latest", "provider": "moonshotai", @@ -322696,7 +332677,7 @@ "contextTokens": 1048576, "inputTokens": 256000, "maxTokens": 131072, - "outputTokens": 262144, + "outputTokens": 1048576, "supports1MContext": true }, "modalities": { @@ -322722,6 +332703,8 @@ "videoInput": false, "supports1MContext": true, "structuredOutput": true, + "lowReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "parallelFunctionCalling": false, "responseSchema": true, @@ -322820,15 +332803,24 @@ "supportedParameters": [ "frequency_penalty", "include_reasoning", + "logit_bias", + "logprobs", "max_tokens", + "min_p", "presence_penalty", "reasoning", "reasoning_effort", + "repetition_penalty", "response_format", + "seed", "stop", "structured_outputs", + "temperature", "tool_choice", - "tools" + "tools", + "top_k", + "top_logprobs", + "top_p" ], "providerModelRecordCount": 4 }, @@ -322889,6 +332881,8 @@ { "type": "effort", "values": [ + "low", + "high", "max" ] } @@ -322931,20 +332925,29 @@ "supportedParameters": [ "frequency_penalty", "include_reasoning", + "logit_bias", + "logprobs", "max_tokens", + "min_p", "presence_penalty", "reasoning", "reasoning_effort", + "repetition_penalty", "response_format", + "seed", "stop", "structured_outputs", + "temperature", "tool_choice", - "tools" + "tools", + "top_k", + "top_logprobs", + "top_p" ], "tokenizer": "Router", "topProvider": { "context_length": 1048576, - "max_completion_tokens": null, + "max_completion_tokens": 262144, "is_moderated": false } } @@ -342327,6 +352330,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": false, "toolCalling": false, "videoInput": false, @@ -342429,6 +352434,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": false, "toolCalling": false, "videoInput": false, @@ -344558,6 +354565,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 3, "reasoningOutput": 3 @@ -344651,6 +354659,7 @@ "per1MTokens": { "cacheRead": 0.013, "cacheWrite": 0.16, + "cacheWrite5m": 0.16, "input": 0.13, "output": 0.4, "reasoningOutput": 0.4 @@ -344744,6 +354753,7 @@ "per1MTokens": { "cacheRead": 0.02, "cacheWrite": 0.25, + "cacheWrite5m": 0.25, "input": 0.2, "output": 1.1 } @@ -344841,6 +354851,7 @@ "per1MTokens": { "cacheRead": 0.006, "cacheWrite": 0.075, + "cacheWrite5m": 0.075, "input": 0.06, "output": 0.24 } @@ -345033,6 +355044,7 @@ "per1MTokens": { "cacheRead": 0.006, "cacheWrite": 0.075, + "cacheWrite5m": 0.075, "input": 0.06, "output": 0.24 } @@ -349565,6 +359577,94 @@ } ] }, + { + "id": "nvidia/cosmos-reason2-8b", + "provider": "nvidia", + "model": "cosmos-reason2-8b", + "displayName": "Cosmos Reason2 8B", + "sources": [ + "models.dev" + ], + "providers": [ + "nvidia" + ], + "aliases": [ + "nvidia/cosmos-reason2-8b" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 131072, + "outputTokens": 16384, + "supports1MContext": false + }, + "modalities": { + "input": [ + "image", + "text", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "temperature": true, + "toolCalling": true, + "videoInput": true, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "nvidia", + "model": "nvidia/cosmos-reason2-8b", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Cosmos Reason2 8B" + ], + "releaseDate": "2025-12-01", + "lastUpdated": "2025-12-01", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "nvidia", + "providerName": "Nvidia", + "providerApi": "https://integrate.api.nvidia.com/v1", + "providerDoc": "https://docs.api.nvidia.com/nim/", + "model": "nvidia/cosmos-reason2-8b", + "modelKey": "nvidia/cosmos-reason2-8b", + "displayName": "Cosmos Reason2 8B", + "metadata": { + "lastUpdated": "2025-12-01", + "openWeights": true, + "releaseDate": "2025-12-01" + } + } + ] + }, { "id": "nvidia/cosmos-transfer1-7b", "provider": "nvidia", @@ -349742,9 +359842,9 @@ ] }, { - "id": "nvidia/dracarys-llama-3-1-70b-instruct", + "id": "nvidia/dracarys-llama-3.1-70b-instruct", "provider": "nvidia", - "model": "dracarys-llama-3-1-70b-instruct", + "model": "dracarys-llama-3.1-70b-instruct", "displayName": "dracarys-llama-3.1-70b-instruct", "sources": [ "models.dev" @@ -349753,7 +359853,7 @@ "nvidia" ], "aliases": [ - "nvidia/abacusai/dracarys-llama-3_1-70b-instruct" + "nvidia/abacusai/dracarys-llama-3.1-70b-instruct" ], "mergedProviderModelRecords": 1, "limits": { @@ -349790,7 +359890,7 @@ { "source": "models.dev", "provider": "nvidia", - "model": "abacusai/dracarys-llama-3_1-70b-instruct", + "model": "abacusai/dracarys-llama-3.1-70b-instruct", "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { @@ -349816,8 +359916,8 @@ "providerName": "Nvidia", "providerApi": "https://integrate.api.nvidia.com/v1", "providerDoc": "https://docs.api.nvidia.com/nim/", - "model": "abacusai/dracarys-llama-3_1-70b-instruct", - "modelKey": "abacusai/dracarys-llama-3_1-70b-instruct", + "model": "abacusai/dracarys-llama-3.1-70b-instruct", + "modelKey": "abacusai/dracarys-llama-3.1-70b-instruct", "displayName": "dracarys-llama-3.1-70b-instruct", "metadata": { "lastUpdated": "2025-05-22", @@ -350277,6 +360377,191 @@ } ] }, + { + "id": "nvidia/inkling", + "provider": "nvidia", + "model": "inkling", + "displayName": "Inkling", + "family": "ling", + "sources": [ + "models.dev" + ], + "providers": [ + "nvidia" + ], + "aliases": [ + "nvidia/thinkingmachines/inkling" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1048576, + "outputTokens": 16384, + "supports1MContext": true + }, + "modalities": { + "input": [ + "audio", + "image", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": true, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "nvidia", + "model": "thinkingmachines/inkling", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Inkling" + ], + "families": [ + "ling" + ], + "releaseDate": "2026-07-15", + "lastUpdated": "2026-07-15", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "nvidia", + "providerName": "Nvidia", + "providerApi": "https://integrate.api.nvidia.com/v1", + "providerDoc": "https://docs.api.nvidia.com/nim/", + "model": "thinkingmachines/inkling", + "modelKey": "thinkingmachines/inkling", + "displayName": "Inkling", + "family": "ling", + "metadata": { + "lastUpdated": "2026-07-15", + "openWeights": true, + "releaseDate": "2026-07-15" + } + } + ] + }, + { + "id": "nvidia/laguna-xs-2.1", + "provider": "nvidia", + "model": "laguna-xs-2.1", + "displayName": "Laguna XS 2.1", + "family": "laguna", + "sources": [ + "models.dev" + ], + "providers": [ + "nvidia" + ], + "aliases": [ + "nvidia/poolside/laguna-xs-2.1" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 262144, + "outputTokens": 16384, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "structuredOutput": false, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "nvidia", + "model": "poolside/laguna-xs-2.1", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Laguna XS 2.1" + ], + "families": [ + "laguna" + ], + "releaseDate": "2026-07-02", + "lastUpdated": "2026-07-02", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "nvidia", + "providerName": "Nvidia", + "providerApi": "https://integrate.api.nvidia.com/v1", + "providerDoc": "https://docs.api.nvidia.com/nim/", + "model": "poolside/laguna-xs-2.1", + "modelKey": "poolside/laguna-xs-2.1", + "displayName": "Laguna XS 2.1", + "family": "laguna", + "metadata": { + "lastUpdated": "2026-07-02", + "openWeights": true, + "releaseDate": "2026-07-02" + } + } + ] + }, { "id": "nvidia/magpie-tts-zeroshot", "provider": "nvidia", @@ -351036,6 +361321,99 @@ } ] }, + { + "id": "nvidia/nemotron-nano-12b-v2-vl", + "provider": "nvidia", + "model": "nemotron-nano-12b-v2-vl", + "displayName": "Nemotron Nano 12B v2 VL", + "family": "nemotron", + "sources": [ + "models.dev" + ], + "providers": [ + "nvidia" + ], + "aliases": [ + "nvidia/nemotron-nano-12b-v2-vl" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 128000, + "outputTokens": 128000, + "supports1MContext": false + }, + "modalities": { + "input": [ + "image", + "text", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "temperature": true, + "toolCalling": true, + "videoInput": true, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "nvidia", + "model": "nvidia/nemotron-nano-12b-v2-vl", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Nemotron Nano 12B v2 VL" + ], + "families": [ + "nemotron" + ], + "releaseDate": "2025-10-28", + "lastUpdated": "2025-10-28", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "nvidia", + "providerName": "Nvidia", + "providerApi": "https://integrate.api.nvidia.com/v1", + "providerDoc": "https://docs.api.nvidia.com/nim/", + "model": "nvidia/nemotron-nano-12b-v2-vl", + "modelKey": "nvidia/nemotron-nano-12b-v2-vl", + "displayName": "Nemotron Nano 12B v2 VL", + "family": "nemotron", + "metadata": { + "lastUpdated": "2025-10-28", + "openWeights": true, + "releaseDate": "2025-10-28" + } + } + ] + }, { "id": "nvidia/nemotron-voicechat", "provider": "nvidia", @@ -351665,9 +362043,9 @@ ] }, { - "id": "nvidia/riva-translate-4b-instruct-v1-1", + "id": "nvidia/riva-translate-4b-instruct-v1.1", "provider": "nvidia", - "model": "riva-translate-4b-instruct-v1-1", + "model": "riva-translate-4b-instruct-v1.1", "displayName": "riva-translate-4b-instruct-v1_1", "sources": [ "models.dev" @@ -351676,7 +362054,7 @@ "nvidia" ], "aliases": [ - "nvidia/riva-translate-4b-instruct-v1_1" + "nvidia/riva-translate-4b-instruct-v1.1" ], "mergedProviderModelRecords": 1, "limits": { @@ -351713,7 +362091,7 @@ { "source": "models.dev", "provider": "nvidia", - "model": "nvidia/riva-translate-4b-instruct-v1_1", + "model": "nvidia/riva-translate-4b-instruct-v1.1", "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { @@ -351739,8 +362117,8 @@ "providerName": "Nvidia", "providerApi": "https://integrate.api.nvidia.com/v1", "providerDoc": "https://docs.api.nvidia.com/nim/", - "model": "nvidia/riva-translate-4b-instruct-v1_1", - "modelKey": "nvidia/riva-translate-4b-instruct-v1_1", + "model": "nvidia/riva-translate-4b-instruct-v1.1", + "modelKey": "nvidia/riva-translate-4b-instruct-v1.1", "displayName": "riva-translate-4b-instruct-v1_1", "metadata": { "lastUpdated": "2025-12-12", @@ -351929,9 +362307,9 @@ ] }, { - "id": "nvidia/solar-10-7b-instruct", + "id": "nvidia/solar-10.7b-instruct", "provider": "nvidia", - "model": "solar-10-7b-instruct", + "model": "solar-10.7b-instruct", "displayName": "solar-10.7b-instruct", "sources": [ "models.dev" @@ -351940,7 +362318,7 @@ "nvidia" ], "aliases": [ - "nvidia/upstage/solar-10_7b-instruct" + "nvidia/upstage/solar-10.7b-instruct" ], "mergedProviderModelRecords": 1, "limits": { @@ -351977,7 +362355,7 @@ { "source": "models.dev", "provider": "nvidia", - "model": "upstage/solar-10_7b-instruct", + "model": "upstage/solar-10.7b-instruct", "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { @@ -352003,8 +362381,8 @@ "providerName": "Nvidia", "providerApi": "https://integrate.api.nvidia.com/v1", "providerDoc": "https://docs.api.nvidia.com/nim/", - "model": "upstage/solar-10_7b-instruct", - "modelKey": "upstage/solar-10_7b-instruct", + "model": "upstage/solar-10.7b-instruct", + "modelKey": "upstage/solar-10.7b-instruct", "displayName": "solar-10.7b-instruct", "metadata": { "lastUpdated": "2025-04-10", @@ -352138,6 +362516,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -352236,6 +362616,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "minimalReasoningEffort": true, "xhighReasoningEffort": true, @@ -358214,6 +368596,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": false, "toolCalling": true, "videoInput": false, @@ -358284,6 +368668,9 @@ "modes": [ "responses" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2024-04", "releaseDate": "2025-05-16", "lastUpdated": "2025-05-16", @@ -358303,6 +368690,7 @@ "modelKey": "codex-mini", "displayName": "Codex Mini", "family": "gpt-codex-mini", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2024-04", "lastUpdated": "2025-05-16", @@ -358330,6 +368718,7 @@ "modelKey": "codex-mini", "displayName": "Codex Mini", "family": "gpt-codex-mini", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2024-04", "lastUpdated": "2025-05-16", @@ -359943,6 +370332,7 @@ "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { "cacheWrite": 1.875, + "cacheWrite5m": 1.875, "input": 3.75, "output": 15 } @@ -360413,6 +370803,9 @@ "modes": [ "chat" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2021-09-01", "releaseDate": "2023-03-01", "lastUpdated": "2023-11-06", @@ -360513,6 +370906,7 @@ "modelKey": "gpt-3.5-turbo", "displayName": "GPT-3.5-turbo", "family": "gpt", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2021-09-01", "lastUpdated": "2023-11-06", @@ -360786,6 +371180,9 @@ "modes": [ "chat" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2021-08", "releaseDate": "2024-01-25", "lastUpdated": "2024-01-25", @@ -360803,6 +371200,7 @@ "modelKey": "gpt-3.5-turbo-0125", "displayName": "GPT-3.5 Turbo 0125", "family": "gpt", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2021-08", "lastUpdated": "2024-01-25", @@ -360820,6 +371218,7 @@ "modelKey": "gpt-3.5-turbo-0125", "displayName": "GPT-3.5 Turbo 0125", "family": "gpt", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2021-08", "lastUpdated": "2024-01-25", @@ -360846,133 +371245,11 @@ } ] }, - { - "id": "openai/gpt-3.5-turbo-0301", - "provider": "openai", - "model": "gpt-3.5-turbo-0301", - "displayName": "GPT-3.5 Turbo 0301", - "family": "gpt", - "sources": [ - "models.dev" - ], - "providers": [ - "azure", - "azure-cognitive-services" - ], - "aliases": [ - "azure-cognitive-services/gpt-3.5-turbo-0301", - "azure/gpt-3.5-turbo-0301" - ], - "mergedProviderModelRecords": 2, - "limits": { - "contextTokens": 4096, - "outputTokens": 4096, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": false, - "pdfInput": false, - "reasoning": false, - "temperature": true, - "toolCalling": false, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "gpt-3.5-turbo-0301", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 1.5, - "output": 2 - } - }, - { - "source": "models.dev", - "provider": "azure", - "model": "gpt-3.5-turbo-0301", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 1.5, - "output": 2 - } - } - ] - }, - "metadata": { - "displayNames": [ - "GPT-3.5 Turbo 0301" - ], - "families": [ - "gpt" - ], - "knowledgeCutoff": "2021-08", - "releaseDate": "2023-03-01", - "lastUpdated": "2023-03-01", - "providerModelRecordCount": 2 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "gpt-3.5-turbo-0301", - "modelKey": "gpt-3.5-turbo-0301", - "displayName": "GPT-3.5 Turbo 0301", - "family": "gpt", - "metadata": { - "knowledgeCutoff": "2021-08", - "lastUpdated": "2023-03-01", - "openWeights": false, - "releaseDate": "2023-03-01" - } - }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "gpt-3.5-turbo-0301", - "modelKey": "gpt-3.5-turbo-0301", - "displayName": "GPT-3.5 Turbo 0301", - "family": "gpt", - "metadata": { - "knowledgeCutoff": "2021-08", - "lastUpdated": "2023-03-01", - "openWeights": false, - "releaseDate": "2023-03-01" - } - } - ] - }, { "id": "openai/gpt-3.5-turbo-0613", "provider": "openai", "model": "gpt-3.5-turbo-0613", - "displayName": "GPT-3.5 Turbo 0613", + "displayName": "OpenAI: GPT-3.5 Turbo (older v0613)", "family": "gpt", "mode": "chat", "sources": [ @@ -360981,25 +371258,21 @@ "openrouter" ], "providers": [ - "azure", - "azure-cognitive-services", "github_copilot", "kilo", "openrouter" ], "aliases": [ - "azure-cognitive-services/gpt-3.5-turbo-0613", - "azure/gpt-3.5-turbo-0613", "github_copilot/gpt-3.5-turbo-0613", "kilo/openai/gpt-3.5-turbo-0613", "openrouter/openai/gpt-3.5-turbo-0613" ], - "mergedProviderModelRecords": 5, + "mergedProviderModelRecords": 3, "limits": { "contextTokens": 16384, "inputTokens": 16384, "maxTokens": 4096, - "outputTokens": 16384, + "outputTokens": 4096, "supports1MContext": false }, "modalities": { @@ -361040,28 +371313,6 @@ "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "gpt-3.5-turbo-0613", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 3, - "output": 4 - } - }, - { - "source": "models.dev", - "provider": "azure", - "model": "gpt-3.5-turbo-0613", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 3, - "output": 4 - } - }, { "source": "models.dev", "provider": "kilo", @@ -361107,7 +371358,6 @@ "metadata": { "displayNames": [ "GPT-3.5 Turbo (older v0613)", - "GPT-3.5 Turbo 0613", "OpenAI: GPT-3.5 Turbo (older v0613)" ], "families": [ @@ -361116,7 +371366,7 @@ "modes": [ "chat" ], - "knowledgeCutoff": "2021-08", + "knowledgeCutoff": "2021-09-30", "releaseDate": "2023-06-13", "lastUpdated": "2023-06-13", "supportedParameters": [ @@ -361135,43 +371385,9 @@ "top_logprobs", "top_p" ], - "providerModelRecordCount": 5 + "providerModelRecordCount": 3 }, "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "gpt-3.5-turbo-0613", - "modelKey": "gpt-3.5-turbo-0613", - "displayName": "GPT-3.5 Turbo 0613", - "family": "gpt", - "metadata": { - "knowledgeCutoff": "2021-08", - "lastUpdated": "2023-06-13", - "openWeights": false, - "releaseDate": "2023-06-13" - } - }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "gpt-3.5-turbo-0613", - "modelKey": "gpt-3.5-turbo-0613", - "displayName": "GPT-3.5 Turbo 0613", - "family": "gpt", - "metadata": { - "knowledgeCutoff": "2021-08", - "lastUpdated": "2023-06-13", - "openWeights": false, - "releaseDate": "2023-06-13" - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -361363,6 +371579,9 @@ "modes": [ "chat" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2021-08", "releaseDate": "2023-11-06", "lastUpdated": "2023-11-06", @@ -361380,6 +371599,7 @@ "modelKey": "gpt-3.5-turbo-1106", "displayName": "GPT-3.5 Turbo 1106", "family": "gpt", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2021-08", "lastUpdated": "2023-11-06", @@ -361397,6 +371617,7 @@ "modelKey": "gpt-3.5-turbo-1106", "displayName": "GPT-3.5 Turbo 1106", "family": "gpt", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2021-08", "lastUpdated": "2023-11-06", @@ -361843,6 +372064,9 @@ "chat", "completion" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2021-08", "releaseDate": "2023-09-21", "lastUpdated": "2023-09-21", @@ -361873,6 +372097,7 @@ "modelKey": "gpt-3.5-turbo-instruct", "displayName": "GPT-3.5 Turbo Instruct", "family": "gpt", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2021-08", "lastUpdated": "2023-09-21", @@ -361890,6 +372115,7 @@ "modelKey": "gpt-3.5-turbo-instruct", "displayName": "GPT-3.5 Turbo Instruct", "family": "gpt", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2021-08", "lastUpdated": "2023-09-21", @@ -362769,7 +372995,6 @@ ], "providers": [ "azure", - "azure-cognitive-services", "cloudflare-ai-gateway", "github_copilot", "kilo", @@ -362779,7 +373004,6 @@ "orcarouter" ], "aliases": [ - "azure-cognitive-services/gpt-4", "azure/gpt-4", "cloudflare-ai-gateway/openai/gpt-4", "github_copilot/gpt-4", @@ -362789,7 +373013,7 @@ "openrouter/openai/gpt-4", "orcarouter/openai/gpt-4" ], - "mergedProviderModelRecords": 9, + "mergedProviderModelRecords": 8, "limits": { "contextTokens": 32768, "inputTokens": 32768, @@ -362837,28 +373061,6 @@ "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "gpt-4", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 60, - "output": 120 - } - }, - { - "source": "models.dev", - "provider": "azure", - "model": "gpt-4", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 60, - "output": 120 - } - }, { "source": "models.dev", "provider": "cloudflare-ai-gateway", @@ -362989,9 +373191,12 @@ "modes": [ "chat" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2023-11", - "releaseDate": "2023-03-14", - "lastUpdated": "2023-03-14", + "releaseDate": "2023-11-06", + "lastUpdated": "2024-04-09", "supportedParameters": [ "frequency_penalty", "logit_bias", @@ -363009,43 +373214,9 @@ "top_logprobs", "top_p" ], - "providerModelRecordCount": 9 + "providerModelRecordCount": 8 }, "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "gpt-4", - "modelKey": "gpt-4", - "displayName": "GPT-4", - "family": "gpt", - "metadata": { - "knowledgeCutoff": "2023-11", - "lastUpdated": "2023-03-14", - "openWeights": false, - "releaseDate": "2023-03-14" - } - }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "gpt-4", - "modelKey": "gpt-4", - "displayName": "GPT-4", - "family": "gpt", - "metadata": { - "knowledgeCutoff": "2023-11", - "lastUpdated": "2023-03-14", - "openWeights": false, - "releaseDate": "2023-03-14" - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -363107,6 +373278,7 @@ "modelKey": "gpt-4", "displayName": "GPT-4", "family": "gpt", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2023-11", "lastUpdated": "2024-04-09", @@ -363724,27 +373896,22 @@ "id": "openai/gpt-4-32k", "provider": "openai", "model": "gpt-4-32k", - "displayName": "GPT-4 32K", - "family": "gpt", "mode": "chat", "sources": [ - "litellm", - "models.dev" + "litellm" ], "providers": [ - "azure", - "azure-cognitive-services" + "azure" ], "aliases": [ - "azure-cognitive-services/gpt-4-32k", "azure/gpt-4-32k" ], - "mergedProviderModelRecords": 2, + "mergedProviderModelRecords": 1, "limits": { "contextTokens": 32768, "inputTokens": 32768, "maxTokens": 4096, - "outputTokens": 32768, + "outputTokens": 4096, "supports1MContext": false }, "modalities": { @@ -363756,52 +373923,25 @@ ] }, "capabilities": { - "attachments": false, "audioInput": false, "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": false, - "pdfInput": false, - "reasoning": false, - "temperature": true, - "toolCalling": true, - "videoInput": false, "embedding": false, "imageGeneration": false, + "imageInput": false, + "imageOutput": false, "moderation": false, + "pdfInput": false, "rerank": false, "speech": false, "toolChoice": true, "transcription": false, + "videoInput": false, "supports1MContext": false }, "pricing": { "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "gpt-4-32k", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 60, - "output": 120 - } - }, - { - "source": "models.dev", - "provider": "azure", - "model": "gpt-4-32k", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 60, - "output": 120 - } - }, { "source": "litellm", "provider": "azure", @@ -363816,55 +373956,12 @@ ] }, "metadata": { - "displayNames": [ - "GPT-4 32K" - ], - "families": [ - "gpt" - ], "modes": [ "chat" ], - "knowledgeCutoff": "2023-11", - "releaseDate": "2023-03-14", - "lastUpdated": "2023-03-14", - "providerModelRecordCount": 2 + "providerModelRecordCount": 1 }, "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "gpt-4-32k", - "modelKey": "gpt-4-32k", - "displayName": "GPT-4 32K", - "family": "gpt", - "metadata": { - "knowledgeCutoff": "2023-11", - "lastUpdated": "2023-03-14", - "openWeights": false, - "releaseDate": "2023-03-14" - } - }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "gpt-4-32k", - "modelKey": "gpt-4-32k", - "displayName": "GPT-4 32K", - "family": "gpt", - "metadata": { - "knowledgeCutoff": "2023-11", - "lastUpdated": "2023-03-14", - "openWeights": false, - "releaseDate": "2023-03-14" - } - }, { "source": "litellm", "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", @@ -364491,6 +374588,9 @@ "modes": [ "chat" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2023-12", "releaseDate": "2023-11-06", "lastUpdated": "2024-04-09", @@ -364523,6 +374623,7 @@ "modelKey": "gpt-4-turbo", "displayName": "GPT-4 Turbo", "family": "gpt", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2023-12", "lastUpdated": "2024-04-09", @@ -364540,6 +374641,7 @@ "modelKey": "gpt-4-turbo", "displayName": "GPT-4 Turbo", "family": "gpt", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2023-12", "lastUpdated": "2024-04-09", @@ -364625,6 +374727,7 @@ "modelKey": "gpt-4-turbo", "displayName": "GPT-4 Turbo", "family": "gpt", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2023-12", "lastUpdated": "2024-04-09", @@ -364695,6 +374798,7 @@ "modelKey": "openai/gpt-4-turbo", "displayName": "GPT-4 Turbo", "family": "gpt", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2023-12", "lastUpdated": "2024-04-09", @@ -365209,6 +375313,9 @@ "families": [ "gpt" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2023-11", "releaseDate": "2023-11-06", "lastUpdated": "2024-04-09", @@ -365225,6 +375332,7 @@ "modelKey": "gpt-4-turbo-vision", "displayName": "GPT-4 Turbo Vision", "family": "gpt", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2023-11", "lastUpdated": "2024-04-09", @@ -365242,6 +375350,7 @@ "modelKey": "gpt-4-turbo-vision", "displayName": "GPT-4 Turbo Vision", "family": "gpt", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2023-11", "lastUpdated": "2024-04-09", @@ -365450,7 +375559,9 @@ "vision": true, "webSearch": true, "supports1MContext": true, - "lowReasoningEffort": true + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true }, "pricing": { "currency": "USD", @@ -365665,6 +375776,7 @@ "per1MTokens": { "cacheRead": 1, "cacheWrite": 2, + "cacheWrite5m": 2, "input": 2, "output": 8 } @@ -365791,6 +375903,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 2, "output": 8 } @@ -365826,6 +375939,9 @@ "modes": [ "chat" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2024-04", "releaseDate": "2025-04-14", "lastUpdated": "2025-04-14", @@ -365912,6 +376028,7 @@ "modelKey": "gpt-4.1", "displayName": "GPT-4.1", "family": "gpt", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2024-04", "lastUpdated": "2025-04-14", @@ -365929,6 +376046,7 @@ "modelKey": "gpt-4.1", "displayName": "GPT-4.1", "family": "gpt", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2024-04", "lastUpdated": "2025-04-14", @@ -366668,7 +376786,9 @@ "vision": true, "webSearch": true, "supports1MContext": true, - "lowReasoningEffort": true + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true }, "pricing": { "currency": "USD", @@ -366848,6 +376968,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0.4, + "cacheWrite5m": 0.4, "input": 0.4, "output": 1.6 } @@ -366967,6 +377088,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.4, "output": 1.6 } @@ -367004,6 +377126,9 @@ "modes": [ "chat" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2024-04", "releaseDate": "2025-04-14", "lastUpdated": "2025-04-14", @@ -367090,6 +377215,7 @@ "modelKey": "gpt-4.1-mini", "displayName": "GPT-4.1 mini", "family": "gpt-mini", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2024-04", "lastUpdated": "2025-04-14", @@ -367107,6 +377233,7 @@ "modelKey": "gpt-4.1-mini", "displayName": "GPT-4.1 mini", "family": "gpt-mini", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2024-04", "lastUpdated": "2025-04-14", @@ -367812,7 +377939,9 @@ "vision": true, "supports1MContext": true, "webSearch": false, - "lowReasoningEffort": true + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true }, "pricing": { "currency": "USD", @@ -367992,6 +378121,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0.1, + "cacheWrite5m": 0.1, "input": 0.1, "output": 0.4 } @@ -368098,6 +378228,7 @@ "per1MTokens": { "cacheRead": 0.025, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.1, "output": 0.4 } @@ -368134,6 +378265,9 @@ "modes": [ "chat" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2024-04", "releaseDate": "2025-04-14", "lastUpdated": "2025-04-14", @@ -368202,6 +378336,7 @@ "modelKey": "gpt-4.1-nano", "displayName": "GPT-4.1 nano", "family": "gpt-nano", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2024-04", "lastUpdated": "2025-04-14", @@ -368219,6 +378354,7 @@ "modelKey": "gpt-4.1-nano", "displayName": "GPT-4.1 nano", "family": "gpt-nano", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2024-04", "lastUpdated": "2025-04-14", @@ -368358,6 +378494,7 @@ "modelKey": "gpt-4.1-nano", "displayName": "GPT-4.1 nano", "family": "gpt-nano", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2024-04", "lastUpdated": "2025-04-14", @@ -368473,6 +378610,7 @@ "modelKey": "openai/gpt-4.1-nano", "displayName": "GPT-4.1 nano", "family": "gpt-nano", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2024-04", "lastUpdated": "2025-04-14", @@ -369004,7 +379142,9 @@ "vision": true, "supports1MContext": false, "webSearch": true, - "lowReasoningEffort": true + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true }, "pricing": { "currency": "USD", @@ -369196,6 +379336,7 @@ "per1MTokens": { "cacheRead": 1.25, "cacheWrite": 2.5, + "cacheWrite5m": 2.5, "input": 2.5, "output": 10 } @@ -369292,6 +379433,7 @@ "per1MTokens": { "cacheRead": 1.25, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 2.5, "output": 10 } @@ -369323,6 +379465,9 @@ "modes": [ "chat" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2023-09", "releaseDate": "2024-05-13", "lastUpdated": "2024-05-13", @@ -369394,6 +379539,7 @@ "modelKey": "gpt-4o", "displayName": "GPT-4o", "family": "gpt", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2023-09", "lastUpdated": "2024-08-06", @@ -369411,6 +379557,7 @@ "modelKey": "gpt-4o", "displayName": "GPT-4o", "family": "gpt", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2023-09", "lastUpdated": "2024-08-06", @@ -369970,6 +380117,9 @@ "modes": [ "chat" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2023-09", "releaseDate": "2024-05-13", "lastUpdated": "2026-03-15", @@ -370038,6 +380188,7 @@ "modelKey": "gpt-4o-2024-05-13", "displayName": "GPT-4o (2024-05-13)", "family": "gpt", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2023-09", "lastUpdated": "2024-05-13", @@ -370145,7 +380296,7 @@ "topProvider": { "context_length": 128000, "max_completion_tokens": 4096, - "is_moderated": true + "is_moderated": false } } } @@ -370834,6 +380985,7 @@ "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { "cacheWrite": 1.38, + "cacheWrite5m": 1.38, "input": 2.75, "output": 11 } @@ -370882,6 +381034,7 @@ "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { "cacheWrite": 1.38, + "cacheWrite5m": 1.38, "input": 2.75, "output": 11 } @@ -371721,7 +381874,9 @@ "vision": true, "supports1MContext": false, "webSearch": true, - "lowReasoningEffort": true + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true }, "pricing": { "currency": "USD", @@ -371783,6 +381938,7 @@ "per1MTokens": { "cacheRead": 0.075, "cacheWrite": 0.15, + "cacheWrite5m": 0.15, "input": 0.15, "output": 0.6 } @@ -371902,6 +382058,7 @@ "per1MTokens": { "cacheRead": 0.075, "cacheWrite": 0.15, + "cacheWrite5m": 0.15, "input": 0.15, "output": 0.6 } @@ -372022,6 +382179,7 @@ "per1MTokens": { "cacheRead": 0.075, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.15, "output": 0.6 } @@ -372054,6 +382212,9 @@ "modes": [ "chat" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2023-09", "releaseDate": "2024-07-18", "lastUpdated": "2024-07-18", @@ -372107,6 +382268,7 @@ "modelKey": "gpt-4o-mini", "displayName": "GPT-4o mini", "family": "gpt-mini", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2023-09", "lastUpdated": "2024-07-18", @@ -372124,6 +382286,7 @@ "modelKey": "gpt-4o-mini", "displayName": "GPT-4o mini", "family": "gpt-mini", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2023-09", "lastUpdated": "2024-07-18", @@ -373383,15 +383546,13 @@ "mode": "chat", "sources": [ "litellm", - "models.dev", - "openrouter" + "models.dev" ], "providers": [ "kilo", "llmgateway", "nano-gpt", "openai", - "openrouter", "vercel" ], "aliases": [ @@ -373399,10 +383560,9 @@ "llmgateway/gpt-4o-mini-search-preview", "nano-gpt/openai/gpt-4o-mini-search-preview", "openai/gpt-4o-mini-search-preview", - "openrouter/openai/gpt-4o-mini-search-preview", "vercel/openai/gpt-4o-mini-search-preview" ], - "mergedProviderModelRecords": 6, + "mergedProviderModelRecords": 5, "limits": { "contextTokens": 128000, "inputTokens": 128000, @@ -373447,7 +383607,7 @@ "reasoning": false, "temperature": true, "toolCalling": false, - "structuredOutput": true + "structuredOutput": false }, "pricing": { "currency": "USD", @@ -373486,17 +383646,6 @@ "output": 0.35 } }, - { - "source": "models.dev", - "provider": "openrouter", - "model": "openai/gpt-4o-mini-search-preview", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0.15, - "output": 0.6 - } - }, { "source": "models.dev", "provider": "vercel", @@ -373528,20 +383677,6 @@ "input_cost_per_token_batches": 7.5e-8, "output_cost_per_token_batches": 3e-7 } - }, - { - "source": "openrouter", - "provider": "openrouter", - "model": "openai/gpt-4o-mini-search-preview", - "sourceUrl": "https://openrouter.ai/api/v1/models", - "sourceUnit": "usd_per_token_for_token_fields", - "per1MTokens": { - "input": 0.15, - "output": 0.6 - }, - "other": { - "webSearch": 0.0275 - } } ] }, @@ -373550,27 +383685,19 @@ "GPT 4o Mini Search Preview", "GPT-4o Mini Search Preview", "GPT-4o mini Search Preview", - "GPT-4o-mini Search Preview", "OpenAI: GPT-4o-mini Search Preview" ], "families": [ "gpt", - "gpt-mini", - "o-mini" + "gpt-mini" ], "modes": [ "chat" ], - "knowledgeCutoff": "2023-10-31", + "knowledgeCutoff": "2023-09", "releaseDate": "2025-01", "lastUpdated": "2025-01", - "supportedParameters": [ - "max_tokens", - "response_format", - "structured_outputs", - "web_search_options" - ], - "providerModelRecordCount": 6 + "providerModelRecordCount": 5 }, "sourceRecords": [ { @@ -373623,24 +383750,6 @@ "releaseDate": "2024-07-18" } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "openrouter", - "providerName": "OpenRouter", - "providerApi": "https://openrouter.ai/api/v1", - "providerDoc": "https://openrouter.ai/models", - "model": "openai/gpt-4o-mini-search-preview", - "modelKey": "openai/gpt-4o-mini-search-preview", - "displayName": "GPT-4o-mini Search Preview", - "family": "o-mini", - "metadata": { - "knowledgeCutoff": "2023-10-31", - "lastUpdated": "2025-03-12", - "openWeights": false, - "releaseDate": "2025-03-12" - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -373664,33 +383773,6 @@ "provider": "openai", "model": "gpt-4o-mini-search-preview", "mode": "chat" - }, - { - "source": "openrouter", - "sourceUrl": "https://openrouter.ai/api/v1/models", - "provider": "openrouter", - "model": "openai/gpt-4o-mini-search-preview", - "displayName": "OpenAI: GPT-4o-mini Search Preview", - "metadata": { - "canonicalSlug": "openai/gpt-4o-mini-search-preview-2025-03-11", - "createdAt": "2025-03-12T22:22:02.000Z", - "knowledgeCutoff": "2023-10-31", - "links": { - "details": "/api/v1/models/openai/gpt-4o-mini-search-preview-2025-03-11/endpoints" - }, - "supportedParameters": [ - "max_tokens", - "response_format", - "structured_outputs", - "web_search_options" - ], - "tokenizer": "GPT", - "topProvider": { - "context_length": 128000, - "max_completion_tokens": 16384, - "is_moderated": true - } - } } ] }, @@ -373790,8 +383872,8 @@ "id": "openai/gpt-4o-mini-transcribe", "provider": "openai", "model": "gpt-4o-mini-transcribe", - "displayName": "GPT-4o mini Transcribe", - "family": "o-mini", + "displayName": "GPT-4o Mini Transcribe", + "family": "gpt", "mode": "audio_transcription", "sources": [ "litellm", @@ -373799,24 +383881,27 @@ ], "providers": [ "azure", + "llmgateway", "openai", "vercel" ], "aliases": [ "azure/gpt-4o-mini-transcribe", + "llmgateway/gpt-4o-mini-transcribe", "openai/gpt-4o-mini-transcribe", "vercel/openai/gpt-4o-mini-transcribe" ], - "mergedProviderModelRecords": 3, + "mergedProviderModelRecords": 4, "limits": { "contextTokens": 16000, "inputTokens": 16000, - "outputTokens": 2000, + "outputTokens": 16000, "supports1MContext": false }, "modalities": { "input": [ - "audio" + "audio", + "text" ], "output": [ "text" @@ -373836,16 +383921,28 @@ "transcription": true, "videoInput": false, "supports1MContext": false, - "attachments": false, + "attachments": true, "openWeights": false, "reasoning": false, + "structuredOutput": false, "temperature": true, - "toolCalling": false + "toolCalling": true }, "pricing": { "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ + { + "source": "models.dev", + "provider": "llmgateway", + "model": "gpt-4o-mini-transcribe", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 1.25, + "output": 5 + } + }, { "source": "models.dev", "provider": "vercel", @@ -373885,22 +383982,41 @@ }, "metadata": { "displayNames": [ + "GPT-4o Mini Transcribe", "GPT-4o mini Transcribe" ], "families": [ + "gpt", "o-mini" ], "modes": [ "audio_transcription" ], - "releaseDate": "2024-03-13", - "lastUpdated": "2024-03-13", + "releaseDate": "2025-03-20", + "lastUpdated": "2025-03-20", "supportedEndpoints": [ "/v1/audio/transcriptions" ], - "providerModelRecordCount": 3 + "providerModelRecordCount": 4 }, "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "llmgateway", + "providerName": "LLM Gateway", + "providerApi": "https://api.llmgateway.io/v1", + "providerDoc": "https://llmgateway.io/docs", + "model": "gpt-4o-mini-transcribe", + "modelKey": "gpt-4o-mini-transcribe", + "displayName": "GPT-4o Mini Transcribe", + "family": "gpt", + "metadata": { + "lastUpdated": "2025-03-20", + "openWeights": false, + "releaseDate": "2025-03-20" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -374976,24 +385092,21 @@ "mode": "chat", "sources": [ "litellm", - "models.dev", - "openrouter" + "models.dev" ], "providers": [ "kilo", "llmgateway", "nano-gpt", - "openai", - "openrouter" + "openai" ], "aliases": [ "kilo/openai/gpt-4o-search-preview", "llmgateway/gpt-4o-search-preview", "nano-gpt/openai/gpt-4o-search-preview", - "openai/gpt-4o-search-preview", - "openrouter/openai/gpt-4o-search-preview" + "openai/gpt-4o-search-preview" ], - "mergedProviderModelRecords": 5, + "mergedProviderModelRecords": 4, "limits": { "contextTokens": 128000, "inputTokens": 128000, @@ -375037,7 +385150,7 @@ "openWeights": false, "reasoning": false, "toolCalling": false, - "structuredOutput": true, + "structuredOutput": false, "temperature": true }, "pricing": { @@ -375077,17 +385190,6 @@ "output": 5.88 } }, - { - "source": "models.dev", - "provider": "openrouter", - "model": "openai/gpt-4o-search-preview", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 2.5, - "output": 10 - } - }, { "source": "litellm", "provider": "openai", @@ -375108,20 +385210,6 @@ "input_cost_per_token_batches": 0.00000125, "output_cost_per_token_batches": 0.000005 } - }, - { - "source": "openrouter", - "provider": "openrouter", - "model": "openai/gpt-4o-search-preview", - "sourceUrl": "https://openrouter.ai/api/v1/models", - "sourceUnit": "usd_per_token_for_token_fields", - "per1MTokens": { - "input": 2.5, - "output": 10 - }, - "other": { - "webSearch": 0.035 - } } ] }, @@ -375136,16 +385224,9 @@ "modes": [ "chat" ], - "knowledgeCutoff": "2023-10-31", "releaseDate": "2025-03-13", "lastUpdated": "2026-03-15", - "supportedParameters": [ - "max_tokens", - "response_format", - "structured_outputs", - "web_search_options" - ], - "providerModelRecordCount": 5 + "providerModelRecordCount": 4 }, "sourceRecords": [ { @@ -375198,57 +385279,12 @@ "releaseDate": "2024-05-13" } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "openrouter", - "providerName": "OpenRouter", - "providerApi": "https://openrouter.ai/api/v1", - "providerDoc": "https://openrouter.ai/models", - "model": "openai/gpt-4o-search-preview", - "modelKey": "openai/gpt-4o-search-preview", - "displayName": "GPT-4o Search Preview", - "family": "gpt", - "metadata": { - "knowledgeCutoff": "2023-10-31", - "lastUpdated": "2025-03-12", - "openWeights": false, - "releaseDate": "2025-03-12" - } - }, { "source": "litellm", "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", "provider": "openai", "model": "gpt-4o-search-preview", "mode": "chat" - }, - { - "source": "openrouter", - "sourceUrl": "https://openrouter.ai/api/v1/models", - "provider": "openrouter", - "model": "openai/gpt-4o-search-preview", - "displayName": "OpenAI: GPT-4o Search Preview", - "metadata": { - "canonicalSlug": "openai/gpt-4o-search-preview-2025-03-11", - "createdAt": "2025-03-12T22:19:09.000Z", - "knowledgeCutoff": "2023-10-31", - "links": { - "details": "/api/v1/models/openai/gpt-4o-search-preview-2025-03-11/endpoints" - }, - "supportedParameters": [ - "max_tokens", - "response_format", - "structured_outputs", - "web_search_options" - ], - "tokenizer": "GPT", - "topProvider": { - "context_length": 128000, - "max_completion_tokens": 16384, - "is_moderated": true - } - } } ] }, @@ -375357,24 +385393,27 @@ ], "providers": [ "azure", + "llmgateway", "openai", "vercel" ], "aliases": [ "azure/gpt-4o-transcribe", + "llmgateway/gpt-4o-transcribe", "openai/gpt-4o-transcribe", "vercel/openai/gpt-4o-transcribe" ], - "mergedProviderModelRecords": 3, + "mergedProviderModelRecords": 4, "limits": { "contextTokens": 16000, "inputTokens": 16000, - "outputTokens": 2000, + "outputTokens": 16000, "supports1MContext": false }, "modalities": { "input": [ - "audio" + "audio", + "text" ], "output": [ "text" @@ -375394,16 +385433,28 @@ "transcription": true, "videoInput": false, "supports1MContext": false, - "attachments": false, + "attachments": true, "openWeights": false, "reasoning": false, + "structuredOutput": false, "temperature": true, - "toolCalling": false + "toolCalling": true }, "pricing": { "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ + { + "source": "models.dev", + "provider": "llmgateway", + "model": "gpt-4o-transcribe", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 2.5, + "output": 10 + } + }, { "source": "models.dev", "provider": "vercel", @@ -375451,14 +385502,31 @@ "modes": [ "audio_transcription" ], - "releaseDate": "2024-03-13", - "lastUpdated": "2024-03-13", + "releaseDate": "2025-03-20", + "lastUpdated": "2025-03-20", "supportedEndpoints": [ "/v1/audio/transcriptions" ], - "providerModelRecordCount": 3 + "providerModelRecordCount": 4 }, "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "llmgateway", + "providerName": "LLM Gateway", + "providerApi": "https://api.llmgateway.io/v1", + "providerDoc": "https://llmgateway.io/docs", + "model": "gpt-4o-transcribe", + "modelKey": "gpt-4o-transcribe", + "displayName": "GPT-4o Transcribe", + "family": "gpt", + "metadata": { + "lastUpdated": "2025-03-20", + "openWeights": false, + "releaseDate": "2025-03-20" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -375716,6 +385784,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -376902,6 +386972,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": false, @@ -377013,6 +387085,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, "temperature": false, @@ -377124,6 +387198,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true, @@ -377233,6 +387309,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -377347,6 +387425,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, "temperature": false, @@ -377657,6 +387737,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": false, "toolCalling": true, "videoInput": false, @@ -377812,6 +387894,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -377946,6 +388030,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true, @@ -378143,6 +388229,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true, @@ -378299,6 +388387,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": false, "toolCalling": true, "videoInput": false, @@ -378409,39 +388499,379 @@ } ] }, + { + "id": "openai/gpt-5-6-luna", + "provider": "openai", + "model": "gpt-5-6-luna", + "displayName": "GPT-5.6 Luna", + "family": "gpt-luna", + "sources": [ + "models.dev" + ], + "providers": [ + "kenari" + ], + "aliases": [ + "kenari/gpt-5-6-luna" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1050000, + "outputTokens": 128000, + "supports1MContext": true + }, + "modalities": { + "input": [ + "image", + "pdf", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": true, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "maxReasoningEffort": true, + "noneReasoningEffort": true, + "xhighReasoningEffort": true, + "structuredOutput": true, + "temperature": false, + "toolCalling": true, + "videoInput": false, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "kenari", + "model": "gpt-5-6-luna", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "GPT-5.6 Luna" + ], + "families": [ + "gpt-luna" + ], + "knowledgeCutoff": "2026-02-16", + "releaseDate": "2026-07-09", + "lastUpdated": "2026-07-09", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "kenari", + "providerName": "Kenari", + "providerApi": "https://kenari.id/v1", + "providerDoc": "https://kenari.id/docs", + "model": "gpt-5-6-luna", + "modelKey": "gpt-5-6-luna", + "displayName": "GPT-5.6 Luna", + "family": "gpt-luna", + "metadata": { + "knowledgeCutoff": "2026-02-16", + "lastUpdated": "2026-07-09", + "openWeights": false, + "releaseDate": "2026-07-09", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + } + ] + }, + { + "id": "openai/gpt-5-6-sol", + "provider": "openai", + "model": "gpt-5-6-sol", + "displayName": "GPT-5.6 Sol", + "family": "gpt-sol", + "sources": [ + "models.dev" + ], + "providers": [ + "kenari" + ], + "aliases": [ + "kenari/gpt-5-6-sol" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1050000, + "outputTokens": 128000, + "supports1MContext": true + }, + "modalities": { + "input": [ + "image", + "pdf", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": true, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "maxReasoningEffort": true, + "noneReasoningEffort": true, + "xhighReasoningEffort": true, + "structuredOutput": true, + "temperature": false, + "toolCalling": true, + "videoInput": false, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "kenari", + "model": "gpt-5-6-sol", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "GPT-5.6 Sol" + ], + "families": [ + "gpt-sol" + ], + "knowledgeCutoff": "2026-02-16", + "releaseDate": "2026-07-09", + "lastUpdated": "2026-07-09", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "kenari", + "providerName": "Kenari", + "providerApi": "https://kenari.id/v1", + "providerDoc": "https://kenari.id/docs", + "model": "gpt-5-6-sol", + "modelKey": "gpt-5-6-sol", + "displayName": "GPT-5.6 Sol", + "family": "gpt-sol", + "metadata": { + "knowledgeCutoff": "2026-02-16", + "lastUpdated": "2026-07-09", + "openWeights": false, + "releaseDate": "2026-07-09", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + } + ] + }, + { + "id": "openai/gpt-5-6-terra", + "provider": "openai", + "model": "gpt-5-6-terra", + "displayName": "GPT-5.6 Terra", + "family": "gpt-terra", + "sources": [ + "models.dev" + ], + "providers": [ + "kenari" + ], + "aliases": [ + "kenari/gpt-5-6-terra" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1050000, + "outputTokens": 128000, + "supports1MContext": true + }, + "modalities": { + "input": [ + "image", + "pdf", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": true, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "maxReasoningEffort": true, + "noneReasoningEffort": true, + "xhighReasoningEffort": true, + "structuredOutput": true, + "temperature": false, + "toolCalling": true, + "videoInput": false, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "kenari", + "model": "gpt-5-6-terra", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "GPT-5.6 Terra" + ], + "families": [ + "gpt-terra" + ], + "knowledgeCutoff": "2026-02-16", + "releaseDate": "2026-07-09", + "lastUpdated": "2026-07-09", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "kenari", + "providerName": "Kenari", + "providerApi": "https://kenari.id/v1", + "providerDoc": "https://kenari.id/docs", + "model": "gpt-5-6-terra", + "modelKey": "gpt-5-6-terra", + "displayName": "GPT-5.6 Terra", + "family": "gpt-terra", + "metadata": { + "knowledgeCutoff": "2026-02-16", + "lastUpdated": "2026-07-09", + "openWeights": false, + "releaseDate": "2026-07-09", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + } + ] + }, { "id": "openai/gpt-5-chat", "provider": "openai", "model": "gpt-5-chat", - "displayName": "GPT-5 Chat", + "displayName": "OpenAI: GPT-5 Chat", "family": "gpt-codex", "mode": "chat", "sources": [ "litellm", - "models.dev", - "openrouter" + "models.dev" ], "providers": [ "azure", - "azure-cognitive-services", "kilo", "openai", "openrouter", "poe", - "requesty", - "vercel" + "requesty" ], "aliases": [ - "azure-cognitive-services/gpt-5-chat", "azure/gpt-5-chat", "kilo/openai/gpt-5-chat", "openai/gpt-5-chat", "openrouter/openai/gpt-5-chat", "poe/openai/gpt-5-chat", - "requesty/openai/gpt-5-chat", - "vercel/openai/gpt-5-chat" + "requesty/openai/gpt-5-chat" ], - "mergedProviderModelRecords": 8, + "mergedProviderModelRecords": 6, "limits": { "contextTokens": 400000, "inputTokens": 128000, @@ -378451,13 +388881,11 @@ }, "modalities": { "input": [ - "file", "image", "pdf", "text" ], "output": [ - "image", "text" ] }, @@ -378468,7 +388896,7 @@ "functionCalling": true, "imageGeneration": false, "imageInput": true, - "imageOutput": true, + "imageOutput": false, "minimalReasoningEffort": true, "moderation": false, "nativeStreaming": true, @@ -378491,39 +388919,16 @@ "openWeights": false, "temperature": true, "toolCalling": true, - "structuredOutput": true, - "webSearch": false, "lowReasoningEffort": true, - "maxReasoningEffort": true + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "maxReasoningEffort": true, + "structuredOutput": true }, "pricing": { "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "gpt-5-chat", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.13, - "input": 1.25, - "output": 10 - } - }, - { - "source": "models.dev", - "provider": "azure", - "model": "gpt-5-chat", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.13, - "input": 1.25, - "output": 10 - } - }, { "source": "models.dev", "provider": "kilo", @@ -378536,18 +388941,6 @@ "output": 10 } }, - { - "source": "models.dev", - "provider": "openrouter", - "model": "openai/gpt-5-chat", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.125, - "input": 1.25, - "output": 10 - } - }, { "source": "models.dev", "provider": "poe", @@ -378571,18 +388964,6 @@ "output": 10 } }, - { - "source": "models.dev", - "provider": "vercel", - "model": "openai/gpt-5-chat", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.125, - "input": 1.25, - "output": 10 - } - }, { "source": "litellm", "provider": "azure", @@ -378618,89 +388999,32 @@ "input": 1.25, "output": 10 } - }, - { - "source": "openrouter", - "provider": "openrouter", - "model": "openai/gpt-5-chat", - "sourceUrl": "https://openrouter.ai/api/v1/models", - "sourceUnit": "usd_per_token_for_token_fields", - "per1MTokens": { - "cacheRead": 0.125, - "input": 1.25, - "output": 10 - }, - "other": { - "webSearch": 0.01 - } } ] }, "metadata": { "displayNames": [ - "GPT-5 Chat", "GPT-5 Chat (latest)", "GPT-5-Chat", "OpenAI: GPT-5 Chat" ], "families": [ - "gpt", "gpt-codex" ], "modes": [ "chat" ], - "knowledgeCutoff": "2024-10-24", + "knowledgeCutoff": "2024-09-30", "releaseDate": "2025-08-07", - "lastUpdated": "2025-08-07", - "supportedParameters": [ - "max_tokens", - "response_format", - "seed", - "structured_outputs" - ], + "lastUpdated": "2026-03-15", "supportedEndpoints": [ "/v1/batch", "/v1/chat/completions", "/v1/responses" ], - "providerModelRecordCount": 8 + "providerModelRecordCount": 6 }, "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "gpt-5-chat", - "modelKey": "gpt-5-chat", - "displayName": "GPT-5 Chat", - "family": "gpt-codex", - "metadata": { - "knowledgeCutoff": "2024-10-24", - "lastUpdated": "2025-08-07", - "openWeights": false, - "releaseDate": "2025-08-07" - } - }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "gpt-5-chat", - "modelKey": "gpt-5-chat", - "displayName": "GPT-5 Chat", - "family": "gpt-codex", - "metadata": { - "knowledgeCutoff": "2024-10-24", - "lastUpdated": "2025-08-07", - "openWeights": false, - "releaseDate": "2025-08-07" - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -378717,24 +389041,6 @@ "releaseDate": "2025-08-07" } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "openrouter", - "providerName": "OpenRouter", - "providerApi": "https://openrouter.ai/api/v1", - "providerDoc": "https://openrouter.ai/models", - "model": "openai/gpt-5-chat", - "modelKey": "openai/gpt-5-chat", - "displayName": "GPT-5 Chat", - "family": "gpt-codex", - "metadata": { - "knowledgeCutoff": "2024-09-30", - "lastUpdated": "2025-08-07", - "openWeights": false, - "releaseDate": "2025-08-07" - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -378785,23 +389091,6 @@ ] } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "vercel", - "providerName": "Vercel AI Gateway", - "providerDoc": "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway", - "model": "openai/gpt-5-chat", - "modelKey": "openai/gpt-5-chat", - "displayName": "GPT-5 Chat", - "family": "gpt", - "metadata": { - "knowledgeCutoff": "2024-10", - "lastUpdated": "2025-08-07", - "openWeights": false, - "releaseDate": "2025-08-07" - } - }, { "source": "litellm", "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", @@ -378837,33 +389126,6 @@ "provider": "openrouter", "model": "openrouter/openai/gpt-5-chat", "mode": "chat" - }, - { - "source": "openrouter", - "sourceUrl": "https://openrouter.ai/api/v1/models", - "provider": "openrouter", - "model": "openai/gpt-5-chat", - "displayName": "OpenAI: GPT-5 Chat", - "metadata": { - "canonicalSlug": "openai/gpt-5-chat-2025-08-07", - "createdAt": "2025-08-07T17:30:37.000Z", - "knowledgeCutoff": "2024-09-30", - "links": { - "details": "/api/v1/models/openai/gpt-5-chat-2025-08-07/endpoints" - }, - "supportedParameters": [ - "max_tokens", - "response_format", - "seed", - "structured_outputs" - ], - "tokenizer": "GPT", - "topProvider": { - "context_length": 128000, - "max_completion_tokens": 16384, - "is_moderated": true - } - } } ] }, @@ -378871,7 +389133,7 @@ "id": "openai/gpt-5-chat-latest", "provider": "openai", "model": "gpt-5-chat-latest", - "displayName": "GPT-5 Chat (latest)", + "displayName": "OpenAI GPT-5 Chat Latest", "family": "gpt-codex", "mode": "chat", "sources": [ @@ -378915,36 +389177,36 @@ ] }, "capabilities": { - "attachments": true, "audioInput": false, "audioOutput": false, - "imageInput": true, - "imageOutput": false, - "openWeights": false, - "pdfInput": true, - "reasoning": true, - "structuredOutput": true, - "temperature": true, - "toolCalling": true, - "videoInput": false, "embedding": false, "functionCalling": true, "imageGeneration": false, + "imageInput": true, + "imageOutput": false, "minimalReasoningEffort": true, "moderation": false, "nativeStreaming": true, "noneReasoningEffort": false, "parallelFunctionCalling": true, + "pdfInput": true, "promptCaching": true, + "reasoning": true, "rerank": false, "responseSchema": true, "speech": false, "systemMessages": true, "toolChoice": true, "transcription": false, + "videoInput": false, "vision": true, "xhighReasoningEffort": false, - "supports1MContext": false + "supports1MContext": false, + "attachments": true, + "openWeights": false, + "temperature": true, + "toolCalling": true, + "structuredOutput": true }, "pricing": { "currency": "USD", @@ -378997,18 +389259,6 @@ "output": 10 } }, - { - "source": "models.dev", - "provider": "openai", - "model": "gpt-5-chat-latest", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.125, - "input": 1.25, - "output": 10 - } - }, { "source": "models.dev", "provider": "orcarouter", @@ -379141,23 +389391,6 @@ "releaseDate": "2025-08-07" } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "openai", - "providerName": "OpenAI", - "providerDoc": "https://platform.openai.com/docs/models", - "model": "gpt-5-chat-latest", - "modelKey": "gpt-5-chat-latest", - "displayName": "GPT-5 Chat (latest)", - "family": "gpt-codex", - "metadata": { - "knowledgeCutoff": "2024-09-30", - "lastUpdated": "2025-08-07", - "openWeights": false, - "releaseDate": "2025-08-07" - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -379271,38 +389504,40 @@ ] }, "capabilities": { - "attachments": true, "audioInput": false, "audioOutput": false, - "imageInput": true, - "imageOutput": false, - "openWeights": false, - "pdfInput": true, - "reasoning": true, - "lowReasoningEffort": true, - "structuredOutput": true, - "temperature": true, - "toolCalling": true, - "videoInput": false, "embedding": false, "functionCalling": true, "imageGeneration": false, + "imageInput": true, + "imageOutput": false, "minimalReasoningEffort": true, "moderation": false, "nativeStreaming": true, "noneReasoningEffort": true, "parallelFunctionCalling": true, + "pdfInput": true, "promptCaching": true, + "reasoning": true, "rerank": false, "responseSchema": true, "speech": false, "systemMessages": true, "toolChoice": true, "transcription": false, + "videoInput": false, "vision": true, "webSearch": true, "xhighReasoningEffort": false, "supports1MContext": false, + "attachments": true, + "openWeights": false, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "temperature": true, + "toolCalling": true, + "structuredOutput": true, "maxReasoningEffort": true }, "pricing": { @@ -379391,18 +389626,6 @@ "output": 19.992 } }, - { - "source": "models.dev", - "provider": "openai", - "model": "gpt-5-codex", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.125, - "input": 1.25, - "output": 10 - } - }, { "source": "models.dev", "provider": "opencode", @@ -379547,6 +389770,7 @@ "gpt-5-codex" ], "families": [ + "gpt", "gpt-codex" ], "modes": [ @@ -379722,33 +389946,6 @@ "releaseDate": "2025-09-15" } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "openai", - "providerName": "OpenAI", - "providerDoc": "https://platform.openai.com/docs/models", - "model": "gpt-5-codex", - "modelKey": "gpt-5-codex", - "displayName": "GPT-5-Codex", - "family": "gpt-codex", - "metadata": { - "knowledgeCutoff": "2024-09-30", - "lastUpdated": "2025-09-15", - "openWeights": false, - "releaseDate": "2025-09-15", - "reasoningOptions": [ - { - "type": "effort", - "values": [ - "low", - "medium", - "high" - ] - } - ] - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -379892,22 +390089,12 @@ "model": "openai/gpt-5-codex", "modelKey": "openai/gpt-5-codex", "displayName": "GPT-5-Codex", - "family": "gpt-codex", + "family": "gpt", "metadata": { "knowledgeCutoff": "2024-09-30", "lastUpdated": "2025-09-15", "openWeights": false, - "releaseDate": "2025-09-15", - "reasoningOptions": [ - { - "type": "effort", - "values": [ - "low", - "medium", - "high" - ] - } - ] + "releaseDate": "2025-09-15" } }, { @@ -380061,6 +390248,8 @@ "toolChoice": false, "webSearch": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true }, @@ -380568,6 +390757,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -380819,6 +391010,7 @@ "per1MTokens": { "cacheRead": 0.025, "cacheWrite": 0.25, + "cacheWrite5m": 0.25, "input": 0.25, "output": 2 } @@ -382082,6 +392274,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -382310,6 +392504,7 @@ "per1MTokens": { "cacheRead": 0.005, "cacheWrite": 0.05, + "cacheWrite5m": 0.05, "input": 0.05, "output": 0.4 } @@ -383379,6 +393574,7 @@ "openWeights": false, "pdfInput": true, "reasoning": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -383403,6 +393599,7 @@ "xhighReasoningEffort": false, "supports1MContext": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, "maxReasoningEffort": true }, "pricing": { @@ -384529,6 +394726,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -384780,6 +394979,7 @@ "per1MTokens": { "cacheRead": 0.125, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1.25, "output": 10 } @@ -385895,7 +396095,7 @@ "id": "openai/gpt-5.1-chat", "provider": "openai", "model": "gpt-5.1-chat", - "displayName": "GPT-5.1 Chat", + "displayName": "OpenAI: GPT-5.1 Chat", "family": "gpt-codex", "mode": "chat", "sources": [ @@ -385905,14 +396105,12 @@ ], "providers": [ "azure", - "azure-cognitive-services", "kilo", "openrouter", "requesty", "zenmux" ], "aliases": [ - "azure-cognitive-services/gpt-5.1-chat", "azure/eu/gpt-5.1-chat", "azure/global/gpt-5.1-chat", "azure/gpt-5.1-chat", @@ -385922,7 +396120,7 @@ "requesty/openai/gpt-5.1-chat", "zenmux/openai/gpt-5.1-chat" ], - "mergedProviderModelRecords": 9, + "mergedProviderModelRecords": 8, "limits": { "contextTokens": 128000, "inputTokens": 128000, @@ -385932,79 +396130,54 @@ }, "modalities": { "input": [ - "audio", "file", "image", "pdf", "text" ], "output": [ - "audio", - "image", "text" ] }, "capabilities": { "attachments": true, - "audioInput": true, - "audioOutput": true, + "audioInput": false, + "audioOutput": false, "imageInput": true, - "imageOutput": true, + "imageOutput": false, "openWeights": false, "pdfInput": true, "reasoning": true, - "structuredOutput": true, "temperature": true, "toolCalling": true, "videoInput": false, + "supports1MContext": false, + "structuredOutput": true, + "parallelFunctionCalling": true, + "responseSchema": true, + "toolChoice": true, + "webSearch": false, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "maxReasoningEffort": true, + "noneReasoningEffort": true, "embedding": false, "functionCalling": true, "imageGeneration": false, "moderation": false, "nativeStreaming": true, - "noneReasoningEffort": true, - "parallelFunctionCalling": true, "promptCaching": true, "rerank": false, - "responseSchema": true, "speech": false, "systemMessages": true, - "toolChoice": true, "transcription": false, - "vision": true, - "supports1MContext": false, - "webSearch": false, - "lowReasoningEffort": true, - "maxReasoningEffort": true + "vision": true }, "pricing": { "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "gpt-5.1-chat", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.125, - "input": 1.25, - "output": 10 - } - }, - { - "source": "models.dev", - "provider": "azure", - "model": "gpt-5.1-chat", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.125, - "input": 1.25, - "output": 10 - } - }, { "source": "models.dev", "provider": "kilo", @@ -386024,7 +396197,7 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.125, + "cacheRead": 0.13, "input": 1.25, "output": 10 } @@ -386108,7 +396281,7 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "cacheRead": 0.125, + "cacheRead": 0.13, "input": 1.25, "output": 10 }, @@ -386130,11 +396303,10 @@ "chat" ], "knowledgeCutoff": "2024-09-30", - "releaseDate": "2025-11-14", - "lastUpdated": "2025-11-14", + "releaseDate": "2025-11-13", + "lastUpdated": "2026-03-15", "supportedParameters": [ "max_completion_tokens", - "max_tokens", "response_format", "seed", "structured_outputs", @@ -386146,59 +396318,9 @@ "/v1/chat/completions", "/v1/responses" ], - "providerModelRecordCount": 9 + "providerModelRecordCount": 8 }, "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "gpt-5.1-chat", - "modelKey": "gpt-5.1-chat", - "displayName": "GPT-5.1 Chat", - "family": "gpt-codex", - "metadata": { - "knowledgeCutoff": "2024-09-30", - "lastUpdated": "2025-11-14", - "openWeights": false, - "releaseDate": "2025-11-14", - "reasoningOptions": [ - { - "type": "effort", - "values": [ - "medium" - ] - } - ] - } - }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "gpt-5.1-chat", - "modelKey": "gpt-5.1-chat", - "displayName": "GPT-5.1 Chat", - "family": "gpt-codex", - "metadata": { - "knowledgeCutoff": "2024-09-30", - "lastUpdated": "2025-11-14", - "openWeights": false, - "releaseDate": "2025-11-14", - "reasoningOptions": [ - { - "type": "effort", - "values": [ - "medium" - ] - } - ] - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -386353,7 +396475,6 @@ }, "supportedParameters": [ "max_completion_tokens", - "max_tokens", "response_format", "seed", "structured_outputs", @@ -386363,8 +396484,8 @@ "tokenizer": "GPT", "topProvider": { "context_length": 128000, - "max_completion_tokens": 16384, - "is_moderated": true + "max_completion_tokens": 32000, + "is_moderated": false } } } @@ -386480,7 +396601,7 @@ "id": "openai/gpt-5.1-chat-latest", "provider": "openai", "model": "gpt-5.1-chat-latest", - "displayName": "GPT-5.1 Chat", + "displayName": "gpt-5.1-chat-latest", "family": "gpt-codex", "mode": "chat", "sources": [ @@ -386523,37 +396644,38 @@ ] }, "capabilities": { - "attachments": true, "audioInput": false, "audioOutput": false, - "imageInput": true, - "imageOutput": true, - "openWeights": false, - "pdfInput": true, - "reasoning": true, - "structuredOutput": true, - "temperature": false, - "toolCalling": true, - "videoInput": false, "embedding": false, "functionCalling": false, "imageGeneration": false, + "imageInput": true, + "imageOutput": true, "minimalReasoningEffort": true, "moderation": false, "nativeStreaming": true, "noneReasoningEffort": true, "parallelFunctionCalling": false, + "pdfInput": true, "promptCaching": true, + "reasoning": true, "rerank": false, "responseSchema": true, "speech": false, "systemMessages": true, "toolChoice": false, "transcription": false, + "videoInput": false, "vision": true, "webSearch": true, "xhighReasoningEffort": false, - "supports1MContext": false + "supports1MContext": false, + "attachments": true, + "openWeights": false, + "mediumReasoningEffort": true, + "structuredOutput": true, + "temperature": false, + "toolCalling": true }, "pricing": { "currency": "USD", @@ -386605,18 +396727,6 @@ "output": 10 } }, - { - "source": "models.dev", - "provider": "openai", - "model": "gpt-5.1-chat-latest", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.125, - "input": 1.25, - "output": 10 - } - }, { "source": "models.dev", "provider": "orcarouter", @@ -386751,31 +396861,6 @@ "releaseDate": "2025-11-13" } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "openai", - "providerName": "OpenAI", - "providerDoc": "https://platform.openai.com/docs/models", - "model": "gpt-5.1-chat-latest", - "modelKey": "gpt-5.1-chat-latest", - "displayName": "GPT-5.1 Chat", - "family": "gpt-codex", - "metadata": { - "knowledgeCutoff": "2024-09-30", - "lastUpdated": "2025-11-13", - "openWeights": false, - "releaseDate": "2025-11-13", - "reasoningOptions": [ - { - "type": "effort", - "values": [ - "medium" - ] - } - ] - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -386888,38 +396973,40 @@ ] }, "capabilities": { - "attachments": true, "audioInput": true, "audioOutput": true, - "imageInput": true, - "imageOutput": true, - "openWeights": false, - "pdfInput": true, - "reasoning": true, - "lowReasoningEffort": true, - "structuredOutput": true, - "temperature": true, - "toolCalling": true, - "videoInput": false, "embedding": false, "functionCalling": true, "imageGeneration": false, + "imageInput": true, + "imageOutput": true, "minimalReasoningEffort": true, "moderation": false, "nativeStreaming": true, "noneReasoningEffort": true, "parallelFunctionCalling": true, + "pdfInput": true, "promptCaching": true, + "reasoning": true, "rerank": false, "responseSchema": true, "speech": false, "systemMessages": false, "toolChoice": true, "transcription": false, + "videoInput": false, "vision": true, "webSearch": true, "xhighReasoningEffort": false, "supports1MContext": false, + "attachments": true, + "openWeights": false, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "structuredOutput": true, + "temperature": true, + "toolCalling": true, "maxReasoningEffort": true }, "pricing": { @@ -387044,18 +397131,6 @@ "output": 10 } }, - { - "source": "models.dev", - "provider": "openai", - "model": "gpt-5.1-codex", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.125, - "input": 1.25, - "output": 10 - } - }, { "source": "models.dev", "provider": "opencode", @@ -387075,7 +397150,7 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.125, + "cacheRead": 0.13, "input": 1.25, "output": 10 } @@ -387224,7 +397299,7 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "cacheRead": 0.125, + "cacheRead": 0.13, "input": 1.25, "output": 10 }, @@ -387256,7 +397331,6 @@ "supportedParameters": [ "include_reasoning", "max_completion_tokens", - "max_tokens", "reasoning", "reasoning_effort", "response_format", @@ -387513,33 +397587,6 @@ ] } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "openai", - "providerName": "OpenAI", - "providerDoc": "https://platform.openai.com/docs/models", - "model": "gpt-5.1-codex", - "modelKey": "gpt-5.1-codex", - "displayName": "GPT-5.1 Codex", - "family": "gpt-codex", - "metadata": { - "knowledgeCutoff": "2024-09-30", - "lastUpdated": "2025-11-13", - "openWeights": false, - "releaseDate": "2025-11-13", - "reasoningOptions": [ - { - "type": "effort", - "values": [ - "low", - "medium", - "high" - ] - } - ] - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -387830,7 +397877,6 @@ "supportedParameters": [ "include_reasoning", "max_completion_tokens", - "max_tokens", "reasoning", "reasoning_effort", "response_format", @@ -387843,7 +397889,7 @@ "topProvider": { "context_length": 400000, "max_completion_tokens": 128000, - "is_moderated": true + "is_moderated": false } } } @@ -388017,38 +398063,40 @@ ] }, "capabilities": { - "attachments": true, "audioInput": false, "audioOutput": false, - "imageInput": true, - "imageOutput": false, - "openWeights": false, - "pdfInput": true, - "reasoning": true, - "lowReasoningEffort": true, - "xhighReasoningEffort": true, - "structuredOutput": true, - "temperature": true, - "toolCalling": true, - "videoInput": false, "embedding": false, "functionCalling": true, "imageGeneration": false, + "imageInput": true, + "imageOutput": false, "minimalReasoningEffort": true, "moderation": false, "nativeStreaming": true, "noneReasoningEffort": true, "parallelFunctionCalling": true, + "pdfInput": true, "promptCaching": true, + "reasoning": true, "rerank": false, "responseSchema": true, "speech": false, "systemMessages": false, "toolChoice": true, "transcription": false, + "videoInput": false, "vision": true, "webSearch": true, + "xhighReasoningEffort": true, "supports1MContext": false, + "attachments": true, + "openWeights": false, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "structuredOutput": true, + "temperature": true, + "toolCalling": true, "maxReasoningEffort": true }, "pricing": { @@ -388112,18 +398160,6 @@ "output": 20 } }, - { - "source": "models.dev", - "provider": "openai", - "model": "gpt-5.1-codex-max", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.125, - "input": 1.25, - "output": 10 - } - }, { "source": "models.dev", "provider": "opencode", @@ -388430,34 +398466,6 @@ ] } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "openai", - "providerName": "OpenAI", - "providerDoc": "https://platform.openai.com/docs/models", - "model": "gpt-5.1-codex-max", - "modelKey": "gpt-5.1-codex-max", - "displayName": "GPT-5.1 Codex Max", - "family": "gpt-codex", - "metadata": { - "knowledgeCutoff": "2024-09-30", - "lastUpdated": "2025-11-13", - "openWeights": false, - "releaseDate": "2025-11-13", - "reasoningOptions": [ - { - "type": "effort", - "values": [ - "low", - "medium", - "high", - "xhigh" - ] - } - ] - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -388736,7 +398744,7 @@ "topProvider": { "context_length": 400000, "max_completion_tokens": 128000, - "is_moderated": true + "is_moderated": false } } } @@ -388746,7 +398754,7 @@ "id": "openai/gpt-5.1-codex-mini", "provider": "openai", "model": "gpt-5.1-codex-mini", - "displayName": "GPT-5.1 Codex mini", + "displayName": "GPT-5.1 Codex Mini", "family": "gpt-codex", "mode": "responses", "sources": [ @@ -388815,38 +398823,40 @@ ] }, "capabilities": { - "attachments": true, "audioInput": false, "audioOutput": false, - "imageInput": true, - "imageOutput": true, - "openWeights": false, - "pdfInput": true, - "reasoning": true, - "lowReasoningEffort": true, - "structuredOutput": true, - "temperature": true, - "toolCalling": true, - "videoInput": false, "embedding": false, "functionCalling": true, "imageGeneration": false, + "imageInput": true, + "imageOutput": true, "minimalReasoningEffort": true, "moderation": false, "nativeStreaming": true, "noneReasoningEffort": true, "parallelFunctionCalling": true, + "pdfInput": true, "promptCaching": true, + "reasoning": true, "rerank": false, "responseSchema": true, "speech": false, "systemMessages": false, "toolChoice": true, "transcription": false, + "videoInput": false, "vision": true, "webSearch": true, "xhighReasoningEffort": false, "supports1MContext": false, + "attachments": true, + "openWeights": false, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "structuredOutput": true, + "temperature": true, + "toolCalling": true, "maxReasoningEffort": true }, "pricing": { @@ -388947,18 +398957,6 @@ "output": 2 } }, - { - "source": "models.dev", - "provider": "openai", - "model": "gpt-5.1-codex-mini", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.025, - "input": 0.25, - "output": 2 - } - }, { "source": "models.dev", "provider": "opencode", @@ -388978,7 +398976,7 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.025, + "cacheRead": 0.03, "input": 0.25, "output": 2 } @@ -389122,7 +399120,7 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "cacheRead": 0.025, + "cacheRead": 0.03, "input": 0.25, "output": 2 }, @@ -389368,33 +399366,6 @@ ] } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "openai", - "providerName": "OpenAI", - "providerDoc": "https://platform.openai.com/docs/models", - "model": "gpt-5.1-codex-mini", - "modelKey": "gpt-5.1-codex-mini", - "displayName": "GPT-5.1 Codex mini", - "family": "gpt-codex", - "metadata": { - "knowledgeCutoff": "2024-09-30", - "lastUpdated": "2025-11-13", - "openWeights": false, - "releaseDate": "2025-11-13", - "reasoningOptions": [ - { - "type": "effort", - "values": [ - "low", - "medium", - "high" - ] - } - ] - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -389691,8 +399662,8 @@ "tokenizer": "GPT", "topProvider": { "context_length": 400000, - "max_completion_tokens": 100000, - "is_moderated": true + "max_completion_tokens": 128000, + "is_moderated": false } } } @@ -389972,6 +399943,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -390144,6 +400117,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -391571,21 +401546,17 @@ ], "providers": [ "azure", - "azure-cognitive-services", "kilo", "openrouter", - "requesty", - "vercel" + "requesty" ], "aliases": [ - "azure-cognitive-services/gpt-5.2-chat", "azure/gpt-5.2-chat", "kilo/openai/gpt-5.2-chat", "openrouter/openai/gpt-5.2-chat", - "requesty/openai/gpt-5.2-chat", - "vercel/openai/gpt-5.2-chat" + "requesty/openai/gpt-5.2-chat" ], - "mergedProviderModelRecords": 6, + "mergedProviderModelRecords": 4, "limits": { "contextTokens": 128000, "inputTokens": 128000, @@ -391614,57 +401585,35 @@ "pdfInput": true, "reasoning": true, "structuredOutput": true, - "temperature": true, + "temperature": false, "toolCalling": true, "videoInput": false, "embedding": false, "functionCalling": true, "imageGeneration": false, "moderation": false, - "nativeStreaming": true, - "parallelFunctionCalling": true, "promptCaching": true, "rerank": false, - "responseSchema": true, "speech": false, - "systemMessages": true, "toolChoice": true, "transcription": false, "vision": true, - "supports1MContext": false, + "parallelFunctionCalling": true, + "responseSchema": true, "webSearch": false, + "supports1MContext": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, - "noneReasoningEffort": true + "noneReasoningEffort": true, + "nativeStreaming": true, + "systemMessages": true }, "pricing": { "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "gpt-5.2-chat", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.175, - "input": 1.75, - "output": 14 - } - }, - { - "source": "models.dev", - "provider": "azure", - "model": "gpt-5.2-chat", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.175, - "input": 1.75, - "output": 14 - } - }, { "source": "models.dev", "provider": "kilo", @@ -391701,18 +401650,6 @@ "output": 14 } }, - { - "source": "models.dev", - "provider": "vercel", - "model": "openai/gpt-5.2-chat", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.175, - "input": 1.75, - "output": 14 - } - }, { "source": "litellm", "provider": "azure", @@ -391768,7 +401705,6 @@ "OpenAI: GPT-5.2 Chat" ], "families": [ - "gpt", "gpt-codex" ], "modes": [ @@ -391776,7 +401712,7 @@ ], "knowledgeCutoff": "2025-08-31", "releaseDate": "2025-12-11", - "lastUpdated": "2025-12-11", + "lastUpdated": "2026-03-15", "supportedParameters": [ "max_completion_tokens", "max_tokens", @@ -391790,59 +401726,9 @@ "/v1/chat/completions", "/v1/responses" ], - "providerModelRecordCount": 6 + "providerModelRecordCount": 4 }, "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "gpt-5.2-chat", - "modelKey": "gpt-5.2-chat", - "displayName": "GPT-5.2 Chat", - "family": "gpt-codex", - "metadata": { - "knowledgeCutoff": "2025-08-31", - "lastUpdated": "2025-12-11", - "openWeights": false, - "releaseDate": "2025-12-11", - "reasoningOptions": [ - { - "type": "effort", - "values": [ - "medium" - ] - } - ] - } - }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "gpt-5.2-chat", - "modelKey": "gpt-5.2-chat", - "displayName": "GPT-5.2 Chat", - "family": "gpt-codex", - "metadata": { - "knowledgeCutoff": "2025-08-31", - "lastUpdated": "2025-12-11", - "openWeights": false, - "releaseDate": "2025-12-11", - "reasoningOptions": [ - { - "type": "effort", - "values": [ - "medium" - ] - } - ] - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -391910,23 +401796,6 @@ ] } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "vercel", - "providerName": "Vercel AI Gateway", - "providerDoc": "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway", - "model": "openai/gpt-5.2-chat", - "modelKey": "openai/gpt-5.2-chat", - "displayName": "GPT-5.2 Chat", - "family": "gpt", - "metadata": { - "knowledgeCutoff": "2024-10", - "lastUpdated": "2025-08-07", - "openWeights": false, - "releaseDate": "2025-12-11" - } - }, { "source": "litellm", "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", @@ -392138,6 +402007,7 @@ "openWeights": false, "pdfInput": true, "reasoning": true, + "mediumReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -392500,38 +402370,40 @@ ] }, "capabilities": { - "attachments": true, "audioInput": false, "audioOutput": false, - "imageInput": true, - "imageOutput": false, - "openWeights": false, - "pdfInput": true, - "reasoning": true, - "lowReasoningEffort": true, - "xhighReasoningEffort": true, - "structuredOutput": true, - "temperature": true, - "toolCalling": true, - "videoInput": false, "embedding": false, "functionCalling": true, "imageGeneration": false, + "imageInput": true, + "imageOutput": false, "minimalReasoningEffort": true, "moderation": false, "nativeStreaming": true, "noneReasoningEffort": true, "parallelFunctionCalling": true, + "pdfInput": true, "promptCaching": true, + "reasoning": true, "rerank": false, "responseSchema": true, "speech": false, "systemMessages": true, "toolChoice": true, "transcription": false, + "videoInput": false, "vision": true, "webSearch": true, + "xhighReasoningEffort": true, "supports1MContext": false, + "attachments": true, + "openWeights": false, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "structuredOutput": true, + "temperature": true, + "toolCalling": true, "maxReasoningEffort": true }, "pricing": { @@ -392656,18 +402528,6 @@ "output": 14 } }, - { - "source": "models.dev", - "provider": "openai", - "model": "gpt-5.2-codex", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.175, - "input": 1.75, - "output": 14 - } - }, { "source": "models.dev", "provider": "opencode", @@ -393125,34 +402985,6 @@ ] } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "openai", - "providerName": "OpenAI", - "providerDoc": "https://platform.openai.com/docs/models", - "model": "gpt-5.2-codex", - "modelKey": "gpt-5.2-codex", - "displayName": "GPT-5.2 Codex", - "family": "gpt-codex", - "metadata": { - "knowledgeCutoff": "2025-08-31", - "lastUpdated": "2025-12-11", - "openWeights": false, - "releaseDate": "2025-12-11", - "reasoningOptions": [ - { - "type": "effort", - "values": [ - "low", - "medium", - "high", - "xhigh" - ] - } - ] - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -393461,7 +403293,7 @@ "topProvider": { "context_length": 400000, "max_completion_tokens": 128000, - "is_moderated": true + "is_moderated": false } } } @@ -393623,6 +403455,8 @@ "openWeights": false, "pdfInput": true, "reasoning": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -394368,8 +404202,8 @@ "id": "openai/gpt-5.3-chat", "provider": "openai", "model": "gpt-5.3-chat", - "displayName": "GPT-5.3 Chat", - "family": "gpt-codex", + "displayName": "OpenAI: GPT-5.3 Chat", + "family": "gpt", "mode": "chat", "sources": [ "litellm", @@ -394418,43 +404252,31 @@ "openWeights": false, "pdfInput": true, "reasoning": true, - "structuredOutput": true, - "temperature": true, "toolCalling": true, "videoInput": false, + "supports1MContext": false, + "structuredOutput": true, + "temperature": true, + "parallelFunctionCalling": true, + "responseSchema": true, + "toolChoice": true, + "webSearch": false, "embedding": false, "functionCalling": true, "imageGeneration": false, "moderation": false, "nativeStreaming": true, - "parallelFunctionCalling": true, "promptCaching": true, "rerank": false, - "responseSchema": true, "speech": false, "systemMessages": true, - "toolChoice": true, "transcription": false, - "vision": true, - "supports1MContext": false, - "webSearch": false + "vision": true }, "pricing": { "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ - { - "source": "models.dev", - "provider": "azure", - "model": "gpt-5.3-chat", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.175, - "input": 1.75, - "output": 14 - } - }, { "source": "models.dev", "provider": "kilo", @@ -394541,15 +404363,14 @@ "OpenAI: GPT-5.3 Chat" ], "families": [ - "gpt", - "gpt-codex" + "gpt" ], "modes": [ "chat" ], "knowledgeCutoff": "2025-08-31", - "releaseDate": "2026-03-03", - "lastUpdated": "2026-03-03", + "releaseDate": "2026-03-04", + "lastUpdated": "2026-03-15", "supportedParameters": [ "max_completion_tokens", "max_tokens", @@ -394566,31 +404387,6 @@ "providerModelRecordCount": 5 }, "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "gpt-5.3-chat", - "modelKey": "gpt-5.3-chat", - "displayName": "GPT-5.3 Chat", - "family": "gpt-codex", - "metadata": { - "knowledgeCutoff": "2025-08-31", - "lastUpdated": "2026-03-03", - "openWeights": false, - "releaseDate": "2026-03-03", - "reasoningOptions": [ - { - "type": "effort", - "values": [ - "medium" - ] - } - ] - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -395097,6 +404893,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -395206,6 +405004,7 @@ "per1MTokens": { "cacheRead": 0.175, "cacheWrite": 1.75, + "cacheWrite5m": 1.75, "input": 1.75, "output": 14 } @@ -395314,6 +405113,7 @@ "per1MTokens": { "cacheRead": 0.175, "cacheWrite": 1.75, + "cacheWrite5m": 1.75, "input": 1.75, "output": 14 } @@ -396187,6 +405987,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -396705,6 +406507,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -396743,6 +406547,7 @@ "per1MTokens": { "cacheRead": 0.25, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 2.5, "output": 15 }, @@ -396906,6 +406711,7 @@ "per1MTokens": { "cacheRead": 0.25, "cacheWrite": 2.5, + "cacheWrite5m": 2.5, "input": 2.5, "output": 15 }, @@ -396950,6 +406756,7 @@ "per1MTokens": { "cacheRead": 0.25, "cacheWrite": 2.5, + "cacheWrite5m": 2.5, "input": 2.5, "output": 15 } @@ -397196,6 +407003,7 @@ "per1MTokens": { "cacheRead": 0.25, "cacheWrite": 2.5, + "cacheWrite5m": 2.5, "input": 2.5, "output": 15 } @@ -398502,7 +408310,7 @@ "topProvider": { "context_length": 1050000, "max_completion_tokens": 128000, - "is_moderated": true + "is_moderated": false } } } @@ -398822,6 +408630,8 @@ "videoInput": false, "supports1MContext": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -399095,6 +408905,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -399191,6 +409003,7 @@ "per1MTokens": { "cacheRead": 0.075, "cacheWrite": 0.75, + "cacheWrite5m": 0.75, "input": 0.75, "output": 4.5 } @@ -399215,6 +409028,7 @@ "per1MTokens": { "cacheRead": 0.075, "cacheWrite": 0.75, + "cacheWrite5m": 0.75, "input": 0.75, "output": 4.5 } @@ -399348,6 +409162,7 @@ "per1MTokens": { "cacheRead": 0.075, "cacheWrite": 0.75, + "cacheWrite5m": 0.75, "input": 0.75, "output": 4.5 } @@ -400341,6 +410156,8 @@ "attachments": true, "openWeights": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true @@ -400608,6 +410425,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -400692,6 +410511,7 @@ "per1MTokens": { "cacheRead": 0.02, "cacheWrite": 0.2, + "cacheWrite5m": 0.2, "input": 0.2, "output": 1.25 } @@ -400836,6 +410656,7 @@ "per1MTokens": { "cacheRead": 0.02, "cacheWrite": 0.2, + "cacheWrite5m": 0.2, "input": 0.2, "output": 1.25 } @@ -401755,6 +411576,8 @@ "attachments": true, "openWeights": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true @@ -402005,6 +411828,8 @@ "openWeights": false, "pdfInput": true, "reasoning": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -402044,6 +411869,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 30, "output": 180 }, @@ -402878,7 +412704,7 @@ "topProvider": { "context_length": 1050000, "max_completion_tokens": 128000, - "is_moderated": false + "is_moderated": true } } } @@ -403200,6 +413026,7 @@ "model-oracle-ai", "nano-gpt", "nearai", + "ofox", "openai", "opencode", "openrouter", @@ -403236,6 +413063,7 @@ "model-oracle-ai/gpt-5.5", "nano-gpt/openai/gpt-5.5", "nearai/openai/gpt-5.5", + "ofox/openai/gpt-5.5", "openai/gpt-5.5", "opencode/gpt-5.5", "openrouter/openai/gpt-5.5", @@ -403249,7 +413077,7 @@ "vivgrid/gpt-5.5", "zenmux/openai/gpt-5.5" ], - "mergedProviderModelRecords": 34, + "mergedProviderModelRecords": 35, "limits": { "contextTokens": 1050000, "inputTokens": 1050000, @@ -403279,6 +413107,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -403457,6 +413287,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 5, + "cacheWrite5m": 5, "input": 5, "output": 30 }, @@ -403512,6 +413343,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 5, + "cacheWrite5m": 5, "input": 5, "output": 30 } @@ -403697,6 +413529,18 @@ ] } }, + { + "source": "models.dev", + "provider": "ofox", + "model": "openai/gpt-5.5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, + "input": 5, + "output": 30 + } + }, { "source": "models.dev", "provider": "openai", @@ -403817,6 +413661,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 5, + "cacheWrite5m": 5, "input": 5, "output": 30 } @@ -404099,7 +413944,7 @@ "/v1/chat/completions", "/v1/responses" ], - "providerModelRecordCount": 34 + "providerModelRecordCount": 35 }, "sourceRecords": [ { @@ -404645,6 +414490,36 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "ofox", + "providerName": "Ofox", + "providerApi": "https://api.ofox.ai/v1", + "providerDoc": "https://ofox.ai/docs", + "model": "openai/gpt-5.5", + "modelKey": "openai/gpt-5.5", + "displayName": "GPT-5.5", + "family": "gpt", + "metadata": { + "knowledgeCutoff": "2025-12-01", + "lastUpdated": "2026-04-23", + "openWeights": false, + "releaseDate": "2026-04-23", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high", + "xhigh" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -405403,6 +415278,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -405535,6 +415412,8 @@ "openWeights": false, "pdfInput": true, "reasoning": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -406528,6 +416407,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, @@ -406566,6 +416447,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 30 }, @@ -406661,6 +416543,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 30 }, @@ -406816,6 +416699,7 @@ "crossmodel", "github-copilot", "llmgateway", + "ofox", "openai", "opencode", "openrouter", @@ -406836,6 +416720,7 @@ "crossmodel/openai/gpt-5.6-luna", "github-copilot/gpt-5.6-luna", "llmgateway/gpt-5.6-luna", + "ofox/openai/gpt-5.6-luna", "openai/gpt-5.6-luna", "opencode/gpt-5.6-luna", "openrouter/openai/gpt-5.6-luna", @@ -406844,7 +416729,7 @@ "vivgrid/gpt-5.6-luna", "zenmux/openai/gpt-5.6-luna" ], - "mergedProviderModelRecords": 18, + "mergedProviderModelRecords": 19, "limits": { "contextTokens": 1050000, "inputTokens": 1050000, @@ -406873,6 +416758,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, @@ -406923,6 +416810,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 6 } @@ -406936,6 +416824,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 6 } @@ -407036,6 +416925,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 6 }, @@ -407068,6 +416958,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 6 }, @@ -407100,6 +416991,21 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, + "input": 1, + "output": 6 + } + }, + { + "source": "models.dev", + "provider": "ofox", + "model": "openai/gpt-5.6-luna", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.1, + "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 6 } @@ -407113,6 +417019,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 6 }, @@ -407145,6 +417052,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 6 }, @@ -407175,10 +417083,11 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.1, - "cacheWrite": 1.25, - "input": 1, - "output": 6 + "cacheRead": 0.05, + "cacheWrite": 0.625, + "cacheWrite5m": 0.625, + "input": 0.5, + "output": 3 } }, { @@ -407201,6 +417110,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 6 } @@ -407214,6 +417124,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 6 } @@ -407227,6 +417138,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 6 }, @@ -407322,6 +417234,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 6 }, @@ -407351,22 +417264,23 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "cacheRead": 0.1, - "cacheWrite": 1.25, - "input": 1, - "output": 6 + "cacheRead": 0.05, + "cacheWrite": 0.625, + "cacheWrite5m": 0.625, + "input": 0.5, + "output": 3 }, "other": { - "webSearch": 0.01 + "webSearch": 0.005 }, "extra": { "overrides": [ { "min_prompt_tokens": 272000, - "prompt": 0.000002, - "completion": 0.000009, - "input_cache_read": 2e-7, - "input_cache_write": 0.0000025 + "prompt": 0.000001, + "completion": 0.0000045, + "input_cache_read": 1e-7, + "input_cache_write": 0.00000125 } ] } @@ -407408,7 +417322,7 @@ "/v1/chat/completions", "/v1/responses" ], - "providerModelRecordCount": 18 + "providerModelRecordCount": 19 }, "sourceRecords": [ { @@ -407673,6 +417587,37 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "ofox", + "providerName": "Ofox", + "providerApi": "https://api.ofox.ai/v1", + "providerDoc": "https://ofox.ai/docs", + "model": "openai/gpt-5.6-luna", + "modelKey": "openai/gpt-5.6-luna", + "displayName": "GPT-5.6 Luna", + "family": "gpt-luna", + "metadata": { + "knowledgeCutoff": "2026-02-16", + "lastUpdated": "2026-07-09", + "openWeights": false, + "releaseDate": "2026-07-09", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -408023,6 +417968,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, @@ -408047,10 +417994,11 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.1, - "cacheWrite": 1.25, - "input": 1, - "output": 6 + "cacheRead": 0.05, + "cacheWrite": 0.625, + "cacheWrite5m": 0.625, + "input": 0.5, + "output": 3 } }, { @@ -408060,22 +418008,23 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "cacheRead": 0.1, - "cacheWrite": 1.25, - "input": 1, - "output": 6 + "cacheRead": 0.05, + "cacheWrite": 0.625, + "cacheWrite5m": 0.625, + "input": 0.5, + "output": 3 }, "other": { - "webSearch": 0.01 + "webSearch": 0.005 }, "extra": { "overrides": [ { "min_prompt_tokens": 272000, - "prompt": 0.000002, - "completion": 0.000009, - "input_cache_read": 2e-7, - "input_cache_write": 0.0000025 + "prompt": 0.000001, + "completion": 0.0000045, + "input_cache_read": 1e-7, + "input_cache_write": 0.00000125 } ] } @@ -408209,6 +418158,7 @@ "crossmodel", "github-copilot", "llmgateway", + "ofox", "openai", "opencode", "openrouter", @@ -408229,6 +418179,7 @@ "crossmodel/openai/gpt-5.6-sol", "github-copilot/gpt-5.6-sol", "llmgateway/gpt-5.6-sol", + "ofox/openai/gpt-5.6-sol", "openai/gpt-5.6-sol", "opencode/gpt-5.6-sol", "openrouter/openai/gpt-5.6-sol", @@ -408237,7 +418188,7 @@ "vivgrid/gpt-5.6-sol", "zenmux/openai/gpt-5.6-sol" ], - "mergedProviderModelRecords": 18, + "mergedProviderModelRecords": 19, "limits": { "contextTokens": 1050000, "inputTokens": 1050000, @@ -408266,6 +418217,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, @@ -408316,6 +418269,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 30 } @@ -408329,6 +418283,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 30 } @@ -408429,6 +418384,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 30 }, @@ -408461,6 +418417,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 30 }, @@ -408493,6 +418450,21 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, + "input": 5, + "output": 30 + } + }, + { + "source": "models.dev", + "provider": "ofox", + "model": "openai/gpt-5.6-sol", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.5, + "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 30 } @@ -408506,6 +418478,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 30 }, @@ -408538,6 +418511,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 30 }, @@ -408570,6 +418544,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 30 } @@ -408594,6 +418569,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 30 } @@ -408607,6 +418583,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 30 } @@ -408620,6 +418597,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 30 }, @@ -408715,6 +418693,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 30 }, @@ -408746,6 +418725,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 30 }, @@ -408801,7 +418781,7 @@ "/v1/chat/completions", "/v1/responses" ], - "providerModelRecordCount": 18 + "providerModelRecordCount": 19 }, "sourceRecords": [ { @@ -409066,6 +419046,37 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "ofox", + "providerName": "Ofox", + "providerApi": "https://api.ofox.ai/v1", + "providerDoc": "https://ofox.ai/docs", + "model": "openai/gpt-5.6-sol", + "modelKey": "openai/gpt-5.6-sol", + "displayName": "GPT-5.6 Sol", + "family": "gpt-sol", + "metadata": { + "knowledgeCutoff": "2026-02-16", + "lastUpdated": "2026-07-09", + "openWeights": false, + "releaseDate": "2026-07-09", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -409416,6 +419427,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, @@ -409442,6 +419455,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 30 } @@ -409455,6 +419469,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 30 }, @@ -409602,6 +419617,7 @@ "crossmodel", "github-copilot", "llmgateway", + "ofox", "openai", "opencode", "openrouter", @@ -409622,6 +419638,7 @@ "crossmodel/openai/gpt-5.6-terra", "github-copilot/gpt-5.6-terra", "llmgateway/gpt-5.6-terra", + "ofox/openai/gpt-5.6-terra", "openai/gpt-5.6-terra", "opencode/gpt-5.6-terra", "openrouter/openai/gpt-5.6-terra", @@ -409630,7 +419647,7 @@ "vivgrid/gpt-5.6-terra", "zenmux/openai/gpt-5.6-terra" ], - "mergedProviderModelRecords": 18, + "mergedProviderModelRecords": 19, "limits": { "contextTokens": 1050000, "inputTokens": 1050000, @@ -409659,6 +419676,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, @@ -409709,6 +419728,7 @@ "per1MTokens": { "cacheRead": 0.25, "cacheWrite": 3.125, + "cacheWrite5m": 3.125, "input": 2.5, "output": 15 } @@ -409722,6 +419742,7 @@ "per1MTokens": { "cacheRead": 0.25, "cacheWrite": 3.125, + "cacheWrite5m": 3.125, "input": 2.5, "output": 15 } @@ -409822,6 +419843,7 @@ "per1MTokens": { "cacheRead": 0.25, "cacheWrite": 3.125, + "cacheWrite5m": 3.125, "input": 2.5, "output": 15 }, @@ -409854,6 +419876,7 @@ "per1MTokens": { "cacheRead": 0.25, "cacheWrite": 3.125, + "cacheWrite5m": 3.125, "input": 2.5, "output": 15 }, @@ -409886,6 +419909,21 @@ "per1MTokens": { "cacheRead": 0.25, "cacheWrite": 3.125, + "cacheWrite5m": 3.125, + "input": 2.5, + "output": 15 + } + }, + { + "source": "models.dev", + "provider": "ofox", + "model": "openai/gpt-5.6-terra", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.25, + "cacheWrite": 3.125, + "cacheWrite5m": 3.125, "input": 2.5, "output": 15 } @@ -409899,6 +419937,7 @@ "per1MTokens": { "cacheRead": 0.25, "cacheWrite": 3.125, + "cacheWrite5m": 3.125, "input": 2.5, "output": 15 }, @@ -409931,6 +419970,7 @@ "per1MTokens": { "cacheRead": 0.25, "cacheWrite": 3.125, + "cacheWrite5m": 3.125, "input": 2.5, "output": 15 }, @@ -409961,10 +420001,11 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.25, - "cacheWrite": 3.125, - "input": 2.5, - "output": 15 + "cacheRead": 0.125, + "cacheWrite": 1.5625, + "cacheWrite5m": 1.5625, + "input": 1.25, + "output": 7.5 } }, { @@ -409987,6 +420028,7 @@ "per1MTokens": { "cacheRead": 0.25, "cacheWrite": 3.125, + "cacheWrite5m": 3.125, "input": 2.5, "output": 15 } @@ -410000,6 +420042,7 @@ "per1MTokens": { "cacheRead": 0.25, "cacheWrite": 3.125, + "cacheWrite5m": 3.125, "input": 2.5, "output": 15 } @@ -410013,6 +420056,7 @@ "per1MTokens": { "cacheRead": 0.25, "cacheWrite": 3.125, + "cacheWrite5m": 3.125, "input": 2.5, "output": 15 }, @@ -410108,6 +420152,7 @@ "per1MTokens": { "cacheRead": 0.25, "cacheWrite": 3.125, + "cacheWrite5m": 3.125, "input": 2.5, "output": 15 }, @@ -410137,22 +420182,23 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "cacheRead": 0.25, - "cacheWrite": 3.125, - "input": 2.5, - "output": 15 + "cacheRead": 0.125, + "cacheWrite": 1.5625, + "cacheWrite5m": 1.5625, + "input": 1.25, + "output": 7.5 }, "other": { - "webSearch": 0.01 + "webSearch": 0.005 }, "extra": { "overrides": [ { "min_prompt_tokens": 272000, - "prompt": 0.000005, - "completion": 0.0000225, - "input_cache_read": 5e-7, - "input_cache_write": 0.00000625 + "prompt": 0.0000025, + "completion": 0.00001125, + "input_cache_read": 2.5e-7, + "input_cache_write": 0.000003125 } ] } @@ -410194,7 +420240,7 @@ "/v1/chat/completions", "/v1/responses" ], - "providerModelRecordCount": 18 + "providerModelRecordCount": 19 }, "sourceRecords": [ { @@ -410459,6 +420505,37 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "ofox", + "providerName": "Ofox", + "providerApi": "https://api.ofox.ai/v1", + "providerDoc": "https://ofox.ai/docs", + "model": "openai/gpt-5.6-terra", + "modelKey": "openai/gpt-5.6-terra", + "displayName": "GPT-5.6 Terra", + "family": "gpt-terra", + "metadata": { + "knowledgeCutoff": "2026-02-16", + "lastUpdated": "2026-07-09", + "openWeights": false, + "releaseDate": "2026-07-09", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -410809,6 +420886,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, @@ -410833,10 +420912,11 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.25, - "cacheWrite": 3.125, - "input": 2.5, - "output": 15 + "cacheRead": 0.125, + "cacheWrite": 1.5625, + "cacheWrite5m": 1.5625, + "input": 1.25, + "output": 7.5 } }, { @@ -410846,22 +420926,23 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "cacheRead": 0.25, - "cacheWrite": 3.125, - "input": 2.5, - "output": 15 + "cacheRead": 0.125, + "cacheWrite": 1.5625, + "cacheWrite5m": 1.5625, + "input": 1.25, + "output": 7.5 }, "other": { - "webSearch": 0.01 + "webSearch": 0.005 }, "extra": { "overrides": [ { "min_prompt_tokens": 272000, - "prompt": 0.000005, - "completion": 0.0000225, - "input_cache_read": 5e-7, - "input_cache_write": 0.00000625 + "prompt": 0.0000025, + "completion": 0.00001125, + "input_cache_read": 2.5e-7, + "input_cache_write": 0.000003125 } ] } @@ -412096,6 +422177,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true, @@ -412716,6 +422799,9 @@ "modes": [ "image_generation" ], + "statuses": [ + "deprecated" + ], "releaseDate": "2025-04-24", "lastUpdated": "2025-04-24", "supportedEndpoints": [ @@ -412751,6 +422837,7 @@ "modelKey": "gpt-image-1", "displayName": "gpt-image-1", "family": "gpt-image", + "status": "deprecated", "metadata": { "lastUpdated": "2025-04-24", "openWeights": false, @@ -415159,6 +425246,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -415209,6 +425298,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 30 } @@ -415222,6 +425312,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 30 }, @@ -415449,6 +425540,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -415651,6 +425744,8 @@ ], "providers": [ "abacus", + "aiand", + "aki-io", "azure_ai", "baseten", "berget", @@ -415671,6 +425766,7 @@ "groq", "helicone", "huggingface", + "hyper", "io-net", "kenari", "kilo", @@ -415705,6 +425801,8 @@ ], "aliases": [ "abacus/openai/gpt-oss-120b", + "aiand/openai/gpt-oss-120b", + "aki-io/gpt-oss-120b", "azure_ai/gpt-oss-120b", "baseten/openai/gpt-oss-120b", "berget/openai/gpt-oss-120b", @@ -415726,6 +425824,7 @@ "groq/openai/gpt-oss-120b", "helicone/gpt-oss-120b", "huggingface/openai/gpt-oss-120b", + "hyper/gpt-oss-120b", "io-net/openai/gpt-oss-120b", "kenari/gpt-oss-120b", "kilo/openai/gpt-oss-120b", @@ -415760,7 +425859,7 @@ "wandb/openai/gpt-oss-120b", "watsonx/openai/gpt-oss-120b" ], - "mergedProviderModelRecords": 55, + "mergedProviderModelRecords": 58, "limits": { "contextTokens": 131072, "inputTokens": 131072, @@ -415787,6 +425886,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -415823,6 +425924,28 @@ "output": 0.44 } }, + { + "source": "models.dev", + "provider": "aiand", + "model": "openai/gpt-oss-120b", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0.15, + "output": 0.6 + } + }, + { + "source": "models.dev", + "provider": "aki-io", + "model": "gpt-oss-120b", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0.15, + "output": 0.55 + } + }, { "source": "models.dev", "provider": "baseten", @@ -416001,6 +426124,19 @@ "output": 0.69 } }, + { + "source": "models.dev", + "provider": "hyper", + "model": "gpt-oss-120b", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheWrite": 0.089, + "cacheWrite5m": 0.089, + "input": 0.178, + "output": 0.68 + } + }, { "source": "models.dev", "provider": "io-net", @@ -416010,6 +426146,7 @@ "per1MTokens": { "cacheRead": 0.02, "cacheWrite": 0.08, + "cacheWrite5m": 0.08, "input": 0.04, "output": 0.4 } @@ -416043,8 +426180,9 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "input": 0.05, - "output": 0.25 + "cacheRead": 0.032, + "input": 0.032, + "output": 0.14 } }, { @@ -416089,6 +426227,7 @@ "per1MTokens": { "cacheRead": 0.015, "cacheWrite": 0.18, + "cacheWrite5m": 0.18, "input": 0.15, "output": 0.6, "reasoningOutput": 0.6 @@ -416158,6 +426297,7 @@ "per1MTokens": { "cacheRead": 0.015, "cacheWrite": 0.15, + "cacheWrite5m": 0.15, "input": 0.15, "output": 0.6 } @@ -416280,9 +426420,9 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.04, - "input": 0.04, - "output": 0.14 + "cacheRead": 0.03, + "input": 0.03, + "output": 0.17 } }, { @@ -416557,7 +426697,7 @@ "top_logprobs", "top_p" ], - "providerModelRecordCount": 55 + "providerModelRecordCount": 58 }, "sourceRecords": [ { @@ -416577,6 +426717,60 @@ "releaseDate": "2025-08-05" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "aiand", + "providerName": "ai&", + "providerApi": "https://api.aiand.com/v1", + "providerDoc": "https://docs.aiand.com/", + "model": "openai/gpt-oss-120b", + "modelKey": "openai/gpt-oss-120b", + "displayName": "GPT OSS 120B", + "family": "gpt-oss", + "metadata": { + "lastUpdated": "2025-08-05", + "openWeights": true, + "releaseDate": "2025-08-05", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high" + ] + } + ] + } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "aki-io", + "providerName": "AKI.IO", + "providerApi": "https://aki.io/v1", + "providerDoc": "https://aki.io/docs/", + "model": "gpt-oss-120b", + "modelKey": "gpt-oss-120b", + "displayName": "GPT OSS 120B", + "family": "gpt-oss", + "metadata": { + "lastUpdated": "2025-08-05", + "openWeights": true, + "releaseDate": "2025-08-05", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -416987,6 +427181,33 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "hyper", + "providerName": "Charm Hyper", + "providerApi": "https://hyper.charm.land/v1", + "providerDoc": "https://hyper.charm.land", + "model": "gpt-oss-120b", + "modelKey": "gpt-oss-120b", + "displayName": "GPT OSS 120B", + "family": "gpt-oss", + "metadata": { + "lastUpdated": "2026-07-22", + "openWeights": true, + "releaseDate": "2026-04-13", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -417891,6 +428112,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": false, "toolCalling": true, "videoInput": false, @@ -417989,6 +428212,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -418008,6 +428233,7 @@ "per1MTokens": { "cacheRead": 0.01, "cacheWrite": 0.125, + "cacheWrite5m": 0.125, "input": 0.1, "output": 0.5 } @@ -418096,6 +428322,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -418204,6 +428432,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -418494,6 +428724,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -418641,6 +428873,7 @@ "per1MTokens": { "cacheRead": 0.015, "cacheWrite": 0.06, + "cacheWrite5m": 0.06, "input": 0.03, "output": 0.14 } @@ -418751,9 +428984,8 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.03, "input": 0.03, - "output": 0.13 + "output": 0.14 } }, { @@ -418776,6 +429008,7 @@ "per1MTokens": { "cacheRead": 0.035, "cacheWrite": 0.07, + "cacheWrite5m": 0.07, "input": 0.07, "output": 0.3 } @@ -419001,9 +429234,8 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "cacheRead": 0.03, "input": 0.03, - "output": 0.13 + "output": 0.14 } } ] @@ -419996,6 +430228,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -420045,6 +430279,9 @@ "modes": [ "chat" ], + "statuses": [ + "deprecated" + ], "releaseDate": "2025-08-05", "lastUpdated": "2025-08-05", "providerModelRecordCount": 2 @@ -420060,6 +430297,7 @@ "modelKey": "openai/gpt-oss-20b-maas", "displayName": "GPT OSS 20B", "family": "gpt-oss", + "status": "deprecated", "metadata": { "lastUpdated": "2025-08-05", "openWeights": true, @@ -420209,6 +430447,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -420406,6 +430646,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -420553,6 +430795,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -420930,6 +431174,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "toolCalling": true, "videoInput": false, "supports1MContext": false @@ -421093,6 +431339,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "toolCalling": true, "videoInput": false, "supports1MContext": false @@ -421796,6 +432044,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": false, @@ -422799,6 +433049,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true, @@ -422973,6 +433225,7 @@ "per1MTokens": { "cacheRead": 7.5, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 15, "output": 60 } @@ -423006,6 +433259,9 @@ "modes": [ "chat" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2023-09", "releaseDate": "2024-12-05", "lastUpdated": "2024-12-05", @@ -423147,6 +433403,7 @@ "modelKey": "o1", "displayName": "o1", "family": "o", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2023-09", "lastUpdated": "2024-12-05", @@ -423229,6 +433486,7 @@ "modelKey": "openai/o1", "displayName": "o1", "family": "o", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2023-09", "lastUpdated": "2024-12-05", @@ -423464,7 +433722,7 @@ "id": "openai/o1-mini", "provider": "openai", "model": "o1-mini", - "displayName": "o1-mini", + "displayName": "OpenAI o1-mini", "family": "o-mini", "mode": "chat", "sources": [ @@ -423473,19 +433731,17 @@ ], "providers": [ "azure", - "azure-cognitive-services", "github-models", "helicone", "replicate" ], "aliases": [ - "azure-cognitive-services/o1-mini", "azure/o1-mini", "github-models/openai/o1-mini", "helicone/o1-mini", "replicate/openai/o1-mini" ], - "mergedProviderModelRecords": 5, + "mergedProviderModelRecords": 4, "limits": { "contextTokens": 128000, "inputTokens": 128000, @@ -423511,8 +433767,9 @@ "pdfInput": false, "reasoning": true, "temperature": false, - "toolCalling": true, + "toolCalling": false, "videoInput": false, + "supports1MContext": false, "embedding": false, "functionCalling": true, "imageGeneration": false, @@ -423523,37 +433780,12 @@ "speech": false, "transcription": false, "vision": false, - "supports1MContext": false, "systemMessages": true }, "pricing": { "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "o1-mini", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.55, - "input": 1.1, - "output": 4.4 - } - }, - { - "source": "models.dev", - "provider": "azure", - "model": "o1-mini", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.55, - "input": 1.1, - "output": 4.4 - } - }, { "source": "models.dev", "provider": "github-models", @@ -423606,8 +433838,7 @@ "metadata": { "displayNames": [ "OpenAI o1-mini", - "OpenAI: o1-mini", - "o1-mini" + "OpenAI: o1-mini" ], "families": [ "o-mini" @@ -423615,46 +433846,12 @@ "modes": [ "chat" ], - "knowledgeCutoff": "2023-09", + "knowledgeCutoff": "2023-10", "releaseDate": "2024-09-12", - "lastUpdated": "2024-09-12", - "providerModelRecordCount": 5 + "lastUpdated": "2024-12-17", + "providerModelRecordCount": 4 }, "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "o1-mini", - "modelKey": "o1-mini", - "displayName": "o1-mini", - "family": "o-mini", - "metadata": { - "knowledgeCutoff": "2023-09", - "lastUpdated": "2024-09-12", - "openWeights": false, - "releaseDate": "2024-09-12" - } - }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "o1-mini", - "modelKey": "o1-mini", - "displayName": "o1-mini", - "family": "o-mini", - "metadata": { - "knowledgeCutoff": "2023-09", - "lastUpdated": "2024-09-12", - "openWeights": false, - "releaseDate": "2024-09-12" - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -423890,6 +434087,8 @@ "videoInput": false, "supports1MContext": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": false, "embedding": false, "functionCalling": true, @@ -424192,6 +434391,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true, @@ -424315,6 +434516,9 @@ "modes": [ "responses" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2023-09", "releaseDate": "2025-03-19", "lastUpdated": "2026-03-15", @@ -424386,6 +434590,7 @@ "modelKey": "o1-pro", "displayName": "o1-pro", "family": "o-pro", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2023-09", "lastUpdated": "2025-03-19", @@ -424667,6 +434872,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true, @@ -424837,6 +435044,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 2, "output": 8 } @@ -425395,7 +435603,7 @@ "id": "openai/o3-deep-research", "provider": "openai", "model": "o3-deep-research", - "displayName": "o3-deep-research", + "displayName": "OpenAI: o3 Deep Research", "family": "o", "mode": "responses", "sources": [ @@ -425441,23 +435649,17 @@ ] }, "capabilities": { - "attachments": true, "audioInput": false, "audioOutput": false, - "imageInput": true, - "imageOutput": false, - "openWeights": false, - "pdfInput": true, - "reasoning": true, - "temperature": true, - "toolCalling": true, - "videoInput": false, "embedding": false, "functionCalling": true, "imageGeneration": false, + "imageInput": true, + "imageOutput": false, "moderation": false, "nativeStreaming": true, "parallelFunctionCalling": true, + "pdfInput": true, "promptCaching": true, "rerank": false, "responseSchema": true, @@ -425465,9 +435667,16 @@ "systemMessages": true, "toolChoice": true, "transcription": false, + "videoInput": false, "vision": true, "webSearch": true, "supports1MContext": false, + "attachments": true, + "openWeights": false, + "reasoning": true, + "mediumReasoningEffort": true, + "temperature": true, + "toolCalling": true, "structuredOutput": true }, "pricing": { @@ -425497,18 +435706,6 @@ "output": 19.992 } }, - { - "source": "models.dev", - "provider": "openai", - "model": "o3-deep-research", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 2.5, - "input": 10, - "output": 40 - } - }, { "source": "models.dev", "provider": "openrouter", @@ -425680,31 +435877,6 @@ ] } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "openai", - "providerName": "OpenAI", - "providerDoc": "https://platform.openai.com/docs/models", - "model": "o3-deep-research", - "modelKey": "o3-deep-research", - "displayName": "o3-deep-research", - "family": "o", - "metadata": { - "knowledgeCutoff": "2024-05", - "lastUpdated": "2024-06-26", - "openWeights": false, - "releaseDate": "2024-06-26", - "reasoningOptions": [ - { - "type": "effort", - "values": [ - "medium" - ] - } - ] - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -426023,6 +436195,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -426278,6 +436452,7 @@ "per1MTokens": { "cacheRead": 0.55, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.1, "output": 4.4 } @@ -426313,6 +436488,9 @@ "modes": [ "chat" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2024-05", "releaseDate": "2024-12-20", "lastUpdated": "2025-01-29", @@ -426385,6 +436563,7 @@ "modelKey": "o3-mini", "displayName": "o3-mini", "family": "o-mini", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2024-05", "lastUpdated": "2025-01-29", @@ -426412,6 +436591,7 @@ "modelKey": "o3-mini", "displayName": "o3-mini", "family": "o-mini", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2024-05", "lastUpdated": "2025-01-29", @@ -426635,6 +436815,7 @@ "modelKey": "o3-mini", "displayName": "o3-mini", "family": "o-mini", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2024-05", "lastUpdated": "2025-01-29", @@ -426717,6 +436898,7 @@ "modelKey": "openai/o3-mini", "displayName": "o3-mini", "family": "o-mini", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2024-05", "lastUpdated": "2025-01-29", @@ -427005,6 +437187,7 @@ "openWeights": false, "pdfInput": true, "reasoning": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true, @@ -427411,6 +437594,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -427927,6 +438112,8 @@ "attachments": false, "openWeights": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "toolCalling": true }, @@ -428140,6 +438327,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -428420,6 +438609,7 @@ "per1MTokens": { "cacheRead": 0.275, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.1, "output": 4.4 } @@ -428456,6 +438646,9 @@ "modes": [ "chat" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2024-05", "releaseDate": "2025-04-16", "lastUpdated": "2025-04-16", @@ -428533,6 +438726,7 @@ "modelKey": "o4-mini", "displayName": "o4-mini", "family": "o-mini", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2024-05", "lastUpdated": "2025-04-16", @@ -428560,6 +438754,7 @@ "modelKey": "o4-mini", "displayName": "o4-mini", "family": "o-mini", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2024-05", "lastUpdated": "2025-04-16", @@ -428825,6 +439020,7 @@ "modelKey": "o4-mini", "displayName": "o4-mini", "family": "o-mini", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2024-05", "lastUpdated": "2025-04-16", @@ -428940,6 +439136,7 @@ "modelKey": "openai/o4-mini", "displayName": "o4-mini", "family": "o-mini", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2024-05", "lastUpdated": "2025-04-16", @@ -429162,7 +439359,7 @@ "id": "openai/o4-mini-deep-research", "provider": "openai", "model": "o4-mini-deep-research", - "displayName": "o4-mini-deep-research", + "displayName": "OpenAI: o4 Mini Deep Research", "family": "o-mini", "mode": "responses", "sources": [ @@ -429204,23 +439401,17 @@ ] }, "capabilities": { - "attachments": true, "audioInput": false, "audioOutput": false, - "imageInput": true, - "imageOutput": false, - "openWeights": false, - "pdfInput": true, - "reasoning": true, - "temperature": true, - "toolCalling": true, - "videoInput": false, "embedding": false, "functionCalling": true, "imageGeneration": false, + "imageInput": true, + "imageOutput": false, "moderation": false, "nativeStreaming": true, "parallelFunctionCalling": true, + "pdfInput": true, "promptCaching": true, "rerank": false, "responseSchema": true, @@ -429228,11 +439419,19 @@ "systemMessages": true, "toolChoice": true, "transcription": false, + "videoInput": false, "vision": true, "webSearch": true, "supports1MContext": false, + "attachments": true, + "openWeights": false, + "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, + "temperature": true, + "toolCalling": true, "structuredOutput": true }, "pricing": { @@ -429262,18 +439461,6 @@ "output": 19.992 } }, - { - "source": "models.dev", - "provider": "openai", - "model": "o4-mini-deep-research", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.5, - "input": 2, - "output": 8 - } - }, { "source": "models.dev", "provider": "openrouter", @@ -429427,31 +439614,6 @@ ] } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "openai", - "providerName": "OpenAI", - "providerDoc": "https://platform.openai.com/docs/models", - "model": "o4-mini-deep-research", - "modelKey": "o4-mini-deep-research", - "displayName": "o4-mini-deep-research", - "family": "o-mini", - "metadata": { - "knowledgeCutoff": "2024-05", - "lastUpdated": "2024-06-26", - "openWeights": false, - "releaseDate": "2024-06-26", - "reasoningOptions": [ - { - "type": "effort", - "values": [ - "medium" - ] - } - ] - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -429698,6 +439860,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "toolCalling": true, "videoInput": false, @@ -433449,6 +443613,111 @@ } ] }, + { + "id": "opencode-go/hy3", + "provider": "opencode-go", + "model": "hy3", + "displayName": "Hy3", + "family": "Hy", + "sources": [ + "models.dev" + ], + "providers": [ + "opencode-go" + ], + "aliases": [ + "opencode-go/hy3" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 256000, + "outputTokens": 64000, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "lowReasoningEffort": true, + "highReasoningEffort": true, + "noneReasoningEffort": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "opencode-go", + "model": "hy3", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.035, + "input": 0.14, + "output": 0.58 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Hy3" + ], + "families": [ + "Hy" + ], + "releaseDate": "2026-07-06", + "lastUpdated": "2026-07-06", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "opencode-go", + "providerName": "OpenCode Go", + "providerApi": "https://opencode.ai/zen/go/v1", + "providerDoc": "https://opencode.ai/docs/zen", + "model": "hy3", + "modelKey": "hy3", + "displayName": "Hy3", + "family": "Hy", + "metadata": { + "lastUpdated": "2026-07-06", + "openWeights": true, + "releaseDate": "2026-07-06", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "high" + ] + } + ] + } + } + ] + }, { "id": "opencode-go/mimo-v2-omni", "provider": "opencode-go", @@ -433914,6 +444183,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -434021,6 +444291,9 @@ "families": [ "hy3-free" ], + "statuses": [ + "deprecated" + ], "releaseDate": "2026-06-26", "lastUpdated": "2026-06-26", "providerModelRecordCount": 1 @@ -434037,6 +444310,7 @@ "modelKey": "hy3-free", "displayName": "Hy3 Free", "family": "hy3-free", + "status": "deprecated", "metadata": { "lastUpdated": "2026-06-26", "openWeights": true, @@ -434143,6 +444417,112 @@ } ] }, + { + "id": "opencode/laguna-s-2.1-free", + "provider": "opencode", + "model": "laguna-s-2.1-free", + "displayName": "Laguna S 2.1 Free", + "family": "laguna", + "sources": [ + "models.dev" + ], + "providers": [ + "opencode" + ], + "aliases": [ + "opencode/laguna-s-2.1-free" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 256000, + "outputTokens": 32000, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "structuredOutput": false, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "opencode", + "model": "laguna-s-2.1-free", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0, + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Laguna S 2.1 Free" + ], + "families": [ + "laguna" + ], + "releaseDate": "2026-07-21", + "lastUpdated": "2026-07-21", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "opencode", + "providerName": "OpenCode Zen", + "providerApi": "https://opencode.ai/zen/v1", + "providerDoc": "https://opencode.ai/docs/zen", + "model": "laguna-s-2.1-free", + "modelKey": "laguna-s-2.1-free", + "displayName": "Laguna S 2.1 Free", + "family": "laguna", + "metadata": { + "lastUpdated": "2026-07-21", + "openWeights": true, + "releaseDate": "2026-07-21", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high" + ] + } + ] + } + } + ] + }, { "id": "opencode/ling-2.6-flash-free", "provider": "opencode", @@ -434240,6 +444620,112 @@ } ] }, + { + "id": "opencode/ling-3.0-flash-free", + "provider": "opencode", + "model": "ling-3.0-flash-free", + "displayName": "Ling-3.0-flash Free", + "family": "ling", + "sources": [ + "models.dev" + ], + "providers": [ + "opencode" + ], + "aliases": [ + "opencode/ling-3.0-flash-free" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 262144, + "outputTokens": 32768, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "structuredOutput": false, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "opencode", + "model": "ling-3.0-flash-free", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0, + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Ling-3.0-flash Free" + ], + "families": [ + "ling" + ], + "releaseDate": "2026-07-23", + "lastUpdated": "2026-07-23", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "opencode", + "providerName": "OpenCode Zen", + "providerApi": "https://opencode.ai/zen/v1", + "providerDoc": "https://opencode.ai/docs/zen", + "model": "ling-3.0-flash-free", + "modelKey": "ling-3.0-flash-free", + "displayName": "Ling-3.0-flash Free", + "family": "ling", + "metadata": { + "lastUpdated": "2026-07-23", + "openWeights": false, + "releaseDate": "2026-07-23", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high" + ] + } + ] + } + } + ] + }, { "id": "opencode/mimo-v2-flash-free", "provider": "opencode", @@ -434864,6 +445350,7 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -436676,100 +447163,6 @@ } ] }, - { - "id": "openrouter/dolphin-mistral-24b-venice-edition:free", - "provider": "openrouter", - "model": "dolphin-mistral-24b-venice-edition:free", - "displayName": "Uncensored (free)", - "family": "mistral", - "sources": [ - "models.dev" - ], - "providers": [ - "openrouter" - ], - "aliases": [ - "openrouter/cognitivecomputations/dolphin-mistral-24b-venice-edition:free" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 32768, - "outputTokens": 32768, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "structuredOutput": true, - "temperature": true, - "toolCalling": false, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "openrouter", - "model": "cognitivecomputations/dolphin-mistral-24b-venice-edition:free", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0, - "output": 0 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Uncensored (free)" - ], - "families": [ - "mistral" - ], - "knowledgeCutoff": "2024-04-30", - "releaseDate": "2025-07-09", - "lastUpdated": "2025-07-09", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "openrouter", - "providerName": "OpenRouter", - "providerApi": "https://openrouter.ai/api/v1", - "providerDoc": "https://openrouter.ai/models", - "model": "cognitivecomputations/dolphin-mistral-24b-venice-edition:free", - "modelKey": "cognitivecomputations/dolphin-mistral-24b-venice-edition:free", - "displayName": "Uncensored (free)", - "family": "mistral", - "metadata": { - "knowledgeCutoff": "2024-04-30", - "lastUpdated": "2025-07-09", - "openWeights": true, - "releaseDate": "2025-07-09" - } - } - ] - }, { "id": "openrouter/ernie-4.5-vl-424b-a47b", "provider": "openrouter", @@ -436788,7 +447181,7 @@ ], "mergedProviderModelRecords": 1, "limits": { - "contextTokens": 131072, + "contextTokens": 123000, "outputTokens": 16000, "supports1MContext": false }, @@ -437171,6 +447564,7 @@ "openWeights": false, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -437917,100 +448311,6 @@ } ] }, - { - "id": "openrouter/hermes-3-llama-3.1-405b:free", - "provider": "openrouter", - "model": "hermes-3-llama-3.1-405b:free", - "displayName": "Hermes 3 405B Instruct (free)", - "family": "hermes", - "sources": [ - "models.dev" - ], - "providers": [ - "openrouter" - ], - "aliases": [ - "openrouter/nousresearch/hermes-3-llama-3.1-405b:free" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 131072, - "outputTokens": 131072, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": false, - "structuredOutput": false, - "temperature": true, - "toolCalling": false, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "openrouter", - "model": "nousresearch/hermes-3-llama-3.1-405b:free", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0, - "output": 0 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Hermes 3 405B Instruct (free)" - ], - "families": [ - "hermes" - ], - "knowledgeCutoff": "2023-12-31", - "releaseDate": "2024-08-16", - "lastUpdated": "2024-08-16", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "openrouter", - "providerName": "OpenRouter", - "providerApi": "https://openrouter.ai/api/v1", - "providerDoc": "https://openrouter.ai/models", - "model": "nousresearch/hermes-3-llama-3.1-405b:free", - "modelKey": "nousresearch/hermes-3-llama-3.1-405b:free", - "displayName": "Hermes 3 405B Instruct (free)", - "family": "hermes", - "metadata": { - "knowledgeCutoff": "2023-12-31", - "lastUpdated": "2024-08-16", - "openWeights": true, - "releaseDate": "2024-08-16" - } - } - ] - }, { "id": "openrouter/hermes-3-llama-3.1-70b", "provider": "openrouter", @@ -438668,7 +448968,7 @@ "provider": "openrouter", "model": "hy3", "displayName": "Hy3", - "family": "hy3", + "family": "Hy", "sources": [ "models.dev", "openrouter" @@ -438682,7 +448982,7 @@ "mergedProviderModelRecords": 1, "limits": { "contextTokens": 262144, - "outputTokens": 131072, + "outputTokens": 128000, "supports1MContext": false }, "modalities": { @@ -438703,6 +449003,7 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -438725,9 +449026,9 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.05, - "input": 0.2, - "output": 0.8 + "cacheRead": 0.033, + "input": 0.132, + "output": 0.528 } }, { @@ -438737,9 +449038,9 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "cacheRead": 0.05, - "input": 0.2, - "output": 0.8 + "cacheRead": 0.033, + "input": 0.132, + "output": 0.528 } } ] @@ -438750,7 +449051,7 @@ "Tencent: Hy3" ], "families": [ - "hy3" + "Hy" ], "releaseDate": "2026-07-06", "lastUpdated": "2026-07-06", @@ -438758,6 +449059,7 @@ "frequency_penalty", "include_reasoning", "logit_bias", + "max_completion_tokens", "max_tokens", "min_p", "presence_penalty", @@ -438787,7 +449089,7 @@ "model": "tencent/hy3", "modelKey": "tencent/hy3", "displayName": "Hy3", - "family": "hy3", + "family": "Hy", "metadata": { "lastUpdated": "2026-07-06", "openWeights": true, @@ -438819,7 +449121,7 @@ }, "reasoning": { "mandatory": false, - "default_enabled": false, + "default_enabled": true, "supported_efforts": [ "high", "low", @@ -438831,6 +449133,7 @@ "frequency_penalty", "include_reasoning", "logit_bias", + "max_completion_tokens", "max_tokens", "min_p", "presence_penalty", @@ -438850,7 +449153,7 @@ "tokenizer": "Other", "topProvider": { "context_length": 262144, - "max_completion_tokens": 131072, + "max_completion_tokens": 128000, "is_moderated": false } } @@ -438897,6 +449200,7 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": false, "temperature": true, @@ -438949,18 +449253,14 @@ "releaseDate": "2026-04-20", "lastUpdated": "2026-04-20", "supportedParameters": [ - "frequency_penalty", "include_reasoning", "max_tokens", - "presence_penalty", "reasoning", "reasoning_effort", "seed", - "stop", "temperature", "tool_choice", "tools", - "top_k", "top_p" ], "providerModelRecordCount": 1 @@ -439017,18 +449317,14 @@ "default_effort": "high" }, "supportedParameters": [ - "frequency_penalty", "include_reasoning", "max_tokens", - "presence_penalty", "reasoning", "reasoning_effort", "seed", - "stop", "temperature", "tool_choice", "tools", - "top_k", "top_p" ], "tokenizer": "Other", @@ -439041,471 +449337,6 @@ } ] }, - { - "id": "openrouter/hy3:free", - "provider": "openrouter", - "model": "hy3:free", - "displayName": "Hy3 (free)", - "family": "hy3", - "sources": [ - "models.dev", - "openrouter" - ], - "providers": [ - "openrouter" - ], - "aliases": [ - "openrouter/tencent/hy3:free" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 262144, - "outputTokens": 262144, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": true, - "lowReasoningEffort": true, - "noneReasoningEffort": true, - "structuredOutput": true, - "temperature": true, - "toolCalling": true, - "videoInput": false, - "parallelFunctionCalling": false, - "responseSchema": false, - "toolChoice": true, - "webSearch": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "openrouter", - "model": "tencent/hy3:free", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0, - "output": 0 - } - }, - { - "source": "openrouter", - "provider": "openrouter", - "model": "tencent/hy3:free", - "sourceUrl": "https://openrouter.ai/api/v1/models", - "sourceUnit": "usd_per_token_for_token_fields", - "per1MTokens": { - "input": 0, - "output": 0 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Hy3 (free)", - "Tencent: Hy3 (free)" - ], - "families": [ - "hy3" - ], - "releaseDate": "2026-07-06", - "lastUpdated": "2026-07-06", - "supportedParameters": [ - "frequency_penalty", - "include_reasoning", - "max_tokens", - "presence_penalty", - "reasoning", - "reasoning_effort", - "repetition_penalty", - "seed", - "stop", - "structured_outputs", - "temperature", - "tool_choice", - "tools", - "top_k", - "top_p" - ], - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "openrouter", - "providerName": "OpenRouter", - "providerApi": "https://openrouter.ai/api/v1", - "providerDoc": "https://openrouter.ai/models", - "model": "tencent/hy3:free", - "modelKey": "tencent/hy3:free", - "displayName": "Hy3 (free)", - "family": "hy3", - "metadata": { - "lastUpdated": "2026-07-06", - "openWeights": true, - "releaseDate": "2026-07-06", - "reasoningOptions": [ - { - "type": "effort", - "values": [ - "none", - "low", - "high" - ] - } - ] - } - }, - { - "source": "openrouter", - "sourceUrl": "https://openrouter.ai/api/v1/models", - "provider": "openrouter", - "model": "tencent/hy3:free", - "displayName": "Tencent: Hy3 (free)", - "metadata": { - "canonicalSlug": "tencent/hy3-20260706", - "createdAt": "2026-07-06T13:20:48.000Z", - "expirationDate": "2026-07-21", - "huggingFaceId": "tencent/Hy3", - "links": { - "details": "/api/v1/models/tencent/hy3-20260706/endpoints" - }, - "reasoning": { - "mandatory": false, - "default_enabled": false, - "supported_efforts": [ - "high", - "low", - "none" - ], - "default_effort": "high" - }, - "supportedParameters": [ - "frequency_penalty", - "include_reasoning", - "max_tokens", - "presence_penalty", - "reasoning", - "reasoning_effort", - "repetition_penalty", - "seed", - "stop", - "structured_outputs", - "temperature", - "tool_choice", - "tools", - "top_k", - "top_p" - ], - "tokenizer": "Other", - "topProvider": { - "context_length": 262144, - "max_completion_tokens": 262144, - "is_moderated": false - } - } - } - ] - }, - { - "id": "openrouter/inflection-3-pi", - "provider": "openrouter", - "model": "inflection-3-pi", - "displayName": "Inflection 3 Pi", - "sources": [ - "models.dev", - "openrouter" - ], - "providers": [ - "openrouter" - ], - "aliases": [ - "openrouter/inflection/inflection-3-pi" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 8000, - "outputTokens": 1024, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": false, - "pdfInput": false, - "reasoning": false, - "structuredOutput": false, - "temperature": true, - "toolCalling": false, - "videoInput": false, - "parallelFunctionCalling": false, - "responseSchema": false, - "toolChoice": false, - "webSearch": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "openrouter", - "model": "inflection/inflection-3-pi", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 2.5, - "output": 10 - } - }, - { - "source": "openrouter", - "provider": "openrouter", - "model": "inflection/inflection-3-pi", - "sourceUrl": "https://openrouter.ai/api/v1/models", - "sourceUnit": "usd_per_token_for_token_fields", - "per1MTokens": { - "input": 2.5, - "output": 10 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Inflection 3 Pi", - "Inflection: Inflection 3 Pi" - ], - "knowledgeCutoff": "2024-10-31", - "releaseDate": "2024-10-11", - "lastUpdated": "2024-10-11", - "supportedParameters": [ - "max_tokens", - "stop", - "temperature", - "top_p" - ], - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "openrouter", - "providerName": "OpenRouter", - "providerApi": "https://openrouter.ai/api/v1", - "providerDoc": "https://openrouter.ai/models", - "model": "inflection/inflection-3-pi", - "modelKey": "inflection/inflection-3-pi", - "displayName": "Inflection 3 Pi", - "metadata": { - "knowledgeCutoff": "2024-10-31", - "lastUpdated": "2024-10-11", - "openWeights": false, - "releaseDate": "2024-10-11" - } - }, - { - "source": "openrouter", - "sourceUrl": "https://openrouter.ai/api/v1/models", - "provider": "openrouter", - "model": "inflection/inflection-3-pi", - "displayName": "Inflection: Inflection 3 Pi", - "metadata": { - "canonicalSlug": "inflection/inflection-3-pi", - "createdAt": "2024-10-11T00:00:00.000Z", - "knowledgeCutoff": "2024-10-31", - "links": { - "details": "/api/v1/models/inflection/inflection-3-pi/endpoints" - }, - "supportedParameters": [ - "max_tokens", - "stop", - "temperature", - "top_p" - ], - "tokenizer": "Other", - "topProvider": { - "context_length": 8000, - "max_completion_tokens": 1024, - "is_moderated": false - } - } - } - ] - }, - { - "id": "openrouter/inflection-3-productivity", - "provider": "openrouter", - "model": "inflection-3-productivity", - "displayName": "Inflection 3 Productivity", - "sources": [ - "models.dev", - "openrouter" - ], - "providers": [ - "openrouter" - ], - "aliases": [ - "openrouter/inflection/inflection-3-productivity" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 8000, - "outputTokens": 1024, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": false, - "pdfInput": false, - "reasoning": false, - "structuredOutput": false, - "temperature": true, - "toolCalling": false, - "videoInput": false, - "parallelFunctionCalling": false, - "responseSchema": false, - "toolChoice": false, - "webSearch": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "openrouter", - "model": "inflection/inflection-3-productivity", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 2.5, - "output": 10 - } - }, - { - "source": "openrouter", - "provider": "openrouter", - "model": "inflection/inflection-3-productivity", - "sourceUrl": "https://openrouter.ai/api/v1/models", - "sourceUnit": "usd_per_token_for_token_fields", - "per1MTokens": { - "input": 2.5, - "output": 10 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Inflection 3 Productivity", - "Inflection: Inflection 3 Productivity" - ], - "knowledgeCutoff": "2024-10-31", - "releaseDate": "2024-10-11", - "lastUpdated": "2024-10-11", - "supportedParameters": [ - "max_tokens", - "stop", - "temperature", - "top_p" - ], - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "openrouter", - "providerName": "OpenRouter", - "providerApi": "https://openrouter.ai/api/v1", - "providerDoc": "https://openrouter.ai/models", - "model": "inflection/inflection-3-productivity", - "modelKey": "inflection/inflection-3-productivity", - "displayName": "Inflection 3 Productivity", - "metadata": { - "knowledgeCutoff": "2024-10-31", - "lastUpdated": "2024-10-11", - "openWeights": false, - "releaseDate": "2024-10-11" - } - }, - { - "source": "openrouter", - "sourceUrl": "https://openrouter.ai/api/v1/models", - "provider": "openrouter", - "model": "inflection/inflection-3-productivity", - "displayName": "Inflection: Inflection 3 Productivity", - "metadata": { - "canonicalSlug": "inflection/inflection-3-productivity", - "createdAt": "2024-10-11T00:00:00.000Z", - "knowledgeCutoff": "2024-10-31", - "links": { - "details": "/api/v1/models/inflection/inflection-3-productivity/endpoints" - }, - "supportedParameters": [ - "max_tokens", - "stop", - "temperature", - "top_p" - ], - "tokenizer": "Other", - "topProvider": { - "context_length": 8000, - "max_completion_tokens": 1024, - "is_moderated": false - } - } - } - ] - }, { "id": "openrouter/inkling", "provider": "openrouter", @@ -439548,6 +449379,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, @@ -439611,6 +449444,7 @@ "reasoning", "reasoning_effort", "repetition_penalty", + "seed", "stop", "temperature", "tool_choice", @@ -439687,6 +449521,7 @@ "reasoning", "reasoning_effort", "repetition_penalty", + "seed", "stop", "temperature", "tool_choice", @@ -439881,7 +449716,7 @@ ], "mergedProviderModelRecords": 1, "limits": { - "contextTokens": 256000, + "contextTokens": 262144, "outputTokens": 80000, "supports1MContext": false }, @@ -440692,8 +450527,7 @@ "displayName": "Laguna M.1", "family": "laguna", "sources": [ - "models.dev", - "openrouter" + "models.dev" ], "providers": [ "openrouter" @@ -440728,10 +450562,6 @@ "temperature": true, "toolCalling": true, "videoInput": false, - "parallelFunctionCalling": false, - "responseSchema": false, - "toolChoice": true, - "webSearch": false, "supports1MContext": false }, "pricing": { @@ -440749,39 +450579,18 @@ "input": 0.2, "output": 0.4 } - }, - { - "source": "openrouter", - "provider": "openrouter", - "model": "poolside/laguna-m.1", - "sourceUrl": "https://openrouter.ai/api/v1/models", - "sourceUnit": "usd_per_token_for_token_fields", - "per1MTokens": { - "cacheRead": 0.1, - "input": 0.2, - "output": 0.4 - } } ] }, "metadata": { "displayNames": [ - "Laguna M.1", - "Poolside: Laguna M.1" + "Laguna M.1" ], "families": [ "laguna" ], "releaseDate": "2026-04-28", "lastUpdated": "2026-06-13", - "supportedParameters": [ - "include_reasoning", - "max_tokens", - "reasoning", - "temperature", - "tool_choice", - "tools" - ], "providerModelRecordCount": 1 }, "sourceRecords": [ @@ -440801,40 +450610,6 @@ "openWeights": true, "releaseDate": "2026-04-28" } - }, - { - "source": "openrouter", - "sourceUrl": "https://openrouter.ai/api/v1/models", - "provider": "openrouter", - "model": "poolside/laguna-m.1", - "displayName": "Poolside: Laguna M.1", - "metadata": { - "canonicalSlug": "poolside/laguna-m.1-20260312", - "createdAt": "2026-04-28T15:01:44.000Z", - "expirationDate": "2026-07-28", - "huggingFaceId": "poolside/Laguna-M.1", - "links": { - "details": "/api/v1/models/poolside/laguna-m.1-20260312/endpoints" - }, - "reasoning": { - "mandatory": false, - "default_enabled": true - }, - "supportedParameters": [ - "include_reasoning", - "max_tokens", - "reasoning", - "temperature", - "tool_choice", - "tools" - ], - "tokenizer": "Other", - "topProvider": { - "context_length": 262144, - "max_completion_tokens": 32768, - "is_moderated": false - } - } } ] }, @@ -440844,6 +450619,98 @@ "model": "laguna-m.1:free", "displayName": "Laguna M.1 (free)", "family": "laguna", + "sources": [ + "models.dev" + ], + "providers": [ + "openrouter" + ], + "aliases": [ + "openrouter/poolside/laguna-m.1:free" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 262144, + "outputTokens": 32768, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "structuredOutput": false, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "openrouter", + "model": "poolside/laguna-m.1:free", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Laguna M.1 (free)" + ], + "families": [ + "laguna" + ], + "releaseDate": "2026-04-28", + "lastUpdated": "2026-06-13", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "openrouter", + "providerName": "OpenRouter", + "providerApi": "https://openrouter.ai/api/v1", + "providerDoc": "https://openrouter.ai/models", + "model": "poolside/laguna-m.1:free", + "modelKey": "poolside/laguna-m.1:free", + "displayName": "Laguna M.1 (free)", + "family": "laguna", + "metadata": { + "lastUpdated": "2026-06-13", + "openWeights": true, + "releaseDate": "2026-04-28" + } + } + ] + }, + { + "id": "openrouter/laguna-s-2.1", + "provider": "openrouter", + "model": "laguna-s-2.1", + "displayName": "Laguna S 2.1", + "family": "laguna-s", "sources": [ "models.dev", "openrouter" @@ -440852,7 +450719,161 @@ "openrouter" ], "aliases": [ - "openrouter/poolside/laguna-m.1:free" + "openrouter/poolside/laguna-s-2.1" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1048576, + "outputTokens": 131072, + "supports1MContext": true + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "structuredOutput": false, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "parallelFunctionCalling": false, + "responseSchema": false, + "toolChoice": true, + "webSearch": false, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "openrouter", + "model": "poolside/laguna-s-2.1", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.01, + "input": 0.1, + "output": 0.2 + } + }, + { + "source": "openrouter", + "provider": "openrouter", + "model": "poolside/laguna-s-2.1", + "sourceUrl": "https://openrouter.ai/api/v1/models", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "cacheRead": 0.01, + "input": 0.1, + "output": 0.2 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Laguna S 2.1", + "Poolside: Laguna S 2.1" + ], + "families": [ + "laguna-s" + ], + "releaseDate": "2026-07-21", + "lastUpdated": "2026-07-21", + "supportedParameters": [ + "include_reasoning", + "max_tokens", + "reasoning", + "stop", + "temperature", + "tool_choice", + "tools" + ], + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "openrouter", + "providerName": "OpenRouter", + "providerApi": "https://openrouter.ai/api/v1", + "providerDoc": "https://openrouter.ai/models", + "model": "poolside/laguna-s-2.1", + "modelKey": "poolside/laguna-s-2.1", + "displayName": "Laguna S 2.1", + "family": "laguna-s", + "metadata": { + "lastUpdated": "2026-07-21", + "openWeights": true, + "releaseDate": "2026-07-21" + } + }, + { + "source": "openrouter", + "sourceUrl": "https://openrouter.ai/api/v1/models", + "provider": "openrouter", + "model": "poolside/laguna-s-2.1", + "displayName": "Poolside: Laguna S 2.1", + "metadata": { + "canonicalSlug": "poolside/laguna-s-2.1-20260720", + "createdAt": "2026-07-21T16:51:23.000Z", + "huggingFaceId": "poolside/Laguna-S-2.1", + "links": { + "details": "/api/v1/models/poolside/laguna-s-2.1-20260720/endpoints" + }, + "reasoning": { + "mandatory": false, + "default_enabled": true + }, + "supportedParameters": [ + "include_reasoning", + "max_tokens", + "reasoning", + "stop", + "temperature", + "tool_choice", + "tools" + ], + "tokenizer": "Other", + "topProvider": { + "context_length": 1048576, + "max_completion_tokens": 131072, + "is_moderated": false + } + } + } + ] + }, + { + "id": "openrouter/laguna-s-2.1:free", + "provider": "openrouter", + "model": "laguna-s-2.1:free", + "displayName": "Laguna S 2.1 (free)", + "family": "laguna-s", + "sources": [ + "models.dev", + "openrouter" + ], + "providers": [ + "openrouter" + ], + "aliases": [ + "openrouter/poolside/laguna-s-2.1:free" ], "mergedProviderModelRecords": 1, "limits": { @@ -440894,7 +450915,7 @@ { "source": "models.dev", "provider": "openrouter", - "model": "poolside/laguna-m.1:free", + "model": "poolside/laguna-s-2.1:free", "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { @@ -440905,7 +450926,7 @@ { "source": "openrouter", "provider": "openrouter", - "model": "poolside/laguna-m.1:free", + "model": "poolside/laguna-s-2.1:free", "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { @@ -440917,14 +450938,14 @@ }, "metadata": { "displayNames": [ - "Laguna M.1 (free)", - "Poolside: Laguna M.1 (free)" + "Laguna S 2.1 (free)", + "Poolside: Laguna S 2.1 (free)" ], "families": [ - "laguna" + "laguna-s" ], - "releaseDate": "2026-04-28", - "lastUpdated": "2026-06-13", + "releaseDate": "2026-07-21", + "lastUpdated": "2026-07-21", "supportedParameters": [ "include_reasoning", "max_tokens", @@ -440943,29 +450964,28 @@ "providerName": "OpenRouter", "providerApi": "https://openrouter.ai/api/v1", "providerDoc": "https://openrouter.ai/models", - "model": "poolside/laguna-m.1:free", - "modelKey": "poolside/laguna-m.1:free", - "displayName": "Laguna M.1 (free)", - "family": "laguna", + "model": "poolside/laguna-s-2.1:free", + "modelKey": "poolside/laguna-s-2.1:free", + "displayName": "Laguna S 2.1 (free)", + "family": "laguna-s", "metadata": { - "lastUpdated": "2026-06-13", + "lastUpdated": "2026-07-21", "openWeights": true, - "releaseDate": "2026-04-28" + "releaseDate": "2026-07-21" } }, { "source": "openrouter", "sourceUrl": "https://openrouter.ai/api/v1/models", "provider": "openrouter", - "model": "poolside/laguna-m.1:free", - "displayName": "Poolside: Laguna M.1 (free)", + "model": "poolside/laguna-s-2.1:free", + "displayName": "Poolside: Laguna S 2.1 (free)", "metadata": { - "canonicalSlug": "poolside/laguna-m.1-20260312", - "createdAt": "2026-04-28T15:01:44.000Z", - "expirationDate": "2026-07-28", - "huggingFaceId": "poolside/Laguna-M.1", + "canonicalSlug": "poolside/laguna-s-2.1-20260720", + "createdAt": "2026-07-21T16:51:23.000Z", + "huggingFaceId": "poolside/Laguna-S-2.1", "links": { - "details": "/api/v1/models/poolside/laguna-m.1-20260312/endpoints" + "details": "/api/v1/models/poolside/laguna-s-2.1-20260720/endpoints" }, "reasoning": { "mandatory": false, @@ -441621,6 +451641,361 @@ } ] }, + { + "id": "openrouter/ling-3.0-flash:free", + "provider": "openrouter", + "model": "ling-3.0-flash:free", + "displayName": "Ling-3.0-flash (free)", + "family": "ling", + "sources": [ + "models.dev", + "openrouter" + ], + "providers": [ + "openrouter" + ], + "aliases": [ + "openrouter/inclusionai/ling-3.0-flash:free" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 262144, + "outputTokens": 32768, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "structuredOutput": false, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "parallelFunctionCalling": false, + "responseSchema": false, + "toolChoice": true, + "webSearch": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "openrouter", + "model": "inclusionai/ling-3.0-flash:free", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + }, + { + "source": "openrouter", + "provider": "openrouter", + "model": "inclusionai/ling-3.0-flash:free", + "sourceUrl": "https://openrouter.ai/api/v1/models", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Ling-3.0-flash (free)" + ], + "families": [ + "ling" + ], + "releaseDate": "2026-07-23", + "lastUpdated": "2026-07-23", + "supportedParameters": [ + "frequency_penalty", + "include_reasoning", + "logprobs", + "max_tokens", + "presence_penalty", + "reasoning", + "repetition_penalty", + "seed", + "stop", + "temperature", + "tool_choice", + "tools", + "top_k", + "top_logprobs", + "top_p" + ], + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "openrouter", + "providerName": "OpenRouter", + "providerApi": "https://openrouter.ai/api/v1", + "providerDoc": "https://openrouter.ai/models", + "model": "inclusionai/ling-3.0-flash:free", + "modelKey": "inclusionai/ling-3.0-flash:free", + "displayName": "Ling-3.0-flash (free)", + "family": "ling", + "metadata": { + "lastUpdated": "2026-07-23", + "openWeights": false, + "releaseDate": "2026-07-23", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high" + ] + } + ] + } + }, + { + "source": "openrouter", + "sourceUrl": "https://openrouter.ai/api/v1/models", + "provider": "openrouter", + "model": "inclusionai/ling-3.0-flash:free", + "displayName": "Ling-3.0-flash (free)", + "metadata": { + "canonicalSlug": "inclusionai/ling-3.0-flash-20260723", + "createdAt": "2026-07-23T14:56:20.000Z", + "links": { + "details": "/api/v1/models/inclusionai/ling-3.0-flash-20260723/endpoints" + }, + "reasoning": { + "mandatory": false, + "default_enabled": true + }, + "supportedParameters": [ + "frequency_penalty", + "include_reasoning", + "logprobs", + "max_tokens", + "presence_penalty", + "reasoning", + "repetition_penalty", + "seed", + "stop", + "temperature", + "tool_choice", + "tools", + "top_k", + "top_logprobs", + "top_p" + ], + "tokenizer": "Other", + "topProvider": { + "context_length": 262144, + "max_completion_tokens": 32768, + "is_moderated": false + } + } + } + ] + }, + { + "id": "openrouter/longcat-2.0", + "provider": "openrouter", + "model": "longcat-2.0", + "displayName": "LongCat 2.0", + "family": "longcat", + "sources": [ + "models.dev", + "openrouter" + ], + "providers": [ + "openrouter" + ], + "aliases": [ + "openrouter/meituan/longcat-2.0" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1048756, + "outputTokens": 262144, + "supports1MContext": true + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "structuredOutput": false, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "parallelFunctionCalling": false, + "responseSchema": false, + "toolChoice": true, + "webSearch": false, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "openrouter", + "model": "meituan/longcat-2.0", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.006, + "input": 0.3, + "output": 1.2 + } + }, + { + "source": "openrouter", + "provider": "openrouter", + "model": "meituan/longcat-2.0", + "sourceUrl": "https://openrouter.ai/api/v1/models", + "sourceUnit": "usd_per_token_for_token_fields", + "per1MTokens": { + "cacheRead": 0.006, + "input": 0.3, + "output": 1.2 + } + } + ] + }, + "metadata": { + "displayNames": [ + "LongCat 2.0", + "Meituan: LongCat 2.0" + ], + "families": [ + "longcat" + ], + "releaseDate": "2026-07-20", + "lastUpdated": "2026-07-20", + "supportedParameters": [ + "frequency_penalty", + "include_reasoning", + "logit_bias", + "max_tokens", + "min_p", + "presence_penalty", + "reasoning", + "repetition_penalty", + "seed", + "stop", + "temperature", + "tool_choice", + "tools", + "top_k", + "top_p" + ], + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "openrouter", + "providerName": "OpenRouter", + "providerApi": "https://openrouter.ai/api/v1", + "providerDoc": "https://openrouter.ai/models", + "model": "meituan/longcat-2.0", + "modelKey": "meituan/longcat-2.0", + "displayName": "LongCat 2.0", + "family": "longcat", + "metadata": { + "lastUpdated": "2026-07-20", + "openWeights": true, + "releaseDate": "2026-07-20", + "reasoningOptions": [ + { + "type": "budget_tokens" + } + ] + } + }, + { + "source": "openrouter", + "sourceUrl": "https://openrouter.ai/api/v1/models", + "provider": "openrouter", + "model": "meituan/longcat-2.0", + "displayName": "Meituan: LongCat 2.0", + "metadata": { + "canonicalSlug": "meituan/longcat-2.0-20260720", + "createdAt": "2026-07-20T13:37:38.000Z", + "huggingFaceId": "meituan-longcat/LongCat-2.0", + "links": { + "details": "/api/v1/models/meituan/longcat-2.0-20260720/endpoints" + }, + "reasoning": { + "mandatory": false, + "default_enabled": true, + "supports_max_tokens": true + }, + "supportedParameters": [ + "frequency_penalty", + "include_reasoning", + "logit_bias", + "max_tokens", + "min_p", + "presence_penalty", + "reasoning", + "repetition_penalty", + "seed", + "stop", + "temperature", + "tool_choice", + "tools", + "top_k", + "top_p" + ], + "tokenizer": "Other", + "topProvider": { + "context_length": 1048756, + "max_completion_tokens": 262144, + "is_moderated": false + } + } + } + ] + }, { "id": "openrouter/magnum-v4-72b", "provider": "openrouter", @@ -441638,7 +452013,7 @@ ], "mergedProviderModelRecords": 1, "limits": { - "contextTokens": 32768, + "contextTokens": 16384, "outputTokens": 2048, "supports1MContext": false }, @@ -441825,6 +452200,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -442027,6 +452404,7 @@ "per1MTokens": { "cacheRead": 0.01, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.1, "output": 0.3 } @@ -442069,7 +452447,7 @@ ], "mergedProviderModelRecords": 1, "limits": { - "contextTokens": 1048576, + "contextTokens": 1050000, "inputTokens": 1048576, "maxTokens": 131072, "outputTokens": 131072, @@ -442139,6 +452517,7 @@ "per1MTokens": { "cacheRead": 0.08, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.4, "output": 2 } @@ -442292,7 +452671,7 @@ ], "mergedProviderModelRecords": 1, "limits": { - "contextTokens": 1048576, + "contextTokens": 1050000, "inputTokens": 1048576, "maxTokens": 16384, "outputTokens": 131072, @@ -442359,6 +452738,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1, "output": 3 } @@ -443503,6 +453883,7 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -443524,9 +453905,8 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.06, - "input": 0.21, - "output": 0.455 + "input": 0.085, + "output": 0.4 } }, { @@ -443679,9 +454059,9 @@ ], "mergedProviderModelRecords": 1, "limits": { - "contextTokens": 1000000, + "contextTokens": 262144, "outputTokens": 262144, - "supports1MContext": true + "supports1MContext": false }, "modalities": { "input": [ @@ -443701,6 +454081,7 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -443709,7 +454090,7 @@ "responseSchema": true, "toolChoice": true, "webSearch": false, - "supports1MContext": true + "supports1MContext": false }, "pricing": { "currency": "USD", @@ -443858,9 +454239,9 @@ ], "mergedProviderModelRecords": 1, "limits": { - "contextTokens": 1000000, + "contextTokens": 512288, "outputTokens": 16384, - "supports1MContext": true + "supports1MContext": false }, "modalities": { "input": [ @@ -443879,6 +454260,8 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -443887,7 +454270,7 @@ "responseSchema": true, "toolChoice": true, "webSearch": false, - "supports1MContext": true + "supports1MContext": false }, "pricing": { "currency": "USD", @@ -443912,9 +454295,9 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "cacheRead": 0.2, - "input": 0.6, - "output": 3.6 + "cacheRead": 0.1, + "input": 0.5, + "output": 2.2 } } ] @@ -444026,8 +454409,8 @@ ], "tokenizer": "Other", "topProvider": { - "context_length": 512288, - "max_completion_tokens": null, + "context_length": 262144, + "max_completion_tokens": 16384, "is_moderated": false } } @@ -444073,6 +454456,8 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": false, "temperature": true, "toolCalling": true, @@ -446524,7 +456909,7 @@ "tokenizer": "Llama2", "topProvider": { "context_length": 6144, - "max_completion_tokens": 4096, + "max_completion_tokens": 2048, "is_moderated": false } } @@ -446570,6 +456955,7 @@ "openWeights": false, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": false, "temperature": true, @@ -447337,6 +457723,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -447528,6 +457916,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -448162,7 +458552,7 @@ ], "mergedProviderModelRecords": 1, "limits": { - "contextTokens": 256000, + "contextTokens": 262144, "inputTokens": 256000, "outputTokens": 256000, "supports1MContext": false @@ -448187,6 +458577,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -448360,7 +458752,7 @@ "mergedProviderModelRecords": 1, "limits": { "contextTokens": 262144, - "outputTokens": 80000, + "outputTokens": 262144, "supports1MContext": false }, "modalities": { @@ -448380,12 +458772,12 @@ "openWeights": true, "pdfInput": false, "reasoning": true, - "structuredOutput": false, + "structuredOutput": true, "temperature": true, "toolCalling": true, "videoInput": false, "parallelFunctionCalling": false, - "responseSchema": false, + "responseSchema": true, "toolChoice": true, "webSearch": false, "supports1MContext": false @@ -448402,8 +458794,8 @@ "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { "cacheRead": 0.06, - "input": 0.25, - "output": 0.8 + "input": 0.22, + "output": 0.85 } }, { @@ -448414,8 +458806,8 @@ "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { "cacheRead": 0.06, - "input": 0.25, - "output": 0.8 + "input": 0.22, + "output": 0.85 } } ] @@ -448431,13 +458823,23 @@ "releaseDate": "2026-04-01", "lastUpdated": "2026-04-01", "supportedParameters": [ + "frequency_penalty", "include_reasoning", + "logit_bias", + "logprobs", "max_tokens", + "presence_penalty", "reasoning", + "repetition_penalty", + "response_format", + "seed", + "stop", + "structured_outputs", "temperature", "tool_choice", "tools", "top_k", + "top_logprobs", "top_p" ], "providerModelRecordCount": 1 @@ -448477,19 +458879,29 @@ "mandatory": true }, "supportedParameters": [ + "frequency_penalty", "include_reasoning", + "logit_bias", + "logprobs", "max_tokens", + "presence_penalty", "reasoning", + "repetition_penalty", + "response_format", + "seed", + "stop", + "structured_outputs", "temperature", "tool_choice", "tools", "top_k", + "top_logprobs", "top_p" ], "tokenizer": "Other", "topProvider": { "context_length": 262144, - "max_completion_tokens": 80000, + "max_completion_tokens": 262144, "is_moderated": false } } @@ -449224,7 +459636,7 @@ ], "mergedProviderModelRecords": 1, "limits": { - "contextTokens": 65536, + "contextTokens": 65535, "outputTokens": 8000, "supports1MContext": false }, @@ -450293,6 +460705,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": true, @@ -453091,6 +463505,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "temperature": true, "toolCalling": false, @@ -454417,6 +464833,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "temperature": true, "toolCalling": false, @@ -455084,6 +465502,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true, @@ -455103,6 +465523,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 5, + "cacheWrite5m": 5, "input": 5, "output": 30 } @@ -455205,6 +465626,7 @@ "per1MTokens": { "cacheRead": 0.15, "cacheWrite": 0.15, + "cacheWrite5m": 0.15, "input": 0.15, "output": 0.15 } @@ -455293,6 +465715,7 @@ "per1MTokens": { "cacheRead": 0.15, "cacheWrite": 0.15, + "cacheWrite5m": 0.15, "input": 0.15, "output": 0.15 } @@ -455381,6 +465804,7 @@ "per1MTokens": { "cacheRead": 0.15, "cacheWrite": 0.15, + "cacheWrite5m": 0.15, "input": 0.15, "output": 0.15 } @@ -455469,6 +465893,7 @@ "per1MTokens": { "cacheRead": 0.15, "cacheWrite": 0.15, + "cacheWrite5m": 0.15, "input": 0.15, "output": 0.15 } @@ -455557,6 +465982,7 @@ "per1MTokens": { "cacheRead": 0.15, "cacheWrite": 0.15, + "cacheWrite5m": 0.15, "input": 0.15, "output": 0.15 } @@ -455645,6 +466071,7 @@ "per1MTokens": { "cacheRead": 0.15, "cacheWrite": 0.15, + "cacheWrite5m": 0.15, "input": 0.15, "output": 0.15 } @@ -455717,6 +466144,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": false, "videoInput": false, @@ -455735,6 +466164,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.03, + "cacheWrite5m": 0.03, "input": 0.03, "output": 0.12 } @@ -455824,6 +466254,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": true, @@ -455842,6 +466274,7 @@ "per1MTokens": { "cacheRead": 0.0028, "cacheWrite": 0.14, + "cacheWrite5m": 0.14, "input": 0.14, "output": 0.28 } @@ -455930,6 +466363,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -455948,6 +466383,7 @@ "per1MTokens": { "cacheRead": 0.0036, "cacheWrite": 0.435, + "cacheWrite5m": 0.435, "input": 0.435, "output": 0.87 } @@ -456036,6 +466472,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -456054,6 +466492,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0.05, + "cacheWrite5m": 0.05, "input": 0.05, "output": 0.2 } @@ -456140,6 +466579,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -456158,6 +466599,7 @@ "per1MTokens": { "cacheRead": 0.09, "cacheWrite": 0.09, + "cacheWrite5m": 0.09, "input": 0.09, "output": 0.45 } @@ -456244,6 +466686,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -456262,6 +466706,7 @@ "per1MTokens": { "cacheRead": 0.15, "cacheWrite": 0.5, + "cacheWrite5m": 0.5, "input": 0.5, "output": 2.5 } @@ -456347,6 +466792,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -456365,6 +466812,7 @@ "per1MTokens": { "cacheRead": 0.15, "cacheWrite": 0.15, + "cacheWrite5m": 0.15, "input": 0.15, "output": 0.15 } @@ -457433,6 +467881,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -457465,7 +467914,112 @@ "metadata": { "lastUpdated": "2026-06-13", "openWeights": true, - "releaseDate": "2026-04-28" + "releaseDate": "2026-04-28", + "reasoningOptions": [ + { + "type": "toggle" + } + ] + } + } + ] + }, + { + "id": "poolside/laguna-s-2.1", + "provider": "poolside", + "model": "laguna-s-2.1", + "displayName": "Laguna S 2.1", + "family": "laguna", + "sources": [ + "models.dev" + ], + "providers": [ + "poolside" + ], + "aliases": [ + "poolside/laguna-s-2.1" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1048576, + "outputTokens": 32768, + "supports1MContext": true + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "structuredOutput": false, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "poolside", + "model": "poolside/laguna-s-2.1", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0, + "cacheWrite": 0, + "cacheWrite5m": 0, + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Laguna S 2.1" + ], + "families": [ + "laguna" + ], + "releaseDate": "2026-07-21", + "lastUpdated": "2026-07-21", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "poolside", + "providerName": "Poolside", + "providerApi": "https://inference.poolside.ai/v1", + "providerDoc": "https://platform.poolside.ai", + "model": "poolside/laguna-s-2.1", + "modelKey": "poolside/laguna-s-2.1", + "displayName": "Laguna S 2.1", + "family": "laguna", + "metadata": { + "lastUpdated": "2026-07-21", + "openWeights": true, + "releaseDate": "2026-07-21", + "reasoningOptions": [ + { + "type": "toggle" + } + ] } } ] @@ -457527,6 +468081,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -457559,101 +468114,12 @@ "metadata": { "lastUpdated": "2026-07-02", "openWeights": true, - "releaseDate": "2026-07-02" - } - } - ] - }, - { - "id": "poolside/laguna-xs.2", - "provider": "poolside", - "model": "laguna-xs.2", - "displayName": "Laguna XS.2", - "family": "laguna", - "sources": [ - "models.dev" - ], - "providers": [ - "poolside" - ], - "aliases": [ - "poolside/laguna-xs.2" - ], - "mergedProviderModelRecords": 1, - "limits": { - "contextTokens": 262144, - "outputTokens": 32768, - "supports1MContext": false - }, - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "capabilities": { - "attachments": false, - "audioInput": false, - "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": true, - "structuredOutput": false, - "temperature": true, - "toolCalling": true, - "videoInput": false, - "supports1MContext": false - }, - "pricing": { - "currency": "USD", - "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", - "offers": [ - { - "source": "models.dev", - "provider": "poolside", - "model": "poolside/laguna-xs.2", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0, - "cacheWrite": 0, - "input": 0, - "output": 0 - } - } - ] - }, - "metadata": { - "displayNames": [ - "Laguna XS.2" - ], - "families": [ - "laguna" - ], - "releaseDate": "2026-04-28", - "lastUpdated": "2026-06-13", - "providerModelRecordCount": 1 - }, - "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "poolside", - "providerName": "Poolside", - "providerApi": "https://inference.poolside.ai/v1", - "providerDoc": "https://platform.poolside.ai", - "model": "poolside/laguna-xs.2", - "modelKey": "poolside/laguna-xs.2", - "displayName": "Laguna XS.2", - "family": "laguna", - "metadata": { - "lastUpdated": "2026-06-13", - "openWeights": true, - "releaseDate": "2026-04-28" + "releaseDate": "2026-07-02", + "reasoningOptions": [ + { + "type": "toggle" + } + ] } } ] @@ -461030,6 +471496,7 @@ "openWeights": false, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, "temperature": false, @@ -461116,6 +471583,7 @@ "openWeights": false, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, "temperature": false, @@ -461237,6 +471705,7 @@ "openWeights": false, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, "temperature": false, @@ -461443,6 +471912,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": true, @@ -461833,6 +472304,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0.3, + "cacheWrite5m": 0.3, "input": 0.25, "output": 1.25 } @@ -461929,6 +472401,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -462029,6 +472502,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -462129,6 +472603,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -462229,6 +472704,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -462335,6 +472811,7 @@ "per1MTokens": { "cacheRead": 1.5, "cacheWrite": 18.75, + "cacheWrite5m": 18.75, "input": 15, "output": 75 } @@ -462441,6 +472918,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -462543,6 +473021,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1, "output": 5 } @@ -462628,6 +473107,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -462646,6 +473127,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -462756,6 +473238,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -462841,6 +473324,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -462860,6 +473345,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -462954,6 +473440,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -462973,6 +473461,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 3.75, + "cacheWrite5m": 3.75, "input": 3, "output": 15 } @@ -463067,6 +473556,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": false, @@ -463087,6 +473578,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -463178,6 +473670,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -463199,6 +473693,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 6.25, + "cacheWrite5m": 6.25, "input": 5, "output": 25 } @@ -463288,6 +473783,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, "temperature": true, @@ -463664,6 +474161,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -463750,6 +474249,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -463856,11 +474357,10 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite1h": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 - }, - "extra": { - "cache_creation_input_token_cost_above_1hr": 0 } } ] @@ -464137,6 +474637,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -465687,6 +476189,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -465785,6 +476289,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -465883,6 +476389,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -465981,6 +476489,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -466075,6 +476585,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -466170,6 +476682,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -466269,6 +476783,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -466368,6 +476884,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -466467,6 +476985,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -466566,6 +477086,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -470799,6 +481321,7 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -470881,6 +481404,7 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -470965,6 +481489,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": true, @@ -471228,6 +481754,7 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -471328,6 +481855,7 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -471430,6 +481958,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": true, @@ -471753,6 +482283,7 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -471835,6 +482366,7 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -471919,6 +482451,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": true, @@ -472254,6 +482788,7 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -472354,6 +482889,7 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -472456,6 +482992,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": true, @@ -472876,6 +483414,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -473142,6 +483682,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -473235,6 +483776,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -473328,6 +483870,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -473421,6 +483964,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -473514,6 +484058,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -473590,6 +484135,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -473608,6 +484155,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -473697,6 +484245,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -473715,6 +484265,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -473804,6 +484355,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -473822,6 +484375,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -474311,6 +484865,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -474404,6 +484960,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -474490,6 +485048,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -474577,6 +485137,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -474670,6 +485232,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -474756,6 +485320,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -474843,6 +485409,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -474932,6 +485500,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -475014,6 +485584,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -475070,19 +485642,17 @@ "thinkingmachines" ], "aliases": [ - "thinkingmachines/inkling" + "thinkingmachines/Inkling" ], "mergedProviderModelRecords": 1, "limits": { - "contextTokens": 256000, - "outputTokens": 256000, + "contextTokens": 65536, + "outputTokens": 65536, "supports1MContext": false }, "modalities": { "input": [ - "audio", "image", - "pdf", "text" ], "output": [ @@ -475091,16 +485661,17 @@ }, "capabilities": { "attachments": true, - "audioInput": true, + "audioInput": false, "audioOutput": false, "imageInput": true, "imageOutput": false, "openWeights": true, - "pdfInput": true, + "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, - "minimalReasoningEffort": true, - "noneReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "maxReasoningEffort": true, "xhighReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -475114,13 +485685,13 @@ { "source": "models.dev", "provider": "thinkingmachines", - "model": "inkling", + "model": "thinkingmachines/Inkling", "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.748, - "input": 3.74, - "output": 9.36 + "cacheRead": 0.374, + "input": 1.87, + "output": 4.68 } } ] @@ -475142,10 +485713,10 @@ "sourceUrl": "https://models.dev/api.json", "provider": "thinkingmachines", "providerName": "Thinking Machines", - "providerApi": "https://tinker.thinkingmachines.dev/services/tinker-prod/oai/api/v1", - "providerDoc": "https://tinker-docs.thinkingmachines.ai/tinker/compatible-apis/openai/", - "model": "inkling", - "modelKey": "inkling", + "providerApi": "https://tinker.thinkingmachines.dev/services/tinker-prod/anthropic/api/v1", + "providerDoc": "https://tinker-docs.thinkingmachines.ai/tinker/compatible-apis/anthropic/", + "model": "thinkingmachines/Inkling", + "modelKey": "thinkingmachines/Inkling", "displayName": "Inkling", "family": "ling", "metadata": { @@ -475153,15 +485724,130 @@ "openWeights": true, "releaseDate": "2026-07-15", "reasoningOptions": [ + { + "type": "toggle" + }, { "type": "effort", "values": [ - "none", - "minimal", "low", "medium", "high", - "xhigh" + "xhigh", + "max" + ] + } + ] + } + } + ] + }, + { + "id": "thinkingmachines/inkling:peft:262144", + "provider": "thinkingmachines", + "model": "inkling:peft:262144", + "displayName": "Inkling (256K)", + "family": "ling", + "sources": [ + "models.dev" + ], + "providers": [ + "thinkingmachines" + ], + "aliases": [ + "thinkingmachines/Inkling:peft:262144" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 262144, + "outputTokens": 262144, + "supports1MContext": false + }, + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "maxReasoningEffort": true, + "xhighReasoningEffort": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "thinkingmachines", + "model": "thinkingmachines/Inkling:peft:262144", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.748, + "input": 3.74, + "output": 9.36 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Inkling (256K)" + ], + "families": [ + "ling" + ], + "releaseDate": "2026-07-15", + "lastUpdated": "2026-07-15", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "thinkingmachines", + "providerName": "Thinking Machines", + "providerApi": "https://tinker.thinkingmachines.dev/services/tinker-prod/anthropic/api/v1", + "providerDoc": "https://tinker-docs.thinkingmachines.ai/tinker/compatible-apis/anthropic/", + "model": "thinkingmachines/Inkling:peft:262144", + "modelKey": "thinkingmachines/Inkling:peft:262144", + "displayName": "Inkling (256K)", + "family": "ling", + "metadata": { + "lastUpdated": "2026-07-15", + "openWeights": true, + "releaseDate": "2026-07-15", + "reasoningOptions": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": [ + "low", + "medium", + "high", + "xhigh", + "max" ] } ] @@ -475209,6 +485895,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, @@ -476456,6 +487144,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, @@ -476849,6 +487539,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -476934,6 +487626,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -477019,6 +487713,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -477104,6 +487800,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -477189,6 +487887,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -477274,6 +487974,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -477359,6 +488061,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -477462,6 +488166,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -477541,6 +488246,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true, @@ -477560,6 +488267,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -477668,6 +488376,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -477749,6 +488458,7 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -477769,6 +488479,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -477877,6 +488588,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -477956,6 +488668,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true, @@ -477975,6 +488689,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -478161,6 +488876,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": false, "toolCalling": true, @@ -478367,6 +489084,7 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -479003,6 +489721,7 @@ "openWeights": false, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -479107,6 +489826,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -479591,6 +490312,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "toolCalling": true, "videoInput": false, @@ -479688,6 +490411,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "toolCalling": true, "videoInput": false, @@ -479970,6 +490695,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -480077,6 +490804,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -480273,6 +491002,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -480378,6 +491109,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "toolCalling": true, @@ -480573,6 +491306,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -480678,6 +491413,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -480782,6 +491519,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "toolCalling": true, @@ -481076,6 +491815,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -481187,6 +491928,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -481298,6 +492041,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -481409,6 +492154,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -481520,6 +492267,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -481631,6 +492380,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -481756,6 +492507,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -481883,6 +492636,8 @@ "openWeights": false, "pdfInput": false, "reasoning": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, "temperature": false, @@ -481989,6 +492744,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, @@ -482011,6 +492768,7 @@ "per1MTokens": { "cacheRead": 0.125, "cacheWrite": 1.5625, + "cacheWrite5m": 1.5625, "input": 1.25, "output": 7.5 } @@ -482102,6 +492860,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, @@ -482124,6 +492884,7 @@ "per1MTokens": { "cacheRead": 0.125, "cacheWrite": 1.5625, + "cacheWrite5m": 1.5625, "input": 1.25, "output": 7.5 } @@ -482215,6 +492976,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, @@ -482237,6 +493000,7 @@ "per1MTokens": { "cacheRead": 0.625, "cacheWrite": 7.8125, + "cacheWrite5m": 7.8125, "input": 6.25, "output": 37.5 } @@ -482328,6 +493092,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, @@ -482350,6 +493116,7 @@ "per1MTokens": { "cacheRead": 0.625, "cacheWrite": 7.8125, + "cacheWrite5m": 7.8125, "input": 6.25, "output": 37.5 } @@ -482441,6 +493208,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, @@ -482463,6 +493232,7 @@ "per1MTokens": { "cacheRead": 0.3125, "cacheWrite": 3.90625, + "cacheWrite5m": 3.90625, "input": 3.125, "output": 18.75 } @@ -482554,6 +493324,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, @@ -482576,6 +493348,7 @@ "per1MTokens": { "cacheRead": 0.3125, "cacheWrite": 3.90625, + "cacheWrite5m": 3.90625, "input": 3.125, "output": 18.75 } @@ -482666,6 +493439,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -482731,6 +493506,99 @@ } ] }, + { + "id": "venice/seed-2-1-turbo", + "provider": "venice", + "model": "seed-2-1-turbo", + "displayName": "Seed 2.1 Turbo", + "family": "seed", + "sources": [ + "models.dev" + ], + "providers": [ + "venice" + ], + "aliases": [ + "venice/seed-2-1-turbo" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 256000, + "outputTokens": 65536, + "supports1MContext": false + }, + "modalities": { + "input": [ + "image", + "text", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": true, + "audioInput": false, + "audioOutput": false, + "imageInput": true, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": true, + "structuredOutput": true, + "toolCalling": true, + "videoInput": true, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "venice", + "model": "seed-2-1-turbo", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.125, + "input": 0.625, + "output": 3.125 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Seed 2.1 Turbo" + ], + "families": [ + "seed" + ], + "releaseDate": "2026-06-28", + "lastUpdated": "2026-07-24", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "venice", + "providerName": "Venice AI", + "providerDoc": "https://docs.venice.ai", + "model": "seed-2-1-turbo", + "modelKey": "seed-2-1-turbo", + "displayName": "Seed 2.1 Turbo", + "family": "seed", + "metadata": { + "lastUpdated": "2026-07-24", + "openWeights": false, + "releaseDate": "2026-06-28" + } + } + ] + }, { "id": "venice/venice-uncensored-1-2", "provider": "venice", @@ -482955,6 +493823,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -483062,6 +493932,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -483168,6 +494040,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -483273,6 +494147,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -483378,6 +494254,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -483483,6 +494361,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -483589,6 +494469,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -483693,6 +494575,10 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, + "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -483742,7 +494628,18 @@ "metadata": { "lastUpdated": "2026-06-11", "openWeights": true, - "releaseDate": "2026-04-07" + "releaseDate": "2026-04-07", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high" + ] + } + ] } } ] @@ -485205,6 +496102,110 @@ } ] }, + { + "id": "vercel/hy3", + "provider": "vercel", + "model": "hy3", + "displayName": "Hy3", + "family": "hy3", + "sources": [ + "models.dev" + ], + "providers": [ + "vercel" + ], + "aliases": [ + "vercel/tencent/hy3" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 262144, + "outputTokens": 262144, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "lowReasoningEffort": true, + "highReasoningEffort": true, + "noneReasoningEffort": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "vercel", + "model": "tencent/hy3", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.035, + "input": 0.14, + "output": 0.58 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Hy3" + ], + "families": [ + "hy3" + ], + "releaseDate": "2026-07-06", + "lastUpdated": "2026-07-06", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "vercel", + "providerName": "Vercel AI Gateway", + "providerDoc": "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway", + "model": "tencent/hy3", + "modelKey": "tencent/hy3", + "displayName": "Hy3", + "family": "hy3", + "metadata": { + "lastUpdated": "2026-07-06", + "openWeights": true, + "releaseDate": "2026-07-06", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "high" + ] + } + ] + } + } + ] + }, { "id": "vercel/inkling", "provider": "vercel", @@ -485246,6 +496247,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true, @@ -485355,6 +496358,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": false, "videoInput": false, @@ -486363,6 +497368,288 @@ } ] }, + { + "id": "vercel/laguna-s-2.1", + "provider": "vercel", + "model": "laguna-s-2.1", + "displayName": "Laguna S 2.1", + "family": "laguna-s", + "sources": [ + "models.dev" + ], + "providers": [ + "vercel" + ], + "aliases": [ + "vercel/poolside/laguna-s-2.1" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 1000000, + "outputTokens": 131072, + "supports1MContext": true + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "structuredOutput": false, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": true + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "vercel", + "model": "poolside/laguna-s-2.1", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.01, + "input": 0.1, + "output": 0.2 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Laguna S 2.1" + ], + "families": [ + "laguna-s" + ], + "releaseDate": "2026-07-20", + "lastUpdated": "2026-07-21", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "vercel", + "providerName": "Vercel AI Gateway", + "providerDoc": "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway", + "model": "poolside/laguna-s-2.1", + "modelKey": "poolside/laguna-s-2.1", + "displayName": "Laguna S 2.1", + "family": "laguna-s", + "metadata": { + "lastUpdated": "2026-07-21", + "openWeights": true, + "releaseDate": "2026-07-20", + "reasoningOptions": [ + { + "type": "toggle" + } + ] + } + } + ] + }, + { + "id": "vercel/laguna-s-2.1-free", + "provider": "vercel", + "model": "laguna-s-2.1-free", + "displayName": "Laguna S 2.1 Free", + "family": "laguna-s", + "sources": [ + "models.dev" + ], + "providers": [ + "vercel" + ], + "aliases": [ + "vercel/poolside/laguna-s-2.1-free" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 256000, + "outputTokens": 32768, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "structuredOutput": false, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "vercel", + "model": "poolside/laguna-s-2.1-free", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Laguna S 2.1 Free" + ], + "families": [ + "laguna-s" + ], + "releaseDate": "2026-07-21", + "lastUpdated": "2026-07-21", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "vercel", + "providerName": "Vercel AI Gateway", + "providerDoc": "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway", + "model": "poolside/laguna-s-2.1-free", + "modelKey": "poolside/laguna-s-2.1-free", + "displayName": "Laguna S 2.1 Free", + "family": "laguna-s", + "metadata": { + "lastUpdated": "2026-07-21", + "openWeights": true, + "releaseDate": "2026-07-21", + "reasoningOptions": [ + { + "type": "toggle" + } + ] + } + } + ] + }, + { + "id": "vercel/ling-3.0-flash-free", + "provider": "vercel", + "model": "ling-3.0-flash-free", + "displayName": "Ling 3.0 Flash", + "family": "ling", + "sources": [ + "models.dev" + ], + "providers": [ + "vercel" + ], + "aliases": [ + "vercel/inclusionai/ling-3.0-flash-free" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 256000, + "outputTokens": 256000, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": false, + "pdfInput": false, + "reasoning": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "vercel", + "model": "inclusionai/ling-3.0-flash-free", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "Ling 3.0 Flash" + ], + "families": [ + "ling" + ], + "releaseDate": "2026-07-23", + "lastUpdated": "2026-07-23", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "vercel", + "providerName": "Vercel AI Gateway", + "providerDoc": "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway", + "model": "inclusionai/ling-3.0-flash-free", + "modelKey": "inclusionai/ling-3.0-flash-free", + "displayName": "Ling 3.0 Flash", + "family": "ling", + "metadata": { + "lastUpdated": "2026-07-23", + "openWeights": false, + "releaseDate": "2026-07-23" + } + } + ] + }, { "id": "vercel/mercury-2", "provider": "vercel", @@ -486402,6 +497689,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -488285,6 +499574,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -489053,6 +500344,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -489159,6 +500452,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -494147,6 +505442,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -494168,6 +505465,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 3, "output": 10.25 } @@ -497162,6 +508460,8 @@ "videoInput": false, "supports1MContext": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "embedding": false, "functionCalling": true, "imageGeneration": false, @@ -497937,6 +509237,7 @@ "per1MTokens": { "cacheRead": 0.75, "cacheWrite": 15, + "cacheWrite5m": 15, "input": 3, "output": 15 } @@ -497986,6 +509287,7 @@ "per1MTokens": { "cacheRead": 0.75, "cacheWrite": 3, + "cacheWrite5m": 3, "input": 3, "output": 15 } @@ -499045,6 +510347,8 @@ "supports1MContext": true, "structuredOutput": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "embedding": false, "functionCalling": true, "imageGeneration": false, @@ -499680,6 +510984,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -500065,6 +511371,8 @@ "videoInput": false, "supports1MContext": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true }, "pricing": { @@ -500187,17 +511495,15 @@ ], "providers": [ "frogbot", - "kenari", "llmgateway", "venice" ], "aliases": [ "frogbot/grok-4-3", - "kenari/grok-4-3", "llmgateway/grok-4-3", "venice/grok-4-3" ], - "mergedProviderModelRecords": 4, + "mergedProviderModelRecords": 3, "limits": { "contextTokens": 1000000, "outputTokens": 128000, @@ -500224,6 +511530,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -500247,17 +511555,6 @@ "output": 2.5 } }, - { - "source": "models.dev", - "provider": "kenari", - "model": "grok-4-3", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "input": 0, - "output": 0 - } - }, { "source": "models.dev", "provider": "llmgateway", @@ -500328,7 +511625,7 @@ "knowledgeCutoff": "2024-11", "releaseDate": "2026-04-30", "lastUpdated": "2026-04-30", - "providerModelRecordCount": 4 + "providerModelRecordCount": 3 }, "sourceRecords": [ { @@ -500359,34 +511656,6 @@ ] } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "kenari", - "providerName": "Kenari", - "providerApi": "https://kenari.id/v1", - "providerDoc": "https://kenari.id/docs", - "model": "grok-4-3", - "modelKey": "grok-4-3", - "displayName": "Grok 4.3", - "family": "grok", - "metadata": { - "lastUpdated": "2026-04-17", - "openWeights": false, - "releaseDate": "2026-04-17", - "reasoningOptions": [ - { - "type": "effort", - "values": [ - "none", - "low", - "medium", - "high" - ] - } - ] - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -500453,14 +511722,16 @@ "models.dev" ], "providers": [ + "kenari", "llmgateway", "venice" ], "aliases": [ + "kenari/grok-4-5", "llmgateway/grok-4-5", "venice/grok-4-5" ], - "mergedProviderModelRecords": 2, + "mergedProviderModelRecords": 3, "limits": { "contextTokens": 500000, "outputTokens": 500000, @@ -500485,6 +511756,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -500495,6 +511768,17 @@ "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ + { + "source": "models.dev", + "provider": "kenari", + "model": "grok-4-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + }, { "source": "models.dev", "provider": "llmgateway", @@ -500547,9 +511831,36 @@ ], "releaseDate": "2026-07-08", "lastUpdated": "2026-07-08", - "providerModelRecordCount": 2 + "providerModelRecordCount": 3 }, "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "kenari", + "providerName": "Kenari", + "providerApi": "https://kenari.id/v1", + "providerDoc": "https://kenari.id/docs", + "model": "grok-4-5", + "modelKey": "grok-4-5", + "displayName": "Grok 4.5", + "family": "grok", + "metadata": { + "lastUpdated": "2026-07-08", + "openWeights": false, + "releaseDate": "2026-07-08", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "low", + "medium", + "high" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -500669,6 +511980,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0.2, + "cacheWrite5m": 0.2, "input": 0.2, "output": 0.5 } @@ -501081,8 +512393,6 @@ ], "providers": [ "302ai", - "azure", - "azure-cognitive-services", "azure_ai", "helicone", "jiekou", @@ -501092,8 +512402,6 @@ ], "aliases": [ "302ai/grok-4-fast-reasoning", - "azure-cognitive-services/grok-4-fast-reasoning", - "azure/grok-4-fast-reasoning", "azure_ai/grok-4-fast-reasoning", "helicone/grok-4-fast-reasoning", "jiekou/grok-4-fast-reasoning", @@ -501101,7 +512409,7 @@ "qiniu-ai/x-ai/grok-4-fast-reasoning", "xai/grok-4-fast-reasoning" ], - "mergedProviderModelRecords": 9, + "mergedProviderModelRecords": 7, "limits": { "contextTokens": 2000000, "inputTokens": 2000000, @@ -501161,30 +512469,6 @@ "output": 0.5 } }, - { - "source": "models.dev", - "provider": "azure-cognitive-services", - "model": "grok-4-fast-reasoning", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.05, - "input": 0.2, - "output": 0.5 - } - }, - { - "source": "models.dev", - "provider": "azure", - "model": "grok-4-fast-reasoning", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.05, - "input": 0.2, - "output": 0.5 - } - }, { "source": "models.dev", "provider": "helicone", @@ -501251,7 +512535,6 @@ }, "metadata": { "displayNames": [ - "Grok 4 Fast (Reasoning)", "Grok-4-Fast-Reasoning", "X-Ai/Grok-4-Fast-Reasoning", "grok-4-fast-reasoning", @@ -501267,7 +512550,7 @@ "releaseDate": "2025-09-23", "lastUpdated": "2025-09-23", "deprecationDate": "2026-05-15", - "providerModelRecordCount": 9 + "providerModelRecordCount": 7 }, "sourceRecords": [ { @@ -501287,40 +512570,6 @@ "releaseDate": "2025-09-23" } }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure-cognitive-services", - "providerName": "Azure Cognitive Services", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "grok-4-fast-reasoning", - "modelKey": "grok-4-fast-reasoning", - "displayName": "Grok 4 Fast (Reasoning)", - "family": "grok", - "metadata": { - "knowledgeCutoff": "2025-07", - "lastUpdated": "2025-09-19", - "openWeights": false, - "releaseDate": "2025-09-19" - } - }, - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "azure", - "providerName": "Azure", - "providerDoc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "model": "grok-4-fast-reasoning", - "modelKey": "grok-4-fast-reasoning", - "displayName": "Grok 4 Fast (Reasoning)", - "family": "grok", - "metadata": { - "knowledgeCutoff": "2025-07", - "lastUpdated": "2025-09-19", - "openWeights": false, - "releaseDate": "2025-09-19" - } - }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -502327,6 +513576,8 @@ "videoInput": false, "supports1MContext": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "parallelFunctionCalling": false, "responseSchema": true, @@ -503151,6 +514402,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -503496,6 +514749,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -503620,6 +514875,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -503730,6 +514987,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -504306,6 +515565,7 @@ "kilo", "merge-gateway", "nano-gpt", + "ofox", "openrouter", "orcarouter", "vercel", @@ -504323,13 +515583,14 @@ "kilo/x-ai/grok-4.3", "merge-gateway/xai/grok-4.3", "nano-gpt/x-ai/grok-4.3", + "ofox/x-ai/grok-4.3", "openrouter/x-ai/grok-4.3", "orcarouter/grok/grok-4.3", "vercel/xai/grok-4.3", "xai/grok-4.3", "zenmux/x-ai/grok-4.3" ], - "mergedProviderModelRecords": 15, + "mergedProviderModelRecords": 16, "limits": { "contextTokens": 1000000, "inputTokens": 1000000, @@ -504358,6 +515619,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -504461,6 +515724,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 1.25, + "cacheWrite5m": 1.25, "input": 1.25, "output": 2.5 }, @@ -504560,6 +515824,18 @@ "output": 2.5 } }, + { + "source": "models.dev", + "provider": "ofox", + "model": "x-ai/grok-4.3", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.2, + "input": 1.25, + "output": 2.5 + } + }, { "source": "models.dev", "provider": "openrouter", @@ -504668,6 +515944,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.25, "output": 2.5 }, @@ -504766,7 +516043,7 @@ "top_logprobs", "top_p" ], - "providerModelRecordCount": 15 + "providerModelRecordCount": 16 }, "sourceRecords": [ { @@ -505011,6 +516288,34 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "ofox", + "providerName": "Ofox", + "providerApi": "https://api.ofox.ai/v1", + "providerDoc": "https://ofox.ai/docs", + "model": "x-ai/grok-4.3", + "modelKey": "x-ai/grok-4.3", + "displayName": "Grok 4.3", + "family": "grok", + "metadata": { + "lastUpdated": "2026-04-17", + "openWeights": false, + "releaseDate": "2026-04-17", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -505359,6 +516664,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "temperature": true, "toolCalling": true, @@ -505415,6 +516722,7 @@ "per1MTokens": { "cacheRead": 0.5, "cacheWrite": 2, + "cacheWrite5m": 2, "input": 2, "output": 6 }, @@ -505544,7 +516852,7 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.5, + "cacheRead": 0.3, "input": 2, "output": 6 } @@ -506230,7 +517538,9 @@ "toolCalling": true, "videoInput": false, "supports1MContext": false, - "lowReasoningEffort": true + "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true }, "pricing": { "currency": "USD", @@ -506448,6 +517758,8 @@ "videoInput": false, "supports1MContext": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "parallelFunctionCalling": false, "responseSchema": true, "toolChoice": true, @@ -506478,6 +517790,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 1, "output": 2 }, @@ -506953,6 +518266,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -507783,19 +519097,23 @@ "models.dev" ], "providers": [ - "vercel" + "vercel", + "xai" ], "aliases": [ - "vercel/xai/grok-imagine-video-1.5" + "vercel/xai/grok-imagine-video-1.5", + "xai/grok-imagine-video-1.5" ], - "mergedProviderModelRecords": 1, + "mergedProviderModelRecords": 2, "limits": { - "contextTokens": 0, + "contextTokens": 1024, "outputTokens": 0, "supports1MContext": false }, "modalities": { "input": [ + "image", + "pdf", "text" ], "output": [ @@ -507803,13 +519121,13 @@ ] }, "capabilities": { - "attachments": false, + "attachments": true, "audioInput": false, "audioOutput": false, - "imageInput": false, + "imageInput": true, "imageOutput": false, "openWeights": false, - "pdfInput": false, + "pdfInput": true, "reasoning": false, "temperature": true, "toolCalling": false, @@ -507824,8 +519142,8 @@ "grok" ], "releaseDate": "2026-06-22", - "lastUpdated": "2026-06-22", - "providerModelRecordCount": 1 + "lastUpdated": "2026-05-30", + "providerModelRecordCount": 2 }, "sourceRecords": [ { @@ -507839,10 +519157,26 @@ "displayName": "Grok Imagine Video 1.5", "family": "grok", "metadata": { - "lastUpdated": "2026-06-22", + "lastUpdated": "2026-05-30", "openWeights": false, "releaseDate": "2026-06-22" } + }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "xai", + "providerName": "xAI", + "providerDoc": "https://docs.x.ai/docs/models", + "model": "grok-imagine-video-1.5", + "modelKey": "grok-imagine-video-1.5", + "displayName": "Grok Imagine Video 1.5", + "family": "grok", + "metadata": { + "lastUpdated": "2026-05-30", + "openWeights": false, + "releaseDate": "2026-05-30" + } } ] }, @@ -507965,6 +519299,8 @@ "pdfInput": true, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "structuredOutput": true, "toolCalling": true, "videoInput": false, @@ -511119,6 +522455,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -511227,6 +522565,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, @@ -512240,6 +523580,99 @@ } ] }, + { + "id": "z-ai/glm-4-7-flash:free", + "provider": "z-ai", + "model": "glm-4-7-flash:free", + "displayName": "GLM-4.7-Flash (Free)", + "family": "glm-flash", + "sources": [ + "models.dev" + ], + "providers": [ + "kenari" + ], + "aliases": [ + "kenari/glm-4-7-flash:free" + ], + "mergedProviderModelRecords": 1, + "limits": { + "contextTokens": 200000, + "outputTokens": 131072, + "supports1MContext": false + }, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": { + "attachments": false, + "audioInput": false, + "audioOutput": false, + "imageInput": false, + "imageOutput": false, + "openWeights": true, + "pdfInput": false, + "reasoning": true, + "temperature": true, + "toolCalling": true, + "videoInput": false, + "supports1MContext": false + }, + "pricing": { + "currency": "USD", + "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", + "offers": [ + { + "source": "models.dev", + "provider": "kenari", + "model": "glm-4-7-flash:free", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 0, + "output": 0 + } + } + ] + }, + "metadata": { + "displayNames": [ + "GLM-4.7-Flash (Free)" + ], + "families": [ + "glm-flash" + ], + "knowledgeCutoff": "2025-04", + "releaseDate": "2026-01-19", + "lastUpdated": "2026-01-19", + "providerModelRecordCount": 1 + }, + "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "kenari", + "providerName": "Kenari", + "providerApi": "https://kenari.id/v1", + "providerDoc": "https://kenari.id/docs", + "model": "glm-4-7-flash:free", + "modelKey": "glm-4-7-flash:free", + "displayName": "GLM-4.7-Flash (Free)", + "family": "glm-flash", + "metadata": { + "knowledgeCutoff": "2025-04", + "lastUpdated": "2026-01-19", + "openWeights": true, + "releaseDate": "2026-01-19" + } + } + ] + }, { "id": "z-ai/glm-4-9b-0414", "provider": "z-ai", @@ -513215,6 +524648,7 @@ "transcription": false, "supports1MContext": false, "structuredOutput": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "parallelFunctionCalling": true, "responseSchema": true, @@ -513302,6 +524736,7 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.6, "output": 2.2 } @@ -513315,6 +524750,7 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.6, "output": 2.2 } @@ -513374,6 +524810,7 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.6, "output": 2.2 } @@ -513399,6 +524836,7 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.6, "output": 2.2 } @@ -513424,6 +524862,7 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.6, "output": 2.2 } @@ -514091,6 +525530,7 @@ "toolChoice": true, "transcription": false, "supports1MContext": false, + "highReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, "parallelFunctionCalling": true, @@ -514157,6 +525597,7 @@ "per1MTokens": { "cacheRead": 0.025, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.13, "output": 0.85 } @@ -514170,6 +525611,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.2, "output": 1.1 } @@ -514218,6 +525660,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.2, "output": 1.1 } @@ -514276,6 +525719,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -514289,6 +525733,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.2, "output": 1.1 } @@ -514314,6 +525759,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -514327,6 +525773,7 @@ "per1MTokens": { "cacheRead": 0.03, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.2, "output": 1.1 } @@ -515317,6 +526764,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -515330,6 +526778,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -515945,6 +527394,7 @@ "vision": true, "supports1MContext": false, "structuredOutput": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "parallelFunctionCalling": true, "responseSchema": true, @@ -516427,7 +527877,6 @@ "metadata": { "canonicalSlug": "z-ai/glm-4.5v", "createdAt": "2025-08-11T14:24:48.000Z", - "expirationDate": "2026-12-31", "huggingFaceId": "zai-org/GLM-4.5V", "knowledgeCutoff": "2024-12-31", "links": { @@ -516667,6 +528116,7 @@ "responseSchema": true, "webSearch": false, "supports1MContext": false, + "highReasoningEffort": true, "xhighReasoningEffort": true, "interleaved": true, "systemMessages": true @@ -516751,6 +528201,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0.8, + "cacheWrite5m": 0.8, "input": 0.4, "output": 1.75 } @@ -516776,6 +528227,7 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.55, "output": 2.2 } @@ -516800,6 +528252,7 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.6, "output": 2.2 } @@ -516871,6 +528324,7 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.6, "output": 2.2 } @@ -516896,6 +528350,7 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.6, "output": 2.2 } @@ -516921,6 +528376,7 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.6, "output": 2.2 } @@ -516994,6 +528450,7 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.6, "output": 2.2 } @@ -518230,6 +529687,7 @@ "toolCalling": true, "videoInput": true, "supports1MContext": false, + "highReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, "parallelFunctionCalling": true, @@ -519367,6 +530825,7 @@ "parallelFunctionCalling": true, "responseSchema": true, "webSearch": false, + "highReasoningEffort": true, "xhighReasoningEffort": true, "interleaved": true, "systemMessages": true @@ -519406,6 +530865,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -519419,6 +530879,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -519466,6 +530927,7 @@ "per1MTokens": { "cacheRead": 0.05, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.25, "output": 1.1 } @@ -519479,6 +530941,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 0.47, + "cacheWrite5m": 0.47, "input": 0.47, "output": 2.16 }, @@ -519563,6 +531026,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -519576,6 +531040,7 @@ "per1MTokens": { "cacheRead": 0.19, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.38, "output": 1.98 } @@ -519600,6 +531065,7 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.6, "output": 2.2 } @@ -519682,6 +531148,7 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.6, "output": 2.2 } @@ -519707,6 +531174,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -519720,6 +531188,7 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.6, "output": 2.2 } @@ -519745,6 +531214,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -519758,6 +531228,7 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.6, "output": 2.2 } @@ -519797,6 +531268,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.4, "output": 1.5 } @@ -519821,6 +531293,7 @@ "per1MTokens": { "cacheRead": 0.11, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.6, "output": 2.2 } @@ -520755,6 +532228,8 @@ "webSearch": false, "supports1MContext": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "xhighReasoningEffort": true }, "pricing": { @@ -520803,6 +532278,7 @@ "per1MTokens": { "cacheRead": 0.008, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.04, "output": 0.3 } @@ -520862,6 +532338,7 @@ "per1MTokens": { "cacheRead": 0.01, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.06, "output": 0.4 } @@ -520907,7 +532384,8 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "input": 0.0605, + "cacheRead": 0.01, + "input": 0.06, "output": 0.4 } }, @@ -520943,6 +532421,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -520956,6 +532435,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -520980,6 +532460,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.07, "output": 0.4 } @@ -520993,6 +532474,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -521004,7 +532486,8 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "input": 0.0605, + "cacheRead": 0.01, + "input": 0.06, "output": 0.4 } } @@ -521503,8 +532986,8 @@ ], "tokenizer": "Other", "topProvider": { - "context_length": 131072, - "max_completion_tokens": 131072, + "context_length": 202752, + "max_completion_tokens": 16384, "is_moderated": false } } @@ -521945,6 +533428,7 @@ "per1MTokens": { "cacheRead": 0.01, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.07, "output": 0.4 } @@ -521958,6 +533442,7 @@ "per1MTokens": { "cacheRead": 0.01, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.07, "output": 0.4 } @@ -521983,6 +533468,7 @@ "per1MTokens": { "cacheRead": 0.01, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.07, "output": 0.4 } @@ -522008,6 +533494,7 @@ "per1MTokens": { "cacheRead": 0.01, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.07, "output": 0.4 } @@ -522462,6 +533949,9 @@ "modes": [ "chat" ], + "statuses": [ + "deprecated" + ], "knowledgeCutoff": "2025-04", "releaseDate": "2026-01-06", "lastUpdated": "2026-01-06", @@ -522481,6 +533971,7 @@ "modelKey": "zai-org/glm-4.7-maas", "displayName": "GLM-4.7", "family": "glm", + "status": "deprecated", "metadata": { "knowledgeCutoff": "2025-04", "lastUpdated": "2026-01-06", @@ -523322,6 +534813,7 @@ "dinference", "fastrouter", "huggingface", + "hyper", "kilo", "llmgateway", "meganova", @@ -523361,6 +534853,7 @@ "dinference/glm-5", "fastrouter/z-ai/glm-5", "huggingface/zai-org/GLM-5", + "hyper/glm-5", "kilo/z-ai/glm-5", "llmgateway/glm-5", "meganova/zai-org/GLM-5", @@ -523384,7 +534877,7 @@ "zenmux/z-ai/glm-5", "zhipuai/glm-5" ], - "mergedProviderModelRecords": 38, + "mergedProviderModelRecords": 39, "limits": { "contextTokens": 205000, "inputTokens": 203000, @@ -523427,6 +534920,8 @@ "webSearch": false, "promptCaching": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "xhighReasoningEffort": true @@ -523477,6 +534972,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -523490,6 +534986,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -523503,6 +535000,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -523516,6 +535014,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -523552,6 +535051,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.48, "output": 1.9 } @@ -523565,6 +535065,7 @@ "per1MTokens": { "cacheRead": 0.16, "cacheWrite": 0.6, + "cacheWrite5m": 0.6, "input": 0.6, "output": 3 }, @@ -523639,6 +535140,19 @@ "output": 3.2 } }, + { + "source": "models.dev", + "provider": "hyper", + "model": "glm-5", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheWrite": 0.455, + "cacheWrite5m": 0.455, + "input": 0.91, + "output": 2.814 + } + }, { "source": "models.dev", "provider": "kilo", @@ -523659,6 +535173,7 @@ "per1MTokens": { "cacheRead": 0.144, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.72, "output": 2.3 } @@ -523683,6 +535198,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1, "output": 3.2 } @@ -523718,6 +535234,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 1, "output": 3.2 } @@ -523765,9 +535282,9 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.19, + "cacheRead": 0.2, "input": 0.95, - "output": 3.15 + "output": 2.55 } }, { @@ -523779,6 +535296,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1, "output": 3.2 } @@ -523826,6 +535344,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -523862,6 +535381,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1, "output": 3.2 } @@ -523887,6 +535407,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1, "output": 3.2 } @@ -523922,6 +535443,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1, "output": 3.2 } @@ -523984,7 +535506,7 @@ "top_logprobs", "top_p" ], - "providerModelRecordCount": 38 + "providerModelRecordCount": 39 }, "sourceRecords": [ { @@ -524326,6 +535848,23 @@ "releaseDate": "2026-02-11" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "hyper", + "providerName": "Charm Hyper", + "providerApi": "https://hyper.charm.land/v1", + "providerDoc": "https://hyper.charm.land", + "model": "glm-5", + "modelKey": "glm-5", + "displayName": "GLM-5", + "family": "glm", + "metadata": { + "lastUpdated": "2026-07-22", + "openWeights": true, + "releaseDate": "2026-04-13" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -524909,6 +536448,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "noneReasoningEffort": true, "structuredOutput": true, @@ -524937,7 +536478,7 @@ { "input": 1.1, "output": 3.851, - "cache_read": 0.165, + "cache_read": 0.22, "tier": { "size": 32000 } @@ -525070,6 +536611,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, @@ -525286,6 +536829,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.2, "output": 5 } @@ -525604,6 +537148,9 @@ "modes": [ "chat" ], + "statuses": [ + "deprecated" + ], "releaseDate": "2026-02-11", "lastUpdated": "2026-02-11", "supportedRegions": [ @@ -525622,6 +537169,7 @@ "modelKey": "zai-org/glm-5-maas", "displayName": "GLM-5", "family": "glm", + "status": "deprecated", "metadata": { "lastUpdated": "2026-02-11", "openWeights": true, @@ -525989,6 +537537,7 @@ "toolCalling": true, "videoInput": false, "supports1MContext": false, + "highReasoningEffort": true, "xhighReasoningEffort": true, "parallelFunctionCalling": false, "responseSchema": true, @@ -526019,6 +537568,7 @@ "per1MTokens": { "cacheRead": 0.308, "cacheWrite": 1.544, + "cacheWrite5m": 1.544, "input": 1.235, "output": 4.118 } @@ -526032,6 +537582,7 @@ "per1MTokens": { "cacheRead": 0.18, "cacheWrite": 0.9, + "cacheWrite5m": 0.9, "input": 0.9, "output": 3.7 }, @@ -526070,6 +537621,7 @@ "per1MTokens": { "cacheRead": 0.24, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.2, "output": 4 } @@ -526119,6 +537671,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -526132,6 +537685,7 @@ "per1MTokens": { "cacheRead": 0.24, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.2, "output": 4 } @@ -526156,6 +537710,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -526593,6 +538148,7 @@ "providers": [ "302ai", "abacus", + "aiand", "alibaba-cn", "alibaba-token-plan", "alibaba-token-plan-cn", @@ -526609,6 +538165,7 @@ "friendli", "hpc-ai", "huggingface", + "hyper", "kilo", "llmgateway", "merge-gateway", @@ -526635,6 +538192,7 @@ "aliases": [ "302ai/glm-5.1", "abacus/zai-org/GLM-5.1", + "aiand/zai-org/glm-5.1", "alibaba-cn/glm-5.1", "alibaba-token-plan-cn/glm-5.1", "alibaba-token-plan/glm-5.1", @@ -526651,6 +538209,7 @@ "friendli/zai-org/GLM-5.1", "hpc-ai/zai-org/glm-5.1", "huggingface/zai-org/GLM-5.1", + "hyper/glm-5.1", "kilo/z-ai/glm-5.1", "llmgateway/glm-5.1", "merge-gateway/zai/glm-5.1", @@ -526675,7 +538234,7 @@ "zhipuai-coding-plan/glm-5.1", "zhipuai/glm-5.1" ], - "mergedProviderModelRecords": 41, + "mergedProviderModelRecords": 43, "limits": { "contextTokens": 205000, "inputTokens": 202752, @@ -526718,7 +538277,10 @@ "webSearch": false, "supports1MContext": false, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, + "maxReasoningEffort": true, "xhighReasoningEffort": true }, "pricing": { @@ -526748,6 +538310,17 @@ "output": 4.4 } }, + { + "source": "models.dev", + "provider": "aiand", + "model": "zai-org/glm-5.1", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 1.4, + "output": 4.4 + } + }, { "source": "models.dev", "provider": "alibaba-cn", @@ -526769,6 +538342,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -526782,6 +538356,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -526831,6 +538406,7 @@ "per1MTokens": { "cacheRead": 0.08, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.45, "output": 2.15 } @@ -526844,6 +538420,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 1, + "cacheWrite5m": 1, "input": 1, "output": 3.8 }, @@ -526954,6 +538531,18 @@ "output": 3.2 } }, + { + "source": "models.dev", + "provider": "hyper", + "model": "glm-5.1", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.283075, + "input": 1.52425, + "output": 4.7905 + } + }, { "source": "models.dev", "provider": "kilo", @@ -526974,6 +538563,7 @@ "per1MTokens": { "cacheRead": 0.173, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.931, "output": 2.93 } @@ -526987,6 +538577,7 @@ "per1MTokens": { "cacheRead": 0.26, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.4, "output": 4.4 } @@ -527071,6 +538662,7 @@ "per1MTokens": { "cacheRead": 0.26, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.4, "output": 4.4 } @@ -527084,6 +538676,7 @@ "per1MTokens": { "cacheRead": 0.182, "cacheWrite": 0.98, + "cacheWrite5m": 0.98, "input": 0.98, "output": 3.08 } @@ -527096,6 +538689,7 @@ "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.4, "output": 4.4 } @@ -527108,6 +538702,7 @@ "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.4, "output": 4.4 } @@ -527144,6 +538739,7 @@ "per1MTokens": { "cacheRead": 0.1, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1, "output": 3.2 } @@ -527169,6 +538765,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -527182,6 +538779,7 @@ "per1MTokens": { "cacheRead": 0.26, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.4, "output": 4.4 } @@ -527207,6 +538805,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -527220,6 +538819,7 @@ "per1MTokens": { "cacheRead": 0.26, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.4, "output": 4.4 } @@ -527233,6 +538833,7 @@ "per1MTokens": { "cacheRead": 0.525, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.05, "output": 3.5 } @@ -527246,6 +538847,7 @@ "per1MTokens": { "cacheRead": 0.26, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.4, "output": 4.4 } @@ -527307,7 +538909,7 @@ "top_logprobs", "top_p" ], - "providerModelRecordCount": 41 + "providerModelRecordCount": 43 }, "sourceRecords": [ { @@ -527349,6 +538951,23 @@ "releaseDate": "2026-04-07" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "aiand", + "providerName": "ai&", + "providerApi": "https://api.aiand.com/v1", + "providerDoc": "https://docs.aiand.com/", + "model": "zai-org/glm-5.1", + "modelKey": "zai-org/glm-5.1", + "displayName": "GLM-5.1", + "family": "glm", + "metadata": { + "lastUpdated": "2026-04-07", + "openWeights": true, + "releaseDate": "2026-04-07" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -527676,6 +539295,32 @@ "releaseDate": "2026-04-03" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "hyper", + "providerName": "Charm Hyper", + "providerApi": "https://hyper.charm.land/v1", + "providerDoc": "https://hyper.charm.land", + "model": "glm-5.1", + "modelKey": "glm-5.1", + "displayName": "GLM-5.1", + "family": "glm", + "metadata": { + "lastUpdated": "2026-07-22", + "openWeights": true, + "releaseDate": "2026-06-04", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "high", + "max" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -528287,6 +539932,7 @@ "toolCalling": true, "videoInput": false, "supports1MContext": false, + "highReasoningEffort": true, "maxReasoningEffort": true }, "pricing": { @@ -528302,6 +539948,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.4, "output": 4.4 } @@ -528327,6 +539974,7 @@ "per1MTokens": { "cacheRead": 0.26, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.4, "output": 4.4 } @@ -528816,6 +540464,7 @@ ], "providers": [ "abacus", + "aiand", "aihubmix", "alibaba-cn", "alibaba-token-plan", @@ -528823,6 +540472,7 @@ "ambient", "baseten", "berget", + "cline-pass", "cloudflare", "cloudflare-ai-gateway", "cloudflare-workers-ai", @@ -528831,10 +540481,12 @@ "crossmodel", "deepinfra", "digitalocean", + "dinference", "evroc", "friendli", "hpc-ai", "huggingface", + "hyper", "inceptron", "lilac", "llmgateway", @@ -528844,6 +540496,7 @@ "neuralwatt", "novita-ai", "nvidia", + "ofox", "ollama-cloud", "opencode", "opencode-go", @@ -528869,6 +540522,7 @@ ], "aliases": [ "abacus/zai-org/GLM-5.2", + "aiand/zai-org/glm-5.2", "aihubmix/glm-5.2", "alibaba-cn/glm-5.2", "alibaba-token-plan-cn/glm-5.2", @@ -528876,6 +540530,7 @@ "ambient/z-ai/glm-5.2", "baseten/zai-org/GLM-5.2", "berget/zai-org/GLM-5.2", + "cline-pass/glm-5.2", "cloudflare-ai-gateway/workers-ai/@cf/zai-org/glm-5.2", "cloudflare-workers-ai/@cf/zai-org/glm-5.2", "cloudflare/@cf/zai-org/glm-5.2", @@ -528884,10 +540539,12 @@ "crossmodel/z-ai/glm-5.2", "deepinfra/zai-org/GLM-5.2", "digitalocean/glm-5.2", + "dinference/glm-5.2", "evroc/zai-org/GLM-5.2", "friendli/zai-org/GLM-5.2", "hpc-ai/zai-org/glm-5.2", "huggingface/zai-org/GLM-5.2", + "hyper/glm-5.2", "inceptron/zai-org/GLM-5.2", "lilac/zai-org/glm-5.2", "llmgateway/glm-5.2", @@ -528897,6 +540554,7 @@ "neuralwatt/glm-5.2", "novita-ai/zai-org/glm-5.2", "nvidia/z-ai/glm-5.2", + "ofox/z-ai/glm-5.2", "ollama-cloud/glm-5.2", "opencode-go/glm-5.2", "opencode/glm-5.2", @@ -528920,7 +540578,7 @@ "zhipuai-coding-plan/glm-5.2", "zhipuai/glm-5.2" ], - "mergedProviderModelRecords": 51, + "mergedProviderModelRecords": 56, "limits": { "contextTokens": 1049000, "inputTokens": 262144, @@ -528950,11 +540608,13 @@ "toolCalling": true, "videoInput": false, "supports1MContext": true, - "maxReasoningEffort": true, - "noneReasoningEffort": true, "lowReasoningEffort": true, - "xhighReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "minimalReasoningEffort": true, + "noneReasoningEffort": true, + "xhighReasoningEffort": true, + "maxReasoningEffort": true, "parallelFunctionCalling": true, "responseSchema": true, "toolChoice": true, @@ -528983,6 +540643,17 @@ "output": 4.4 } }, + { + "source": "models.dev", + "provider": "aiand", + "model": "zai-org/glm-5.2", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 1, + "output": 4 + } + }, { "source": "models.dev", "provider": "aihubmix", @@ -529004,6 +540675,7 @@ "per1MTokens": { "cacheRead": 0.275, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.1, "output": 3.851 } @@ -529017,6 +540689,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -529030,6 +540703,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -529043,6 +540717,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.05, "output": 4.4 } @@ -529070,6 +540745,18 @@ "output": 4.84 } }, + { + "source": "models.dev", + "provider": "cline-pass", + "model": "cline-pass/glm-5.2", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.26, + "input": 1.4, + "output": 4.4 + } + }, { "source": "models.dev", "provider": "cloudflare-ai-gateway", @@ -529127,6 +540814,7 @@ "per1MTokens": { "cacheRead": 0.3, "cacheWrite": 1.2, + "cacheWrite5m": 1.2, "input": 1.2, "output": 4.4 } @@ -529155,6 +540843,17 @@ "output": 4.4 } }, + { + "source": "models.dev", + "provider": "dinference", + "model": "glm-5.2", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "input": 1.25, + "output": 3.89 + } + }, { "source": "models.dev", "provider": "evroc", @@ -529201,6 +540900,18 @@ "output": 4.4 } }, + { + "source": "models.dev", + "provider": "hyper", + "model": "glm-5.2", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.28, + "input": 1.4, + "output": 4.4 + } + }, { "source": "models.dev", "provider": "inceptron", @@ -529210,6 +540921,7 @@ "per1MTokens": { "cacheRead": 0.26, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.2, "output": 4.2 } @@ -529233,10 +540945,11 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.234, + "cacheRead": 0.16, "cacheWrite": 0, - "input": 1.26, - "output": 3.96 + "cacheWrite5m": 0, + "input": 0.8, + "output": 2.55 } }, { @@ -529296,6 +541009,18 @@ "output": 0 } }, + { + "source": "models.dev", + "provider": "ofox", + "model": "z-ai/glm-5.2", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.26, + "input": 1.4, + "output": 4.4 + } + }, { "source": "models.dev", "provider": "opencode-go", @@ -529327,9 +541052,9 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.04784, - "input": 0.2576, - "output": 0.8096 + "cacheRead": 0.13702, + "input": 0.7378, + "output": 2.3188 } }, { @@ -529341,6 +541066,7 @@ "per1MTokens": { "cacheRead": 0.26, "cacheWrite": 1.4, + "cacheWrite5m": 1.4, "input": 1.4, "output": 4.4 } @@ -529375,6 +541101,7 @@ "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.4, "output": 4.4 } @@ -529387,6 +541114,7 @@ "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.4, "output": 4.4 } @@ -529471,6 +541199,7 @@ "per1MTokens": { "cacheRead": 0.2, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.2, "output": 4.1 } @@ -529482,9 +541211,9 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.26, - "input": 1.39, - "output": 4.4 + "cacheRead": 0.14, + "input": 0.76, + "output": 2.42 } }, { @@ -529496,6 +541225,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -529509,6 +541239,7 @@ "per1MTokens": { "cacheRead": 0.26, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.4, "output": 4.4 } @@ -529534,6 +541265,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -529547,6 +541279,7 @@ "per1MTokens": { "cacheRead": 0.26, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.4, "output": 4.4 } @@ -529570,9 +541303,9 @@ "sourceUrl": "https://openrouter.ai/api/v1/models", "sourceUnit": "usd_per_token_for_token_fields", "per1MTokens": { - "cacheRead": 0.0507, - "input": 0.273, - "output": 0.858 + "cacheRead": 0.14274, + "input": 0.7686, + "output": 2.4156 } } ] @@ -529615,7 +541348,7 @@ "top_logprobs", "top_p" ], - "providerModelRecordCount": 51 + "providerModelRecordCount": 56 }, "sourceRecords": [ { @@ -529635,6 +541368,36 @@ "releaseDate": "2026-06-13" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "aiand", + "providerName": "ai&", + "providerApi": "https://api.aiand.com/v1", + "providerDoc": "https://docs.aiand.com/", + "model": "zai-org/glm-5.2", + "modelKey": "zai-org/glm-5.2", + "displayName": "GLM-5.2", + "family": "glm", + "metadata": { + "lastUpdated": "2026-06-13", + "openWeights": true, + "releaseDate": "2026-06-13", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -529803,6 +541566,35 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "cline-pass", + "providerName": "ClinePass", + "providerApi": "https://api.cline.bot/api/v1", + "providerDoc": "https://docs.cline.bot/getting-started/clinepass", + "model": "cline-pass/glm-5.2", + "modelKey": "cline-pass/glm-5.2", + "displayName": "GLM-5.2", + "family": "glm", + "metadata": { + "lastUpdated": "2026-06-13", + "openWeights": true, + "releaseDate": "2026-06-13", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "none", + "low", + "medium", + "high", + "xhigh" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -529997,6 +541789,23 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "dinference", + "providerName": "DInference", + "providerApi": "https://api.dinference.com/v1", + "providerDoc": "https://dinference.com", + "model": "glm-5.2", + "modelKey": "glm-5.2", + "displayName": "GLM-5.2", + "family": "glm", + "metadata": { + "lastUpdated": "2026-06-13", + "openWeights": true, + "releaseDate": "2026-06-13" + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -530096,6 +541905,32 @@ "releaseDate": "2026-06-13" } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "hyper", + "providerName": "Charm Hyper", + "providerApi": "https://hyper.charm.land/v1", + "providerDoc": "https://hyper.charm.land", + "model": "glm-5.2", + "modelKey": "glm-5.2", + "displayName": "GLM-5.2", + "family": "glm", + "metadata": { + "lastUpdated": "2026-07-22", + "openWeights": true, + "releaseDate": "2026-06-30", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "high", + "max" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -530167,14 +542002,13 @@ "openWeights": true, "releaseDate": "2026-06-13", "reasoningOptions": [ + { + "type": "toggle" + }, { "type": "effort", "values": [ - "none", - "low", - "medium", "high", - "xhigh", "max" ] } @@ -530347,6 +542181,32 @@ ] } }, + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "ofox", + "providerName": "Ofox", + "providerApi": "https://api.ofox.ai/v1", + "providerDoc": "https://ofox.ai/docs", + "model": "z-ai/glm-5.2", + "modelKey": "z-ai/glm-5.2", + "displayName": "GLM-5.2", + "family": "glm", + "metadata": { + "lastUpdated": "2026-06-13", + "openWeights": true, + "releaseDate": "2026-06-13", + "reasoningOptions": [ + { + "type": "effort", + "values": [ + "high", + "max" + ] + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -530983,14 +542843,16 @@ "models.dev" ], "providers": [ + "baseten", "neuralwatt", "vercel" ], "aliases": [ + "baseten/zai-org/GLM-5.2-Fast", "neuralwatt/glm-5.2-fast", "vercel/zai/glm-5.2-fast" ], - "mergedProviderModelRecords": 2, + "mergedProviderModelRecords": 3, "limits": { "contextTokens": 1048560, "outputTokens": 1048560, @@ -531013,16 +542875,30 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "structuredOutput": true, "temperature": true, "toolCalling": true, "videoInput": false, "supports1MContext": true, + "highReasoningEffort": true, "xhighReasoningEffort": true }, "pricing": { "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ + { + "source": "models.dev", + "provider": "baseten", + "model": "zai-org/GLM-5.2-Fast", + "sourceUrl": "https://models.dev/api.json", + "sourceUnit": "usd_per_1m_tokens", + "per1MTokens": { + "cacheRead": 0.21, + "input": 2.1, + "output": 6.6 + } + }, { "source": "models.dev", "provider": "neuralwatt", @@ -531056,11 +542932,33 @@ "families": [ "glm" ], - "releaseDate": "2026-06-17", - "lastUpdated": "2026-06-17", - "providerModelRecordCount": 2 + "releaseDate": "2026-06-13", + "lastUpdated": "2026-06-13", + "providerModelRecordCount": 3 }, "sourceRecords": [ + { + "source": "models.dev", + "sourceUrl": "https://models.dev/api.json", + "provider": "baseten", + "providerName": "Baseten", + "providerApi": "https://inference.baseten.co/v1", + "providerDoc": "https://docs.baseten.co/inference/model-apis/overview", + "model": "zai-org/GLM-5.2-Fast", + "modelKey": "zai-org/GLM-5.2-Fast", + "displayName": "GLM 5.2 Fast", + "family": "glm", + "metadata": { + "lastUpdated": "2026-06-13", + "openWeights": true, + "releaseDate": "2026-06-13", + "reasoningOptions": [ + { + "type": "toggle" + } + ] + } + }, { "source": "models.dev", "sourceUrl": "https://models.dev/api.json", @@ -531089,7 +542987,7 @@ "displayName": "GLM 5.2 Fast", "family": "glm", "metadata": { - "lastUpdated": "2026-06-16", + "lastUpdated": "2026-06-13", "openWeights": false, "releaseDate": "2026-06-23", "reasoningOptions": [ @@ -531147,6 +543045,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, @@ -531267,6 +543167,7 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -531287,6 +543188,7 @@ "per1MTokens": { "cacheRead": 0.26, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.2, "output": 4.2 } @@ -531437,6 +543339,7 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -531633,6 +543536,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, @@ -531934,6 +543839,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "minimalReasoningEffort": true, "noneReasoningEffort": true, @@ -532067,9 +543974,9 @@ "sourceUrl": "https://models.dev/api.json", "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { - "cacheRead": 0.7, - "input": 1.4, - "output": 4.4 + "cacheRead": 0.625, + "input": 1.25, + "output": 3.95 } } ] @@ -532201,23 +544108,18 @@ "id": "z-ai/glm-5p1", "provider": "z-ai", "model": "glm-5p1", - "displayName": "GLM 5.1", - "family": "glm", "mode": "chat", "sources": [ - "litellm", - "models.dev" + "litellm" ], "providers": [ - "fireworks-ai", "fireworks_ai" ], "aliases": [ - "fireworks-ai/accounts/fireworks/models/glm-5p1", "fireworks_ai/accounts/fireworks/models/glm-5p1", "fireworks_ai/glm-5p1" ], - "mergedProviderModelRecords": 3, + "mergedProviderModelRecords": 2, "limits": { "contextTokens": 202800, "inputTokens": 202800, @@ -532234,45 +544136,29 @@ ] }, "capabilities": { - "attachments": false, "audioInput": false, "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": true, - "temperature": true, - "toolCalling": true, - "videoInput": false, - "supports1MContext": false, "embedding": false, "functionCalling": true, "imageGeneration": false, + "imageInput": false, + "imageOutput": false, "moderation": false, + "pdfInput": false, + "reasoning": true, "rerank": false, "responseSchema": true, "speech": false, "toolChoice": true, "transcription": false, - "vision": false + "videoInput": false, + "vision": false, + "supports1MContext": false }, "pricing": { "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ - { - "source": "models.dev", - "provider": "fireworks-ai", - "model": "accounts/fireworks/models/glm-5p1", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.26, - "input": 1.4, - "output": 4.4 - } - }, { "source": "litellm", "provider": "fireworks_ai", @@ -532300,42 +544186,12 @@ ] }, "metadata": { - "displayNames": [ - "GLM 5.1" - ], - "families": [ - "glm" - ], "modes": [ "chat" ], - "releaseDate": "2026-04-01", - "lastUpdated": "2026-04-01", - "providerModelRecordCount": 3 + "providerModelRecordCount": 2 }, "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "fireworks-ai", - "providerName": "Fireworks AI", - "providerApi": "https://api.fireworks.ai/inference/v1/", - "providerDoc": "https://fireworks.ai/docs/", - "model": "accounts/fireworks/models/glm-5p1", - "modelKey": "accounts/fireworks/models/glm-5p1", - "displayName": "GLM 5.1", - "family": "glm", - "metadata": { - "lastUpdated": "2026-04-01", - "openWeights": true, - "releaseDate": "2026-04-01", - "reasoningOptions": [ - { - "type": "toggle" - } - ] - } - }, { "source": "litellm", "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", @@ -532362,23 +544218,18 @@ "id": "z-ai/glm-5p1-fast", "provider": "z-ai", "model": "glm-5p1-fast", - "displayName": "GLM 5.1 Fast", - "family": "glm", "mode": "chat", "sources": [ - "litellm", - "models.dev" + "litellm" ], "providers": [ - "fireworks-ai", "fireworks_ai" ], "aliases": [ - "fireworks-ai/accounts/fireworks/routers/glm-5p1-fast", "fireworks_ai/accounts/fireworks/routers/glm-5p1-fast", "fireworks_ai/glm-5p1-fast" ], - "mergedProviderModelRecords": 3, + "mergedProviderModelRecords": 2, "limits": { "contextTokens": 202800, "inputTokens": 202800, @@ -532395,45 +544246,29 @@ ] }, "capabilities": { - "attachments": false, "audioInput": false, "audioOutput": false, - "imageInput": false, - "imageOutput": false, - "openWeights": true, - "pdfInput": false, - "reasoning": true, - "temperature": true, - "toolCalling": true, - "videoInput": false, - "supports1MContext": false, "embedding": false, "functionCalling": true, "imageGeneration": false, + "imageInput": false, + "imageOutput": false, "moderation": false, + "pdfInput": false, + "reasoning": true, "rerank": false, "responseSchema": true, "speech": false, "toolChoice": true, "transcription": false, - "vision": false + "videoInput": false, + "vision": false, + "supports1MContext": false }, "pricing": { "currency": "USD", "normalizedUnit": "per1MTokens values are USD per 1,000,000 tokens; non-token values keep the unit named by their object key.", "offers": [ - { - "source": "models.dev", - "provider": "fireworks-ai", - "model": "accounts/fireworks/routers/glm-5p1-fast", - "sourceUrl": "https://models.dev/api.json", - "sourceUnit": "usd_per_1m_tokens", - "per1MTokens": { - "cacheRead": 0.52, - "input": 2.8, - "output": 8.8 - } - }, { "source": "litellm", "provider": "fireworks_ai", @@ -532461,42 +544296,12 @@ ] }, "metadata": { - "displayNames": [ - "GLM 5.1 Fast" - ], - "families": [ - "glm" - ], "modes": [ "chat" ], - "releaseDate": "2026-04-01", - "lastUpdated": "2026-04-01", - "providerModelRecordCount": 3 + "providerModelRecordCount": 2 }, "sourceRecords": [ - { - "source": "models.dev", - "sourceUrl": "https://models.dev/api.json", - "provider": "fireworks-ai", - "providerName": "Fireworks AI", - "providerApi": "https://api.fireworks.ai/inference/v1/", - "providerDoc": "https://fireworks.ai/docs/", - "model": "accounts/fireworks/routers/glm-5p1-fast", - "modelKey": "accounts/fireworks/routers/glm-5p1-fast", - "displayName": "GLM 5.1 Fast", - "family": "glm", - "metadata": { - "lastUpdated": "2026-04-01", - "openWeights": true, - "releaseDate": "2026-04-01", - "reasoningOptions": [ - { - "type": "toggle" - } - ] - } - }, { "source": "litellm", "sourceUrl": "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", @@ -532564,6 +544369,7 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -532726,6 +544532,7 @@ "openWeights": true, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -532866,6 +544673,7 @@ "videoInput": true, "supports1MContext": false, "structuredOutput": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "parallelFunctionCalling": false, "responseSchema": true, @@ -532908,6 +544716,7 @@ "per1MTokens": { "cacheRead": 0.308, "cacheWrite": 1.544, + "cacheWrite5m": 1.544, "input": 1.235, "output": 4.118 } @@ -532956,6 +544765,7 @@ "sourceUnit": "usd_per_1m_tokens", "per1MTokens": { "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.2, "output": 4 } @@ -532981,6 +544791,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -532994,6 +544805,7 @@ "per1MTokens": { "cacheRead": 0.24, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 1.2, "output": 4 } @@ -533019,6 +544831,7 @@ "per1MTokens": { "cacheRead": 0, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0, "output": 0 } @@ -533032,6 +544845,7 @@ "per1MTokens": { "cacheRead": 1.2, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 5, "output": 22 } @@ -533607,6 +545421,7 @@ "openWeights": false, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "xhighReasoningEffort": true, "structuredOutput": true, "toolCalling": true, @@ -534149,6 +545964,7 @@ "openWeights": false, "pdfInput": false, "reasoning": true, + "highReasoningEffort": true, "maxReasoningEffort": true, "structuredOutput": true, "temperature": true, @@ -534424,6 +546240,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": true, @@ -534442,6 +546260,7 @@ "per1MTokens": { "cacheRead": 0.02, "cacheWrite": 0.0024, + "cacheWrite5m": 0.0024, "input": 0.11, "output": 0.28 } @@ -534615,6 +546434,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": true, @@ -534633,6 +546454,7 @@ "per1MTokens": { "cacheRead": 0.02, "cacheWrite": 0.0024, + "cacheWrite5m": 0.0024, "input": 0.09, "output": 0.51 } @@ -534718,6 +546540,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": true, @@ -534736,6 +546560,7 @@ "per1MTokens": { "cacheRead": 0.01, "cacheWrite": 0.0024, + "cacheWrite5m": 0.0024, "input": 0.03, "output": 0.28 } @@ -534821,6 +546646,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": true, @@ -534839,6 +546666,7 @@ "per1MTokens": { "cacheRead": 0.09, "cacheWrite": 0.0024, + "cacheWrite5m": 0.0024, "input": 0.45, "output": 2.24 } @@ -534923,6 +546751,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": false, @@ -535114,6 +546944,7 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "highReasoningEffort": true, "noneReasoningEffort": true, "temperature": true, "toolCalling": true, @@ -535133,6 +546964,7 @@ "per1MTokens": { "cacheRead": 0.058, "cacheWrite": 0, + "cacheWrite5m": 0, "input": 0.172, "output": 0.572 } @@ -536305,6 +548137,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": true, @@ -536407,6 +548241,8 @@ "pdfInput": false, "reasoning": true, "lowReasoningEffort": true, + "mediumReasoningEffort": true, + "highReasoningEffort": true, "temperature": true, "toolCalling": true, "videoInput": true, diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts index d411f1f2..f6af49cd 100644 --- a/packages/core/src/config/config.ts +++ b/packages/core/src/config/config.ts @@ -53,6 +53,7 @@ import type { ProviderModelPricing, ProviderReasoningLevel, ProfileConfig, + ProfileRoutingConfig, ProfileRuntimeConfig, ProxyRouteTarget, ProxyRuntimeConfig, @@ -3428,6 +3429,7 @@ function parseProfiles(value: unknown): ProfileConfig[] | undefined { const parsedBotGateway = parseBotGateway(item.botGateway ?? item.bot_gateway ?? item.bot); const botGateway = surface !== "cli" && parsedBotGateway ? completeBotGatewayConfig(parsedBotGateway) : undefined; const managedCompact = readManagedCompact(item); + const routing = parseProfileRouting(item.routing ?? item.route, agent); if (agent === "claude-code") { const appPath = readProfileAppPath(item, agent); @@ -3445,6 +3447,7 @@ function parseProfiles(value: unknown): ProfileConfig[] | undefined { model, name, opusModel: readString(item.opusModel) || readString(item.defaultOpusModel) || "", + ...(routing ? { routing } : {}), scope: parseProfileScope(readString(item.scope) || readString(item.applyScope) || readString(item.effectScope)) || "global", settingsFile: readString(item.settingsFile) || readString(item.configFile) || "~/.claude/settings.json", sonnetModel: readString(item.sonnetModel) || readString(item.defaultSonnetModel) || "", @@ -3462,6 +3465,7 @@ function parseProfiles(value: unknown): ProfileConfig[] | undefined { id, model, name, + ...(routing ? { routing } : {}), scope: "ccr", surface: "cli" }; @@ -3475,6 +3479,7 @@ function parseProfiles(value: unknown): ProfileConfig[] | undefined { id, model: "", name, + ...(routing ? { routing } : {}), scope: "ccr", surface: "app" }; @@ -3500,6 +3505,7 @@ function parseProfiles(value: unknown): ProfileConfig[] | undefined { providerId: readString(item.providerId) || readString(item.provider) || "claude-code-router", providerName: readString(item.providerName) || "Claude Code Router", remoteFrontendMode: parseCodexRemoteFrontendMode(readString(item.remoteFrontendMode) || readString(item.frontendMode) || readString(item.coreMode)) || "app", + ...(routing ? { routing } : {}), scope: parseProfileScope(readString(item.scope) || readString(item.applyScope) || readString(item.effectScope)) || "global", showAllSessions: agent === "zcode" || agent === "opencode" || agent === "kilo" ? false @@ -3514,6 +3520,44 @@ function parseProfiles(value: unknown): ProfileConfig[] | undefined { .filter((item): item is ProfileConfig => Boolean(item)); } +function parseProfileRouting(value: unknown, _agent: ProfileConfig["agent"]): ProfileRoutingConfig | undefined { + if (value === false) { + return { + enabled: false, + enhancedRoute: true, + rules: [] + }; + } + if (value === true) { + return { + enabled: true, + enhancedRoute: true, + rules: [] + }; + } + if (!isObject(value)) { + return undefined; + } + + const enhancedRoute = readBoolean( + value.enhancedRoute ?? + value.useEnhancedRoute ?? + value.builtInRoute ?? + value.builtinRoute ?? + value.useBuiltInRoute ?? + value.use_builtin_route + ); + return { + enabled: readBoolean(value.enabled) ?? true, + enhancedRoute: enhancedRoute ?? true, + rules: parseRouterRules(value.rules) ?? [] + }; +} + +function readBoolean(value: unknown): boolean | undefined { + return typeof value === "boolean" ? value : undefined; +} + function readProfileAppPath(item: Record, agent: ProfileConfig["agent"]): string | undefined { return readString(item.appPath) || readString(item.app_path) || diff --git a/packages/core/src/contracts/app.ts b/packages/core/src/contracts/app.ts index de88e412..e190f811 100644 --- a/packages/core/src/contracts/app.ts +++ b/packages/core/src/contracts/app.ts @@ -688,6 +688,12 @@ export type RouterConfig = { rules: RouterRule[]; }; +export type ProfileRoutingConfig = { + enabled: boolean; + enhancedRoute: boolean; + rules: RouterRule[]; +}; + export type RouteScriptDiagnostic = { code: string; column?: number; @@ -1427,6 +1433,7 @@ export type ProfileConfig = { providerId?: string; providerName?: string; remoteFrontendMode?: CodexRemoteFrontendMode; + routing?: ProfileRoutingConfig; scope?: ProfileScope; showAllSessions?: boolean; settingsFile?: string; diff --git a/packages/core/src/gateway/application/gateway-service.ts b/packages/core/src/gateway/application/gateway-service.ts index ac8b8ecc..018c166c 100644 --- a/packages/core/src/gateway/application/gateway-service.ts +++ b/packages/core/src/gateway/application/gateway-service.ts @@ -26,7 +26,34 @@ import { compileRouterConfig } from "@ccr/core/routing/config-compiler"; import { normalizeRouteScriptResult, scriptResultPreview } from "@ccr/core/routing/route-script-result"; import { mediaService } from "@ccr/core/media/service"; import { mediaToolsGatewayEndpoint } from "@ccr/core/mcp/grok-media-config"; +import { profileApiKeyId } from "@ccr/core/profiles/api-key"; +type RouteScriptTestHeaders = Record; + +function routeScriptTestProfileId( + config: AppConfig, + headers: RouteScriptTestHeaders +): string | undefined { + if (config.profile?.enabled === false) { + return undefined; + } + const apiKeyId = readRouteScriptTestHeader(headers, "x-auth-api-key-id")?.trim(); + if (!apiKeyId) { + return undefined; + } + return config.profile?.profiles.find((profile) => + profile.enabled && profileApiKeyId(profile) === apiKeyId + )?.id; +} + +function readRouteScriptTestHeader( + headers: RouteScriptTestHeaders, + name: string +): string | undefined { + const normalized = name.toLowerCase(); + const entry = Object.entries(headers).find(([key]) => key.toLowerCase() === normalized)?.[1]; + return Array.isArray(entry) ? entry[0] : entry; +} class GatewayService { private readonly requestHandler = new GatewayHttpRequestHandler({ @@ -299,7 +326,9 @@ class GatewayService { tokenCount: request.request.tokenCount ?? 0, url: request.request.url ?? "/v1/messages" }; - const context = buildRouteScriptInput(routeRequest); + const context = buildRouteScriptInput(routeRequest, { + profileId: routeScriptTestProfileId(config, routeRequest.headers) + }); const execution = await this.routeScriptRuntime.execute(rule.id, request.script, context, { circuitBreaker: false }); diff --git a/packages/core/src/gateway/claude-code-router-plugin.ts b/packages/core/src/gateway/claude-code-router-plugin.ts index 3c221c67..c4db5bec 100644 --- a/packages/core/src/gateway/claude-code-router-plugin.ts +++ b/packages/core/src/gateway/claude-code-router-plugin.ts @@ -2,12 +2,12 @@ import { createRequire } from "node:module"; import { EventEmitter } from "node:events"; import os from "node:os"; import path from "node:path"; -import { isGatewayProviderEnabled, type AppConfig, type ProfileClientKind, type RequestRouteTraceChange, type RouterBuiltInAgentRuleId, type RouterFallbackConfig, type RouterRule, type RouterRuleCondition } from "@ccr/core/contracts/app"; +import { isGatewayProviderEnabled, type AppConfig, type ProfileClientKind, type ProfileConfig, type RequestRouteTraceChange, type RouterBuiltInAgentRuleId, type RouterFallbackConfig, type RouterRule, type RouterRuleCondition } from "@ccr/core/contracts/app"; import { CONFIGDIR } from "@ccr/core/config/constants"; import { applyAgentRequestEnrichers } from "@ccr/core/agents/request-enricher"; import { buildClaudeAppGatewayModelRoutes, type ClaudeAppGatewayModelRoute, resolveClaudeAppGatewayRouteModel } from "@ccr/core/agents/claude-app/gateway-routes"; import { claudeAppGatewayModelRouteOptions } from "@ccr/core/gateway/internal/shared"; -import { compileRouterConfig, type CompiledRouterConfig, type CompiledRouterRule } from "@ccr/core/routing/config-compiler"; +import { compileRouterConfig, type CompiledProfileRoutingConfig, type CompiledRouterConfig, type CompiledRouterRule } from "@ccr/core/routing/config-compiler"; import type { RouteDecision, RouteDiagnostic, RouteModelRef, RouteRequest, RouteSource } from "@ccr/core/routing/contracts"; import { ModelRegistry, normalizeRouteSelector } from "@ccr/core/routing/model-registry"; import { RoutePolicyEngine, type RoutePolicy } from "@ccr/core/routing/policy-engine"; @@ -16,6 +16,7 @@ import { applyCompiledRouteRewrite, isBodyModelCompiledRewrite, type CompiledRou import { buildRouteScriptInput } from "@ccr/core/routing/route-script-context"; import { normalizeRouteScriptResult } from "@ccr/core/routing/route-script-result"; import type { RouteScriptRuntime } from "@ccr/core/routing/route-script-runtime"; +import { profileApiKeyId } from "@ccr/core/profiles/api-key"; export { normalizeRouteSelector } from "@ccr/core/routing/model-registry"; @@ -281,6 +282,11 @@ type RouteResolutionRuntime = { trace?: RouteTraceObserver; }; +type RouteAuthContext = { + apiKeyId?: string; + profileId?: string; +}; + async function resolveConfiguredRouteDecision( request: MutableRequestLike, config: AppConfig, @@ -290,6 +296,10 @@ async function resolveConfiguredRouteDecision( ): Promise { const requestedModel = readString(request.body.model); const explicitModel = normalizeRouteSelector(requestedModel); + const authenticatedProfile = resolveAuthenticatedAnyProfile(request, config); + const auth = routeAuthContext(request, authenticatedProfile); + const profileRouting = authenticatedProfile ? compiled.profileRoutings.find((entry) => entry.profile.id === authenticatedProfile.id && entry.active) : undefined; + const defaultFallback = compiled.fallback; const resolvedExplicitModel = compiled.modelRegistry.resolve(explicitModel) ?? compiled.modelRegistry.resolve( explicitModel ? resolveClaudeAppGatewayRouteModel(explicitModel, config, claudeAppGatewayModelRouteOptions) @@ -297,19 +307,19 @@ async function resolveConfiguredRouteDecision( ); const explicitDecision: ConfiguredRouteDecision | undefined = resolvedExplicitModel ? { - fallback: compiled.fallback, + fallback: defaultFallback, model: resolvedExplicitModel, reason: "default", rewrites: [], source: "default" } : undefined; - const builtInDecision = resolveBuiltInAgentRouteDecision(request, config, compiled.modelRegistry, compiled.fallback); + const builtInDecision = resolveBuiltInAgentRouteDecision(request, config, compiled.modelRegistry, defaultFallback); const subagentEnvDecision = resolveBuiltInClaudeCodeSubagentEnvRouteDecision( request, config, compiled.modelRegistry, - compiled.fallback + defaultFallback ); const clientModelDecision = explicitDecision && explicitClientModelCanOverrideBuiltInClaudeCodeRoute( request, @@ -320,11 +330,31 @@ async function resolveConfiguredRouteDecision( ? explicitDecision : undefined; const ruleBaseDecision = subagentEnvDecision ?? clientModelDecision ?? builtInDecision; + const profilePolicies: Array> = profileRouting + ? profileRouting.rules.map((rule): RoutePolicy => ({ + evaluate: async (context) => { + const policyId = profileRulePolicyId(profileRouting, rule); + const decision = await resolveRouterRule(rule, context, compiled, runtime, { + auth, + defaultFallback, + policyId, + source: "profile" + }); + if (!decision || decision.rewrites.some(isBodyModelCompiledRewrite)) { + return decision; + } + return ruleBaseDecision + ? mergeConfiguredRouteDecisions(ruleBaseDecision, decision) + : decision; + }, + id: profileRulePolicyId(profileRouting, rule) + })) + : []; const policies: Array> = [ { evaluate: () => customModel ? { - fallback: compiled.fallback, + fallback: defaultFallback, model: customModel, reason: "custom-router", rewrites: [], @@ -338,13 +368,19 @@ async function resolveConfiguredRouteDecision( context, config, compiled.modelRegistry, - compiled.fallback + defaultFallback ), id: "builtin-agent-claude-code-subagent" }, + ...profilePolicies, ...compiled.rules.map((rule): RoutePolicy => ({ evaluate: async (context) => { - const decision = await resolveRouterRule(rule, context, compiled, runtime); + const decision = await resolveRouterRule(rule, context, compiled, runtime, { + auth, + defaultFallback, + policyId: `rule:${rule.rule.id}`, + source: "rule" + }); if (!decision || decision.rewrites.some(isBodyModelCompiledRewrite)) { return decision; } @@ -368,7 +404,7 @@ async function resolveConfiguredRouteDecision( }, { evaluate: () => ({ - fallback: compiled.fallback, + fallback: defaultFallback, model: undefined, reason: "default", rewrites: [], @@ -379,9 +415,7 @@ async function resolveConfiguredRouteDecision( ]; const match = await new RoutePolicyEngine(policies).evaluate(request); if (match) { - const compiledRule = match.policyId.startsWith("rule:") - ? compiled.rules.find((rule) => `rule:${rule.rule.id}` === match.policyId) - : undefined; + const compiledRule = findMatchedCompiledRule(match.policyId, compiled); return { ...match.decision, policyId: match.policyId, @@ -389,7 +423,7 @@ async function resolveConfiguredRouteDecision( }; } return { - fallback: compiled.fallback, + fallback: defaultFallback, model: resolvedExplicitModel, policyId: "default", reason: "default", @@ -398,6 +432,29 @@ async function resolveConfiguredRouteDecision( }; } +function profileRulePolicyId( + profileRouting: CompiledProfileRoutingConfig, + rule: CompiledRouterRule +): string { + return `profile:${profileRouting.profile.id}:rule:${rule.rule.id}`; +} + +function findMatchedCompiledRule( + policyId: string, + compiled: CompiledRouterConfig +): CompiledRouterRule | undefined { + if (policyId.startsWith("rule:")) { + return compiled.rules.find((rule) => `rule:${rule.rule.id}` === policyId); + } + for (const profileRouting of compiled.profileRoutings) { + const matched = profileRouting.rules.find((rule) => profileRulePolicyId(profileRouting, rule) === policyId); + if (matched) { + return matched; + } + } + return undefined; +} + function mergeConfiguredRouteDecisions( base: ConfiguredRouteDecision, override: ConfiguredRouteDecision @@ -586,10 +643,11 @@ function builtInAgentRouteMatches( config: AppConfig, agent: RouterBuiltInAgentRuleId ): boolean { - if (config.Router.builtInRules?.[agent]?.enabled === false) { + const profile = resolveBuiltInAgentProfile(request, config, agent); + if (!profile) { return false; } - if (!resolveBuiltInAgentProfile(request, config, agent)) { + if (profile.routing?.enhancedRoute === false) { return false; } const userAgent = readRequestHeader(request.headers, "user-agent")?.toLowerCase() ?? ""; @@ -608,6 +666,14 @@ function resolveAuthenticatedProfile( request: MutableRequestLike, config: AppConfig, agent: ProfileClientKind +) { + const profile = resolveAuthenticatedAnyProfile(request, config); + return profile?.agent === agent ? profile : undefined; +} + +function resolveAuthenticatedAnyProfile( + request: MutableRequestLike, + config: AppConfig ) { if (config.profile.enabled === false) { return undefined; @@ -618,11 +684,21 @@ function resolveAuthenticatedProfile( } return config.profile.profiles.find((profile) => profile.enabled && - profile.agent === agent && profileApiKeyId(profile.id || profile.name || profile.agent) === authenticatedApiKeyId ); } +function routeAuthContext( + request: MutableRequestLike, + profile: ProfileConfig | undefined +): RouteAuthContext { + const apiKeyId = readRequestHeader(request.headers, "x-auth-api-key-id")?.trim(); + return { + ...(apiKeyId ? { apiKeyId } : {}), + ...(profile?.id ? { profileId: profile.id } : {}) + }; +} + function resolveBuiltInAgentRouteTarget( request: MutableRequestLike, config: AppConfig, @@ -631,11 +707,6 @@ function resolveBuiltInAgentRouteTarget( return normalizeRouteSelector(resolveBuiltInAgentProfile(request, config, agent)?.model); } -function profileApiKeyId(value: string): string { - const profileId = value.trim().replace(/[^a-zA-Z0-9_.-]+/g, "-").replace(/^-+|-+$/g, ""); - return `profile:${profileId || "profile"}`; -} - function builtInAgentUserAgentNeedle(agent: RouterBuiltInAgentRuleId): string { return agent === "claude-code" ? "claude" : "codex"; } @@ -1104,13 +1175,19 @@ async function resolveRouterRule( compiledRule: CompiledRouterRule, request: MutableRequestLike, compiled: CompiledRouterConfig, - runtime: RouteResolutionRuntime + runtime: RouteResolutionRuntime, + options: { + auth: RouteAuthContext; + defaultFallback: RouterFallbackConfig; + policyId: string; + source: "profile" | "rule"; + } ): Promise { if (!compiledRule.active) { return undefined; } const rule = compiledRule.rule; - const fallback = rule.fallback ?? compiled.fallback; + const fallback = rule.fallback ?? options.defaultFallback; const rewrites = compiledRule.rewrites; @@ -1120,11 +1197,11 @@ async function resolveRouterRule( code: "script-runtime-error", message: `Router script "${rule.name}" runtime is unavailable.`, ruleId: rule.id, - source: "rule" + source: options.source }); return undefined; } - const context = buildRouteScriptInput(request); + const context = buildRouteScriptInput(request, { profileId: options.auth.profileId }); const startedAtMs = Date.now(); const execution = await runtime.scriptRuntime.execute(rule.id, rule.script, context); if (execution.status !== "ok") { @@ -1133,11 +1210,11 @@ async function resolveRouterRule( code: timeout ? "script-timeout" : "script-runtime-error", message: `Router script "${rule.name}" ${timeout ? "timed out" : "failed"}: ${execution.error ?? execution.status}`, ruleId: rule.id, - source: "rule" + source: options.source }; runtime.runtimeDiagnostics.push(diagnostic); runtime.trace?.capture({ - decision: { diagnostics: [diagnostic], policyId: `rule:${rule.id}`, ruleId: rule.id, ruleName: rule.name, source: "rule" }, + decision: { diagnostics: [diagnostic], policyId: options.policyId, ruleId: rule.id, ruleName: rule.name, source: options.source }, durationMs: execution.durationMs, kind: "decision", name: `customer.script:${rule.id}`, @@ -1150,19 +1227,20 @@ async function resolveRouterRule( } const normalized = normalizeRouteScriptResult({ compiledRule, - defaultFallback: compiled.fallback, + defaultFallback: options.defaultFallback, modelRegistry: compiled.modelRegistry, + source: options.source, value: execution.value }); runtime.runtimeDiagnostics.push(...normalized.diagnostics); runtime.trace?.capture({ decision: { diagnostics: normalized.diagnostics, - policyId: `rule:${rule.id}`, - reason: normalized.matched ? `script:${rule.id}` : undefined, + policyId: options.policyId, + reason: normalized.matched ? routerRuleReason(rule, options.source, options.policyId, "script") : undefined, ruleId: rule.id, ruleName: rule.name, - source: "rule" + source: options.source }, durationMs: execution.durationMs, kind: "decision", @@ -1180,16 +1258,16 @@ async function resolveRouterRule( ? { fallback: normalized.fallback ?? fallback, model: normalized.model, - reason: `script:${rule.id}`, + reason: routerRuleReason(rule, options.source, options.policyId, "script"), rewrites: normalized.rewrites, - source: "rule" + source: options.source } : undefined; } if (rule.type === "condition") { - return rule.condition && routerRuleConditionMatches(rule.condition, request) - ? routerRuleRewriteDecision(rule, rewrites, fallback, compiledRule.model) + return rule.condition && routerRuleConditionMatches(rule.condition, request, options.auth) + ? routerRuleRewriteDecision(rule, rewrites, fallback, compiledRule.model, options.source, options.policyId) : undefined; } @@ -1197,7 +1275,7 @@ async function resolveRouterRule( const pattern = readString(rule.pattern); const requestedModel = readString(request.body.model); return pattern && requestedModel?.startsWith(pattern) - ? routerRuleRewriteDecision(rule, rewrites, fallback, compiledRule.model) + ? routerRuleRewriteDecision(rule, rewrites, fallback, compiledRule.model, options.source, options.policyId) : undefined; } @@ -1208,14 +1286,16 @@ function routerRuleRewriteDecision( rule: RouterRule, rewrites: CompiledRouteRewrite[], fallback: RouterFallbackConfig, - model: RouteModelRef | undefined + model: RouteModelRef | undefined, + source: "profile" | "rule", + policyId?: string ): ConfiguredRouteDecision { return { fallback, model, - reason: routerRuleReason(rule), + reason: routerRuleReason(rule, source, policyId), rewrites, - source: "rule" + source }; } @@ -1226,6 +1306,9 @@ function routeDecisionTraceName(decision: ResolvedConfiguredRouteDecision): stri if (decision.source === "rule") { return "customer.rule-decision"; } + if (decision.source === "profile") { + return "customer.profile-rule-decision"; + } if (decision.source === "subagent") { return `builtins.${decision.policyId}`; } @@ -1242,11 +1325,15 @@ function builtInAgentPolicyId(decision: ConfiguredRouteDecision): string { return `builtin-agent-${builtInRoute}`; } -function routerRuleConditionMatches(condition: RouterRuleCondition, request: MutableRequestLike): boolean { +function routerRuleConditionMatches( + condition: RouterRuleCondition, + request: MutableRequestLike, + auth: RouteAuthContext +): boolean { if (condition.left.trim().startsWith("response.")) { return false; } - const actual = resolveRouterConditionValue(condition.left, request); + const actual = resolveRouterConditionValue(condition.left, request, auth); const expected = parseConditionLiteral(condition.right); if (condition.operator === "starts-with") { @@ -1288,7 +1375,11 @@ function routerRuleConditionMatches(condition: RouterRuleCondition, request: Mut return false; } -function resolveRouterConditionValue(path: string, request: MutableRequestLike): unknown { +function resolveRouterConditionValue( + path: string, + request: MutableRequestLike, + auth: RouteAuthContext +): unknown { const parts = path .split(".") .map((part) => part.trim()) @@ -1308,6 +1399,16 @@ function resolveRouterConditionValue(path: string, request: MutableRequestLike): if (section === "header" || section === "headers") { return readRequestHeader(request.headers, rest.join(".")); } + if (section === "auth") { + const key = rest.join(".").trim(); + if (key === "apiKeyId" || key === "api_key_id" || key === "keyId" || key === "key_id" || key === "sub") { + return auth.apiKeyId; + } + if (key === "profileId" || key === "profile_id") { + return auth.profileId; + } + return undefined; + } if (section === "body") { return readPathValue(request.body, rest); } @@ -1462,7 +1563,18 @@ function singleLineText(value: string, maxLength: number): string { return `${normalized.slice(0, Math.max(0, maxLength - 1)).trimEnd()}...`; } -function routerRuleReason(rule: RouterRule): string { +function routerRuleReason( + rule: RouterRule, + source: "profile" | "rule" = "rule", + policyId?: string, + kind: "rule" | "script" = "rule" +): string { + if (source === "profile") { + return policyId ?? `profile:${kind}:${rule.id}`; + } + if (kind === "script") { + return `script:${rule.id}`; + } if (rule.id.startsWith("legacy-")) { return rule.id.replace(/^legacy-/, ""); } diff --git a/packages/core/src/profiles/api-key.ts b/packages/core/src/profiles/api-key.ts new file mode 100644 index 00000000..5cfb8262 --- /dev/null +++ b/packages/core/src/profiles/api-key.ts @@ -0,0 +1,107 @@ +import { randomBytes } from "node:crypto"; +import type { ApiKeyConfig, ProfileConfig } from "@ccr/core/contracts/app"; + +type ProfileApiKeySource = Pick; + +type ProfileApiKeySyncOptions = { + generateKey?: () => string; + now?: () => string; +}; + +export type ProfileApiKeySyncResult = { + apiKeys: ApiKeyConfig[]; + changed: boolean; + tokens: Map; +}; + +export function profileApiKeyId(profile: ProfileApiKeySource | string): string { + const value = typeof profile === "string" ? profile : profile.id || profile.name || profile.agent; + return `profile:${sanitizeProfileKeySegment(value) || "profile"}`; +} + +export function profileIdFromApiKeyId(value: string | undefined): string | undefined { + const trimmed = value?.trim(); + if (!trimmed?.startsWith("profile:")) { + return undefined; + } + return trimmed.slice("profile:".length) || undefined; +} + +export function sanitizeProfileKeySegment(value: string): string { + return value.trim().replace(/[^a-zA-Z0-9_.-]+/g, "-").replace(/^-+|-+$/g, ""); +} + +export function syncProfileApiKeys( + apiKeys: ApiKeyConfig[], + profiles: ProfileConfig[], + options: ProfileApiKeySyncOptions = {} +): ProfileApiKeySyncResult { + const nextApiKeys = [...apiKeys]; + const byId = new Map(nextApiKeys.map((apiKey, index) => [apiKey.id || `key-${index + 1}`, { apiKey, index }])); + const tokens = new Map(); + const generateKey = options.generateKey ?? generateProfileApiKey; + const now = options.now ?? (() => new Date().toISOString()); + let changed = false; + + for (const profile of profiles.filter((candidate) => candidate.enabled)) { + const id = profileApiKeyId(profile); + const name = profileApiKeyName(profile); + const existing = byId.get(id); + if (existing?.apiKey.key.trim()) { + tokens.set(profile.id, existing.apiKey.key.trim()); + if (existing.apiKey.name !== name) { + nextApiKeys[existing.index] = { + ...existing.apiKey, + name + }; + changed = true; + } + continue; + } + + const apiKey: ApiKeyConfig = { + createdAt: now(), + id, + key: generateKey(), + name + }; + nextApiKeys.push(apiKey); + byId.set(id, { apiKey, index: nextApiKeys.length - 1 }); + tokens.set(profile.id, apiKey.key); + changed = true; + } + + return { + apiKeys: nextApiKeys, + changed, + tokens + }; +} + +export function pruneInactiveProfileApiKeysFromList( + apiKeys: ApiKeyConfig[], + profiles: ProfileConfig[] +): { apiKeys: ApiKeyConfig[]; changed: boolean } { + const activeIds = new Set(profiles + .filter((profile) => profile.enabled) + .map(profileApiKeyId)); + const retained = apiKeys.filter((apiKey) => + !apiKey.id.startsWith("profile:") || activeIds.has(apiKey.id) + ); + return { + apiKeys: retained, + changed: retained.length !== apiKeys.length + }; +} + +export function profileApiKeyName(profile: ProfileApiKeySource): string { + return `Profile: ${profile.name?.trim() || profile.id || profile.agent}`; +} + +export function generateProfileApiKey(): string { + return `ccr-profile-${randomBase64Url(24)}`; +} + +function randomBase64Url(byteLength: number): string { + return randomBytes(byteLength).toString("base64").replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/g, ""); +} diff --git a/packages/core/src/profiles/launch-service.ts b/packages/core/src/profiles/launch-service.ts index 8d8ff75a..e1c1db2b 100644 --- a/packages/core/src/profiles/launch-service.ts +++ b/packages/core/src/profiles/launch-service.ts @@ -17,6 +17,7 @@ import { gatewayService } from "@ccr/core/gateway/service"; import { TOOL_HUB_MCP_RUNTIME_FILE_NAME, bundledToolHubMcpEntryPathCandidates } from "@ccr/core/mcp/toolhub-config"; import { mediaToolsGatewayEndpoint } from "@ccr/core/mcp/grok-media-config"; import { buildProfileLaunchPlan, findProfileForOpen, profileLaunchSpawnCommand, profileOpenCommand, profileOpenSurfaces, resolveClaudeCodeSettingsFile, resolveProfileOpenSurface } from "@ccr/core/profiles/launch-core"; +import { profileApiKeyId } from "@ccr/core/profiles/api-key"; import { applyProfileConfig, cleanupGeneratedBinBackups } from "@ccr/core/profiles/service"; import { isDesktopAppRuntime } from "@ccr/core/runtime/desktop-app"; import { windowsEnvironmentChangedPowerShellLines, windowsSystemCommand } from "@ccr/core/platform/windows-system"; @@ -2063,10 +2064,6 @@ function findProfileApiKey(config: AppConfig, profile: ReturnType apiKey.key.trim())?.key.trim() || config.APIKEY.trim(); } -function profileApiKeyId(profile: ReturnType): string { - return `profile:${sanitizeProfilePathSegment(profile.id || profile.name || profile.agent) || "profile"}`; -} - function sanitizeProfilePathSegment(value: string): string { return value.trim().replace(/[^a-zA-Z0-9_.-]+/g, "-").replace(/^-+|-+$/g, ""); } diff --git a/packages/core/src/profiles/service.ts b/packages/core/src/profiles/service.ts index ae570bbe..93ba8e5e 100644 --- a/packages/core/src/profiles/service.ts +++ b/packages/core/src/profiles/service.ts @@ -1,8 +1,7 @@ -import { randomBytes } from "node:crypto"; import { chmodSync, copyFileSync, existsSync, lstatSync, mkdirSync, readlinkSync, readdirSync, readFileSync, rmSync, statSync, symlinkSync, writeFileSync } from "node:fs"; import os from "node:os"; import path from "node:path"; -import { CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY_ENV, NO_AVAILABLE_GATEWAY_MODELS_MESSAGE, availableGatewayModelIds, enforceSingleEnabledGlobalProfilePerAgent, hasAvailableGatewayModels, isGatewayProviderEnabled, type ApiKeyConfig, type AppConfig, type ProfileApplyResult, type ProfileClientApplyStatus, type ProfileClientKind, type ProfileConfig } from "@ccr/core/contracts/app"; +import { CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY_ENV, NO_AVAILABLE_GATEWAY_MODELS_MESSAGE, availableGatewayModelIds, enforceSingleEnabledGlobalProfilePerAgent, hasAvailableGatewayModels, isGatewayProviderEnabled, type AppConfig, type ProfileApplyResult, type ProfileClientApplyStatus, type ProfileClientKind, type ProfileConfig } from "@ccr/core/contracts/app"; import { replacePersistedApiKeys } from "@ccr/core/config/config-repository"; import { botGatewayProfileEnv } from "@ccr/core/agents/bot-gateway/env"; import { @@ -35,6 +34,7 @@ import { writePiGatewayConfig } from "@ccr/core/agents/pi/profile-config"; import { CONFIGDIR } from "@ccr/core/config/constants"; +import { pruneInactiveProfileApiKeysFromList, syncProfileApiKeys } from "@ccr/core/profiles/api-key"; import { resolveZcodeConfigFile, writeZcodeGatewayConfig, zcodeHomeFromConfigFile } from "@ccr/core/agents/zcode/profile-config"; import { CONTEXT_ARCHIVE_MCP_SERVER_NAME, contextArchiveConfigForProfile, contextArchiveMcpServer } from "@ccr/core/gateway/context-archive"; import { normalizeRouteSelector } from "@ccr/core/gateway/claude-code-router-plugin"; @@ -708,78 +708,27 @@ function profileEntries(config: AppConfig): ProfileConfig[] { } async function ensureProfileApiKeys(config: AppConfig, profiles: ProfileConfig[]): Promise> { - const apiKeys = [...(Array.isArray(config.APIKEYS) ? config.APIKEYS : [])]; - const byId = new Map(apiKeys.map((apiKey, index) => [apiKey.id || `key-${index + 1}`, { apiKey, index }])); - const tokens = new Map(); - let changed = false; - - for (const profile of profiles.filter((candidate) => candidate.enabled)) { - const id = profileApiKeyId(profile); - const name = profileApiKeyName(profile); - const existing = byId.get(id); - if (existing?.apiKey.key.trim()) { - tokens.set(profile.id, existing.apiKey.key.trim()); - if (existing.apiKey.name !== name) { - apiKeys[existing.index] = { - ...existing.apiKey, - name - }; - changed = true; - } - continue; - } - - const apiKey: ApiKeyConfig = { - createdAt: new Date().toISOString(), - id, - key: generateProfileApiKey(), - name - }; - apiKeys.push(apiKey); - byId.set(id, { apiKey, index: apiKeys.length - 1 }); - tokens.set(profile.id, apiKey.key); - changed = true; - } - - if (changed) { - config.APIKEYS = await replacePersistedApiKeys(apiKeys); + const result = syncProfileApiKeys(Array.isArray(config.APIKEYS) ? config.APIKEYS : [], profiles); + if (result.changed) { + config.APIKEYS = await replacePersistedApiKeys(result.apiKeys); config.APIKEY = config.APIKEYS[0]?.key ?? ""; } - return tokens; + return result.tokens; } async function pruneInactiveProfileApiKeys(config: AppConfig, profiles: ProfileConfig[]): Promise { - const activeIds = new Set(profiles - .filter((profile) => profile.enabled) - .map(profileApiKeyId)); - const current = Array.isArray(config.APIKEYS) ? config.APIKEYS : []; - const retained = current.filter((apiKey) => - !apiKey.id.startsWith("profile:") || activeIds.has(apiKey.id) + const result = pruneInactiveProfileApiKeysFromList( + Array.isArray(config.APIKEYS) ? config.APIKEYS : [], + profiles ); - if (retained.length === current.length) { + if (!result.changed) { return; } - config.APIKEYS = await replacePersistedApiKeys(retained); + config.APIKEYS = await replacePersistedApiKeys(result.apiKeys); config.APIKEY = config.APIKEYS[0]?.key ?? ""; } -function profileApiKeyId(profile: ProfileConfig): string { - return `profile:${sanitizeProfilePathSegment(profile.id || profile.name || profile.agent) || "profile"}`; -} - -function profileApiKeyName(profile: ProfileConfig): string { - return `Profile: ${profile.name?.trim() || profile.id || profile.agent}`; -} - -function generateProfileApiKey(): string { - return `ccr-profile-${randomBase64Url(24)}`; -} - -function randomBase64Url(byteLength: number): string { - return randomBytes(byteLength).toString("base64").replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/g, ""); -} - function profilePath(profile: ProfileConfig): string { return profile.agent === "claude-code" ? resolveClaudeCodeSettingsFile(profile) diff --git a/packages/core/src/providers/model-catalog.ts b/packages/core/src/providers/model-catalog.ts index 7dd0258f..0bc71fa9 100644 --- a/packages/core/src/providers/model-catalog.ts +++ b/packages/core/src/providers/model-catalog.ts @@ -64,9 +64,6 @@ const presetCatalogModelOverrides: Record modelDisplayNames: { "kimi-for-coding": "K2.7 Code" }, - metadataModelAliases: { - "kimi-for-coding": "k2p7" - }, models: ["kimi-for-coding"], provider: "kimi-for-coding", providerName: "Kimi Code" diff --git a/packages/core/src/routing/config-compiler.ts b/packages/core/src/routing/config-compiler.ts index 85c0c8fd..57c1cd2c 100644 --- a/packages/core/src/routing/config-compiler.ts +++ b/packages/core/src/routing/config-compiler.ts @@ -1,5 +1,6 @@ import type { AppConfig, + ProfileConfig, RouterFallbackConfig, RouterRule, RouterRuleRewrite @@ -20,12 +21,21 @@ export type CompiledRouterRule = { model?: RouteModelRef; rewrites: CompiledRouteRewrite[]; rule: RouterRule; + source: "profile" | "rule"; +}; + +export type CompiledProfileRoutingConfig = { + active: boolean; + diagnostics: RouteDiagnostic[]; + profile: ProfileConfig; + rules: CompiledRouterRule[]; }; export type CompiledRouterConfig = { diagnostics: RouteDiagnostic[]; fallback: RouterFallbackConfig; modelRegistry: ModelRegistry; + profileRoutings: CompiledProfileRoutingConfig[]; rules: CompiledRouterRule[]; }; @@ -35,20 +45,64 @@ export type CompileRouterConfigOptions = { export function compileRouterConfig(config: AppConfig, options: CompileRouterConfigOptions = {}): CompiledRouterConfig { const modelRegistry = new ModelRegistry(config); - const rules = (config.Router.rules ?? []).map((rule) => compileRouterRule(rule, modelRegistry, options)); + const rules = (config.Router.rules ?? []).map((rule) => compileRouterRule(rule, modelRegistry, options, { + label: `Router rule "${rule.name}"`, + source: "rule" + })); + const profileRoutings = compileProfileRoutings(config, modelRegistry, options); const fallbackDiagnostics = fallbackModelDiagnostics(config.Router.fallback, modelRegistry, "default"); const profileDiagnostics = configuredProfileDiagnostics(config, modelRegistry); const validFallbackModels = config.Router.fallback.models.filter((model) => modelRegistry.isConfigured(model)); return { - diagnostics: [...rules.flatMap((rule) => rule.diagnostics), ...fallbackDiagnostics, ...profileDiagnostics], + diagnostics: [ + ...rules.flatMap((rule) => rule.diagnostics), + ...profileRoutings.flatMap((profileRouting) => profileRouting.diagnostics), + ...fallbackDiagnostics, + ...profileDiagnostics + ], fallback: fallbackDiagnostics.length === 0 ? config.Router.fallback : { ...config.Router.fallback, models: validFallbackModels }, modelRegistry, + profileRoutings, rules }; } +function compileProfileRoutings( + config: AppConfig, + modelRegistry: ModelRegistry, + options: CompileRouterConfigOptions +): CompiledProfileRoutingConfig[] { + if (config.profile?.enabled === false) { + return []; + } + return (config.profile?.profiles ?? []) + .filter((profile) => profile.enabled && profile.routing) + .map((profile) => { + const routing = profile.routing; + if (routing?.enabled === false) { + return { + active: false, + diagnostics: [], + profile, + rules: [] + }; + } + const rules = (routing?.rules ?? []).map((rule) => compileRouterRule(rule, modelRegistry, options, { + allowScript: false, + label: `Profile "${profile.name}" route "${rule.name}"`, + source: "profile" + })); + return { + active: true, + diagnostics: rules.flatMap((rule) => rule.diagnostics), + profile, + rules + }; + }); +} + function configuredProfileDiagnostics(config: AppConfig, modelRegistry: ModelRegistry): RouteDiagnostic[] { if (config.profile?.enabled === false) { return []; @@ -66,7 +120,8 @@ function configuredProfileDiagnostics(config: AppConfig, modelRegistry: ModelReg function compileRouterRule( rule: RouterRule, modelRegistry: ModelRegistry, - options: CompileRouterConfigOptions + options: CompileRouterConfigOptions, + diagnostic: { allowScript?: boolean; label: string; source: "profile" | "rule" } ): CompiledRouterRule { const rewriteResults = routerRuleRewrites(rule).map(compileConfiguredRouteRewrite); const rewrites = rewriteResults.flatMap((result) => result.rewrite ? [result.rewrite] : []); @@ -75,16 +130,17 @@ function compileRouterRule( active: false, diagnostics: [], rewrites, - rule + rule, + source: diagnostic.source }; } const diagnostics: RouteDiagnostic[] = rewriteResults.flatMap((result) => result.error ? [{ code: "rule-rewrite-invalid" as const, - message: `Router rule "${rule.name}" has an invalid rewrite: ${result.error}`, + message: `${diagnostic.label} has an invalid rewrite: ${result.error}`, ruleId: rule.id, - source: "rule" as const + source: diagnostic.source }] : []); - diagnostics.push(...scriptRuleDiagnostics(rule, options)); + diagnostics.push(...scriptRuleDiagnostics(rule, options, diagnostic)); const providerName = effectiveTargetProviderName(rewrites); const targetProvider = providerName ? modelRegistry.findProvider(providerName) : undefined; let model: RouteModelRef | undefined; @@ -94,50 +150,63 @@ function compileRouterRule( if (!resolved) { diagnostics.push({ code: "rule-model-not-configured", - message: `Router rule "${rule.name}" references unconfigured model "${modelRewriteValue}".`, + message: `${diagnostic.label} references unconfigured model "${modelRewriteValue}".`, model: modelRewriteValue, ruleId: rule.id, - source: "rule" + source: diagnostic.source }); } else { model = resolved; if (targetProvider && resolved.kind === "provider" && resolved.provider !== targetProvider) { diagnostics.push({ code: "rule-provider-model-conflict", - message: `Router rule "${rule.name}" targets provider "${providerName}" but model "${modelRewriteValue}" belongs to "${resolved.provider.name}".`, + message: `${diagnostic.label} targets provider "${providerName}" but model "${modelRewriteValue}" belongs to "${resolved.provider.name}".`, model: modelRewriteValue, ruleId: rule.id, - source: "rule" + source: diagnostic.source }); } } } - diagnostics.push(...fallbackModelDiagnostics(rule.fallback, modelRegistry, "rule", rule)); + diagnostics.push(...fallbackModelDiagnostics(rule.fallback, modelRegistry, diagnostic.source, rule)); return { active: (rule.type === "script" ? Boolean(rule.script) : rewrites.length > 0) && diagnostics.length === 0, diagnostics, model, rewrites, - rule + rule, + source: diagnostic.source }; } -function scriptRuleDiagnostics(rule: RouterRule, options: CompileRouterConfigOptions): RouteDiagnostic[] { +function scriptRuleDiagnostics( + rule: RouterRule, + options: CompileRouterConfigOptions, + diagnostic: { allowScript?: boolean; label: string; source: "profile" | "rule" } +): RouteDiagnostic[] { if (rule.type !== "script") return []; + if (diagnostic.allowScript === false) { + return [{ + code: "script-api-unsupported", + message: `${diagnostic.label} does not support Node.js script rules.`, + ruleId: rule.id, + source: diagnostic.source + }]; + } if (!rule.script) { return [{ code: "script-source-invalid", - message: `Router rule "${rule.name}" does not contain a script.`, + message: `${diagnostic.label} does not contain a script.`, ruleId: rule.id, - source: "rule" + source: diagnostic.source }]; } if (rule.script.apiVersion !== 1 || rule.script.language !== "javascript") { return [{ code: "script-api-unsupported", - message: `Router rule "${rule.name}" uses an unsupported script API or language.`, + message: `${diagnostic.label} uses an unsupported script API or language.`, ruleId: rule.id, - source: "rule" + source: diagnostic.source }]; } const file = rule.script.file?.trim(); @@ -150,41 +219,42 @@ function scriptRuleDiagnostics(rule: RouterRule, options: CompileRouterConfigOpt if (sourceInvalid) { return [{ code: "script-source-invalid", - message: `Router rule "${rule.name}" requires a local JavaScript file.`, + message: `${diagnostic.label} requires a local JavaScript file.`, ruleId: rule.id, - source: "rule" + source: diagnostic.source }]; } if (file && !/\.(?:cjs|js|mjs)$/i.test(file)) { return [{ code: "script-source-invalid", - message: `Router rule "${rule.name}" script file must use a .js, .mjs, or .cjs extension.`, + message: `${diagnostic.label} script file must use a .js, .mjs, or .cjs extension.`, ruleId: rule.id, - source: "rule" + source: diagnostic.source }]; } if (!Number.isInteger(rule.script.timeoutMs) || rule.script.timeoutMs < 10 || rule.script.timeoutMs > ROUTER_SCRIPT_MAX_TIMEOUT_MS) { return [{ code: "script-source-invalid", - message: `Router rule "${rule.name}" script timeout must be between 10 and ${ROUTER_SCRIPT_MAX_TIMEOUT_MS} ms.`, + message: `${diagnostic.label} script timeout must be between 10 and ${ROUTER_SCRIPT_MAX_TIMEOUT_MS} ms.`, ruleId: rule.id, - source: "rule" + source: diagnostic.source }]; } const externalError = options.scriptValidationErrors?.get(rule.id); return externalError ? [{ code: "script-source-invalid", - message: `Router rule "${rule.name}" script failed validation: ${externalError}`, + message: `${diagnostic.label} script failed validation: ${externalError}`, ruleId: rule.id, - source: "rule" + source: diagnostic.source }] : []; } function fallbackModelDiagnostics( fallback: RouterFallbackConfig | undefined, modelRegistry: ModelRegistry, - source: "default" | "rule", - rule?: RouterRule + source: "default" | "profile" | "rule", + rule?: RouterRule, + profile?: ProfileConfig ): RouteDiagnostic[] { if (fallback?.mode !== "model-chain") { return []; @@ -193,8 +263,12 @@ function fallbackModelDiagnostics( .filter((model) => !modelRegistry.isConfigured(model)) .map((model) => ({ code: "fallback-model-not-configured" as const, - message: rule + message: rule && profile + ? `Profile "${profile.name}" route "${rule.name}" references unconfigured fallback model "${model}".` + : rule ? `Router rule "${rule.name}" references unconfigured fallback model "${model}".` + : profile + ? `Profile "${profile.name}" fallback references unconfigured model "${model}".` : `Router fallback references unconfigured model "${model}".`, model, ...(rule ? { ruleId: rule.id } : {}), diff --git a/packages/core/src/routing/contracts.ts b/packages/core/src/routing/contracts.ts index 780dd453..d5469196 100644 --- a/packages/core/src/routing/contracts.ts +++ b/packages/core/src/routing/contracts.ts @@ -1,7 +1,7 @@ import type { GatewayProviderConfig, RouterFallbackConfig } from "@ccr/core/contracts/app"; import type { CompiledRouteRewrite } from "@ccr/core/routing/rewrite"; -export type RouteSource = "builtin" | "custom" | "default" | "rule" | "subagent"; +export type RouteSource = "builtin" | "custom" | "default" | "profile" | "rule" | "subagent"; export type ProviderModelRef = { canonicalSelector: string; diff --git a/packages/core/src/routing/route-script-context.ts b/packages/core/src/routing/route-script-context.ts index 6c03f322..61918af9 100644 --- a/packages/core/src/routing/route-script-context.ts +++ b/packages/core/src/routing/route-script-context.ts @@ -11,6 +11,7 @@ export type RouteScriptInput = { headers: Record; method: string; model?: string; + profileId?: string; sessionId?: string; summary: { hasImage: boolean; @@ -23,7 +24,14 @@ export type RouteScriptInput = { url: string; }; -export function buildRouteScriptInput(request: RouteRequest): RouteScriptInput { +export type BuildRouteScriptInputOptions = { + profileId?: string; +}; + +export function buildRouteScriptInput( + request: RouteRequest, + options: BuildRouteScriptInputOptions = {} +): RouteScriptInput { const apiKeyId = readHeader(request.headers, "x-auth-api-key-id"); const input: RouteScriptInput = { ...(apiKeyId ? { apiKeyId } : {}), @@ -32,6 +40,7 @@ export function buildRouteScriptInput(request: RouteRequest): RouteScriptInput { headers: requestHeaders(request.headers), method: request.method, ...(typeof request.body.model === "string" ? { model: request.body.model } : {}), + ...(options.profileId ? { profileId: options.profileId } : {}), ...(request.sessionId ? { sessionId: request.sessionId } : {}), summary: { hasImage: containsImage(request.body), diff --git a/packages/core/src/routing/route-script-result.ts b/packages/core/src/routing/route-script-result.ts index 7c317bca..99e45621 100644 --- a/packages/core/src/routing/route-script-result.ts +++ b/packages/core/src/routing/route-script-result.ts @@ -3,7 +3,7 @@ import { type RouterFallbackConfig } from "@ccr/core/contracts/app"; import type { CompiledRouterRule } from "@ccr/core/routing/config-compiler"; -import type { RouteDiagnostic, RouteModelRef } from "@ccr/core/routing/contracts"; +import type { RouteDiagnostic, RouteModelRef, RouteSource } from "@ccr/core/routing/contracts"; import type { ModelRegistry } from "@ccr/core/routing/model-registry"; import { compileScriptRouteRewrite, @@ -28,32 +28,34 @@ export function normalizeRouteScriptResult(input: { compiledRule: CompiledRouterRule; defaultFallback: RouterFallbackConfig; modelRegistry: ModelRegistry; + source?: RouteSource; value: unknown; }): NormalizedRouteScriptResult { const { compiledRule, defaultFallback, modelRegistry, value } = input; + const source = input.source ?? "rule"; const rule = compiledRule.rule; if (value === undefined || value === null || value === false) { return { diagnostics: [], matched: false, rewrites: [] }; } if (value !== true && !isRecord(value)) { - return invalid(rule.id, "Script result must be null, false, true, or an object."); + return invalid(rule.id, "Script result must be null, false, true, or an object.", source); } if (isRecord(value) && value.match === false) { return { diagnostics: [], matched: false, rewrites: [] }; } const resultBytes = Buffer.byteLength(JSON.stringify(value), "utf8"); if (resultBytes > maxScriptResultBytes) { - return invalid(rule.id, `Script result is ${resultBytes} bytes; the limit is ${maxScriptResultBytes} bytes.`); + return invalid(rule.id, `Script result is ${resultBytes} bytes; the limit is ${maxScriptResultBytes} bytes.`, source); } const result = isRecord(value) ? value : {}; const rawRewrites = result.rewrites; if (rawRewrites !== undefined && (!Array.isArray(rawRewrites) || rawRewrites.length > maxScriptRewrites)) { - return invalid(rule.id, `Script result rewrites must be an array with at most ${maxScriptRewrites} entries.`); + return invalid(rule.id, `Script result rewrites must be an array with at most ${maxScriptRewrites} entries.`, source); } const dynamicResults = Array.isArray(rawRewrites) ? rawRewrites.map(compileScriptRouteRewrite) : []; const rewriteError = dynamicResults.find((entry) => entry.error)?.error; - if (rewriteError) return invalid(rule.id, rewriteError); + if (rewriteError) return invalid(rule.id, rewriteError, source); const rewrites = [ ...compiledRule.rewrites, ...dynamicResults.flatMap((entry) => entry.rewrite ? [entry.rewrite] : []) @@ -61,7 +63,7 @@ export function normalizeRouteScriptResult(input: { const providerName = effectiveTargetProviderName(rewrites); const dynamicModel = typeof result.model === "string" ? result.model.trim() : undefined; - if (result.model !== undefined && !dynamicModel) return invalid(rule.id, "Script result model must be a non-empty string."); + if (result.model !== undefined && !dynamicModel) return invalid(rule.id, "Script result model must be a non-empty string.", source); const rewrittenModel = effectiveBodyModelRewriteValue(rewrites); const hasModelRewrite = rewrites.some(isBodyModelCompiledRewrite); const selectedModel = dynamicModel ?? rewrittenModel; @@ -77,7 +79,7 @@ export function normalizeRouteScriptResult(input: { message: `Router script returned unconfigured model "${selectedModel}".`, model: selectedModel, ruleId: rule.id, - source: "rule" + source }], matched: false, rewrites: [] @@ -85,11 +87,11 @@ export function normalizeRouteScriptResult(input: { } const targetProvider = providerName ? modelRegistry.findProvider(providerName) : undefined; if (targetProvider && model?.kind === "provider" && model.provider !== targetProvider) { - return invalid(rule.id, `Script model "${model.selector}" conflicts with target provider "${providerName}".`); + return invalid(rule.id, `Script model "${model.selector}" conflicts with target provider "${providerName}".`, source); } const fallbackResult = normalizeScriptFallback(result.fallback, rule.fallback ?? defaultFallback, modelRegistry); - if (fallbackResult.error) return invalid(rule.id, fallbackResult.error); + if (fallbackResult.error) return invalid(rule.id, fallbackResult.error, source); return { diagnostics: [], fallback: fallbackResult.fallback, @@ -135,13 +137,13 @@ function normalizeScriptFallback( }; } -function invalid(ruleId: string, message: string): NormalizedRouteScriptResult { +function invalid(ruleId: string, message: string, source: RouteSource = "rule"): NormalizedRouteScriptResult { return { diagnostics: [{ code: "script-invalid-result", message, ruleId, - source: "rule" + source }], matched: false, rewrites: [] diff --git a/packages/core/test/unit/agents/codex-model-catalog.test.mjs b/packages/core/test/unit/agents/codex-model-catalog.test.mjs index 9596d942..9432cc82 100644 --- a/packages/core/test/unit/agents/codex-model-catalog.test.mjs +++ b/packages/core/test/unit/agents/codex-model-catalog.test.mjs @@ -460,7 +460,7 @@ test("codex catalog keeps freeform apply_patch when provider advertises Response assert.equal(model.apply_patch_tool_type, "freeform"); }); -test("codex catalog enables apply_patch bridge for non-GPT models when Codex built-in route enables it", () => { +test("codex catalog enables apply_patch bridge for non-GPT models with legacy global Codex route enabled", () => { const model = catalogModelFor({ Providers: [ { name: "openrouter", type: "openai_chat_completions", models: ["google/gemini-2.5-pro"] } @@ -478,7 +478,7 @@ test("codex catalog enables apply_patch bridge for non-GPT models when Codex bui assert.equal(model.apply_patch_tool_type, "freeform"); }); -test("codex catalog automatically enables apply_patch bridge for non-GPT models when the Codex built-in route is off", () => { +test("codex catalog keeps apply_patch bridge for non-GPT models with legacy global Codex route disabled", () => { const model = catalogModelFor({ Providers: [ { name: "openrouter", type: "openai_chat_completions", models: ["google/gemini-2.5-pro"] } diff --git a/packages/core/test/unit/gateway/codex-patch-bridge.test.mjs b/packages/core/test/unit/gateway/codex-patch-bridge.test.mjs index 0c807b1b..de7d81fd 100644 --- a/packages/core/test/unit/gateway/codex-patch-bridge.test.mjs +++ b/packages/core/test/unit/gateway/codex-patch-bridge.test.mjs @@ -174,7 +174,7 @@ test("Codex compact compat rewrites compaction trigger without context archive", assert.doesNotMatch(transformed, /CCR ARCHIVED HISTORY ACCESS/); }); -test("Codex patch bridge automatically rewrites non-GPT models when the built-in route is disabled", () => { +test("Codex patch bridge rewrites non-GPT models with legacy global Codex route disabled", () => { const result = prepareCodexApplyPatchBridgeRequest({ body: Buffer.from(JSON.stringify({ model: "openrouter/google/gemini-2.5-pro", diff --git a/packages/core/test/unit/gateway/router-builtins.test.mjs b/packages/core/test/unit/gateway/router-builtins.test.mjs index 982ab637..3bee7644 100644 --- a/packages/core/test/unit/gateway/router-builtins.test.mjs +++ b/packages/core/test/unit/gateway/router-builtins.test.mjs @@ -6,6 +6,7 @@ import test from "node:test"; import { ClaudeCodeRouterPlugin } from "@ccr/core/gateway/claude-code-router-plugin.ts"; import { fetchUpstreamWithFallback } from "@ccr/core/gateway/upstream/executor.ts"; import { RequestRouteTraceRecorder } from "@ccr/core/observability/route-trace.ts"; +import { profileApiKeyId } from "@ccr/core/profiles/api-key.ts"; import { createClaudeCodeModelsResponseForTest, fallbackRetryDelayAfterNetworkErrorForTest, @@ -41,7 +42,7 @@ function createRouterPlugin(options = {}) { "claude-code": { enabled: options.claudeCodeRuleEnabled ?? true }, codex: { enabled: options.codexRuleEnabled ?? true } }, - fallback: { mode: "off", models: [], retryCount: 1 }, + fallback: options.routerFallback ?? { mode: "off", models: [], retryCount: 1 }, rules: options.routerRules ?? [] }, profile: { @@ -50,6 +51,8 @@ function createRouterPlugin(options = {}) { }, toolHub: options.toolHub, virtualModelProfiles: options.virtualModelProfiles ?? [] + }, { + scriptRuntime: options.scriptRuntime }); return { routeRequest(input) { @@ -490,6 +493,350 @@ test("borrowed route bodies remain isolated from router mutations", async () => assert.equal(body.model, "claude-default"); }); +test("profile routing rules match only the authenticated profile API key", async () => { + const plugin = createRouterPlugin({ + authenticatedProfileId: null, + profiles: [ + { + agent: "claude-code", + enabled: true, + id: "profile-a", + model: "Provider/claude-sonnet", + name: "Profile A", + routing: { + enabled: true, + enhancedRoute: true, + rules: [{ + condition: { left: "request.header.x-task", operator: "==", right: "heavy" }, + enabled: true, + id: "heavy", + name: "Heavy", + rewrites: [{ key: "request.body.model", operation: "set", value: "Provider/claude-opus" }], + type: "condition" + }] + }, + scope: "ccr" + }, + { + agent: "claude-code", + enabled: true, + id: "profile-b", + model: "Provider/claude-haiku", + name: "Profile B", + scope: "ccr" + } + ] + }); + + const matched = await plugin.routeRequest({ + body: { messages: [], model: "claude-default" }, + headers: { + "user-agent": "claude-code/1.0", + "x-auth-api-key-id": "profile:profile-a", + "x-task": "heavy" + }, + method: "POST", + url: "/v1/messages" + }); + const unmatched = await plugin.routeRequest({ + body: { messages: [], model: "claude-default" }, + headers: { + "user-agent": "claude-code/1.0", + "x-auth-api-key-id": "profile:profile-b", + "x-task": "heavy" + }, + method: "POST", + url: "/v1/messages" + }); + + assert.equal(matched.body.model, "Provider/claude-opus"); + assert.equal(matched.decision.reason, "profile:profile-a:rule:heavy"); + assert.equal(matched.decision.source, "profile"); + assert.equal(unmatched.body.model, "Provider/claude-haiku"); + assert.equal(unmatched.decision.reason, "builtin:claude-code"); +}); + +test("profile routing keeps identical conditions isolated by independent profile API keys", async () => { + const profileA = { + agent: "claude-code", + enabled: true, + id: "profile-a", + model: "Provider/claude-sonnet", + name: "Profile A", + routing: { + enabled: true, + enhancedRoute: true, + rules: [{ + condition: { left: "request.header.x-task", operator: "==", right: "heavy" }, + enabled: true, + id: "heavy-a", + name: "Heavy A", + rewrites: [{ key: "request.body.model", operation: "set", value: "Provider/claude-opus" }], + type: "condition" + }] + }, + scope: "ccr" + }; + const profileB = { + agent: "claude-code", + enabled: true, + id: "profile-b", + model: "Provider/claude-haiku", + name: "Profile B", + routing: { + enabled: true, + enhancedRoute: true, + rules: [{ + condition: { left: "request.header.x-task", operator: "==", right: "heavy" }, + enabled: true, + id: "heavy-b", + name: "Heavy B", + rewrites: [{ key: "request.body.model", operation: "set", value: "Provider/claude-haiku" }], + type: "condition" + }] + }, + scope: "ccr" + }; + const plugin = createRouterPlugin({ + authenticatedProfileId: null, + profiles: [profileA, profileB] + }); + const routeForProfile = (profile) => plugin.routeRequest({ + body: { messages: [], model: "claude-default" }, + headers: { + "user-agent": "claude-code/1.0", + "x-auth-api-key-id": profileApiKeyId(profile), + "x-task": "heavy" + }, + method: "POST", + url: "/v1/messages" + }); + + const resultA = await routeForProfile(profileA); + const resultB = await routeForProfile(profileB); + const anonymous = await plugin.routeRequest({ + body: { messages: [], model: "claude-default" }, + headers: { + "user-agent": "claude-code/1.0", + "x-task": "heavy" + }, + method: "POST", + url: "/v1/messages" + }); + + assert.equal(resultA.body.model, "Provider/claude-opus"); + assert.equal(resultA.decision.reason, "profile:profile-a:rule:heavy-a"); + assert.equal(resultA.decision.source, "profile"); + assert.equal(resultB.body.model, "Provider/claude-haiku"); + assert.equal(resultB.decision.reason, "profile:profile-b:rule:heavy-b"); + assert.equal(resultB.decision.source, "profile"); + assert.equal(anonymous.body.model, "claude-default"); + assert.equal(anonymous.decision.reason, "default"); + assert.equal(anonymous.decision.source, "default"); +}); + +test("profile routing uses the global fallback for authenticated profile traffic", async () => { + const globalFallback = { mode: "retry", models: [], retryCount: 3 }; + const plugin = createRouterPlugin({ + profileModel: "Provider/claude-sonnet", + routerFallback: globalFallback, + profiles: [{ + agent: "claude-code", + enabled: true, + id: "profile-a", + model: "Provider/claude-sonnet", + name: "Profile A", + routing: { + enabled: true, + enhancedRoute: true, + rules: [] + }, + scope: "ccr" + }] + }); + const result = await plugin.routeRequest({ + body: { messages: [], model: "Provider/claude-sonnet" }, + headers: {}, + method: "POST", + url: "/v1/messages" + }); + + assert.deepEqual(result.decision.fallback, globalFallback); +}); + +test("profile enhanced route switch disables the built-in Claude Code route when private rules are disabled", async () => { + const plugin = createRouterPlugin({ + profiles: [{ + agent: "claude-code", + enabled: true, + id: "profile-a", + model: "Provider/claude-sonnet", + name: "Profile A", + routing: { + enabled: false, + enhancedRoute: false, + rules: [] + }, + scope: "ccr" + }] + }); + const result = await plugin.routeRequest({ + body: { messages: [], model: "claude-default" }, + headers: { + "user-agent": "claude-code/1.0" + }, + method: "POST", + url: "/v1/messages" + }); + + assert.equal(result.body.model, "claude-default"); + assert.equal(result.decision.reason, "default"); + assert.equal(result.decision.source, "default"); +}); + +test("profile enhanced route switch disables the built-in Claude Code route when private rules are enabled", async () => { + const plugin = createRouterPlugin({ + profiles: [{ + agent: "claude-code", + enabled: true, + id: "profile-a", + model: "Provider/claude-sonnet", + name: "Profile A", + routing: { + enabled: true, + enhancedRoute: false, + rules: [] + }, + scope: "ccr" + }] + }); + const result = await plugin.routeRequest({ + body: { messages: [], model: "claude-default" }, + headers: { + "user-agent": "claude-code/1.0" + }, + method: "POST", + url: "/v1/messages" + }); + + assert.equal(result.body.model, "claude-default"); + assert.equal(result.decision.reason, "default"); + assert.equal(result.decision.source, "default"); +}); + +test("router rules can match the authenticated profile id through request.auth", async () => { + const plugin = createRouterPlugin({ + authenticatedProfileId: "profile-a", + profiles: [{ + agent: "claude-code", + enabled: true, + id: "profile-a", + model: "Provider/claude-sonnet", + name: "Profile A", + scope: "ccr" + }], + routerRules: [{ + condition: { left: "request.auth.profileId", operator: "==", right: "profile-a" }, + enabled: true, + id: "profile-auth", + name: "Profile auth", + rewrites: [{ key: "request.body.model", operation: "set", value: "Provider/claude-opus" }], + type: "condition" + }] + }); + const result = await plugin.routeRequest({ + body: { messages: [], model: "claude-default" }, + headers: {}, + method: "POST", + url: "/v1/messages" + }); + + assert.equal(result.body.model, "Provider/claude-opus"); + assert.equal(result.decision.reason, "rule:profile-auth"); +}); + +test("router auth profile id uses the configured profile id instead of the API key slug", async () => { + const profile = { + agent: "claude-code", + enabled: true, + id: "Claude Work/Profile", + model: "Provider/claude-sonnet", + name: "Claude Work", + scope: "ccr" + }; + const plugin = createRouterPlugin({ + authenticatedProfileId: null, + profiles: [profile], + routerRules: [{ + condition: { left: "request.auth.profileId", operator: "==", right: "Claude Work/Profile" }, + enabled: true, + id: "profile-auth-raw-id", + name: "Profile auth raw id", + rewrites: [{ key: "request.body.model", operation: "set", value: "Provider/claude-opus" }], + type: "condition" + }] + }); + + const result = await plugin.routeRequest({ + body: { messages: [], model: "claude-default" }, + headers: { + "x-auth-api-key-id": profileApiKeyId(profile) + }, + method: "POST", + url: "/v1/messages" + }); + + assert.equal(profileApiKeyId(profile), "profile:Claude-Work-Profile"); + assert.equal(result.body.model, "Provider/claude-opus"); + assert.equal(result.decision.reason, "rule:profile-auth-raw-id"); +}); + +test("route scripts receive the configured profile id instead of the API key slug", async () => { + const profile = { + agent: "claude-code", + enabled: true, + id: "Claude Work/Profile", + model: "Provider/claude-sonnet", + name: "Claude Work", + scope: "ccr" + }; + let input; + const plugin = createRouterPlugin({ + authenticatedProfileId: null, + profiles: [profile], + routerRules: [{ + enabled: true, + id: "profile-script-auth", + name: "Profile script auth", + script: { + apiVersion: 1, + file: "/tmp/profile-script-auth.js", + language: "javascript", + timeoutMs: 1000 + }, + type: "script" + }], + scriptRuntime: { + execute: async (_ruleId, _script, context) => { + input = context; + return { durationMs: 1, status: "ok", value: false }; + } + } + }); + + await plugin.routeRequest({ + body: { messages: [], model: "claude-default" }, + headers: { + "x-auth-api-key-id": profileApiKeyId(profile) + }, + method: "POST", + url: "/v1/messages" + }); + + assert.equal(input.apiKeyId, "profile:Claude-Work-Profile"); + assert.equal(input.profileId, "Claude Work/Profile"); +}); + test("built-in Codex route uses the authenticated profile instead of the first Codex profile", async () => { const plugin = createRouterPlugin({ agent: "codex", @@ -541,6 +888,39 @@ test("built-in Codex route uses the authenticated profile instead of the first C assert.equal(result.decision.reason, "builtin:codex"); }); +test("profile enhanced route switch disables the built-in Codex route", async () => { + const plugin = createRouterPlugin({ + agent: "codex", + authenticatedProfileId: "codex", + profiles: [{ + agent: "codex", + enabled: true, + id: "codex", + model: "Provider/gpt-5-codex", + name: "Codex", + routing: { + enabled: false, + enhancedRoute: false, + rules: [] + }, + scope: "ccr" + }] + }); + const result = await plugin.routeRequest({ + body: { + model: "gpt-5" + }, + headers: { + "user-agent": "Codex Desktop/0.144.0" + }, + method: "POST", + url: "/v1/responses" + }); + + assert.equal(result.body.model, "gpt-5"); + assert.equal(result.decision.reason, "default"); +}); + test("built-in Codex route preserves the requested model when the authenticated profile does not match", async () => { const plugin = createRouterPlugin({ agent: "codex", @@ -1636,7 +2016,7 @@ test("built-in Codex route stays inactive when profile model is unset", async () assert.equal(result.decision.reason, "default"); }); -test("built-in agent route stays off after the user disables it", async () => { +test("global built-in agent preference no longer disables the profile-level built-in route", async () => { const plugin = createRouterPlugin({ claudeCodeRuleEnabled: false, profileModel: "Provider/claude-sonnet" @@ -1653,8 +2033,8 @@ test("built-in agent route stays off after the user disables it", async () => { url: "/v1/messages" }); - assert.equal(result.body.model, "claude-default"); - assert.equal(result.decision.reason, "default"); + assert.equal(result.body.model, "Provider/claude-sonnet"); + assert.equal(result.decision.reason, "builtin:claude-code"); }); test("built-in Claude Code route injects subagent model instructions into Agent and Task tools", async () => { @@ -1972,10 +2352,21 @@ test("built-in Claude Code route skips subagent instruction injection when no mo assert.equal(workflowTool.input_schema.properties.script.description, "Workflow script."); }); -test("disabled built-in Claude Code route does not inject Agent tool instructions", async () => { +test("disabled profile enhanced route does not inject Agent tool instructions", async () => { const plugin = createRouterPlugin({ - claudeCodeRuleEnabled: false, - profileModel: "Provider/claude-sonnet" + profiles: [{ + agent: "claude-code", + enabled: true, + id: "claude-code-profile", + model: "Provider/claude-sonnet", + name: "Claude Code", + routing: { + enabled: false, + enhancedRoute: false, + rules: [] + }, + scope: "global" + }] }); const result = await plugin.routeRequest({ body: { diff --git a/packages/core/test/unit/gateway/routing-architecture.test.mjs b/packages/core/test/unit/gateway/routing-architecture.test.mjs index ce4903b6..96e6848f 100644 --- a/packages/core/test/unit/gateway/routing-architecture.test.mjs +++ b/packages/core/test/unit/gateway/routing-architecture.test.mjs @@ -249,6 +249,79 @@ test("router config compilation accepts unrestricted Node.js script rules", () = assert.equal(compiled.rules[1].diagnostics[0].code, "script-source-invalid"); }); +test("router config compilation disables Node.js script rules in profile routing", () => { + const config = routingConfig({ + profile: { + enabled: true, + profiles: [{ + agent: "claude-code", + enabled: true, + id: "profile-a", + model: "Primary/alpha", + name: "Profile A", + routing: { + enabled: true, + enhancedRoute: true, + rules: [{ + enabled: true, + id: "profile-script", + name: "Profile script", + script: { + apiVersion: 1, + file: "/tmp/profile-route.js", + language: "javascript", + timeoutMs: 1000 + }, + type: "script" + }] + }, + scope: "ccr" + }] + } + }); + + const compiled = compileRouterConfig(config); + + assert.equal(compiled.profileRoutings[0].rules[0].active, false); + assert.equal(compiled.profileRoutings[0].rules[0].diagnostics[0].code, "script-api-unsupported"); + assert.match(compiled.profileRoutings[0].rules[0].diagnostics[0].message, /does not support Node\.js script rules/); +}); + +test("router config compilation ignores rules from disabled profile routing", () => { + const config = routingConfig({ + profile: { + enabled: true, + profiles: [{ + agent: "claude-code", + enabled: true, + id: "profile-a", + model: "Primary/alpha", + name: "Profile A", + routing: { + enabled: false, + enhancedRoute: true, + rules: [{ + condition: { left: "request.header.x-task", operator: "==", right: "heavy" }, + enabled: true, + id: "disabled-profile-rule", + name: "Disabled profile rule", + rewrites: [{ key: "request.body.model", operation: "set", value: "Primary/missing" }], + type: "condition" + }] + }, + scope: "ccr" + }] + } + }); + + const compiled = compileRouterConfig(config); + + assert.equal(compiled.profileRoutings[0].active, false); + assert.deepEqual(compiled.profileRoutings[0].rules, []); + assert.deepEqual(compiled.profileRoutings[0].diagnostics, []); + assert.equal(compiled.diagnostics.some((diagnostic) => diagnostic.ruleId === "disabled-profile-rule"), false); +}); + test("dynamic script rewrites cannot mutate protected headers without breaking trusted static config", () => { const rewrite = { key: "request.header.authorization", diff --git a/packages/core/test/unit/profiles/profile-api-key.test.mjs b/packages/core/test/unit/profiles/profile-api-key.test.mjs new file mode 100644 index 00000000..75de7999 --- /dev/null +++ b/packages/core/test/unit/profiles/profile-api-key.test.mjs @@ -0,0 +1,102 @@ +import assert from "node:assert/strict"; +import test from "node:test"; +import { + pruneInactiveProfileApiKeysFromList, + profileApiKeyId, + profileIdFromApiKeyId, + syncProfileApiKeys +} from "@ccr/core/profiles/api-key.ts"; + +test("profile API key ids are stable, sanitized, and profile-scoped", () => { + assert.equal( + profileApiKeyId({ agent: "claude-code", id: "Claude Work/Profile", name: "Claude Work" }), + "profile:Claude-Work-Profile" + ); + assert.equal( + profileApiKeyId({ agent: "codex", id: "", name: "Codex Work" }), + "profile:Codex-Work" + ); + assert.equal( + profileApiKeyId({ agent: "grok", id: "", name: "" }), + "profile:grok" + ); + assert.equal(profileApiKeyId(" Team Profile ++ "), "profile:Team-Profile"); +}); + +test("profile API key ids expose their sanitized profile key segment", () => { + assert.equal(profileIdFromApiKeyId("profile:Claude-Work-Profile"), "Claude-Work-Profile"); + assert.equal(profileIdFromApiKeyId(" profile:with-space "), "with-space"); + assert.equal(profileIdFromApiKeyId("general-key"), undefined); + assert.equal(profileIdFromApiKeyId(undefined), undefined); +}); + +test("profile API key sync creates stable independent keys per enabled profile", () => { + const generalKey = { + createdAt: "2026-01-01T00:00:00.000Z", + id: "general-key", + key: "general-key", + name: "General key" + }; + const profileA = { + agent: "claude-code", + enabled: true, + id: "profile-a", + model: "Provider/model", + name: "Profile A", + scope: "ccr" + }; + const profileB = { + agent: "codex", + enabled: true, + id: "profile-b", + model: "Provider/model", + name: "Profile B", + scope: "ccr" + }; + let generated = 0; + + const first = syncProfileApiKeys([generalKey], [profileA, profileB], { + generateKey: () => `generated-profile-key-${++generated}`, + now: () => "2026-01-02T00:00:00.000Z" + }); + + assert.equal(first.changed, true); + assert.deepEqual(first.apiKeys.map((apiKey) => apiKey.id), [ + "general-key", + "profile:profile-a", + "profile:profile-b" + ]); + assert.equal(first.tokens.get("profile-a"), "generated-profile-key-1"); + assert.equal(first.tokens.get("profile-b"), "generated-profile-key-2"); + assert.notEqual(first.tokens.get("profile-a"), first.tokens.get("profile-b")); + + const renamedProfileA = { ...profileA, name: "Profile A Renamed" }; + const second = syncProfileApiKeys(first.apiKeys, [renamedProfileA, profileB], { + generateKey: () => { + throw new Error("existing profile keys should be reused"); + } + }); + + assert.equal(second.changed, true); + assert.equal(second.tokens.get("profile-a"), "generated-profile-key-1"); + assert.equal(second.tokens.get("profile-b"), "generated-profile-key-2"); + assert.equal( + second.apiKeys.find((apiKey) => apiKey.id === profileApiKeyId(profileA))?.name, + "Profile: Profile A Renamed" + ); + + const pruned = pruneInactiveProfileApiKeysFromList(second.apiKeys, [ + renamedProfileA, + { ...profileB, enabled: false } + ]); + + assert.equal(pruned.changed, true); + assert.deepEqual(pruned.apiKeys.map((apiKey) => apiKey.id), [ + "general-key", + "profile:profile-a" + ]); + assert.equal( + pruned.apiKeys.find((apiKey) => apiKey.id === profileApiKeyId(profileA))?.key, + "generated-profile-key-1" + ); +}); diff --git a/packages/core/test/unit/routing/route-script-runtime.test.mjs b/packages/core/test/unit/routing/route-script-runtime.test.mjs index e46cbc88..6b15c2df 100644 --- a/packages/core/test/unit/routing/route-script-runtime.test.mjs +++ b/packages/core/test/unit/routing/route-script-runtime.test.mjs @@ -134,6 +134,21 @@ test("route script input derives every documented routing summary field", () => }); }); +test("route script input uses the provided profile id instead of parsing the API key slug", () => { + const input = buildRouteScriptInput({ + body: { model: "Provider/alpha" }, + headers: { "X-Auth-Api-Key-Id": "profile:Claude-Work-Profile" }, + log: console, + method: "POST", + url: "/v1/messages" + }, { + profileId: "Claude Work/Profile" + }); + + assert.equal(input.apiKeyId, "profile:Claude-Work-Profile"); + assert.equal(input.profileId, "Claude Work/Profile"); +}); + test("route scripts receive frozen per-request input and a stable hash helper", async () => { const runtime = new RouteScriptRuntime({ workerCount: 1, workerFile }); const script = routeScript(` @@ -506,6 +521,49 @@ test("the route-script test service validates, executes, and previews a custom d } }); +test("the route-script test service exposes the configured profile id", async () => { + const profile = { + agent: "claude-code", + enabled: true, + id: "Claude Work/Profile", + model: "Provider/alpha", + name: "Claude Work", + scope: "ccr" + }; + const script = routeScript(` + return { + rewrites: [{ key: "request.body.profileId", operation: "set", value: input.profileId }] + }; + `); + try { + const result = await gatewayService.testRouteScript({ + ...routingConfig(), + profile: { + enabled: true, + profiles: [profile] + } + }, { + request: { + body: { messages: [], model: "Provider/alpha" }, + headers: { "x-auth-api-key-id": "profile:Claude-Work-Profile" }, + method: "POST", + url: "/v1/messages" + }, + script + }); + + assert.equal(result.ok, true); + assert.equal(result.matched, true); + assert.deepEqual(result.output.rewrites, [{ + key: "request.body.profileId", + operation: "set", + value: "Claude Work/Profile" + }]); + } finally { + await gatewayService.stop(); + } +}); + test("dynamic script model deletion overrides an earlier static model rewrite", async () => { const runtime = new RouteScriptRuntime({ workerCount: 1, workerFile }); const script = routeScript(` diff --git a/packages/ui/src/pages/home/App.tsx b/packages/ui/src/pages/home/App.tsx index 3ab74ef0..69479c34 100644 --- a/packages/ui/src/pages/home/App.tsx +++ b/packages/ui/src/pages/home/App.tsx @@ -2,7 +2,6 @@ import { AddApiKeyDraft, AddProfileDraft, AddProviderDraft, AddRoutingRuleDraft, AgentAnalysisSessionSelection, AgentAnalysisSnapshot, AgentFilterValue, ApiKeyConfig, AppConfig, appCopy, AppI18nContext, AppInfo, AppSaveConfigOptions, AppUpdateStatus, AppLanguagePreference, applyProviderProbeResult, AppToast, BotGatewaySavedConfig, buildExtensionList, claudeDesignRoutingConfigFromDraft, - buildRouterConditionPath, ClaudeDesignRoutingDraft, ClaudeDesignRoutingRuleDraft, cloneConfig, createApiKeyDraft, createApiKeyEditDraft, createApiKeyList, createClaudeDesignRoutingDraft, createClaudeDesignRoutingRuleDraft, createCursorProxyRoutingDraft, createCursorProxyRoutingRuleDraft, createEmptyAgentAnalysis, copyTextToClipboard, createEmptyRequestLogPage, createEmptyUsageStats, createExtensionInstallDraft, createGeneratedApiKey, createPluginSettingsDraft, createProfileDraft, @@ -19,7 +18,7 @@ import { isTraySupportedPlatform, LayoutGroup, mergeModelDisplayNames, mergeModelMetadata, mergeProviderModelLists, modelDescriptionsForModels, modelDisplayNamesForModels, modelMetadataForModels, navigation, NavigationId, normalizeApiKeys, normalizeBotGatewaySavedConfigs, normalizeConfig, normalizeLanguagePreference, normalizeObservabilityConfig, normalizeOverviewWidgets, normalizeProxyConfig, - normalizeProfileItem, normalizeProviderBaseUrl, normalizeRouterBuiltInRules, normalizeRouterFallbackConfig, normalizeThemePreference, normalizeToolHubConfig, normalizeTrayBalanceProgressConfig, normalizeTrayIconPreference, + normalizeProfileItem, normalizeProviderBaseUrl, normalizeRouterFallbackConfig, normalizeThemePreference, normalizeToolHubConfig, normalizeTrayBalanceProgressConfig, normalizeTrayIconPreference, normalizeTrayWidgets, normalizeTrayWindowModules, normalizeVirtualModelDraftPatch, OnboardingReadinessOptions, OnboardingStepId, onboardingStepOrder, OverviewWidgetConfig, parseProviderAccountDraft, pluginConfigPatchFromSettingsDraft, providerCredentialsFromDraft, @@ -28,9 +27,9 @@ import { profileOpenCommandFallback, profileOpenSurfaces, ProviderAccountSnapshot, providerApiKeySafetyIssue, ProviderConnectivityCheckReport, ProviderDeepLinkPayload, ProviderDeepLinkRequest, providerIdentitySafetyIssue, providerProbeCandidates, providerBaseUrl, providerCapabilitiesForProtocols, providerCapabilitiesForSave, providerConnectivityApiKeyFromDraft, providerConnectivityProviderPlugins, providerGlobalBaseUrlForProbe, providerProbeCandidatesApiKeySafetyIssue, providerProbeHasSupportedProtocol, providerProbeInputKey, providerProtocolOptions, providerSelectableProtocolsFromProbe, ProxyNetworkSnapshot, ProxyStatus, readLanguagePreference, RequestLogListFilter, RequestLogPage, ResolvedLanguage, - ResolvedTheme, resolvePluginInstallPlan, resolveProviderDeepLinkCatalogModels, removeLocalAgentProviderPluginsForProvider, RouterRule, SettingsPageId, - routingRewriteFromDraftRow, setProviderPresets, splitLines, translateAppErrorMessage, translateText, TrayBalanceProgressConfig, TrayWidgetConfig, - uniqueProviderProtocols, uniqueRoutingRuleId, updateApiKeyEditableConfig, UsageStatsFilter, UsageStatsRange, UsageStatsSnapshot, useEffect, + ResolvedTheme, resolvePluginInstallPlan, resolveProviderDeepLinkCatalogModels, removeLocalAgentProviderPluginsForProvider, RouterRule, routingRuleFromDraft, SettingsPageId, + setProviderPresets, splitLines, translateAppErrorMessage, translateText, TrayBalanceProgressConfig, TrayWidgetConfig, + uniqueProviderProtocols, updateApiKeyEditableConfig, UsageStatsFilter, UsageStatsRange, UsageStatsSnapshot, useEffect, useMemo, useReducedMotion, useRef, useState, validateVirtualModelDraft, ViewId, VirtualModelDraft, virtualModelProfileFromDraft, virtualModelProfilesUseMediaTools } from "./shared/index"; @@ -38,7 +37,7 @@ import { preserveEqualPollingSnapshot, startVisiblePolling } from "./shared/poll import { AppDialogStack, LightToast, MainLayout, OnboardingLayout, shouldCheckForUpdateOnOpen } from "./components/index"; -import { hasAvailableGatewayModels, ROUTER_SCRIPT_API_VERSION } from "@ccr/core/contracts/app"; +import { hasAvailableGatewayModels } from "@ccr/core/contracts/app"; type ProfileOpenDialogState = { busy?: "" | "cli" | "app"; @@ -1749,43 +1748,17 @@ function App() { return; } - const rewrites = routingRuleDraft.rewrites.map(routingRewriteFromDraftRow); - const commonRule = { - enabled: routingRuleDraft.enabled, - fallback: normalizeRouterFallbackConfig(routingRuleDraft.fallback), - id: uniqueRoutingRuleId(draftConfig.Router.rules), - name: routingRuleDraft.name.trim() - }; - const rule: RouterRule = routingRuleDraft.type === "script" - ? { - ...commonRule, - script: { - apiVersion: ROUTER_SCRIPT_API_VERSION, - file: routingRuleDraft.scriptFile.trim(), - language: "javascript", - timeoutMs: Number(routingRuleDraft.scriptTimeoutMs) - }, - type: "script" - } - : { - ...commonRule, - condition: { - left: buildRouterConditionPath(routingRuleDraft.conditionSource, routingRuleDraft.conditionField), - operator: routingRuleDraft.conditionOperator, - right: routingRuleDraft.conditionRight.trim() - }, - rewrites, - type: "condition" - }; + const rule = routingRuleFromDraft( + routingRuleDraft, + draftConfig.Router.rules, + routingEditIndex === undefined ? undefined : draftConfig.Router.rules[routingEditIndex] + ); updateConfig((config) => { if (routingEditIndex === undefined) { config.Router.rules = [...config.Router.rules, rule]; } else { - config.Router.rules[routingEditIndex] = { - ...rule, - id: config.Router.rules[routingEditIndex]?.id ?? rule.id - }; + config.Router.rules[routingEditIndex] = rule; } return config; }); @@ -3097,21 +3070,6 @@ function App() { moveRule: moveRoutingRule, providers: draftConfig.Providers, removeRule: setRoutingDeleteIndex, - updateBuiltInRule: (agent, patch) => updateConfig((config) => { - config.Router.builtInRules = normalizeRouterBuiltInRules(config.Router.builtInRules); - if (agent === "claude-code") { - config.Router.builtInRules["claude-code"] = { - ...config.Router.builtInRules["claude-code"], - ...patch - }; - } else { - config.Router.builtInRules.codex = { - ...config.Router.builtInRules.codex, - ...patch - }; - } - return config; - }), updateFallback: (fallback) => updateConfig((config) => { config.Router.fallback = normalizeRouterFallbackConfig(fallback); return config; diff --git a/packages/ui/src/pages/home/components/profiles.tsx b/packages/ui/src/pages/home/components/profiles.tsx index 72e1725f..5c75457b 100644 --- a/packages/ui/src/pages/home/components/profiles.tsx +++ b/packages/ui/src/pages/home/components/profiles.tsx @@ -1,17 +1,19 @@ import { - AddProfileDraft, AgentLogo, AnimatedIconSwap, AnimatedPopover, AnimatePresence, AppConfig, Badge, BotGatewaySavedConfig, botGatewaySavedConfigLabel, BotHandoffScanTarget, Button, + AddProfileDraft, AddRoutingRuleDraft, AgentLogo, AnimatedIconSwap, AnimatedPopover, AnimatePresence, AppConfig, Badge, BotGatewaySavedConfig, botGatewaySavedConfigLabel, BotHandoffScanTarget, Button, Card, CardContent, CardHeader, CardTitle, Check, ChevronDown, CircleAlert, Copy, + createRoutingRuleDraft, createRoutingRuleDraftFromRule, cn, Dialog, DialogBody, DialogContent, DialogFooter, DialogHeader, DialogTitle, Field, GatewayProviderConfig, Info, Input, KeyValueRowsControl, LoaderCircle, motion, normalizeProfileScope, normalizeProfileSurface, Pencil, Plus, PopoverContent, profileAgentLabel, profileAgentOptions, ProfileConfig, type ProfileAgentOption, profileModelProviderOptions, profileOpenSurfaces, profileScopeLabel, profileScopeOptions, profileSummaryItems, profileSurfaceLabel, profileSurfaceOptions, Play, Power, RefreshCw, Select, SelectControl, Terminal, Toggle, translateOptions, Trash2, useAppErrorText, useAppText, useLayoutEffect, type ProfileOpenSurface, type ProfileRuntimeStatus, type ReactDragEvent, type ReactNode, type VirtualModelProfileConfig, - copyTextToClipboard, validateProfileEnvRows, + copyTextToClipboard, formatRouterRuleCondition, formatRouterRuleTarget, isRoutingRuleDraftSubmittable, routerRuleTypeLabel, routingRuleFromDraft, type RouterRule, validateProfileEnvRows, useCallback, useEffect, useMemo, useRef, useState, X } from "../shared/index"; import { PopoverPortal } from "@/components/ui/popover"; import { Tooltip } from "@/components/ui/tooltip"; import { ModelMultiSelector, ModelSelector } from "./model-selector"; +import { AddRoutingRuleDialog } from "./routing"; const useClientLayoutEffect = typeof window === "undefined" ? useEffect : useLayoutEffect; @@ -723,7 +725,7 @@ export function AddProfileForm({ ].filter(Boolean).length; const advancedSummary = advancedIssueCount > 0 ? t("Advanced settings need attention") - : t("Paths, bot, compact, and env"); + : t("Paths, routing, bot, compact, and env"); const handleAppPathDrop = useCallback((event: ReactDragEvent) => { if (!showAppPathField) { return; @@ -977,6 +979,11 @@ export function AddProfileForm({ transition={{ duration: 0.16 }} >
+ {showAppPathField && appPathLabel ? (
) => void; + providers: GatewayProviderConfig[]; +}) { + const t = useAppText(); + const [ruleDialog, setRuleDialog] = useState<{ draft: AddRoutingRuleDraft; index?: number }>(); + const canSubmitRule = ruleDialog ? isRoutingRuleDraftSubmittable(ruleDialog.draft) : false; + const showEnhancedRoute = draft.agent === "claude-code" || draft.agent === "codex"; + const showRoutingControls = draft.routingEnabled || showEnhancedRoute; + const enhancedRouteDescription = draft.agent === "codex" + ? t("Enhanced route description Codex") + : t("Enhanced route description Claude Code"); + + function openAddRuleDialog() { + setRuleDialog({ + draft: createRoutingRuleDraft() + }); + } + + function openEditRuleDialog(index: number) { + const rule = draft.routingRules[index]; + if (!rule) { + return; + } + setRuleDialog({ + draft: createProfileRoutingRuleDraftFromRule(rule), + index + }); + } + + function updateRuleDialog(patch: Partial) { + setRuleDialog((current) => current ? { ...current, draft: { ...current.draft, ...patch } } : current); + } + + function submitRuleDialog() { + if (!ruleDialog || !canSubmitRule) { + return; + } + const rule = routingRuleFromDraft( + ruleDialog.draft, + draft.routingRules, + ruleDialog.index === undefined ? undefined : draft.routingRules[ruleDialog.index] + ); + const routingRules = ruleDialog.index === undefined + ? [...draft.routingRules, rule] + : draft.routingRules.map((item, index) => index === ruleDialog.index ? rule : item); + onChange({ + routingEnabled: true, + routingRules + }); + setRuleDialog(undefined); + } + + function removeRule(index: number) { + onChange({ + routingRules: draft.routingRules.filter((_, ruleIndex) => ruleIndex !== index) + }); + } + + return ( +
+
+
+
{t("Profile routing")}
+ {draft.routingEnabled ? ( +
+ {`${draft.routingRules.length} ${t(draft.routingRules.length === 1 ? "route" : "routes")}`} +
+ ) : null} +
+ onChange({ routingEnabled })} + /> +
+ {showRoutingControls ? ( +
+ {showEnhancedRoute ? ( +
+ + {t("Enhanced route")} + + + + + onChange({ routingEnhancedRoute })} + /> +
+ ) : null} + {draft.routingEnabled ? ( +
+
+ {t("Profile routes")} + +
+
+ {draft.routingRules.length === 0 ? ( +
+ {t("No routing rules configured")} +
+ ) : draft.routingRules.map((rule, index) => ( +
+ +
+ + +
+
+ ))} +
+
+ ) : null} +
+ ) : null} + {ruleDialog ? ( + setRuleDialog(undefined)} + onSubmit={submitRuleDialog} + allowedRuleTypes={["condition"]} + providers={providers} + /> + ) : null} +
+ ); +} + +function createProfileRoutingRuleDraftFromRule(rule: RouterRule): AddRoutingRuleDraft { + const draft = createRoutingRuleDraftFromRule(rule); + return draft.type === "condition" + ? draft + : { + ...createRoutingRuleDraft(), + enabled: rule.enabled, + name: rule.name + }; +} + function ProfileFieldHint({ children }: { children: ReactNode }) { return
{children}
; } diff --git a/packages/ui/src/pages/home/components/routing.tsx b/packages/ui/src/pages/home/components/routing.tsx index 78a29086..1f9f8744 100644 --- a/packages/ui/src/pages/home/components/routing.tsx +++ b/packages/ui/src/pages/home/components/routing.tsx @@ -4,9 +4,9 @@ import { CardHeader, Check, CircleAlert, clampNumber, cn, createRouteModelOptions, createRoutingRewriteDraftRow, Dialog, DialogBody, DialogContent, DialogFooter, DialogHeader, DialogTitle, disclosureSpringTransition, Field, formatRouterRuleCondition, formatRouterRuleTarget, GatewayProviderConfig, Input, - AppI18nContext, appCopy, ExternalLink, FolderOpen, Info, motion, normalizeRouteScriptSampleRequest, normalizeRouterFallbackConfig, Pencil, Plus, Route, RouterFallbackConfig, - RouterBuiltInAgentRuleId, RouterFallbackMode, routerConditionSourceOptions, routerFallbackModeOptions, RouterRule, routerRewriteOperationOptions, routerRuleOperatorOptions, - RouterBuiltInAgentRuleConfig, routerRuleTypeOptions, + AppI18nContext, appCopy, ExternalLink, FolderOpen, motion, normalizeRouteScriptSampleRequest, normalizeRouterFallbackConfig, Pencil, Plus, Route, RouterFallbackConfig, + RouterFallbackMode, routerConditionSourceOptions, routerFallbackModeOptions, RouterRule, routerRewriteOperationOptions, routerRuleOperatorOptions, + routerRuleTypeOptions, RouteTargetControl, routingRuleRowMatchesQuery, Search, SelectControl, Toggle, translateOptions, Textarea, Trash2, uniqueStrings, useAppText, useContext, useMemo, useRef, useState, X } from "../shared/index"; @@ -23,7 +23,6 @@ export function RoutingView({ moveRule, providers, removeRule, - updateBuiltInRule, updateFallback, updateRule }: { @@ -33,7 +32,6 @@ export function RoutingView({ moveRule: (index: number, direction: -1 | 1) => void; providers: GatewayProviderConfig[]; removeRule: (index: number) => void; - updateBuiltInRule: (agent: RouterBuiltInAgentRuleId, patch: Partial) => void; updateFallback: (fallback: RouterFallbackConfig) => void; updateRule: (index: number, patch: Partial) => void; }) { @@ -103,7 +101,7 @@ export function RoutingView({
{visibleRules.map((row) => { - const rowSourceLabel = row.builtInAgent ? t(row.sourceLabel) : row.sourceLabel; + const rowSourceLabel = row.sourceLabel; const rowTarget = row.target === "Profile model unset" ? t(row.target) : row.target; const toggleDisabledReason = row.toggleDisabledReason ? t(row.toggleDisabledReason) : undefined; return ( @@ -114,25 +112,22 @@ export function RoutingView({
{row.name || t("Unnamed")}
- {row.builtInAgent ? : null} - {row.builtInAgent ? {t("Built-in")} : row.readonly ? {t("Plugin")} : null} + {row.readonly ? {t("Plugin")} : null}
{rowSourceLabel}: {row.ruleId}
- {!row.builtInAgent ? ( -
- {t(row.typeLabel)} - - {row.condition} - -
- ) : null} +
+ {t(row.typeLabel)} + + {row.condition} + +
-
- {row.builtInAgent ? null : rowTarget} +
+ {rowTarget}
{ - if (row.builtInAgent) { - updateBuiltInRule(row.builtInAgent, { enabled }); - } else if (row.index !== undefined) { + if (row.index !== undefined) { updateRule(row.index, { enabled }); } }} @@ -158,34 +151,30 @@ export function RoutingView({
- {!row.builtInAgent ? ( - <> - - - - - - ) : null} + + + +
); @@ -201,56 +190,6 @@ export function RoutingView({ ); } -function BuiltInRouteInfoIcon({ agent }: { agent: RouterBuiltInAgentRuleId }) { - const t = useAppText(); - const copy = useContext(AppI18nContext); - const description = builtInRouteDescription(agent, t); - const docsUrl = builtInRouteDocsUrl(agent, copy === appCopy.zh ? "zh" : "en"); - - return ( - - {description} - { - event.preventDefault(); - openExternalUrl(docsUrl); - }} - rel="noreferrer" - target="_blank" - > - {t("Docs")} - - - - )} - contentClassName="w-[232px] px-2.5 py-2 text-left font-medium leading-4" - interactive - side="right" - tabIndex={0} - > - - ); -} - -function builtInRouteDescription(agent: RouterBuiltInAgentRuleId, t: (value: string) => string): string { - return agent === "claude-code" - ? t("Identifies the Claude Code user-agent to provide deep Claude Code integration.") - : t("Identifies the Codex user-agent to provide deep Codex integration."); -} - -function builtInRouteDocsUrl(agent: RouterBuiltInAgentRuleId, language: "en" | "zh"): string { - const path = language === "zh" ? "/configuration/routing" : "/en/configuration/routing"; - const hash = agent === "claude-code" ? "claude-code" : "codex"; - return `https://ccrdesk.top${path}#${hash}`; -} - function openExternalUrl(url: string) { if (window.ccr?.openExternal) { void window.ccr.openExternal(url).catch(() => undefined); @@ -259,7 +198,7 @@ function openExternalUrl(url: string) { window.open(url, "_blank", "noopener,noreferrer"); } -function RouterFallbackControl({ +export function RouterFallbackControl({ className, fallback, label, @@ -433,6 +372,7 @@ export function DeleteRoutingRuleDialog({ } export function AddRoutingRuleDialog({ + allowedRuleTypes, canSubmit, draft, mode, @@ -441,6 +381,7 @@ export function AddRoutingRuleDialog({ onSubmit, providers }: { + allowedRuleTypes?: Array; canSubmit: boolean; draft: AddRoutingRuleDraft; mode: "add" | "edit"; @@ -453,7 +394,12 @@ export function AddRoutingRuleDialog({ const copy = useContext(AppI18nContext); const conditionSourceOptions = translateOptions(routerConditionSourceOptions, t); const rewriteOperationOptions = translateOptions(routerRewriteOperationOptions, t); - const ruleTypeOptions = translateOptions(routerRuleTypeOptions, t); + const ruleTypeOptions = translateOptions( + allowedRuleTypes?.length + ? routerRuleTypeOptions.filter((option) => allowedRuleTypes.includes(option.value)) + : routerRuleTypeOptions, + t + ); const [scriptBusy, setScriptBusy] = useState<"submit" | "test" | "validate">(); const [scriptMessage, setScriptMessage] = useState<{ ok: boolean; text: string }>(); const scriptFileInputRef = useRef(null); @@ -563,7 +509,7 @@ export function AddRoutingRuleDialog({ onChange({ name: event.target.value })} /> - + {ruleTypeOptions.length > 1 ? onChange({ type: type as AddRoutingRuleDraft["type"], @@ -578,7 +524,7 @@ export function AddRoutingRuleDialog({ options={ruleTypeOptions} value={draft.type} /> - + : null} {draft.type === "condition" ?
@@ -590,7 +536,7 @@ export function AddRoutingRuleDialog({ onChange({ conditionField: event.target.value })} - placeholder={draft.conditionSource.endsWith(".header") ? "x-api-key" : "model"} + placeholder={draft.conditionSource === "request.auth" ? "profileId" : draft.conditionSource.endsWith(".header") ? "x-api-key" : "model"} value={draft.conditionField} /> = { profile: "Agent Profiles", providers: "Providers", models: "Models", - routing: "Routing", + routing: "Global Routing", server: "Server", "virtual-models": "Fusion" }, @@ -433,7 +433,12 @@ export const appCopy: Record = { "Idle seconds must be between 30 and 86400.": "Idle seconds must be between 30 and 86400.", "No request logs match the current filters.": "No request logs match the current filters.", "No request logs yet.": "No request logs yet.", + "Paths, routing, bot, compact, and env": "Paths, routing, bot, compact, and env", "Paths, bot, compact, and env": "Paths, bot, compact, and env", + "Enhanced route": "Enhanced route", + "Enhanced route description Claude Code": "CCR built-in Claude Code routing optimizes requests to third-party models for this profile.", + "Enhanced route description Codex": "CCR built-in Codex routing optimizes requests to third-party models for this profile.", + "Enhanced route off": "Enhanced route off", "Request logs are off": "Request logs are off", "Request logs record gateway requests and make payload inspection available.": "Request logs record gateway requests and make payload inspection available.", "Select an existing bot or turn Bot off.": "Select an existing bot or turn Bot off.", @@ -646,7 +651,7 @@ export const appCopy: Record = { profile: "Agent 配置档案", providers: "供应商", models: "模型", - routing: "路由", + routing: "全局路由", server: "服务", "virtual-models": "Fusion" }, @@ -1334,8 +1339,13 @@ export const appCopy: Record = { "Retry": "继续重试", "Retry attempts": "重试尝试", "Weighted order": "按权重排序", + "Paths, routing, bot, compact, and env": "路径、路由、Bot、压缩和环境变量", "Paths, bot, compact, and env": "路径、Bot、压缩和环境变量", "Ready to route": "可以开始路由", + "Enhanced route": "增强路由", + "Enhanced route description Claude Code": "CCR 内置的 Claude Code 路由会针对该配置使用三方模型时的请求做优化。", + "Enhanced route description Codex": "CCR 内置的 Codex 路由会针对该配置使用三方模型时的请求做优化。", + "Enhanced route off": "增强路由已关闭", "Restart proxy": "重启代理", "Route": "路由", "Route graph": "路由链路图", @@ -1343,6 +1353,9 @@ export const appCopy: Record = { "Route node": "路由节点", "Route trace": "路由轨迹", "Route Observability": "路由可观测", + "Routing disabled": "路由未启用", + "route": "条路由", + "routes": "条路由", "View route graph": "查看路由链路图", "Hover a node to inspect routing operations": "将鼠标悬停在节点上查看路由操作", "Hover over a route node to inspect its operations.": "将鼠标悬停在路由节点上查看操作详情。", @@ -2088,6 +2101,8 @@ export const appCopy: Record = { "Previous": "上一步", "Previous step": "上一步", "Provider setup": "供应商设置", + "Profile routes": "配置级路由", + "Profile routing": "配置级路由", "Proxy not running": "代理未运行", "Proxy status": "代理状态", "Proxy CA certificate is trusted.": "Proxy CA 证书已信任。", diff --git a/packages/ui/src/pages/home/shared/options.ts b/packages/ui/src/pages/home/shared/options.ts index 250fa193..a05bf587 100644 --- a/packages/ui/src/pages/home/shared/options.ts +++ b/packages/ui/src/pages/home/shared/options.ts @@ -213,11 +213,12 @@ export const routerRuleTypeOptions: Array<{ label: string; value: RouterRuleType { label: "Node.js script", value: "script" } ]; -export type RouterConditionSource = "request.header" | "request.body"; +export type RouterConditionSource = "request.header" | "request.body" | "request.auth"; export const routerConditionSourceOptions: Array<{ label: string; value: RouterConditionSource }> = [ { label: "request.header", value: "request.header" }, - { label: "request.body", value: "request.body" } + { label: "request.body", value: "request.body" }, + { label: "request.auth", value: "request.auth" } ]; export const routerRuleOperatorOptions: Array<{ label: string; value: RouterRuleOperator }> = [ diff --git a/packages/ui/src/pages/home/shared/profiles.ts b/packages/ui/src/pages/home/shared/profiles.ts index 313a41d4..6a67894b 100644 --- a/packages/ui/src/pages/home/shared/profiles.ts +++ b/packages/ui/src/pages/home/shared/profiles.ts @@ -19,6 +19,7 @@ import type { GatewayProviderConfig, ProfileConfig, ProfileOpenSurface, + ProfileRoutingConfig, CodexProfileConfigFormat, ProfileScope, ProfileSurface, @@ -30,6 +31,7 @@ import { import { isPlainRecord, normalizeProviderModelSelector, stringValue, uniqueStrings } from "./common"; import { virtualModelProfileModelNames } from "./providers"; +import { normalizeRouterRules } from "./routing"; import { endpointFromHostPort } from "./services"; import { keyValueRowsFromRecord, recordFromKeyValueRows, stringRecordValue, validateProfileEnvRows } from "./virtual-models"; import { isGatewayProviderEnabled } from "@ccr/core/contracts/app"; @@ -397,6 +399,65 @@ function createBotGatewayDraft(botGateway?: BotGatewayRuntimeConfig) { }; } +function createProfileRoutingDraft(routing?: ProfileConfig["routing"]): Pick { + const normalized = normalizeProfileRoutingConfig(routing); + return { + routingEnabled: Boolean(normalized?.enabled), + routingEnhancedRoute: normalized?.enhancedRoute ?? true, + routingRules: normalized?.rules ?? [] + }; +} + +export function normalizeProfileRoutingConfig(value: unknown): ProfileRoutingConfig | undefined { + if (value === false) { + return { + enabled: false, + enhancedRoute: true, + rules: [] + }; + } + if (value === true) { + return { + enabled: true, + enhancedRoute: true, + rules: [] + }; + } + if (!isPlainRecord(value)) { + return undefined; + } + return { + enabled: typeof value.enabled === "boolean" ? value.enabled : true, + enhancedRoute: typeof value.enhancedRoute === "boolean" + ? value.enhancedRoute + : typeof value.useEnhancedRoute === "boolean" + ? value.useEnhancedRoute + : typeof value.builtInRoute === "boolean" + ? value.builtInRoute + : typeof value.builtinRoute === "boolean" + ? value.builtinRoute + : typeof value.useBuiltInRoute === "boolean" + ? value.useBuiltInRoute + : true, + rules: (normalizeRouterRules(value.rules) ?? []).filter((rule) => rule.type !== "script") + }; +} + +function profileRoutingConfigFromDraft(draft: AddProfileDraft): ProfileRoutingConfig | undefined { + const rules = draft.routingRules.filter((rule) => rule.type !== "script").map((rule) => ({ ...rule })); + const supportsEnhancedRoute = draft.agent === "claude-code" || draft.agent === "codex"; + const hasEnhancedRouteConfig = supportsEnhancedRoute && draft.routingEnhancedRoute === false; + const hasRoutingConfig = draft.routingEnabled || rules.length > 0 || hasEnhancedRouteConfig; + if (!hasRoutingConfig) { + return undefined; + } + return { + enabled: draft.routingEnabled, + enhancedRoute: supportsEnhancedRoute ? draft.routingEnhancedRoute : true, + rules + }; +} + export function createProfileDraft(agent: ProfileConfig["agent"] = "claude-code", name?: string): AddProfileDraft { const surface = agent === "zcode" || agent === "claude-design" ? "app" : "cli"; return { @@ -414,6 +475,7 @@ export function createProfileDraft(agent: ProfileConfig["agent"] = "claude-code" opusModel: "", providerId: "claude-code-router", providerName: "Claude Code Router", + ...createProfileRoutingDraft(), scope: "ccr", settingsFile: "~/.claude/settings.json", showAllSessions: false, @@ -447,6 +509,7 @@ export function createProfileDraftFromProfile(profile: ProfileConfig, botConfigs const surface = normalizeProfileSurfaceForForm(profile.surface); return { ...createProfileDraft("claude-code", profile.name), + ...createProfileRoutingDraft(profile.routing), ...botDraft, appPath: profile.appPath ?? "", botConfigId, @@ -467,6 +530,7 @@ export function createProfileDraftFromProfile(profile: ProfileConfig, botConfigs if (profile.agent === "grok" || profile.agent === "kimi" || profile.agent === "pi") { return { ...createProfileDraft(profile.agent, profile.name), + ...createProfileRoutingDraft(profile.routing), availableModels: profile.agent === "kimi" ? uniqueStrings([profile.model, ...(profile.availableModels ?? [])].map(normalizeProfileClientModel).filter(Boolean)) : [], @@ -479,6 +543,7 @@ export function createProfileDraftFromProfile(profile: ProfileConfig, botConfigs if (profile.agent === "claude-design") { return { ...createProfileDraft("claude-design", profile.name), + ...createProfileRoutingDraft(profile.routing), envRows: [], model: "", scope: "ccr", @@ -488,6 +553,7 @@ export function createProfileDraftFromProfile(profile: ProfileConfig, botConfigs const surface = profile.agent === "zcode" ? "app" : normalizeProfileSurfaceForForm(profile.surface); return { ...createProfileDraft(profile.agent, profile.name), + ...createProfileRoutingDraft(profile.routing), ...botDraft, appPath: profile.appPath ?? "", botConfigId, @@ -572,6 +638,7 @@ export function profileConfigFromDraft( } } : {}; + const routing = profileRoutingConfigFromDraft(draft); return normalizeProfileItem({ agent: draft.agent, appPath: draft.appPath, @@ -593,6 +660,7 @@ export function profileConfigFromDraft( opusModel: draft.opusModel, providerId: draft.providerId, providerName: draft.providerName, + ...(routing ? { routing } : {}), scope: draft.scope, settingsFile: draft.settingsFile, showAllSessions: draft.agent === "zcode" || draft.agent === "opencode" || draft.agent === "kilo" || draft.agent === "claude-design" ? false : draft.showAllSessions, @@ -1133,6 +1201,14 @@ export function profileSummaryItems( : profile.managedCompact ? [{ label: t("CCR managed compact"), value: t("Enabled") }] : []; + const routing = normalizeProfileRoutingConfig(profile.routing); + const routingParts = [ + ...(routing?.enabled ? [`${routing.rules.length} ${t(routing.rules.length === 1 ? "route" : "routes")}`] : []), + routing?.enhancedRoute === false ? t("Enhanced route off") : "" + ].filter(Boolean); + const routingSummaryItems = routingParts.length > 0 + ? [{ label: t("Routing"), value: routingParts.join(" · ") }] + : []; const displayProfileModel = (value: string) => profileModelDisplayValue( value, parseProfileModelValue(value, config.Providers, config.virtualModelProfiles ?? []), @@ -1162,6 +1238,7 @@ export function profileSummaryItems( { label: t("Model"), value: modelValue }, ...aliasItems, ...managedCompactItems, + ...routingSummaryItems, ...botSummaryItems, ...appPathSummaryItems, ...envSummaryItems @@ -1177,13 +1254,15 @@ export function profileSummaryItems( value: String(uniqueStrings([profile.model, ...(profile.availableModels ?? [])].filter(Boolean)).length) }] : []), + ...routingSummaryItems, ...envSummaryItems ]; } if (profile.agent === "claude-design") { return [ - { label: t("Entry mode"), value: t("App only") } + { label: t("Entry mode"), value: t("App only") }, + ...routingSummaryItems ]; } @@ -1192,6 +1271,7 @@ export function profileSummaryItems( { label: t("Provider ID"), value: profile.providerId ?? "claude-code-router" }, ...(profile.agent === "zcode" || profile.agent === "opencode" || profile.agent === "kilo" || !profile.showAllSessions ? [] : [{ label: t("Show all sessions"), value: t("Enabled") }]), ...managedCompactItems, + ...routingSummaryItems, ...appPathSummaryItems, ...botSummaryItems, ...envSummaryItems @@ -1211,6 +1291,7 @@ export function normalizeProfileItem(profile: ProfileConfig, index: number): Pro const env = isPlainRecord(profile.env) ? stringRecordValue(profile.env) : {}; const botGateway = surface !== "cli" ? normalizeBotGatewayRuntimeConfig(profile.botGateway) : undefined; const botConfigId = surface !== "cli" ? stringValue(profile.botConfigId) : ""; + const routing = normalizeProfileRoutingConfig(profile.routing); if (agent === "claude-code") { const appPath = profile.appPath?.trim() || ""; return { @@ -1227,6 +1308,7 @@ export function normalizeProfileItem(profile: ProfileConfig, index: number): Pro model, name, opusModel: stringValue(profile.opusModel) || "", + ...(routing ? { routing } : {}), scope, settingsFile: profile.settingsFile?.trim() || "~/.claude/settings.json", sonnetModel: stringValue(profile.sonnetModel) || "", @@ -1243,6 +1325,7 @@ export function normalizeProfileItem(profile: ProfileConfig, index: number): Pro id: profile.id || `profile-${index + 1}`, model, name, + ...(routing ? { routing } : {}), scope: "ccr", surface: "cli" }; @@ -1255,6 +1338,7 @@ export function normalizeProfileItem(profile: ProfileConfig, index: number): Pro id: profile.id || `profile-${index + 1}`, model: "", name, + ...(routing ? { routing } : {}), scope: "ccr", surface: "app" }; @@ -1277,6 +1361,7 @@ export function normalizeProfileItem(profile: ProfileConfig, index: number): Pro name, providerId: profile.providerId?.trim() || "claude-code-router", providerName: profile.providerName?.trim() || "Claude Code Router", + ...(routing ? { routing } : {}), scope, showAllSessions: agent === "zcode" || agent === "opencode" || agent === "kilo" ? false : Boolean(profile.showAllSessions), surface @@ -1413,6 +1498,7 @@ export function normalizeUnknownProfileItem(value: Record, inde : undefined, providerId: typeof value.providerId === "string" ? value.providerId : undefined, providerName: typeof value.providerName === "string" ? value.providerName : undefined, + routing: normalizeProfileRoutingConfig(value.routing ?? value.route), scope: typeof value.scope === "string" ? normalizeProfileScope(value.scope) : "global", settingsFile: typeof value.settingsFile === "string" ? value.settingsFile : undefined, showAllSessions: typeof value.showAllSessions === "boolean" diff --git a/packages/ui/src/pages/home/shared/providers.ts b/packages/ui/src/pages/home/shared/providers.ts index feea49fc..95898d79 100644 --- a/packages/ui/src/pages/home/shared/providers.ts +++ b/packages/ui/src/pages/home/shared/providers.ts @@ -5,6 +5,7 @@ import openCodeLogoUrl from "@/assets/agent-logos/opencode.ico"; import zcodeLogoUrl from "@/assets/agent-logos/zcode.png"; import moonshotProviderIconUrl from "@/assets/provider-icons/moonshot.ico"; import { + ROUTER_SCRIPT_API_VERSION, ROUTER_SCRIPT_MAX_TIMEOUT_MS } from "@ccr/core/contracts/app"; import type { @@ -420,6 +421,40 @@ export function routingRewriteFromDraftRow(row: RoutingRewriteDraftRow): RouterR }; } +export function routingRuleFromDraft( + draft: AddRoutingRuleDraft, + existingRules: RouterRule[], + existingRule?: RouterRule +): RouterRule { + const commonRule = { + enabled: draft.enabled, + fallback: normalizeRouterFallbackConfig(draft.fallback), + id: existingRule?.id ?? uniqueRoutingRuleId(existingRules), + name: draft.name.trim() + }; + return draft.type === "script" + ? { + ...commonRule, + script: { + apiVersion: ROUTER_SCRIPT_API_VERSION, + file: draft.scriptFile.trim(), + language: "javascript" as const, + timeoutMs: Number(draft.scriptTimeoutMs) + }, + type: "script" + } + : { + ...commonRule, + condition: { + left: buildRouterConditionPath(draft.conditionSource, draft.conditionField), + operator: draft.conditionOperator, + right: draft.conditionRight.trim() + }, + rewrites: draft.rewrites.map(routingRewriteFromDraftRow), + type: "condition" + }; +} + function normalizeRouterModelRewrite(rewrite: RouterRuleRewrite): RouterRuleRewrite { return isModelRewriteKey(rewrite.key) && rewrite.value ? { ...rewrite, value: normalizeProviderModelSelector(rewrite.value) } diff --git a/packages/ui/src/pages/home/shared/routing.ts b/packages/ui/src/pages/home/shared/routing.ts index 0d556f30..ed85afb3 100644 --- a/packages/ui/src/pages/home/shared/routing.ts +++ b/packages/ui/src/pages/home/shared/routing.ts @@ -6,9 +6,7 @@ import { } from "@ccr/core/contracts/app"; import type { AppConfig, - ProfileConfig, RouteScriptSampleRequest, - RouterBuiltInAgentRuleId, RouterBuiltInRulesConfig, RouterConfig, RouterFallbackConfig, @@ -559,95 +557,19 @@ export function claudeDesignRoutingConfigFromDraft(draft: ClaudeDesignRoutingDra } export function buildRoutingRuleRows(config: AppConfig): RoutingRuleRow[] { - return [ - ...buildBuiltInAgentRoutingRows(config), - ...config.Router.rules.map((rule, index): RoutingRuleRow => ({ - condition: formatRouterRuleCondition(rule), - enabled: rule.enabled, - index, - key: `router-${rule.id}-${index}`, - name: rule.name || "Unnamed", - readonly: false, - ruleCount: config.Router.rules.length, - ruleId: rule.id, - sourceLabel: "Router", - target: formatRouterRuleTarget(rule), - typeLabel: routerRuleTypeLabel(rule.type) - })) - ]; -} - -export function buildBuiltInAgentRoutingRows(config: AppConfig): RoutingRuleRow[] { - return routerBuiltInAgentRuleIds.map((agent): RoutingRuleRow => { - const target = routerBuiltInAgentRouteTarget(config, agent); - const toggleDisabledReason = routerBuiltInAgentRuleDisabledReason(config, agent); - return { - builtInAgent: agent, - condition: `request.header.user-agent contains ${routerBuiltInAgentUserAgentNeedle(agent)}`, - enabled: routerBuiltInAgentRuleIsActive(config, agent), - key: `builtin-agent-${agent}`, - name: routerBuiltInAgentRuleName(agent), - readonly: false, - ruleCount: config.Router.rules.length, - ruleId: `builtin-agent-${agent}`, - sourceLabel: "Built-in", - target: target ? `set request.body.model = ${target}` : "Profile model unset", - toggleDisabled: Boolean(toggleDisabledReason), - toggleDisabledReason, - typeLabel: "Condition" - }; - }); -} - -const routerBuiltInAgentRuleIds: RouterBuiltInAgentRuleId[] = ["claude-code", "codex"]; - -export function routerBuiltInAgentRuleIsActive(config: AppConfig, agent: RouterBuiltInAgentRuleId): boolean { - return routerBuiltInAgentRulePreferenceEnabled(config, agent) && - Boolean(routerBuiltInAgentProfile(config, agent)) && - Boolean(routerBuiltInAgentRouteTarget(config, agent)); -} - -export function routerBuiltInAgentRulePreferenceEnabled(config: AppConfig, agent: RouterBuiltInAgentRuleId): boolean { - return config.Router.builtInRules?.[agent]?.enabled !== false; -} - -export function routerBuiltInAgentProfile(config: AppConfig, agent: RouterBuiltInAgentRuleId): ProfileConfig | undefined { - if (config.profile.enabled === false) { - return undefined; - } - return config.profile.profiles.find((profile) => - profile.enabled && - profile.agent === agent && - Boolean(profile.model.trim()) - ); -} - -export function routerBuiltInAgentRouteTarget(config: AppConfig, agent: RouterBuiltInAgentRuleId): string { - return routerBuiltInAgentProfile(config, agent)?.model.trim() || ""; -} - -export function routerBuiltInAgentRuleDisabledReason(config: AppConfig, agent: RouterBuiltInAgentRuleId): string | undefined { - if (config.profile.enabled === false) { - return "Agent profiles are disabled."; - } - const agentName = routerBuiltInAgentRuleName(agent); - const enabledProfile = config.profile.profiles.find((profile) => profile.enabled && profile.agent === agent); - if (!enabledProfile) { - return `Enable a ${agentName} profile before enabling this built-in route.`; - } - const profile = routerBuiltInAgentProfile(config, agent); - if (!profile) { - return `Set a model on the ${agentName} profile before enabling this built-in route.`; - } - return undefined; -} - -export function routerBuiltInAgentRuleName(agent: RouterBuiltInAgentRuleId): string { - return agent === "claude-code" ? "Claude Code" : "Codex"; -} - -export function routerBuiltInAgentUserAgentNeedle(agent: RouterBuiltInAgentRuleId): string { - return agent === "claude-code" ? "claude" : "codex"; + return config.Router.rules.map((rule, index): RoutingRuleRow => ({ + condition: formatRouterRuleCondition(rule), + enabled: rule.enabled, + index, + key: `router-${rule.id}-${index}`, + name: rule.name || "Unnamed", + readonly: false, + ruleCount: config.Router.rules.length, + ruleId: rule.id, + sourceLabel: "Router", + target: formatRouterRuleTarget(rule), + typeLabel: routerRuleTypeLabel(rule.type) + })); } export function buildPluginRoutingRows(plugin: AppConfig["plugins"][number], pluginIndex: number): RoutingRuleRow[] { diff --git a/packages/ui/src/pages/home/shared/types.ts b/packages/ui/src/pages/home/shared/types.ts index 87c90cde..e11c55a8 100644 --- a/packages/ui/src/pages/home/shared/types.ts +++ b/packages/ui/src/pages/home/shared/types.ts @@ -27,8 +27,8 @@ import type { ProfileConfig, ProfileScope, ProfileSurface, - RouterBuiltInAgentRuleId, RouterFallbackConfig, + RouterRule, RouterRuleOperator, RouterRuleRewriteOperation, RouterRuleType, @@ -184,6 +184,9 @@ export type AddProfileDraft = { opusModel: string; providerId: string; providerName: string; + routingEnabled: boolean; + routingEnhancedRoute: boolean; + routingRules: RouterRule[]; scope: ProfileScope; settingsFile: string; showAllSessions: boolean; @@ -427,7 +430,6 @@ export type PluginSettingsDraft = { }; export type RoutingRuleRow = { - builtInAgent?: RouterBuiltInAgentRuleId; condition: string; enabled: boolean; index?: number; diff --git a/packages/ui/test/component/onboarding.test.tsx b/packages/ui/test/component/onboarding.test.tsx index e6e64348..dd5b4654 100644 --- a/packages/ui/test/component/onboarding.test.tsx +++ b/packages/ui/test/component/onboarding.test.tsx @@ -104,5 +104,5 @@ test("Onboarding profile step does not prompt to save before continuing", () => assert.doesNotMatch(html, /Save this agent profile to continue/); assert.doesNotMatch(html, /Choose an agent, model, and required profile settings/); assert.doesNotMatch(html, /provider identity/); - assert.match(html, /Paths, bot, compact, and env/); + assert.match(html, /Paths, routing, bot, compact, and env/); }); diff --git a/packages/ui/test/component/profiles.test.tsx b/packages/ui/test/component/profiles.test.tsx index 27e9f8be..328faa8f 100644 --- a/packages/ui/test/component/profiles.test.tsx +++ b/packages/ui/test/component/profiles.test.tsx @@ -5,7 +5,7 @@ import { renderToStaticMarkup } from "react-dom/server"; import type { ProfileConfig } from "@ccr/core/contracts/app.ts"; import { AddProfileForm, DeleteProfileDialog, ProfileView } from "@ccr/ui/pages/home/components/profiles.tsx"; import { AppI18nContext, appCopy } from "@ccr/ui/pages/home/shared/i18n.tsx"; -import { createProfileDraft, isProfileDraftSubmittable, normalizeUnknownProfileItem, profileDraftWithDetectedAppPath, profileSummaryItems } from "@ccr/ui/pages/home/shared/profiles.ts"; +import { createProfileDraft, createProfileDraftFromProfile, isProfileDraftSubmittable, normalizeUnknownProfileItem, profileConfigFromDraft, profileDraftWithDetectedAppPath, profileSummaryItems } from "@ccr/ui/pages/home/shared/profiles.ts"; import { appConfigFixture } from "../fixtures/index.ts"; const profile: ProfileConfig = { @@ -61,6 +61,91 @@ test("AddProfileForm does not show the profile requirements panel", () => { assert.doesNotMatch(html, /Profile guidance/); }); +test("AddProfileForm keeps profile routing inside Advanced settings", () => { + const config = appConfigFixture(); + const html = renderToStaticMarkup( + undefined} + onCreateBot={() => undefined} + providers={config.Providers} + virtualModelProfiles={config.virtualModelProfiles} + /> + ); + + assert.match(html, /Advanced settings/); + assert.doesNotMatch(html, /Profile routing/); + assert.doesNotMatch(html, /Routing disabled/); + assert.doesNotMatch(html, /Enhanced route/); +}); + +test("AddProfileForm shows profile-level enhanced route controls when private routing is disabled", () => { + const config = appConfigFixture(); + const html = renderToStaticMarkup( + undefined} + onCreateBot={() => undefined} + providers={config.Providers} + virtualModelProfiles={config.virtualModelProfiles} + /> + ); + const advancedSettingsIndex = html.indexOf("Advanced settings"); + const profileRoutingIndex = html.indexOf("Profile routing"); + + assert.ok(advancedSettingsIndex >= 0); + assert.ok(profileRoutingIndex > advancedSettingsIndex); + assert.doesNotMatch(html, /Routing disabled/); + assert.match(html, /Enhanced route/); + assert.match(html, /CCR built-in Claude Code routing optimizes requests to third-party models for this profile\./); +}); + +test("AddProfileForm shows private profile routes when profile routing is enabled", () => { + const config = appConfigFixture(); + const html = renderToStaticMarkup( + undefined} + onCreateBot={() => undefined} + providers={config.Providers} + virtualModelProfiles={config.virtualModelProfiles} + /> + ); + + assert.match(html, /Profile routing/); + assert.match(html, /Enhanced route/); + assert.match(html, /Profile routes/); + assert.match(html, /CCR built-in Claude Code routing optimizes requests to third-party models for this profile\./); + assert.match(html, /data-ui-tooltip-trigger/); +}); + +test("AddProfileForm uses Codex-specific enhanced route info for Codex profiles", () => { + const config = appConfigFixture(); + const html = renderToStaticMarkup( + undefined} + onCreateBot={() => undefined} + providers={config.Providers} + virtualModelProfiles={config.virtualModelProfiles} + /> + ); + + assert.match(html, /Enhanced route/); + assert.match(html, /CCR built-in Codex routing optimizes requests to third-party models for this profile\./); +}); + test("AddProfileForm marks required and optional fields", () => { const config = appConfigFixture(); const html = renderToStaticMarkup( @@ -285,6 +370,29 @@ test("profileSummaryItems omits disabled profile properties from cards", () => { assert.match(enabledItems.map((item) => item.label).join(" "), /CCR managed compact/); }); +test("profileSummaryItems shows disabled profile enhanced route without private routing status", () => { + const config = appConfigFixture(); + const items = profileSummaryItems({ + agent: "claude-code", + enabled: true, + id: "claude-main", + model: "openai/gpt-5.2", + name: "Claude Main", + routing: { + enabled: false, + enhancedRoute: false, + rules: [] + }, + scope: "ccr", + surface: "cli" + }, config, (value) => value); + const text = items.map((item) => `${item.label} ${item.value}`).join(" "); + + assert.doesNotMatch(text, /Routing disabled/); + assert.match(text, /Enhanced route off/); + assert.match(items.map((item) => item.label).join(" "), /Routing/); +}); + test("detected CHATGPT_APP_PATH is used as the Codex profile default", () => { const detectedPath = "/Applications/ChatGPT.app/Contents/MacOS/ChatGPT"; const draft = profileDraftWithDetectedAppPath(createProfileDraft("codex"), ` ${detectedPath} `); @@ -325,6 +433,74 @@ test("persisted Grok profiles are normalized to the supported launch scope", () assert.equal(profile?.surface, "cli"); }); +test("profile routing survives profile draft round trip", () => { + const profile = normalizeUnknownProfileItem({ + agent: "claude-code", + enabled: true, + id: "claude-work", + model: "Provider/sonnet", + name: "Claude Work", + routing: { + enabled: true, + enhancedRoute: false, + rules: [{ + condition: { left: "request.auth.profileId", operator: "==", right: "claude-work" }, + enabled: true, + id: "auth-profile", + name: "Auth profile", + rewrites: [{ key: "request.body.model", operation: "set", value: "Provider/opus" }], + type: "condition" + }] + }, + scope: "ccr", + surface: "cli" + }, 0); + + assert.equal(profile?.routing?.enhancedRoute, false); + assert.equal(profile?.routing?.rules[0]?.id, "auth-profile"); + + const draft = createProfileDraftFromProfile(profile); + const saved = profileConfigFromDraft(draft, [profile], profile); + + assert.equal(saved.routing?.enabled, true); + assert.equal(saved.routing?.enhancedRoute, false); + assert.equal(saved.routing?.rules[0]?.condition?.left, "request.auth.profileId"); +}); + +test("disabled private profile routing persists the profile enhanced route switch", () => { + const draft = { + ...createProfileDraft("claude-code"), + model: "Provider/sonnet", + routingEnabled: false, + routingEnhancedRoute: false + }; + const saved = profileConfigFromDraft(draft, [], undefined); + + assert.equal(saved.routing?.enabled, false); + assert.equal(saved.routing?.enhancedRoute, false); + assert.deepEqual(saved.routing?.rules, []); +}); + +test("disabled profile routing preserves existing private rules without enabling them", () => { + const draft = { + ...createProfileDraft("claude-code"), + model: "Provider/sonnet", + routingEnabled: false, + routingRules: [{ + condition: { left: "request.header.x-task", operator: "==", right: "heavy" }, + enabled: true, + id: "heavy", + name: "Heavy", + rewrites: [{ key: "request.body.model", operation: "set", value: "Provider/opus" }], + type: "condition" + }] + }; + const saved = profileConfigFromDraft(draft, [], undefined); + + assert.equal(saved.routing?.enabled, false); + assert.equal(saved.routing?.rules[0]?.id, "heavy"); +}); + test("OpenCode profiles support local CLI and App configuration", () => { const draft = createProfileDraft("opencode"); assert.equal(draft.name, "OpenCode"); diff --git a/packages/ui/test/unit/routing.test.ts b/packages/ui/test/unit/routing.test.ts index 575477bf..e0078b60 100644 --- a/packages/ui/test/unit/routing.test.ts +++ b/packages/ui/test/unit/routing.test.ts @@ -1,13 +1,9 @@ import assert from "node:assert/strict"; import test from "node:test"; import { - buildBuiltInAgentRoutingRows, + buildRoutingRuleRows, normalizeRouteScriptSampleRequest, - normalizeRouterRules, - routerBuiltInAgentProfile, - routerBuiltInAgentRouteTarget, - routerBuiltInAgentRuleDisabledReason, - routerBuiltInAgentRuleIsActive + normalizeRouterRules } from "@ccr/ui/pages/home/shared/routing.ts"; import { createRoutingRuleDraft, @@ -16,63 +12,28 @@ import { } from "@ccr/ui/pages/home/shared/providers.ts"; import { appConfigFixture } from "../fixtures/index.ts"; -test("Codex built-in route accepts a later enabled profile with a configured model", () => { +test("global routing rows omit Claude Code and Codex built-in profile routes", () => { const config = appConfigFixture(); config.profile.profiles = [ { - agent: "codex", + agent: "claude-code", enabled: true, - id: "codex", - model: "", - name: "Codex", + id: "claude", + model: "Provider/claude-sonnet", + name: "Claude", scope: "ccr" }, { agent: "codex", enabled: true, - id: "bs-2", + id: "codex", model: "uuroute/gpt-5.5", - name: "BS", - scope: "ccr" - } - ]; - - assert.equal(routerBuiltInAgentProfile(config, "codex")?.id, "bs-2"); - assert.equal(routerBuiltInAgentRouteTarget(config, "codex"), "uuroute/gpt-5.5"); - assert.equal(routerBuiltInAgentRuleDisabledReason(config, "codex"), undefined); - assert.equal(routerBuiltInAgentRuleIsActive(config, "codex"), true); - assert.equal( - buildBuiltInAgentRoutingRows(config).find((row) => row.builtInAgent === "codex")?.target, - "set request.body.model = uuroute/gpt-5.5" - ); -}); - -test("Codex built-in route asks for a model only when every enabled Codex profile is unset", () => { - const config = appConfigFixture(); - config.profile.profiles = [ - { - agent: "codex", - enabled: true, - id: "codex", - model: " ", name: "Codex", scope: "ccr" - }, - { - agent: "codex", - enabled: true, - id: "bs-2", - model: "", - name: "BS", - scope: "ccr" } ]; - assert.equal( - routerBuiltInAgentRuleDisabledReason(config, "codex"), - "Set a model on the Codex profile before enabling this built-in route." - ); - assert.equal(routerBuiltInAgentRuleIsActive(config, "codex"), false); + assert.deepEqual(buildRoutingRuleRows(config), []); }); test("routing UI preserves the Node.js script file and timeout", () => {