From b7b6e67df79e2353945cf3b97fde7b9f631e17aa Mon Sep 17 00:00:00 2001 From: Petterson <58094725+hahuma@users.noreply.github.com> Date: Tue, 14 Apr 2026 09:06:10 -0300 Subject: [PATCH 01/20] fix(captain): localize AI summary to account language (#13790) AI-generated summaries now respect the account's language setting. Previously, summaries were always returned in English regardless of the user's configured language, making section headings like "Customer Intent" and "Action Items" appear in English even for non-English accounts. Previous behavior: image Current Behavior: image ## What changed - Added explicit account locale to the AI system prompt in `Captain::SummaryService` - Updated the summary prompt template to instruct the model to translate section headings ## How to test 1. Configure an account with a non-English language (e.g., Portuguese) 2. Open a conversation with messages 3. Use the Copilot "Summarize" feature 4. Verify that section headings ("Customer Intent", "Conversation Summary", etc.) appear in the account's language --------- Co-authored-by: Aakash Bakhle <48802744+aakashb95@users.noreply.github.com> --- lib/captain/summary_service.rb | 10 +++++++++- lib/integrations/openai/openai_prompts/summary.liquid | 2 +- spec/lib/captain/summary_service_spec.rb | 3 ++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/captain/summary_service.rb b/lib/captain/summary_service.rb index 16ee57b51..030c0e510 100644 --- a/lib/captain/summary_service.rb +++ b/lib/captain/summary_service.rb @@ -5,7 +5,7 @@ class Captain::SummaryService < Captain::BaseTaskService make_api_call( model: GPT_MODEL, messages: [ - { role: 'system', content: prompt_from_file('summary') }, + { role: 'system', content: system_prompt }, { role: 'user', content: conversation.to_llm_text(include_contact_details: false) } ] ) @@ -13,6 +13,14 @@ class Captain::SummaryService < Captain::BaseTaskService private + def system_prompt + <<~PROMPT + #{prompt_from_file('summary')} + + Reply in #{account.locale_english_name}. + PROMPT + end + def event_name 'summarize' end diff --git a/lib/integrations/openai/openai_prompts/summary.liquid b/lib/integrations/openai/openai_prompts/summary.liquid index 4ec5ffd5b..1ac05419a 100644 --- a/lib/integrations/openai/openai_prompts/summary.liquid +++ b/lib/integrations/openai/openai_prompts/summary.liquid @@ -17,7 +17,7 @@ Make sure you strongly adhere to the following rules when generating the summary 13. Do not insert your own opinions about the conversation. -Reply in the user's language, as a markdown of the following format. +Use markdown with the following format. Translate all section headings to match the reply language: **Customer Intent** diff --git a/spec/lib/captain/summary_service_spec.rb b/spec/lib/captain/summary_service_spec.rb index 6da3f122b..c5ec50687 100644 --- a/spec/lib/captain/summary_service_spec.rb +++ b/spec/lib/captain/summary_service_spec.rb @@ -35,7 +35,8 @@ RSpec.describe Captain::SummaryService do expect(service).to receive(:make_api_call) do |args| expect(args[:messages].length).to eq(2) expect(args[:messages][0][:role]).to eq('system') - expect(args[:messages][0][:content]).to eq('Summarize this') + expect(args[:messages][0][:content]).to include('Summarize this') + expect(args[:messages][0][:content]).to include("Reply in #{account.locale_english_name}") expect(args[:messages][1][:role]).to eq('user') expect(args[:messages][1][:content]).to be_a(String) { message: 'Summary' } From 72c9e1775bba9733927c2e7f07a737f32d80e491 Mon Sep 17 00:00:00 2001 From: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Date: Tue, 14 Apr 2026 18:18:38 +0530 Subject: [PATCH 02/20] fix: Prevent article editor from resetting content while typing (#14014) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Pull Request Template ## Description ### Description This PR fixes an issue where the editor would reset content and move the cursor while typing. The issue was caused by a dual debounce setup (400ms + 2500ms) that saved content and then overwrote local state with stale API responses while the user was still typing. ### What changed * Editor now uses local state (`localTitle`, `localContent`) as the source of truth while editing * Vuex store is only used on initial load or navigation * Replaced dual debounce with a single 500ms debounce (fewer API calls) * `UPDATE_ARTICLE` now merges updates instead of replacing the article * Prevents status changes from wiping unsaved content * Removed `updateAsync` for a simpler update flow ### How it works User types → local ref updates immediately (editor reads from this) → 500ms debounce triggers → dispatches `articles/update` → API persists the change → on success: store merges the response (used by other components) → editor remains unaffected (continues using local state) Fixes https://linear.app/chatwoot/issue/CW-6727/better-syncing-of-content-the-editor-randomly-updates-the-content ## Type of change - [x] Bug fix (non-breaking change which fixes an issue) ## How Has This Been Tested? 1. Open any Help Center article for editing 2. Type continuously for a few seconds — content should not reset or jump 3. Change article status (publish/archive/draft) while editing — content should remain intact 4. Test on a slow network (use DevTools throttling) — typing should remain smooth ## Checklist: - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my code - [x] I have commented on my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [ ] Any dependent changes have been merged and published in downstream modules --------- Co-authored-by: Muhsin Keloth --- .../Pages/ArticleEditorPage/ArticleEditor.vue | 42 ++++++++----------- .../pages/PortalsArticlesEditPage.vue | 10 +---- .../modules/helpCenterArticles/actions.js | 27 +----------- .../modules/helpCenterArticles/mutations.js | 8 ++-- 4 files changed, 25 insertions(+), 62 deletions(-) diff --git a/app/javascript/dashboard/components-next/HelpCenter/Pages/ArticleEditorPage/ArticleEditor.vue b/app/javascript/dashboard/components-next/HelpCenter/Pages/ArticleEditorPage/ArticleEditor.vue index bdc6a56cb..2f06ea01e 100644 --- a/app/javascript/dashboard/components-next/HelpCenter/Pages/ArticleEditorPage/ArticleEditor.vue +++ b/app/javascript/dashboard/components-next/HelpCenter/Pages/ArticleEditorPage/ArticleEditor.vue @@ -1,5 +1,5 @@ @@ -194,10 +254,26 @@ export default {
+

{{ contact.name }} +

{ + this.$refs.editInput?.focus(); + }); + }, + saveEdit() { + if (!this.isEditing) return; + this.isEditing = false; + const trimmed = this.editValue.trim(); + if (trimmed !== (this.value || '')) { + this.$emit('update', trimmed); + } + }, + cancelEdit() { + this.isEditing = false; + }, }, }; diff --git a/app/javascript/dashboard/store/modules/contacts/actions.js b/app/javascript/dashboard/store/modules/contacts/actions.js index d7f87b776..d0029207e 100644 --- a/app/javascript/dashboard/store/modules/contacts/actions.js +++ b/app/javascript/dashboard/store/modules/contacts/actions.js @@ -36,7 +36,11 @@ const buildContactFormData = contactParams => { export const handleContactOperationErrors = error => { if (error.response?.status === 422) { - throw new DuplicateContactException(error.response.data.attributes); + const exception = new DuplicateContactException( + error.response.data.attributes + ); + exception.message = error.response.data.message || exception.message; + throw exception; } else if (error.response?.data?.message) { throw new ExceptionWithMessage(error.response.data.message); } else { diff --git a/app/javascript/shared/helpers/CustomErrors.js b/app/javascript/shared/helpers/CustomErrors.js index 4f31eb291..ef5947189 100644 --- a/app/javascript/shared/helpers/CustomErrors.js +++ b/app/javascript/shared/helpers/CustomErrors.js @@ -1,10 +1,19 @@ /* eslint-disable max-classes-per-file */ export class DuplicateContactException extends Error { + static DEFAULT_MESSAGE = 'DUPLICATE_CONTACT'; + constructor(data) { - super('DUPLICATE_CONTACT'); + super(DuplicateContactException.DEFAULT_MESSAGE); this.data = data; this.name = 'DuplicateContactException'; } + + /** Server or client may assign `message` after construction; otherwise still DEFAULT_MESSAGE. */ + get contactErrorDetail() { + return this.message === DuplicateContactException.DEFAULT_MESSAGE + ? null + : this.message; + } } export class ExceptionWithMessage extends Error { constructor(data) { From 8e5d4f4d2322f1282e94b175be06bf16ddd7016c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Apr 2026 00:44:54 +0530 Subject: [PATCH 04/20] chore(deps): bump axios from 1.13.6 to 1.15.0 (#14051) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [axios](https://github.com/axios/axios) from 1.13.6 to 1.15.0.
Release notes

Sourced from axios's releases.

v1.15.0

This release delivers two critical security patches, adds runtime support for Deno and Bun, and includes significant CI hardening, documentation improvements, and routine dependency updates.

⚠️ Important Changes

  • Deprecation: url.parse() usage has been replaced to address Node.js deprecation warnings. If you are on a recent version of Node.js, this resolves console warnings you may have been seeing. (#10625)

🔒 Security Fixes

  • Proxy Handling: Fixed a no_proxy hostname normalisation bypass that could lead to Server-Side Request Forgery (SSRF). (#10661)
  • Header Injection: Fixed an unrestricted cloud metadata exfiltration vulnerability via a header injection chain. (#10660)

🚀 New Features

  • Runtime Support: Added compatibility checks and documentation for Deno and Bun environments. (#10652, #10653)

🔧 Maintenance & Chores

  • CI Security: Hardened workflow permissions to least privilege, added the zizmor security scanner, pinned action versions, and gated npm publishing with OIDC and environment protection. (#10618, #10619, #10627, #10637, #10666)
  • Dependencies: Bumped serialize-javascript, handlebars, picomatch, vite, and denoland/setup-deno to latest versions. Added a 7-day Dependabot cooldown period. (#10574, #10572, #10568, #10663, #10664, #10665, #10669, #10670, #10616)
  • Documentation: Unified docs, improved beforeRedirect credential leakage example, clarified withCredentials/withXSRFToken behaviour, HTTP/2 support notes, async/await timeout error handling, header case preservation, and various typo fixes. (#10649, #10624, #7452, #7471, #10654, #10644, #10589)
  • Housekeeping: Removed stale files, regenerated lockfile, and updated sponsor scripts and blocks. (#10584, #10650, #10582, #10640, #10659, #10668)
  • Tests: Added regression coverage for urlencoded Content-Type casing. (#10573)

🌟 New Contributors

We are thrilled to welcome our new contributors. Thank you for helping improve Axios:

v1.14.0

This release focuses on compatibility fixes, adapter stability improvements, and test/tooling modernisation.

⚠️ Important Changes

  • Breaking Changes: None identified in this release.
  • Action Required: If you rely on env-based proxy behaviour or CJS resolution edge-cases, validate your integration after upgrade (notably proxy-from-env v2 alignment and main entry compatibility fix).

🚀 New Features

  • Runtime Features: No new end-user features were introduced in this release.
  • Test Coverage Expansion: Added broader smoke/module test coverage for CJS and ESM package usage. (#7510)

🐛 Bug Fixes

  • Headers: Trim trailing CRLF in normalised header values. (#7456)
  • HTTP/2: Close detached HTTP/2 sessions on timeout to avoid lingering sessions. (#7457)
  • Fetch Adapter: Cancel ReadableStream created during request-stream capability probing to prevent async resource leaks. (#7515)
  • Proxy Handling: Fixed env proxy behavior with proxy-from-env v2 usage. (#7499)

... (truncated)

Changelog

Sourced from axios's changelog.

Changelog

1.13.3 (2026-01-20)

Bug Fixes

  • http2: Use port 443 for HTTPS connections by default. (#7256) (d7e6065)
  • interceptor: handle the error in the same interceptor (#6269) (5945e40)
  • main field in package.json should correspond to cjs artifacts (#5756) (7373fbf)
  • package.json: add 'bun' package.json 'exports' condition. Load the Node.js build in Bun instead of the browser build (#5754) (b89217e)
  • silentJSONParsing=false should throw on invalid JSON (#7253) (#7257) (7d19335)
  • turn AxiosError into a native error (#5394) (#5558) (1c6a86d)
  • types: add handlers to AxiosInterceptorManager interface (#5551) (8d1271b)
  • types: restore AxiosError.cause type from unknown to Error (#7327) (d8233d9)
  • unclear error message is thrown when specifying an empty proxy authorization (#6314) (6ef867e)

Features

Reverts

  • Revert "fix: silentJSONParsing=false should throw on invalid JSON (#7253) (#7…" (#7298) (a4230f5), closes #7253 #7 #7298
  • deps: bump peter-evans/create-pull-request from 7 to 8 in the github-actions group (#7334) (2d6ad5e)

Contributors to this release

... (truncated)

Commits
  • 772a4e5 chore(release): prepare release 1.15.0 (#10671)
  • 4b07137 chore(deps-dev): bump vite from 8.0.0 to 8.0.5 in /tests/smoke/esm (#10663)
  • 51e57b3 chore(deps-dev): bump vite from 8.0.2 to 8.0.5 (#10664)
  • fba1a77 chore(deps-dev): bump vite from 8.0.2 to 8.0.5 in /tests/module/esm (#10665)
  • 0bf6e28 chore(deps): bump denoland/setup-deno in the github-actions group (#10669)
  • 8107157 chore(deps-dev): bump the development_dependencies group with 4 updates (#10670)
  • e66530e ci: require npm-publish environment for releases (#10666)
  • 49f23cb chore(sponsor): update sponsor block (#10668)
  • 3631854 fix: unrestricted cloud metadata exfiltration via header injection chain (#10...
  • fb3befb fix: no_proxy hostname normalization bypass leads to ssrf (#10661)
  • Additional commits viewable in compare view
Install script changes

This version modifies prepare script that runs during installation. Review the package contents before updating.


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=axios&package-manager=npm_and_yarn&previous-version=1.13.6&new-version=1.15.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/chatwoot/chatwoot/network/alerts).
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 21 +++++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index ddb6c09cc..c8e511be2 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "@vueuse/components": "^12.0.0", "@vueuse/core": "^12.0.0", "activestorage": "^5.2.6", - "axios": "^1.13.6", + "axios": "^1.15.0", "camelcase-keys": "^9.1.3", "chart.js": "~4.4.4", "color2k": "^2.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cb4b2b148..818698372 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -101,8 +101,8 @@ importers: specifier: ^5.2.6 version: 5.2.8 axios: - specifier: ^1.13.6 - version: 1.13.6 + specifier: ^1.15.0 + version: 1.15.0 camelcase-keys: specifier: ^9.1.3 version: 9.1.3 @@ -1546,7 +1546,7 @@ packages: '@xmldom/xmldom@0.7.13': resolution: {integrity: sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==} engines: {node: '>=10.0.0'} - deprecated: this version is no longer supported, please update to at least 0.8.* + deprecated: this version has critical issues, please update to the latest version abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} @@ -1716,8 +1716,8 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axios@1.13.6: - resolution: {integrity: sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==} + axios@1.15.0: + resolution: {integrity: sha512-wWyJDlAatxk30ZJer+GeCWS209sA42X+N5jU2jy6oHTp7ufw8uzUTVFBX9+wTfAlhiJXGS0Bq7X6efruWjuK9Q==} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -3865,8 +3865,9 @@ packages: proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + proxy-from-env@2.1.0: + resolution: {integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==} + engines: {node: '>=10'} psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} @@ -6349,11 +6350,11 @@ snapshots: dependencies: possible-typed-array-names: 1.0.0 - axios@1.13.6: + axios@1.15.0: dependencies: follow-redirects: 1.15.11 form-data: 4.0.5 - proxy-from-env: 1.1.0 + proxy-from-env: 2.1.0 transitivePeerDependencies: - debug @@ -8793,7 +8794,7 @@ snapshots: proto-list@1.2.4: {} - proxy-from-env@1.1.0: {} + proxy-from-env@2.1.0: {} psl@1.9.0: {} From 3f9f054c431ff4272e91048e9d9d0df7a6a68451 Mon Sep 17 00:00:00 2001 From: Tanmay Deep Sharma <32020192+tds-1@users.noreply.github.com> Date: Wed, 15 Apr 2026 13:42:48 +0700 Subject: [PATCH 05/20] fix: drop WhatsApp incoming messages from blocked contacts (#14061) ## Linear ticket https://linear.app/chatwoot/issue/CW-6839/blocked-contact-can-still-send-messages-to-whatsapp-inbox ## Description Drop WhatsApp incoming messages from blocked contacts ## Type of change - [ ] Bug fix (non-breaking change which fixes an issue) ## How Has This Been Tested? - Incoming messages for blocked contacts ## Checklist: - [ ] My code follows the style guidelines of this project - [ ] I have performed a self-review of my code - [ ] I have commented on my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [ ] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes - [ ] Any dependent changes have been merged and published in downstream modules --------- Co-authored-by: Muhsin Keloth --- app/services/whatsapp/incoming_message_base_service.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/services/whatsapp/incoming_message_base_service.rb b/app/services/whatsapp/incoming_message_base_service.rb index a8ad176b6..5449c4740 100644 --- a/app/services/whatsapp/incoming_message_base_service.rb +++ b/app/services/whatsapp/incoming_message_base_service.rb @@ -37,6 +37,7 @@ class Whatsapp::IncomingMessageBaseService set_contact return unless @contact + return if @contact.blocked? && !outgoing_echo ActiveRecord::Base.transaction do set_conversation From b96bf41234d92d5467608a6ddc1978ea7b0ddc96 Mon Sep 17 00:00:00 2001 From: Sojan Jose Date: Wed, 15 Apr 2026 17:03:39 +0530 Subject: [PATCH 06/20] chore: Enable Participating tab for conversations (#11714) ## Summary This PR enables the **Participating** conversation view in the main sidebar and keeps the behavior aligned with existing conversation views. ## What changed - Added **Participating** under Conversations in the new sidebar. - Added a guard in conversation realtime `addConversation` flow so generic `conversation.created` events are not injected while the user is on Participating view. - Added participating route mapping in conversation-list redirect helper so list redirects resolve correctly to `/participating/conversations`. ## Scope notes - Kept changes minimal and consistent with current `develop` behavior. - No additional update-event filtering was added beyond what existing views already do. --------- Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Co-authored-by: iamsivin --- .../components-next/sidebar/Sidebar.vue | 6 ++ .../dashboard/components/ChatList.vue | 36 ++++++++-- .../conversation/ConversationHeader.vue | 1 + app/javascript/dashboard/constants/globals.js | 5 ++ app/javascript/dashboard/helper/URLHelper.js | 1 + .../dashboard/helper/specs/URLHelper.spec.js | 9 +++ .../store/modules/conversations/actions.js | 3 + .../store/modules/conversations/getters.js | 13 ++++ .../conversations/helpers/actionHelpers.js | 8 +++ .../helpers/specs/actionHelpers.spec.js | 22 +++++- .../store/modules/conversations/index.js | 6 +- .../specs/conversations/getters.spec.js | 67 +++++++++++++++++++ .../specs/conversations/mutations.spec.js | 48 ++++++++++++- 13 files changed, 216 insertions(+), 9 deletions(-) diff --git a/app/javascript/dashboard/components-next/sidebar/Sidebar.vue b/app/javascript/dashboard/components-next/sidebar/Sidebar.vue index d08147739..9fd25c481 100644 --- a/app/javascript/dashboard/components-next/sidebar/Sidebar.vue +++ b/app/javascript/dashboard/components-next/sidebar/Sidebar.vue @@ -250,6 +250,12 @@ const menuItems = computed(() => { activeOn: ['conversation_through_mentions'], to: accountScopedRoute('conversation_mentions'), }, + { + name: 'Participating', + label: t('SIDEBAR.PARTICIPATING_CONVERSATIONS'), + activeOn: ['conversation_through_participating'], + to: accountScopedRoute('conversation_participating'), + }, { name: 'Unattended', activeOn: ['conversation_through_unattended'], diff --git a/app/javascript/dashboard/components/ChatList.vue b/app/javascript/dashboard/components/ChatList.vue index eeb2ad6e7..f311de4b2 100644 --- a/app/javascript/dashboard/components/ChatList.vue +++ b/app/javascript/dashboard/components/ChatList.vue @@ -56,6 +56,7 @@ import { generateValuesForEditCustomViews } from 'dashboard/helper/customViewsHe import { conversationListPageURL } from '../helper/URLHelper'; import { isOnMentionsView, + isOnParticipatingView, isOnUnattendedView, } from '../store/modules/conversations/helpers/actionHelpers'; import { @@ -113,6 +114,7 @@ const chatLists = useMapGetter('getFilteredConversations'); const mineChatsList = useMapGetter('getMineChats'); const allChatList = useMapGetter('getAllStatusChats'); const unAssignedChatsList = useMapGetter('getUnAssignedChats'); +const participatingChatsList = useMapGetter('getParticipatingChats'); const chatListLoading = useMapGetter('getChatListLoadingStatus'); const activeInbox = useMapGetter('getSelectedInbox'); const conversationStats = useMapGetter('conversationStats/getStats'); @@ -296,13 +298,15 @@ const pageTitle = computed(() => { if (props.label) { return `#${props.label}`; } - if (props.conversationType === 'mention') { + if (props.conversationType === wootConstants.CONVERSATION_TYPE.MENTION) { return t('CHAT_LIST.MENTION_HEADING'); } - if (props.conversationType === 'participating') { + if ( + props.conversationType === wootConstants.CONVERSATION_TYPE.PARTICIPATING + ) { return t('CONVERSATION_PARTICIPANTS.SIDEBAR_MENU_TITLE'); } - if (props.conversationType === 'unattended') { + if (props.conversationType === wootConstants.CONVERSATION_TYPE.UNATTENDED) { return t('CHAT_LIST.UNATTENDED_HEADING'); } if (hasActiveFolders.value) { @@ -311,12 +315,30 @@ const pageTitle = computed(() => { return t('CHAT_LIST.TAB_HEADING'); }); +function filterByAssigneeTab(conversations) { + if (activeAssigneeTab.value === wootConstants.ASSIGNEE_TYPE.ME) { + return conversations.filter( + c => c.meta?.assignee?.id === currentUser.value?.id + ); + } + if (activeAssigneeTab.value === wootConstants.ASSIGNEE_TYPE.UNASSIGNED) { + return conversations.filter(c => !c.meta?.assignee); + } + return [...conversations]; +} + const conversationList = computed(() => { let localConversationList = []; if (!hasAppliedFiltersOrActiveFolders.value) { const filters = conversationFilters.value; - if (activeAssigneeTab.value === 'me') { + if ( + props.conversationType === wootConstants.CONVERSATION_TYPE.PARTICIPATING + ) { + localConversationList = filterByAssigneeTab( + participatingChatsList.value(filters) + ); + } else if (activeAssigneeTab.value === 'me') { localConversationList = [...mineChatsList.value(filters)]; } else if (activeAssigneeTab.value === 'unassigned') { localConversationList = [...unAssignedChatsList.value(filters)]; @@ -637,9 +659,11 @@ function redirectToConversationList() { let conversationType = ''; if (isOnMentionsView({ route: { name } })) { - conversationType = 'mention'; + conversationType = wootConstants.CONVERSATION_TYPE.MENTION; + } else if (isOnParticipatingView({ route: { name } })) { + conversationType = wootConstants.CONVERSATION_TYPE.PARTICIPATING; } else if (isOnUnattendedView({ route: { name } })) { - conversationType = 'unattended'; + conversationType = wootConstants.CONVERSATION_TYPE.UNATTENDED; } router.push( conversationListPageURL({ diff --git a/app/javascript/dashboard/components/widgets/conversation/ConversationHeader.vue b/app/javascript/dashboard/components/widgets/conversation/ConversationHeader.vue index 55252d6da..4edfd643c 100644 --- a/app/javascript/dashboard/components/widgets/conversation/ConversationHeader.vue +++ b/app/javascript/dashboard/components/widgets/conversation/ConversationHeader.vue @@ -45,6 +45,7 @@ const backButtonUrl = computed(() => { const conversationTypeMap = { conversation_through_mentions: 'mention', + conversation_through_participating: 'participating', conversation_through_unattended: 'unattended', }; return conversationListPageURL({ diff --git a/app/javascript/dashboard/constants/globals.js b/app/javascript/dashboard/constants/globals.js index 21303efcb..4fbc8174b 100644 --- a/app/javascript/dashboard/constants/globals.js +++ b/app/javascript/dashboard/constants/globals.js @@ -12,6 +12,11 @@ export default { SNOOZED: 'snoozed', ALL: 'all', }, + CONVERSATION_TYPE: { + MENTION: 'mention', + PARTICIPATING: 'participating', + UNATTENDED: 'unattended', + }, SORT_BY_TYPE: { LAST_ACTIVITY_AT_ASC: 'last_activity_at_asc', LAST_ACTIVITY_AT_DESC: 'last_activity_at_desc', diff --git a/app/javascript/dashboard/helper/URLHelper.js b/app/javascript/dashboard/helper/URLHelper.js index a4b3f32b4..76a5d8bd4 100644 --- a/app/javascript/dashboard/helper/URLHelper.js +++ b/app/javascript/dashboard/helper/URLHelper.js @@ -51,6 +51,7 @@ export const conversationListPageURL = ({ } else if (conversationType) { const urlMap = { mention: 'mentions/conversations', + participating: 'participating/conversations', unattended: 'unattended/conversations', }; url = `accounts/${accountId}/${urlMap[conversationType]}`; diff --git a/app/javascript/dashboard/helper/specs/URLHelper.spec.js b/app/javascript/dashboard/helper/specs/URLHelper.spec.js index 224a1df8b..cd7479509 100644 --- a/app/javascript/dashboard/helper/specs/URLHelper.spec.js +++ b/app/javascript/dashboard/helper/specs/URLHelper.spec.js @@ -40,6 +40,15 @@ describe('#URL Helpers', () => { '/app/accounts/1/custom_view/1' ); }); + + it('should return url to participating conversations', () => { + expect( + conversationListPageURL({ + accountId: 1, + conversationType: 'participating', + }) + ).toBe('/app/accounts/1/participating/conversations'); + }); }); describe('conversationUrl', () => { it('should return direct conversation URL if activeInbox is nil', () => { diff --git a/app/javascript/dashboard/store/modules/conversations/actions.js b/app/javascript/dashboard/store/modules/conversations/actions.js index c6a197d85..7ee2561c1 100644 --- a/app/javascript/dashboard/store/modules/conversations/actions.js +++ b/app/javascript/dashboard/store/modules/conversations/actions.js @@ -6,6 +6,7 @@ import { createPendingMessage } from 'dashboard/helper/commons'; import { buildConversationList, isOnMentionsView, + isOnParticipatingView, isOnUnattendedView, isOnFoldersView, } from './helpers/actionHelpers'; @@ -371,6 +372,7 @@ const actions = { !hasAppliedFilters && !isOnFoldersView(rootState) && !isOnMentionsView(rootState) && + !isOnParticipatingView(rootState) && !isOnUnattendedView(rootState) && isMatchingInboxFilter ) { @@ -395,6 +397,7 @@ const actions = { const { meta: { sender }, } = conversation; + commit(types.UPDATE_CONVERSATION, conversation); dispatch('conversationLabels/setConversationLabel', { diff --git a/app/javascript/dashboard/store/modules/conversations/getters.js b/app/javascript/dashboard/store/modules/conversations/getters.js index 9f5744fbb..333009707 100644 --- a/app/javascript/dashboard/store/modules/conversations/getters.js +++ b/app/javascript/dashboard/store/modules/conversations/getters.js @@ -102,6 +102,19 @@ const getters = { return isUnAssigned && shouldFilter; }); }, + getParticipatingChats: (_state, _, __, rootGetters) => activeFilters => { + const currentUserId = rootGetters.getCurrentUser?.id; + const getWatchers = rootGetters['conversationWatchers/getByConversationId']; + return _state.allConversations.filter(conversation => { + const watchers = getWatchers(conversation.id); + // Watchers are only loaded for the conversation open in the detail + // panel. If loaded and current user is not in them, filter it out. + if (watchers && !watchers.some(w => w.id === currentUserId)) { + return false; + } + return applyPageFilters(conversation, activeFilters); + }); + }, getAllStatusChats: (_state, _, __, rootGetters) => activeFilters => { const currentUser = rootGetters.getCurrentUser; const currentUserId = rootGetters.getCurrentUser.id; diff --git a/app/javascript/dashboard/store/modules/conversations/helpers/actionHelpers.js b/app/javascript/dashboard/store/modules/conversations/helpers/actionHelpers.js index f1c594b26..8c5575c3a 100644 --- a/app/javascript/dashboard/store/modules/conversations/helpers/actionHelpers.js +++ b/app/javascript/dashboard/store/modules/conversations/helpers/actionHelpers.js @@ -30,6 +30,14 @@ export const isOnUnattendedView = ({ route: { name: routeName } }) => { return UNATTENDED_ROUTES.includes(routeName); }; +export const isOnParticipatingView = ({ route: { name: routeName } }) => { + const PARTICIPATING_ROUTES = [ + 'conversation_participating', + 'conversation_through_participating', + ]; + return PARTICIPATING_ROUTES.includes(routeName); +}; + export const isOnFoldersView = ({ route: { name: routeName } }) => { const FOLDER_ROUTES = [ 'folder_conversations', diff --git a/app/javascript/dashboard/store/modules/conversations/helpers/specs/actionHelpers.spec.js b/app/javascript/dashboard/store/modules/conversations/helpers/specs/actionHelpers.spec.js index 2dcf0b26b..e37a5b225 100644 --- a/app/javascript/dashboard/store/modules/conversations/helpers/specs/actionHelpers.spec.js +++ b/app/javascript/dashboard/store/modules/conversations/helpers/specs/actionHelpers.spec.js @@ -1,4 +1,8 @@ -import { isOnMentionsView, isOnFoldersView } from '../actionHelpers'; +import { + isOnMentionsView, + isOnFoldersView, + isOnParticipatingView, +} from '../actionHelpers'; describe('#isOnMentionsView', () => { it('return valid responses when passing the state', () => { @@ -24,3 +28,19 @@ describe('#isOnFoldersView', () => { ); }); }); + +describe('#isOnParticipatingView', () => { + it('return valid responses when passing the state', () => { + expect( + isOnParticipatingView({ route: { name: 'conversation_participating' } }) + ).toBe(true); + expect( + isOnParticipatingView({ + route: { name: 'conversation_through_participating' }, + }) + ).toBe(true); + expect( + isOnParticipatingView({ route: { name: 'conversation_messages' } }) + ).toBe(false); + }); +}); diff --git a/app/javascript/dashboard/store/modules/conversations/index.js b/app/javascript/dashboard/store/modules/conversations/index.js index d7137694e..bffc2204a 100644 --- a/app/javascript/dashboard/store/modules/conversations/index.js +++ b/app/javascript/dashboard/store/modules/conversations/index.js @@ -258,7 +258,11 @@ export const mutations = { emitter.emit(BUS_EVENTS.SCROLL_TO_MESSAGE); } } else { - _state.allConversations.push(conversation); + const { conversationType } = _state.conversationFilters || {}; + const { MENTION, PARTICIPATING } = wootConstants.CONVERSATION_TYPE; + if (![MENTION, PARTICIPATING].includes(conversationType)) { + _state.allConversations.push(conversation); + } } }, diff --git a/app/javascript/dashboard/store/modules/specs/conversations/getters.spec.js b/app/javascript/dashboard/store/modules/specs/conversations/getters.spec.js index 7b6c38456..69bf9c2ac 100644 --- a/app/javascript/dashboard/store/modules/specs/conversations/getters.spec.js +++ b/app/javascript/dashboard/store/modules/specs/conversations/getters.spec.js @@ -183,6 +183,73 @@ describe('#getters', () => { ]); }); }); + describe('#getParticipatingChats', () => { + const conversationList = [ + { id: 1, inbox_id: 2, status: 1, meta: { assignee: { id: 1 } } }, + { id: 2, inbox_id: 2, status: 1, meta: {} }, + { id: 3, inbox_id: 3, status: 1, meta: { assignee: { id: 2 } } }, + ]; + + it('returns all conversations when watchers are not loaded', () => { + const state = { + allConversations: conversationList, + participatingConversationIds: {}, + }; + const rootGetters = { + getCurrentUser: { id: 1 }, + 'conversationWatchers/getByConversationId': () => undefined, + }; + const result = getters.getParticipatingChats( + state, + {}, + {}, + rootGetters + )({ status: 1 }); + expect(result).toEqual(conversationList); + }); + + it('filters out conversation when watchers loaded and user not participating', () => { + const state = { + allConversations: conversationList, + participatingConversationIds: {}, + }; + const rootGetters = { + getCurrentUser: { id: 1 }, + 'conversationWatchers/getByConversationId': id => { + if (id === 2) return [{ id: 3 }]; + return undefined; + }, + }; + const result = getters.getParticipatingChats( + state, + {}, + {}, + rootGetters + )({ status: 1 }); + expect(result).toEqual([conversationList[0], conversationList[2]]); + }); + + it('keeps conversation when watchers loaded and user is participating', () => { + const state = { + allConversations: conversationList, + participatingConversationIds: {}, + }; + const rootGetters = { + getCurrentUser: { id: 1 }, + 'conversationWatchers/getByConversationId': id => { + if (id === 1) return [{ id: 1 }, { id: 2 }]; + return undefined; + }, + }; + const result = getters.getParticipatingChats( + state, + {}, + {}, + rootGetters + )({ status: 1 }); + expect(result).toEqual(conversationList); + }); + }); describe('#getConversationById', () => { it('get conversations based on id', () => { const state = { diff --git a/app/javascript/dashboard/store/modules/specs/conversations/mutations.spec.js b/app/javascript/dashboard/store/modules/specs/conversations/mutations.spec.js index bd048dbba..fc1c61b35 100644 --- a/app/javascript/dashboard/store/modules/specs/conversations/mutations.spec.js +++ b/app/javascript/dashboard/store/modules/specs/conversations/mutations.spec.js @@ -786,9 +786,55 @@ describe('#mutations', () => { }); }); - it('should add conversation if not found', () => { + it('should add conversation if not found on normal view', () => { const state = { allConversations: [], + conversationFilters: {}, + }; + + const conversation = { + id: 1, + status: 'open', + }; + + mutations[types.UPDATE_CONVERSATION](state, conversation); + expect(state.allConversations).toEqual([conversation]); + }); + + it('should not add conversation if not found on participating view', () => { + const state = { + allConversations: [], + conversationFilters: { conversationType: 'participating' }, + }; + + const conversation = { + id: 1, + status: 'open', + }; + + mutations[types.UPDATE_CONVERSATION](state, conversation); + expect(state.allConversations).toEqual([]); + }); + + it('should not add conversation if not found on mention view', () => { + const state = { + allConversations: [], + conversationFilters: { conversationType: 'mention' }, + }; + + const conversation = { + id: 1, + status: 'open', + }; + + mutations[types.UPDATE_CONVERSATION](state, conversation); + expect(state.allConversations).toEqual([]); + }); + + it('should add conversation if not found on unattended view', () => { + const state = { + allConversations: [], + conversationFilters: { conversationType: 'unattended' }, }; const conversation = { From 5264de24b0f89d2d7193e852518407db4d2a83d2 Mon Sep 17 00:00:00 2001 From: Aakash Bakhle <48802744+aakashb95@users.noreply.github.com> Date: Wed, 15 Apr 2026 17:56:10 +0530 Subject: [PATCH 07/20] feat: migrations for document auto-sync [AI-141] (#14041) # Pull Request Template ## Description Add migrations for document auto-sync Fixes # (issue) ## Type of change - [x] New feature (non-breaking change which adds functionality) ## How Has This Been Tested? locally ## Checklist: - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my code - [x] I have commented on my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] Any dependent changes have been merged and published in downstream modules --- ...d_edited_to_captain_assistant_responses.rb | 5 +++ ...2_add_sync_columns_to_captain_documents.rb | 11 +++++ ...l_edited_on_captain_assistant_responses.rb | 20 +++++++++ db/schema.rb | 7 +++- .../app/models/captain/assistant_response.rb | 6 +++ enterprise/app/models/captain/document.rb | 42 ++++++++++++++----- .../captain/_assistant_response.json.jbuilder | 1 + .../v1/models/captain/_document.json.jbuilder | 4 ++ 8 files changed, 85 insertions(+), 11 deletions(-) create mode 100644 db/migrate/20260410092751_add_edited_to_captain_assistant_responses.rb create mode 100644 db/migrate/20260410092752_add_sync_columns_to_captain_documents.rb create mode 100644 db/migrate/20260410092753_backfill_edited_on_captain_assistant_responses.rb diff --git a/db/migrate/20260410092751_add_edited_to_captain_assistant_responses.rb b/db/migrate/20260410092751_add_edited_to_captain_assistant_responses.rb new file mode 100644 index 000000000..916bae3e5 --- /dev/null +++ b/db/migrate/20260410092751_add_edited_to_captain_assistant_responses.rb @@ -0,0 +1,5 @@ +class AddEditedToCaptainAssistantResponses < ActiveRecord::Migration[7.0] + def change + add_column :captain_assistant_responses, :edited, :boolean, default: false, null: false + end +end diff --git a/db/migrate/20260410092752_add_sync_columns_to_captain_documents.rb b/db/migrate/20260410092752_add_sync_columns_to_captain_documents.rb new file mode 100644 index 000000000..f1a86b44c --- /dev/null +++ b/db/migrate/20260410092752_add_sync_columns_to_captain_documents.rb @@ -0,0 +1,11 @@ +class AddSyncColumnsToCaptainDocuments < ActiveRecord::Migration[7.0] + def change + change_table :captain_documents, bulk: true do |t| + t.integer :sync_status + t.datetime :last_synced_at + t.datetime :last_sync_attempted_at + end + + add_index :captain_documents, [:account_id, :sync_status] + end +end diff --git a/db/migrate/20260410092753_backfill_edited_on_captain_assistant_responses.rb b/db/migrate/20260410092753_backfill_edited_on_captain_assistant_responses.rb new file mode 100644 index 000000000..eb0235e70 --- /dev/null +++ b/db/migrate/20260410092753_backfill_edited_on_captain_assistant_responses.rb @@ -0,0 +1,20 @@ +class BackfillEditedOnCaptainAssistantResponses < ActiveRecord::Migration[7.0] + def up + return unless ChatwootApp.enterprise? + + # rubocop:disable Rails/SkipsModelValidations + # NOTE: Since there is no way of knowing currently which FAQs were edited by a human + # we use a heuristic based on time passed between created_at and updated_at. + # 15 days is arbitrary but seems reasonable for a user to go back and edit an FAQ. + Captain::AssistantResponse + .where('updated_at - created_at > make_interval(days := ?)', 15) + .in_batches(of: 1000) do |batch| + batch.update_all(edited: true) + end + # rubocop:enable Rails/SkipsModelValidations + end + + def down + # no-op: rolling back migration of edited column will drop the edited column entirely + end +end diff --git a/db/schema.rb b/db/schema.rb index 360bddb69..a143f593d 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.1].define(version: 2026_04_09_091202) do +ActiveRecord::Schema[7.1].define(version: 2026_04_10_092753) do # These extensions should be enabled to support this database enable_extension "pg_stat_statements" enable_extension "pg_trgm" @@ -329,6 +329,7 @@ ActiveRecord::Schema[7.1].define(version: 2026_04_09_091202) do t.datetime "updated_at", null: false t.integer "status", default: 1, null: false t.string "documentable_type" + t.boolean "edited", default: false, null: false t.index ["account_id"], name: "index_captain_assistant_responses_on_account_id" t.index ["assistant_id"], name: "index_captain_assistant_responses_on_assistant_id" t.index ["documentable_id", "documentable_type"], name: "idx_cap_asst_resp_on_documentable" @@ -377,10 +378,14 @@ ActiveRecord::Schema[7.1].define(version: 2026_04_09_091202) do t.datetime "updated_at", null: false t.integer "status", default: 0, null: false t.jsonb "metadata", default: {} + t.integer "sync_status" + t.datetime "last_synced_at" + t.datetime "last_sync_attempted_at" t.index ["account_id"], name: "index_captain_documents_on_account_id" t.index ["assistant_id", "external_link"], name: "index_captain_documents_on_assistant_id_and_external_link", unique: true t.index ["assistant_id"], name: "index_captain_documents_on_assistant_id" t.index ["status"], name: "index_captain_documents_on_status" + t.index ["account_id", "sync_status"], name: "index_captain_documents_on_account_id_and_sync_status" end create_table "captain_inboxes", force: :cascade do |t| diff --git a/enterprise/app/models/captain/assistant_response.rb b/enterprise/app/models/captain/assistant_response.rb index 12dcab1cc..db2ac058a 100644 --- a/enterprise/app/models/captain/assistant_response.rb +++ b/enterprise/app/models/captain/assistant_response.rb @@ -5,6 +5,7 @@ # id :bigint not null, primary key # answer :text not null # documentable_type :string +# edited :boolean default(FALSE), not null # embedding :vector(1536) # question :string not null # status :integer default("approved"), not null @@ -35,6 +36,7 @@ class Captain::AssistantResponse < ApplicationRecord before_validation :ensure_account before_validation :ensure_status + before_validation :mark_as_edited, on: :update after_commit :update_response_embedding scope :ordered, -> { order(created_at: :desc) } @@ -55,6 +57,10 @@ class Captain::AssistantResponse < ApplicationRecord self.status ||= :approved end + def mark_as_edited + self.edited = true if question_changed? || answer_changed? + end + def ensure_account self.account = assistant&.account end diff --git a/enterprise/app/models/captain/document.rb b/enterprise/app/models/captain/document.rb index 751162b28..d8e07a2d9 100644 --- a/enterprise/app/models/captain/document.rb +++ b/enterprise/app/models/captain/document.rb @@ -2,20 +2,24 @@ # # Table name: captain_documents # -# id :bigint not null, primary key -# content :text -# external_link :string not null -# metadata :jsonb -# name :string -# status :integer default("in_progress"), not null -# created_at :datetime not null -# updated_at :datetime not null -# account_id :bigint not null -# assistant_id :bigint not null +# id :bigint not null, primary key +# content :text +# external_link :string not null +# last_sync_attempted_at :datetime +# last_synced_at :datetime +# metadata :jsonb +# name :string +# status :integer default("in_progress"), not null +# sync_status :integer +# created_at :datetime not null +# updated_at :datetime not null +# account_id :bigint not null +# assistant_id :bigint not null # # Indexes # # index_captain_documents_on_account_id (account_id) +# index_captain_documents_on_account_id_and_sync_status (account_id,sync_status) # index_captain_documents_on_assistant_id (assistant_id) # index_captain_documents_on_assistant_id_and_external_link (assistant_id,external_link) UNIQUE # index_captain_documents_on_status (status) @@ -44,6 +48,8 @@ class Captain::Document < ApplicationRecord available: 1 } + enum :sync_status, { syncing: 0, synced: 1, failed: 2 }, prefix: :sync + before_create :ensure_within_plan_limit after_create_commit :enqueue_crawl_job after_create_commit :update_document_usage @@ -68,6 +74,22 @@ class Captain::Document < ApplicationRecord pdf_file.blob.byte_size if pdf_file.attached? end + def content_fingerprint + metadata&.dig('content_fingerprint') + end + + def content_fingerprint=(value) + self.metadata = (metadata || {}).merge('content_fingerprint' => value) + end + + def last_sync_error_code + metadata&.dig('last_sync_error_code') + end + + def last_sync_error_code=(value) + self.metadata = (metadata || {}).merge('last_sync_error_code' => value) + end + def openai_file_id metadata&.dig('openai_file_id') end diff --git a/enterprise/app/views/api/v1/models/captain/_assistant_response.json.jbuilder b/enterprise/app/views/api/v1/models/captain/_assistant_response.json.jbuilder index c118c7647..9412b8c03 100644 --- a/enterprise/app/views/api/v1/models/captain/_assistant_response.json.jbuilder +++ b/enterprise/app/views/api/v1/models/captain/_assistant_response.json.jbuilder @@ -29,3 +29,4 @@ json.id resource.id json.question resource.question json.updated_at resource.updated_at.to_i json.status resource.status +json.edited resource.edited diff --git a/enterprise/app/views/api/v1/models/captain/_document.json.jbuilder b/enterprise/app/views/api/v1/models/captain/_document.json.jbuilder index 8064a5181..62710bc64 100644 --- a/enterprise/app/views/api/v1/models/captain/_document.json.jbuilder +++ b/enterprise/app/views/api/v1/models/captain/_document.json.jbuilder @@ -11,4 +11,8 @@ json.file_size resource.file_size json.id resource.id json.name resource.name json.status resource.status +json.sync_status resource.sync_status +json.last_synced_at resource.last_synced_at&.to_i +json.last_sync_attempted_at resource.last_sync_attempted_at&.to_i +json.last_sync_error_code resource.last_sync_error_code json.updated_at resource.updated_at.to_i From 97dae52841877ae690be479dc44c1feff51f76bb Mon Sep 17 00:00:00 2001 From: Aakash Bakhle <48802744+aakashb95@users.noreply.github.com> Date: Thu, 16 Apr 2026 10:28:38 +0530 Subject: [PATCH 08/20] fix: use committed model registry for RubyLLM (#14067) RubyLLM bundles a static models.json that doesn't know about models released after the gem was published. Self-hosted users configuring newer models hit ModelNotFoundError. Added a rake task that refreshes the registry from models.dev and saves to disk. ~~Called during Docker image build so every deploy gets fresh model data. Falls back silently to the bundled registry if models.dev is unreachable.~~ Commit the models.json file to code so it is available across deployments. --------- Co-authored-by: Sojan Jose --- config/llm_models.json | 24264 ++++++++++++++++++++++++++++++++++++++ lib/llm/config.rb | 2 + lib/tasks/ruby_llm.rake | 17 + 3 files changed, 24283 insertions(+) create mode 100644 config/llm_models.json create mode 100644 lib/tasks/ruby_llm.rake diff --git a/config/llm_models.json b/config/llm_models.json new file mode 100644 index 000000000..e2fe0e938 --- /dev/null +++ b/config/llm_models.json @@ -0,0 +1,24264 @@ +[ + { + "id": "claude-3-5-haiku-20241022", + "name": "Claude Haiku 3.5", + "provider": "anthropic", + "family": "claude-haiku", + "created_at": "2024-10-22 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 8192, + "knowledge_cutoff": "2024-07-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.8, + "output_per_million": 4, + "cached_input_per_million": 0.08 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "anthropic", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-10-22", + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + }, + "limit": { + "context": 200000, + "output": 8192 + }, + "knowledge": "2024-07-31" + } + }, + { + "id": "claude-3-5-haiku-latest", + "name": "Claude Haiku 3.5 (latest)", + "provider": "anthropic", + "family": "claude-haiku", + "created_at": "2024-10-22 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 8192, + "knowledge_cutoff": "2024-07-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.8, + "output_per_million": 4, + "cached_input_per_million": 0.08 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "anthropic", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-10-22", + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + }, + "limit": { + "context": 200000, + "output": 8192 + }, + "knowledge": "2024-07-31" + } + }, + { + "id": "claude-3-5-sonnet-20240620", + "name": "Claude Sonnet 3.5", + "provider": "anthropic", + "family": "claude-sonnet", + "created_at": "2024-06-20 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 8192, + "knowledge_cutoff": "2024-04-30", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "anthropic", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-06-20", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 8192 + }, + "knowledge": "2024-04-30" + } + }, + { + "id": "claude-3-5-sonnet-20241022", + "name": "Claude Sonnet 3.5 v2", + "provider": "anthropic", + "family": "claude-sonnet", + "created_at": "2024-10-22 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 8192, + "knowledge_cutoff": "2024-04-30", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "anthropic", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-10-22", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 8192 + }, + "knowledge": "2024-04-30" + } + }, + { + "id": "claude-3-7-sonnet-20250219", + "name": "Claude Sonnet 3.7", + "provider": "anthropic", + "family": "claude-sonnet", + "created_at": "2025-02-19 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2024-10-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "anthropic", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-02-19", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2024-10-31" + } + }, + { + "id": "claude-3-haiku-20240307", + "name": "Claude Haiku 3", + "provider": "anthropic", + "family": "claude-haiku", + "created_at": "2024-03-13 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 4096, + "knowledge_cutoff": "2023-08-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.25, + "output_per_million": 1.25, + "cached_input_per_million": 0.03 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "anthropic", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-03-13", + "cost": { + "input": 0.25, + "output": 1.25, + "cache_read": 0.03, + "cache_write": 0.3 + }, + "limit": { + "context": 200000, + "output": 4096 + }, + "knowledge": "2023-08-31" + } + }, + { + "id": "claude-3-opus-20240229", + "name": "Claude Opus 3", + "provider": "anthropic", + "family": "claude-opus", + "created_at": "2024-02-29 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 4096, + "knowledge_cutoff": "2023-08-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 15, + "output_per_million": 75, + "cached_input_per_million": 1.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "anthropic", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-02-29", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + }, + "limit": { + "context": 200000, + "output": 4096 + }, + "knowledge": "2023-08-31" + } + }, + { + "id": "claude-3-sonnet-20240229", + "name": "Claude Sonnet 3", + "provider": "anthropic", + "family": "claude-sonnet", + "created_at": "2024-03-04 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 4096, + "knowledge_cutoff": "2023-08-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "anthropic", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-03-04", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 0.3 + }, + "limit": { + "context": 200000, + "output": 4096 + }, + "knowledge": "2023-08-31" + } + }, + { + "id": "claude-haiku-4-5", + "name": "Claude Haiku 4.5 (latest)", + "provider": "anthropic", + "family": "claude-haiku", + "created_at": "2025-10-15 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2025-02-28", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1, + "output_per_million": 5, + "cached_input_per_million": 0.1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "anthropic", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-10-15", + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2025-02-28" + } + }, + { + "id": "claude-haiku-4-5-20251001", + "name": "Claude Haiku 4.5", + "provider": "anthropic", + "family": "claude-haiku", + "created_at": "2025-10-15 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2025-02-28", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1, + "output_per_million": 5, + "cached_input_per_million": 0.1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "anthropic", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-10-15", + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2025-02-28" + } + }, + { + "id": "claude-opus-4-0", + "name": "Claude Opus 4 (latest)", + "provider": "anthropic", + "family": "claude-opus", + "created_at": "2025-05-22 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 32000, + "knowledge_cutoff": "2025-03-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 15, + "output_per_million": 75, + "cached_input_per_million": 1.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "anthropic", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-05-22", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "knowledge": "2025-03-31" + } + }, + { + "id": "claude-opus-4-1", + "name": "Claude Opus 4.1 (latest)", + "provider": "anthropic", + "family": "claude-opus", + "created_at": "2025-08-05 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 32000, + "knowledge_cutoff": "2025-03-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 15, + "output_per_million": 75, + "cached_input_per_million": 1.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "anthropic", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-08-05", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "knowledge": "2025-03-31" + } + }, + { + "id": "claude-opus-4-1-20250805", + "name": "Claude Opus 4.1", + "provider": "anthropic", + "family": "claude-opus", + "created_at": "2025-08-05 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 32000, + "knowledge_cutoff": "2025-03-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 15, + "output_per_million": 75, + "cached_input_per_million": 1.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "anthropic", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-08-05", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "knowledge": "2025-03-31" + } + }, + { + "id": "claude-opus-4-20250514", + "name": "Claude Opus 4", + "provider": "anthropic", + "family": "claude-opus", + "created_at": "2025-05-22 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 32000, + "knowledge_cutoff": "2025-03-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 15, + "output_per_million": 75, + "cached_input_per_million": 1.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "anthropic", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-05-22", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "knowledge": "2025-03-31" + } + }, + { + "id": "claude-opus-4-5", + "name": "Claude Opus 4.5 (latest)", + "provider": "anthropic", + "family": "claude-opus", + "created_at": "2025-11-24 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2025-03-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 5, + "output_per_million": 25, + "cached_input_per_million": 0.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "anthropic", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-11-24", + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2025-03-31" + } + }, + { + "id": "claude-opus-4-5-20251101", + "name": "Claude Opus 4.5", + "provider": "anthropic", + "family": "claude-opus", + "created_at": "2025-11-01 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2025-03-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 5, + "output_per_million": 25, + "cached_input_per_million": 0.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "anthropic", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-11-01", + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2025-03-31" + } + }, + { + "id": "claude-opus-4-6", + "name": "Claude Opus 4.6", + "provider": "anthropic", + "family": "claude-opus", + "created_at": "2026-02-05 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 128000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 5, + "output_per_million": 25, + "cached_input_per_million": 0.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "anthropic", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-03-13", + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "knowledge": "2025-05" + } + }, + { + "id": "claude-sonnet-4-0", + "name": "Claude Sonnet 4 (latest)", + "provider": "anthropic", + "family": "claude-sonnet", + "created_at": "2025-05-22 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2025-03-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "anthropic", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-05-22", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2025-03-31" + } + }, + { + "id": "claude-sonnet-4-20250514", + "name": "Claude Sonnet 4", + "provider": "anthropic", + "family": "claude-sonnet", + "created_at": "2025-05-22 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2025-03-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "anthropic", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-05-22", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2025-03-31" + } + }, + { + "id": "claude-sonnet-4-5", + "name": "Claude Sonnet 4.5 (latest)", + "provider": "anthropic", + "family": "claude-sonnet", + "created_at": "2025-09-29 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2025-07-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "anthropic", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-09-29", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2025-07-31" + } + }, + { + "id": "claude-sonnet-4-5-20250929", + "name": "Claude Sonnet 4.5", + "provider": "anthropic", + "family": "claude-sonnet", + "created_at": "2025-09-29 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2025-07-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "anthropic", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-09-29", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2025-07-31" + } + }, + { + "id": "claude-sonnet-4-6", + "name": "Claude Sonnet 4.6", + "provider": "anthropic", + "family": "claude-sonnet", + "created_at": "2026-02-17 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 64000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "anthropic", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-03-13", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 1000000, + "output": 64000 + }, + "knowledge": "2025-08" + } + }, + { + "id": "amazon.nova-2-lite-v1:0", + "name": "Nova 2 Lite", + "provider": "bedrock", + "family": "nova", + "created_at": "2024-12-01 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.33, + "output_per_million": 2.75 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2024-12-01", + "cost": { + "input": 0.33, + "output": 2.75 + }, + "limit": { + "context": 128000, + "output": 4096 + } + } + }, + { + "id": "amazon.nova-lite-v1:0", + "name": "Nova Lite", + "provider": "bedrock", + "family": "nova-lite", + "created_at": "2024-12-03 00:00:00 +0530", + "context_window": 300000, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.06, + "output_per_million": 0.24, + "cached_input_per_million": 0.015 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-12-03", + "cost": { + "input": 0.06, + "output": 0.24, + "cache_read": 0.015 + }, + "limit": { + "context": 300000, + "output": 8192 + }, + "knowledge": "2024-10" + } + }, + { + "id": "amazon.nova-micro-v1:0", + "name": "Nova Micro", + "provider": "bedrock", + "family": "nova-micro", + "created_at": "2024-12-03 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.035, + "output_per_million": 0.14, + "cached_input_per_million": 0.00875 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2024-12-03", + "cost": { + "input": 0.035, + "output": 0.14, + "cache_read": 0.00875 + }, + "limit": { + "context": 128000, + "output": 8192 + }, + "knowledge": "2024-10" + } + }, + { + "id": "amazon.nova-premier-v1:0", + "name": "Nova Premier", + "provider": "bedrock", + "family": "nova", + "created_at": "2024-12-03 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2.5, + "output_per_million": 12.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-12-03", + "cost": { + "input": 2.5, + "output": 12.5 + }, + "limit": { + "context": 1000000, + "output": 16384 + }, + "knowledge": "2024-10" + } + }, + { + "id": "amazon.nova-pro-v1:0", + "name": "Nova Pro", + "provider": "bedrock", + "family": "nova-pro", + "created_at": "2024-12-03 00:00:00 +0530", + "context_window": 300000, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.8, + "output_per_million": 3.2, + "cached_input_per_million": 0.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-12-03", + "cost": { + "input": 0.8, + "output": 3.2, + "cache_read": 0.2 + }, + "limit": { + "context": 300000, + "output": 8192 + }, + "knowledge": "2024-10" + } + }, + { + "id": "anthropic.claude-3-5-haiku-20241022-v1:0", + "name": "Claude Haiku 3.5", + "provider": "bedrock", + "family": "claude-haiku", + "created_at": "2024-10-22 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.8, + "output_per_million": 4, + "cached_input_per_million": 0.08 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-10-22", + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + }, + "limit": { + "context": 200000, + "output": 8192 + }, + "knowledge": "2024-07" + } + }, + { + "id": "anthropic.claude-3-5-sonnet-20240620-v1:0", + "name": "Claude Sonnet 3.5", + "provider": "bedrock", + "family": "claude-sonnet", + "created_at": "2024-06-20 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-06-20", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 8192 + }, + "knowledge": "2024-04" + } + }, + { + "id": "anthropic.claude-3-5-sonnet-20241022-v2:0", + "name": "Claude Sonnet 3.5 v2", + "provider": "bedrock", + "family": "claude-sonnet", + "created_at": "2024-10-22 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-10-22", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 8192 + }, + "knowledge": "2024-04" + } + }, + { + "id": "anthropic.claude-3-7-sonnet-20250219-v1:0", + "name": "Claude Sonnet 3.7", + "provider": "bedrock", + "family": "claude-sonnet", + "created_at": "2025-02-19 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-02-19", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 8192 + }, + "knowledge": "2024-04" + } + }, + { + "id": "anthropic.claude-3-haiku-20240307-v1:0", + "name": "Claude Haiku 3", + "provider": "bedrock", + "family": "claude-haiku", + "created_at": "2024-03-13 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.25, + "output_per_million": 1.25 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-03-13", + "cost": { + "input": 0.25, + "output": 1.25 + }, + "limit": { + "context": 200000, + "output": 4096 + }, + "knowledge": "2024-02" + } + }, + { + "id": "anthropic.claude-haiku-4-5-20251001-v1:0", + "name": "Claude Haiku 4.5", + "provider": "bedrock", + "family": "claude-haiku", + "created_at": "2025-10-15 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2025-02-28", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1, + "output_per_million": 5, + "cached_input_per_million": 0.1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-10-15", + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2025-02-28" + } + }, + { + "id": "anthropic.claude-opus-4-1-20250805-v1:0", + "name": "Claude Opus 4.1", + "provider": "bedrock", + "family": "claude-opus", + "created_at": "2025-08-05 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 32000, + "knowledge_cutoff": "2025-03-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 15, + "output_per_million": 75, + "cached_input_per_million": 1.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-08-05", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "knowledge": "2025-03-31" + } + }, + { + "id": "anthropic.claude-opus-4-20250514-v1:0", + "name": "Claude Opus 4", + "provider": "bedrock", + "family": "claude-opus", + "created_at": "2025-05-22 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 32000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 15, + "output_per_million": 75, + "cached_input_per_million": 1.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-05-22", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "knowledge": "2024-04" + } + }, + { + "id": "anthropic.claude-opus-4-5-20251101-v1:0", + "name": "Claude Opus 4.5", + "provider": "bedrock", + "family": "claude-opus", + "created_at": "2025-11-24 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2025-03-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 5, + "output_per_million": 25, + "cached_input_per_million": 0.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-08-01", + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2025-03-31" + } + }, + { + "id": "anthropic.claude-opus-4-6-v1", + "name": "Claude Opus 4.6", + "provider": "bedrock", + "family": "claude-opus", + "created_at": "2026-02-05 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 128000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 5, + "output_per_million": 25, + "cached_input_per_million": 0.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-03-18", + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "knowledge": "2025-05" + } + }, + { + "id": "anthropic.claude-sonnet-4-20250514-v1:0", + "name": "Claude Sonnet 4", + "provider": "bedrock", + "family": "claude-sonnet", + "created_at": "2025-05-22 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-05-22", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2024-04" + } + }, + { + "id": "anthropic.claude-sonnet-4-5-20250929-v1:0", + "name": "Claude Sonnet 4.5", + "provider": "bedrock", + "family": "claude-sonnet", + "created_at": "2025-09-29 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2025-07-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-09-29", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2025-07-31" + } + }, + { + "id": "anthropic.claude-sonnet-4-6", + "name": "Claude Sonnet 4.6", + "provider": "bedrock", + "family": "claude-sonnet", + "created_at": "2026-02-17 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 64000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-03-18", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 1000000, + "output": 64000 + }, + "knowledge": "2025-08" + } + }, + { + "id": "deepseek.r1-v1:0", + "name": "DeepSeek-R1", + "provider": "bedrock", + "family": "deepseek-thinking", + "created_at": "2025-01-20 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.35, + "output_per_million": 5.4 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2025-05-29", + "cost": { + "input": 1.35, + "output": 5.4 + }, + "limit": { + "context": 128000, + "output": 32768 + }, + "knowledge": "2024-07" + } + }, + { + "id": "deepseek.v3-v1:0", + "name": "DeepSeek-V3.1", + "provider": "bedrock", + "family": "deepseek", + "created_at": "2025-09-18 00:00:00 +0530", + "context_window": 163840, + "max_output_tokens": 81920, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.58, + "output_per_million": 1.68 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-09-18", + "cost": { + "input": 0.58, + "output": 1.68 + }, + "limit": { + "context": 163840, + "output": 81920 + }, + "knowledge": "2024-07" + } + }, + { + "id": "deepseek.v3.2", + "name": "DeepSeek-V3.2", + "provider": "bedrock", + "family": "deepseek", + "created_at": "2026-02-06 00:00:00 +0530", + "context_window": 163840, + "max_output_tokens": 81920, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.62, + "output_per_million": 1.85 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-02-06", + "cost": { + "input": 0.62, + "output": 1.85 + }, + "limit": { + "context": 163840, + "output": 81920 + }, + "knowledge": "2024-07" + } + }, + { + "id": "eu.anthropic.claude-haiku-4-5-20251001-v1:0", + "name": "Claude Haiku 4.5 (EU)", + "provider": "bedrock", + "family": "claude-haiku", + "created_at": "2025-10-15 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2025-02-28", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1, + "output_per_million": 5, + "cached_input_per_million": 0.1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-10-15", + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2025-02-28" + } + }, + { + "id": "eu.anthropic.claude-opus-4-5-20251101-v1:0", + "name": "Claude Opus 4.5 (EU)", + "provider": "bedrock", + "family": "claude-opus", + "created_at": "2025-11-24 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2025-03-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 5, + "output_per_million": 25, + "cached_input_per_million": 0.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-08-01", + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2025-03-31" + } + }, + { + "id": "eu.anthropic.claude-opus-4-6-v1", + "name": "Claude Opus 4.6 (EU)", + "provider": "bedrock", + "family": "claude-opus", + "created_at": "2026-02-05 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 128000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 5, + "output_per_million": 25, + "cached_input_per_million": 0.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-03-18", + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "knowledge": "2025-05" + } + }, + { + "id": "eu.anthropic.claude-sonnet-4-20250514-v1:0", + "name": "Claude Sonnet 4 (EU)", + "provider": "bedrock", + "family": "claude-sonnet", + "created_at": "2025-05-22 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-05-22", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2024-04" + } + }, + { + "id": "eu.anthropic.claude-sonnet-4-5-20250929-v1:0", + "name": "Claude Sonnet 4.5 (EU)", + "provider": "bedrock", + "family": "claude-sonnet", + "created_at": "2025-09-29 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2025-07-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-09-29", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2025-07-31" + } + }, + { + "id": "eu.anthropic.claude-sonnet-4-6", + "name": "Claude Sonnet 4.6 (EU)", + "provider": "bedrock", + "family": "claude-sonnet", + "created_at": "2026-02-17 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 64000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-03-18", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 1000000, + "output": 64000 + }, + "knowledge": "2025-08" + } + }, + { + "id": "global.anthropic.claude-haiku-4-5-20251001-v1:0", + "name": "Claude Haiku 4.5 (Global)", + "provider": "bedrock", + "family": "claude-haiku", + "created_at": "2025-10-15 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2025-02-28", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1, + "output_per_million": 5, + "cached_input_per_million": 0.1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-10-15", + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2025-02-28" + } + }, + { + "id": "global.anthropic.claude-opus-4-5-20251101-v1:0", + "name": "Claude Opus 4.5 (Global)", + "provider": "bedrock", + "family": "claude-opus", + "created_at": "2025-11-24 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2025-03-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 5, + "output_per_million": 25, + "cached_input_per_million": 0.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-08-01", + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2025-03-31" + } + }, + { + "id": "global.anthropic.claude-opus-4-6-v1", + "name": "Claude Opus 4.6 (Global)", + "provider": "bedrock", + "family": "claude-opus", + "created_at": "2026-02-05 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 128000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 5, + "output_per_million": 25, + "cached_input_per_million": 0.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-03-18", + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "knowledge": "2025-05" + } + }, + { + "id": "global.anthropic.claude-sonnet-4-20250514-v1:0", + "name": "Claude Sonnet 4 (Global)", + "provider": "bedrock", + "family": "claude-sonnet", + "created_at": "2025-05-22 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-05-22", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2024-04" + } + }, + { + "id": "global.anthropic.claude-sonnet-4-5-20250929-v1:0", + "name": "Claude Sonnet 4.5 (Global)", + "provider": "bedrock", + "family": "claude-sonnet", + "created_at": "2025-09-29 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2025-07-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-09-29", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2025-07-31" + } + }, + { + "id": "global.anthropic.claude-sonnet-4-6", + "name": "Claude Sonnet 4.6 (Global)", + "provider": "bedrock", + "family": "claude-sonnet", + "created_at": "2026-02-17 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 64000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-03-18", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 1000000, + "output": 64000 + }, + "knowledge": "2025-08" + } + }, + { + "id": "google.gemma-3-12b-it", + "name": "Google Gemma 3 12B", + "provider": "bedrock", + "family": "gemma", + "created_at": "2024-12-01 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "structured_output", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.049999999999999996, + "output_per_million": 0.09999999999999999 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2024-12-01", + "cost": { + "input": 0.049999999999999996, + "output": 0.09999999999999999 + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "knowledge": "2024-12" + } + }, + { + "id": "google.gemma-3-27b-it", + "name": "Google Gemma 3 27B Instruct", + "provider": "bedrock", + "family": "gemma", + "created_at": "2025-07-27 00:00:00 +0530", + "context_window": 202752, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.12, + "output_per_million": 0.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-07-27", + "cost": { + "input": 0.12, + "output": 0.2 + }, + "limit": { + "context": 202752, + "output": 8192 + }, + "knowledge": "2025-07" + } + }, + { + "id": "google.gemma-3-4b-it", + "name": "Gemma 3 4B IT", + "provider": "bedrock", + "family": "gemma", + "created_at": "2024-12-01 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.04, + "output_per_million": 0.08 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2024-12-01", + "cost": { + "input": 0.04, + "output": 0.08 + }, + "limit": { + "context": 128000, + "output": 4096 + } + } + }, + { + "id": "meta.llama3-1-405b-instruct-v1:0", + "name": "Llama 3.1 405B Instruct", + "provider": "bedrock", + "family": "llama", + "created_at": "2024-07-23 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2.4, + "output_per_million": 2.4 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2024-07-23", + "cost": { + "input": 2.4, + "output": 2.4 + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "knowledge": "2023-12" + } + }, + { + "id": "meta.llama3-1-70b-instruct-v1:0", + "name": "Llama 3.1 70B Instruct", + "provider": "bedrock", + "family": "llama", + "created_at": "2024-07-23 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.72, + "output_per_million": 0.72 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2024-07-23", + "cost": { + "input": 0.72, + "output": 0.72 + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "knowledge": "2023-12" + } + }, + { + "id": "meta.llama3-1-8b-instruct-v1:0", + "name": "Llama 3.1 8B Instruct", + "provider": "bedrock", + "family": "llama", + "created_at": "2024-07-23 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.22, + "output_per_million": 0.22 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2024-07-23", + "cost": { + "input": 0.22, + "output": 0.22 + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "knowledge": "2023-12" + } + }, + { + "id": "meta.llama3-2-11b-instruct-v1:0", + "name": "Llama 3.2 11B Instruct", + "provider": "bedrock", + "family": "llama", + "created_at": "2024-09-25 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.16, + "output_per_million": 0.16 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2024-09-25", + "cost": { + "input": 0.16, + "output": 0.16 + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "knowledge": "2023-12" + } + }, + { + "id": "meta.llama3-2-1b-instruct-v1:0", + "name": "Llama 3.2 1B Instruct", + "provider": "bedrock", + "family": "llama", + "created_at": "2024-09-25 00:00:00 +0530", + "context_window": 131000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2024-09-25", + "cost": { + "input": 0.1, + "output": 0.1 + }, + "limit": { + "context": 131000, + "output": 4096 + }, + "knowledge": "2023-12" + } + }, + { + "id": "meta.llama3-2-3b-instruct-v1:0", + "name": "Llama 3.2 3B Instruct", + "provider": "bedrock", + "family": "llama", + "created_at": "2024-09-25 00:00:00 +0530", + "context_window": 131000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.15 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2024-09-25", + "cost": { + "input": 0.15, + "output": 0.15 + }, + "limit": { + "context": 131000, + "output": 4096 + }, + "knowledge": "2023-12" + } + }, + { + "id": "meta.llama3-2-90b-instruct-v1:0", + "name": "Llama 3.2 90B Instruct", + "provider": "bedrock", + "family": "llama", + "created_at": "2024-09-25 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.72, + "output_per_million": 0.72 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2024-09-25", + "cost": { + "input": 0.72, + "output": 0.72 + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "knowledge": "2023-12" + } + }, + { + "id": "meta.llama3-3-70b-instruct-v1:0", + "name": "Llama 3.3 70B Instruct", + "provider": "bedrock", + "family": "llama", + "created_at": "2024-12-06 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.72, + "output_per_million": 0.72 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2024-12-06", + "cost": { + "input": 0.72, + "output": 0.72 + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "knowledge": "2023-12" + } + }, + { + "id": "meta.llama4-maverick-17b-instruct-v1:0", + "name": "Llama 4 Maverick 17B Instruct", + "provider": "bedrock", + "family": "llama", + "created_at": "2025-04-05 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.24, + "output_per_million": 0.97 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-04-05", + "cost": { + "input": 0.24, + "output": 0.97 + }, + "limit": { + "context": 1000000, + "output": 16384 + }, + "knowledge": "2024-08" + } + }, + { + "id": "meta.llama4-scout-17b-instruct-v1:0", + "name": "Llama 4 Scout 17B Instruct", + "provider": "bedrock", + "family": "llama", + "created_at": "2025-04-05 00:00:00 +0530", + "context_window": 3500000, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.17, + "output_per_million": 0.66 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-04-05", + "cost": { + "input": 0.17, + "output": 0.66 + }, + "limit": { + "context": 3500000, + "output": 16384 + }, + "knowledge": "2024-08" + } + }, + { + "id": "minimax.minimax-m2", + "name": "MiniMax M2", + "provider": "bedrock", + "family": "minimax", + "created_at": "2025-10-27 00:00:00 +0530", + "context_window": 204608, + "max_output_tokens": 128000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.3, + "output_per_million": 1.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-10-27", + "cost": { + "input": 0.3, + "output": 1.2 + }, + "limit": { + "context": 204608, + "output": 128000 + } + } + }, + { + "id": "minimax.minimax-m2.1", + "name": "MiniMax M2.1", + "provider": "bedrock", + "family": "minimax", + "created_at": "2025-12-23 00:00:00 +0530", + "context_window": 204800, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.3, + "output_per_million": 1.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-12-23", + "cost": { + "input": 0.3, + "output": 1.2 + }, + "limit": { + "context": 204800, + "output": 131072 + } + } + }, + { + "id": "minimax.minimax-m2.5", + "name": "MiniMax M2.5", + "provider": "bedrock", + "family": "minimax", + "created_at": "2026-03-18 00:00:00 +0530", + "context_window": 196608, + "max_output_tokens": 98304, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.3, + "output_per_million": 1.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-03-18", + "cost": { + "input": 0.3, + "output": 1.2 + }, + "limit": { + "context": 196608, + "output": 98304 + } + } + }, + { + "id": "mistral.devstral-2-123b", + "name": "Devstral 2 123B", + "provider": "bedrock", + "family": "devstral", + "created_at": "2026-02-17 00:00:00 +0530", + "context_window": 256000, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.4, + "output_per_million": 2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-02-17", + "cost": { + "input": 0.4, + "output": 2 + }, + "limit": { + "context": 256000, + "output": 8192 + } + } + }, + { + "id": "mistral.magistral-small-2509", + "name": "Magistral Small 1.2", + "provider": "bedrock", + "family": "magistral", + "created_at": "2025-12-02 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 40000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-12-02", + "cost": { + "input": 0.5, + "output": 1.5 + }, + "limit": { + "context": 128000, + "output": 40000 + } + } + }, + { + "id": "mistral.ministral-3-14b-instruct", + "name": "Ministral 14B 3.0", + "provider": "bedrock", + "family": "ministral", + "created_at": "2024-12-01 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.2, + "output_per_million": 0.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2024-12-01", + "cost": { + "input": 0.2, + "output": 0.2 + }, + "limit": { + "context": 128000, + "output": 4096 + } + } + }, + { + "id": "mistral.ministral-3-3b-instruct", + "name": "Ministral 3 3B", + "provider": "bedrock", + "family": "ministral", + "created_at": "2025-12-02 00:00:00 +0530", + "context_window": 256000, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-12-02", + "cost": { + "input": 0.1, + "output": 0.1 + }, + "limit": { + "context": 256000, + "output": 8192 + } + } + }, + { + "id": "mistral.ministral-3-8b-instruct", + "name": "Ministral 3 8B", + "provider": "bedrock", + "family": "ministral", + "created_at": "2024-12-01 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.15 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2024-12-01", + "cost": { + "input": 0.15, + "output": 0.15 + }, + "limit": { + "context": 128000, + "output": 4096 + } + } + }, + { + "id": "mistral.mistral-large-3-675b-instruct", + "name": "Mistral Large 3", + "provider": "bedrock", + "family": "mistral", + "created_at": "2025-12-02 00:00:00 +0530", + "context_window": 256000, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-12-02", + "cost": { + "input": 0.5, + "output": 1.5 + }, + "limit": { + "context": 256000, + "output": 8192 + } + } + }, + { + "id": "mistral.pixtral-large-2502-v1:0", + "name": "Pixtral Large (25.02)", + "provider": "bedrock", + "family": "mistral", + "created_at": "2025-04-08 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2, + "output_per_million": 6 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2025-04-08", + "cost": { + "input": 2, + "output": 6 + }, + "limit": { + "context": 128000, + "output": 8192 + } + } + }, + { + "id": "mistral.voxtral-mini-3b-2507", + "name": "Voxtral Mini 3B 2507", + "provider": "bedrock", + "family": "mistral", + "created_at": "2024-12-01 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "audio", + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.04, + "output_per_million": 0.04 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2024-12-01", + "cost": { + "input": 0.04, + "output": 0.04 + }, + "limit": { + "context": 128000, + "output": 4096 + } + } + }, + { + "id": "mistral.voxtral-small-24b-2507", + "name": "Voxtral Small 24B 2507", + "provider": "bedrock", + "family": "mistral", + "created_at": "2025-07-01 00:00:00 +0530", + "context_window": 32000, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.35 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-07-01", + "cost": { + "input": 0.15, + "output": 0.35 + }, + "limit": { + "context": 32000, + "output": 8192 + } + } + }, + { + "id": "moonshot.kimi-k2-thinking", + "name": "Kimi K2 Thinking", + "provider": "bedrock", + "family": "kimi-thinking", + "created_at": "2025-12-02 00:00:00 +0530", + "context_window": 256000, + "max_output_tokens": 256000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.6, + "output_per_million": 2.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-12-02", + "interleaved": true, + "cost": { + "input": 0.6, + "output": 2.5 + }, + "limit": { + "context": 256000, + "output": 256000 + } + } + }, + { + "id": "moonshotai.kimi-k2.5", + "name": "Kimi K2.5", + "provider": "bedrock", + "family": "kimi", + "created_at": "2026-02-06 00:00:00 +0530", + "context_window": 256000, + "max_output_tokens": 256000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.6, + "output_per_million": 3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-02-06", + "interleaved": true, + "cost": { + "input": 0.6, + "output": 3 + }, + "limit": { + "context": 256000, + "output": 256000 + } + } + }, + { + "id": "nvidia.nemotron-nano-12b-v2", + "name": "NVIDIA Nemotron Nano 12B v2 VL BF16", + "provider": "bedrock", + "family": "nemotron", + "created_at": "2024-12-01 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.2, + "output_per_million": 0.6 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2024-12-01", + "cost": { + "input": 0.2, + "output": 0.6 + }, + "limit": { + "context": 128000, + "output": 4096 + } + } + }, + { + "id": "nvidia.nemotron-nano-3-30b", + "name": "NVIDIA Nemotron Nano 3 30B", + "provider": "bedrock", + "family": "nemotron", + "created_at": "2025-12-23 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.06, + "output_per_million": 0.24 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-12-23", + "cost": { + "input": 0.06, + "output": 0.24 + }, + "limit": { + "context": 128000, + "output": 4096 + } + } + }, + { + "id": "nvidia.nemotron-nano-9b-v2", + "name": "NVIDIA Nemotron Nano 9B v2", + "provider": "bedrock", + "family": "nemotron", + "created_at": "2024-12-01 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.06, + "output_per_million": 0.23 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2024-12-01", + "cost": { + "input": 0.06, + "output": 0.23 + }, + "limit": { + "context": 128000, + "output": 4096 + } + } + }, + { + "id": "nvidia.nemotron-super-3-120b", + "name": "NVIDIA Nemotron 3 Super 120B A12B", + "provider": "bedrock", + "family": "nemotron", + "created_at": "2026-03-11 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.65 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-03-11", + "cost": { + "input": 0.15, + "output": 0.65 + }, + "limit": { + "context": 262144, + "output": 131072 + } + } + }, + { + "id": "openai.gpt-oss-120b-1:0", + "name": "gpt-oss-120b", + "provider": "bedrock", + "family": "gpt-oss", + "created_at": "2024-12-01 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.6 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2024-12-01", + "cost": { + "input": 0.15, + "output": 0.6 + }, + "limit": { + "context": 128000, + "output": 4096 + } + } + }, + { + "id": "openai.gpt-oss-20b-1:0", + "name": "gpt-oss-20b", + "provider": "bedrock", + "family": "gpt-oss", + "created_at": "2024-12-01 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.07, + "output_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2024-12-01", + "cost": { + "input": 0.07, + "output": 0.3 + }, + "limit": { + "context": 128000, + "output": 4096 + } + } + }, + { + "id": "openai.gpt-oss-safeguard-120b", + "name": "GPT OSS Safeguard 120B", + "provider": "bedrock", + "family": "gpt-oss", + "created_at": "2024-12-01 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.6 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2024-12-01", + "cost": { + "input": 0.15, + "output": 0.6 + }, + "limit": { + "context": 128000, + "output": 4096 + } + } + }, + { + "id": "openai.gpt-oss-safeguard-20b", + "name": "GPT OSS Safeguard 20B", + "provider": "bedrock", + "family": "gpt-oss", + "created_at": "2024-12-01 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.07, + "output_per_million": 0.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2024-12-01", + "cost": { + "input": 0.07, + "output": 0.2 + }, + "limit": { + "context": 128000, + "output": 4096 + } + } + }, + { + "id": "qwen.qwen3-235b-a22b-2507-v1:0", + "name": "Qwen3 235B A22B 2507", + "provider": "bedrock", + "family": "qwen", + "created_at": "2025-09-18 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.22, + "output_per_million": 0.88 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-09-18", + "cost": { + "input": 0.22, + "output": 0.88 + }, + "limit": { + "context": 262144, + "output": 131072 + }, + "knowledge": "2024-04" + } + }, + { + "id": "qwen.qwen3-32b-v1:0", + "name": "Qwen3 32B (dense)", + "provider": "bedrock", + "family": "qwen", + "created_at": "2025-09-18 00:00:00 +0530", + "context_window": 16384, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.6 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-09-18", + "cost": { + "input": 0.15, + "output": 0.6 + }, + "limit": { + "context": 16384, + "output": 16384 + }, + "knowledge": "2024-04" + } + }, + { + "id": "qwen.qwen3-coder-30b-a3b-v1:0", + "name": "Qwen3 Coder 30B A3B Instruct", + "provider": "bedrock", + "family": "qwen", + "created_at": "2025-09-18 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.6 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2025-09-18", + "cost": { + "input": 0.15, + "output": 0.6 + }, + "limit": { + "context": 262144, + "output": 131072 + }, + "knowledge": "2024-04" + } + }, + { + "id": "qwen.qwen3-coder-480b-a35b-v1:0", + "name": "Qwen3 Coder 480B A35B Instruct", + "provider": "bedrock", + "family": "qwen", + "created_at": "2025-09-18 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.22, + "output_per_million": 1.8 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-09-18", + "cost": { + "input": 0.22, + "output": 1.8 + }, + "limit": { + "context": 131072, + "output": 65536 + }, + "knowledge": "2024-04" + } + }, + { + "id": "qwen.qwen3-coder-next", + "name": "Qwen3 Coder Next", + "provider": "bedrock", + "family": "qwen", + "created_at": "2026-02-06 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.22, + "output_per_million": 1.8 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-02-06", + "cost": { + "input": 0.22, + "output": 1.8 + }, + "limit": { + "context": 131072, + "output": 65536 + } + } + }, + { + "id": "qwen.qwen3-next-80b-a3b", + "name": "Qwen/Qwen3-Next-80B-A3B-Instruct", + "provider": "bedrock", + "family": "qwen", + "created_at": "2025-09-18 00:00:00 +0530", + "context_window": 262000, + "max_output_tokens": 262000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.14, + "output_per_million": 1.4 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2025-11-25", + "cost": { + "input": 0.14, + "output": 1.4 + }, + "limit": { + "context": 262000, + "output": 262000 + } + } + }, + { + "id": "qwen.qwen3-vl-235b-a22b", + "name": "Qwen/Qwen3-VL-235B-A22B-Instruct", + "provider": "bedrock", + "family": "qwen", + "created_at": "2025-10-04 00:00:00 +0530", + "context_window": 262000, + "max_output_tokens": 262000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.3, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-11-25", + "cost": { + "input": 0.3, + "output": 1.5 + }, + "limit": { + "context": 262000, + "output": 262000 + } + } + }, + { + "id": "us.anthropic.claude-haiku-4-5-20251001-v1:0", + "name": "Claude Haiku 4.5 (US)", + "provider": "bedrock", + "family": "claude-haiku", + "created_at": "2025-10-15 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2025-02-28", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1, + "output_per_million": 5, + "cached_input_per_million": 0.1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-10-15", + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2025-02-28" + } + }, + { + "id": "us.anthropic.claude-opus-4-1-20250805-v1:0", + "name": "Claude Opus 4.1 (US)", + "provider": "bedrock", + "family": "claude-opus", + "created_at": "2025-08-05 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 32000, + "knowledge_cutoff": "2025-03-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 15, + "output_per_million": 75, + "cached_input_per_million": 1.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-08-05", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "knowledge": "2025-03-31" + } + }, + { + "id": "us.anthropic.claude-opus-4-20250514-v1:0", + "name": "Claude Opus 4 (US)", + "provider": "bedrock", + "family": "claude-opus", + "created_at": "2025-05-22 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 32000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 15, + "output_per_million": 75, + "cached_input_per_million": 1.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-05-22", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "knowledge": "2024-04" + } + }, + { + "id": "us.anthropic.claude-opus-4-5-20251101-v1:0", + "name": "Claude Opus 4.5 (US)", + "provider": "bedrock", + "family": "claude-opus", + "created_at": "2025-11-24 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2025-03-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 5, + "output_per_million": 25, + "cached_input_per_million": 0.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-08-01", + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2025-03-31" + } + }, + { + "id": "us.anthropic.claude-opus-4-6-v1", + "name": "Claude Opus 4.6 (US)", + "provider": "bedrock", + "family": "claude-opus", + "created_at": "2026-02-05 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 128000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 5, + "output_per_million": 25, + "cached_input_per_million": 0.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-03-18", + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "knowledge": "2025-05" + } + }, + { + "id": "us.anthropic.claude-sonnet-4-20250514-v1:0", + "name": "Claude Sonnet 4 (US)", + "provider": "bedrock", + "family": "claude-sonnet", + "created_at": "2025-05-22 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-05-22", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2024-04" + } + }, + { + "id": "us.anthropic.claude-sonnet-4-5-20250929-v1:0", + "name": "Claude Sonnet 4.5 (US)", + "provider": "bedrock", + "family": "claude-sonnet", + "created_at": "2025-09-29 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2025-07-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-09-29", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2025-07-31" + } + }, + { + "id": "us.anthropic.claude-sonnet-4-6", + "name": "Claude Sonnet 4.6 (US)", + "provider": "bedrock", + "family": "claude-sonnet", + "created_at": "2026-02-17 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 64000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-03-18", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 1000000, + "output": 64000 + }, + "knowledge": "2025-08" + } + }, + { + "id": "writer.palmyra-x4-v1:0", + "name": "Palmyra X4", + "provider": "bedrock", + "family": "palmyra", + "created_at": "2025-04-28 00:00:00 +0530", + "context_window": 122880, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2.5, + "output_per_million": 10 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2025-04-28", + "cost": { + "input": 2.5, + "output": 10 + }, + "limit": { + "context": 122880, + "output": 8192 + } + } + }, + { + "id": "writer.palmyra-x5-v1:0", + "name": "Palmyra X5", + "provider": "bedrock", + "family": "palmyra", + "created_at": "2025-04-28 00:00:00 +0530", + "context_window": 1040000, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.6, + "output_per_million": 6 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2025-04-28", + "cost": { + "input": 0.6, + "output": 6 + }, + "limit": { + "context": 1040000, + "output": 8192 + } + } + }, + { + "id": "zai.glm-4.7", + "name": "GLM-4.7", + "provider": "bedrock", + "family": "glm", + "created_at": "2025-12-22 00:00:00 +0530", + "context_window": 204800, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.6, + "output_per_million": 2.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-12-22", + "interleaved": { + "field": "reasoning_content" + }, + "cost": { + "input": 0.6, + "output": 2.2 + }, + "limit": { + "context": 204800, + "output": 131072 + }, + "knowledge": "2025-04" + } + }, + { + "id": "zai.glm-4.7-flash", + "name": "GLM-4.7-Flash", + "provider": "bedrock", + "family": "glm-flash", + "created_at": "2026-01-19 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.07, + "output_per_million": 0.4 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-01-19", + "cost": { + "input": 0.07, + "output": 0.4 + }, + "limit": { + "context": 200000, + "output": 131072 + }, + "knowledge": "2025-04" + } + }, + { + "id": "zai.glm-5", + "name": "GLM-5", + "provider": "bedrock", + "family": "glm", + "created_at": "2026-03-18 00:00:00 +0530", + "context_window": 202752, + "max_output_tokens": 101376, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1, + "output_per_million": 3.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "amazon-bedrock", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-03-18", + "interleaved": { + "field": "reasoning_content" + }, + "cost": { + "input": 1, + "output": 3.2 + }, + "limit": { + "context": 202752, + "output": 101376 + } + } + }, + { + "id": "deepseek-chat", + "name": "DeepSeek Chat", + "provider": "deepseek", + "family": "deepseek", + "created_at": "2025-12-01 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.28, + "output_per_million": 0.42, + "cached_input_per_million": 0.028 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "deepseek", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2026-02-28", + "cost": { + "input": 0.28, + "output": 0.42, + "cache_read": 0.028 + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "knowledge": "2025-09" + } + }, + { + "id": "deepseek-reasoner", + "name": "DeepSeek Reasoner", + "provider": "deepseek", + "family": "deepseek-thinking", + "created_at": "2025-12-01 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 64000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.28, + "output_per_million": 0.42, + "cached_input_per_million": 0.028 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "deepseek", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2026-02-28", + "interleaved": { + "field": "reasoning_content" + }, + "cost": { + "input": 0.28, + "output": 0.42, + "cache_read": 0.028 + }, + "limit": { + "context": 128000, + "output": 64000 + }, + "knowledge": "2025-09" + } + }, + { + "id": "gemini-1.5-flash", + "name": "Gemini 1.5 Flash", + "provider": "gemini", + "family": "gemini-flash", + "created_at": "2024-05-14 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.075, + "output_per_million": 0.3, + "cached_input_per_million": 0.01875 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-05-14", + "cost": { + "input": 0.075, + "output": 0.3, + "cache_read": 0.01875 + }, + "limit": { + "context": 1000000, + "output": 8192 + }, + "knowledge": "2024-04" + } + }, + { + "id": "gemini-1.5-flash-8b", + "name": "Gemini 1.5 Flash-8B", + "provider": "gemini", + "family": "gemini-flash", + "created_at": "2024-10-03 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.0375, + "output_per_million": 0.15, + "cached_input_per_million": 0.01 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-10-03", + "cost": { + "input": 0.0375, + "output": 0.15, + "cache_read": 0.01 + }, + "limit": { + "context": 1000000, + "output": 8192 + }, + "knowledge": "2024-04" + } + }, + { + "id": "gemini-1.5-pro", + "name": "Gemini 1.5 Pro", + "provider": "gemini", + "family": "gemini-pro", + "created_at": "2024-02-15 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 5, + "cached_input_per_million": 0.3125 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-02-15", + "cost": { + "input": 1.25, + "output": 5, + "cache_read": 0.3125 + }, + "limit": { + "context": 1000000, + "output": 8192 + }, + "knowledge": "2024-04" + } + }, + { + "id": "gemini-2.0-flash", + "name": "Gemini 2.0 Flash", + "provider": "gemini", + "family": "gemini-flash", + "created_at": "2024-12-11 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.4, + "cached_input_per_million": 0.025 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-12-11", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + }, + "limit": { + "context": 1048576, + "output": 8192 + }, + "knowledge": "2024-06" + } + }, + { + "id": "gemini-2.0-flash-lite", + "name": "Gemini 2.0 Flash Lite", + "provider": "gemini", + "family": "gemini-flash-lite", + "created_at": "2024-12-11 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.075, + "output_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-12-11", + "cost": { + "input": 0.075, + "output": 0.3 + }, + "limit": { + "context": 1048576, + "output": 8192 + }, + "knowledge": "2024-06" + } + }, + { + "id": "gemini-2.5-flash", + "name": "Gemini 2.5 Flash", + "provider": "gemini", + "family": "gemini-flash", + "created_at": "2025-03-20 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.3, + "output_per_million": 2.5, + "cached_input_per_million": 0.075 + } + }, + "audio_tokens": { + "standard": { + "input_per_million": 1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-06-05", + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "input_audio": 1 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-2.5-flash-image", + "name": "Gemini 2.5 Flash Image", + "provider": "gemini", + "family": "gemini-flash", + "created_at": "2025-08-26 00:00:00 +0530", + "context_window": 32768, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text", + "image" + ] + }, + "capabilities": [ + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.3, + "output_per_million": 30, + "cached_input_per_million": 0.075 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-08-26", + "cost": { + "input": 0.3, + "output": 30, + "cache_read": 0.075 + }, + "limit": { + "context": 32768, + "output": 32768 + }, + "knowledge": "2025-06" + } + }, + { + "id": "gemini-2.5-flash-image-preview", + "name": "Gemini 2.5 Flash Image (Preview)", + "provider": "gemini", + "family": "gemini-flash", + "created_at": "2025-08-26 00:00:00 +0530", + "context_window": 32768, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text", + "image" + ] + }, + "capabilities": [ + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.3, + "output_per_million": 30, + "cached_input_per_million": 0.075 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-08-26", + "cost": { + "input": 0.3, + "output": 30, + "cache_read": 0.075 + }, + "limit": { + "context": 32768, + "output": 32768 + }, + "knowledge": "2025-06" + } + }, + { + "id": "gemini-2.5-flash-lite", + "name": "Gemini 2.5 Flash Lite", + "provider": "gemini", + "family": "gemini-flash-lite", + "created_at": "2025-06-17 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.4, + "cached_input_per_million": 0.025 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-06-17", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-2.5-flash-lite-preview-06-17", + "name": "Gemini 2.5 Flash Lite Preview 06-17", + "provider": "gemini", + "family": "gemini-flash-lite", + "created_at": "2025-06-17 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.4, + "cached_input_per_million": 0.025 + } + }, + "audio_tokens": { + "standard": { + "input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-06-17", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025, + "input_audio": 0.3 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-2.5-flash-lite-preview-09-2025", + "name": "Gemini 2.5 Flash Lite Preview 09-25", + "provider": "gemini", + "family": "gemini-flash-lite", + "created_at": "2025-09-25 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.4, + "cached_input_per_million": 0.025 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-09-25", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-2.5-flash-preview-04-17", + "name": "Gemini 2.5 Flash Preview 04-17", + "provider": "gemini", + "family": "gemini-flash", + "created_at": "2025-04-17 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.6, + "cached_input_per_million": 0.0375 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-04-17", + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.0375 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-2.5-flash-preview-05-20", + "name": "Gemini 2.5 Flash Preview 05-20", + "provider": "gemini", + "family": "gemini-flash", + "created_at": "2025-05-20 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.6, + "cached_input_per_million": 0.0375 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-05-20", + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.0375 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-2.5-flash-preview-09-2025", + "name": "Gemini 2.5 Flash Preview 09-25", + "provider": "gemini", + "family": "gemini-flash", + "created_at": "2025-09-25 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.3, + "output_per_million": 2.5, + "cached_input_per_million": 0.075 + } + }, + "audio_tokens": { + "standard": { + "input_per_million": 1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-09-25", + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "input_audio": 1 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-2.5-flash-preview-tts", + "name": "Gemini 2.5 Flash Preview TTS", + "provider": "gemini", + "family": "gemini-flash", + "created_at": "2025-05-01 00:00:00 +0530", + "context_window": 8000, + "max_output_tokens": 16000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "audio" + ] + }, + "capabilities": [], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 10 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": false, + "temperature": false, + "last_updated": "2025-05-01", + "cost": { + "input": 0.5, + "output": 10 + }, + "limit": { + "context": 8000, + "output": 16000 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-2.5-pro", + "name": "Gemini 2.5 Pro", + "provider": "gemini", + "family": "gemini-pro", + "created_at": "2025-03-20 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10, + "cached_input_per_million": 0.31 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-06-05", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.31 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-2.5-pro-preview-05-06", + "name": "Gemini 2.5 Pro Preview 05-06", + "provider": "gemini", + "family": "gemini-pro", + "created_at": "2025-05-06 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10, + "cached_input_per_million": 0.31 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-05-06", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.31 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-2.5-pro-preview-06-05", + "name": "Gemini 2.5 Pro Preview 06-05", + "provider": "gemini", + "family": "gemini-pro", + "created_at": "2025-06-05 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10, + "cached_input_per_million": 0.31 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-06-05", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.31 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-2.5-pro-preview-tts", + "name": "Gemini 2.5 Pro Preview TTS", + "provider": "gemini", + "family": "gemini-flash", + "created_at": "2025-05-01 00:00:00 +0530", + "context_window": 8000, + "max_output_tokens": 16000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "audio" + ] + }, + "capabilities": [], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1, + "output_per_million": 20 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": false, + "temperature": false, + "last_updated": "2025-05-01", + "cost": { + "input": 1, + "output": 20 + }, + "limit": { + "context": 8000, + "output": 16000 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-3-flash-preview", + "name": "Gemini 3 Flash Preview", + "provider": "gemini", + "family": "gemini-flash", + "created_at": "2025-12-17 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video", + "audio", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 3, + "cached_input_per_million": 0.05 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-12-17", + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "context_over_200k": { + "input": 0.5, + "output": 3, + "cache_read": 0.05 + } + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-3-pro-preview", + "name": "Gemini 3 Pro Preview", + "provider": "gemini", + "family": "gemini-pro", + "created_at": "2025-11-18 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 64000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video", + "audio", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2, + "output_per_million": 12, + "cached_input_per_million": 0.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-11-18", + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "context_over_200k": { + "input": 4, + "output": 18, + "cache_read": 0.4 + } + }, + "limit": { + "context": 1000000, + "output": 64000 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-3.1-flash-image-preview", + "name": "Gemini 3.1 Flash Image (Preview)", + "provider": "gemini", + "family": "gemini-flash", + "created_at": "2026-02-26 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text", + "image" + ] + }, + "capabilities": [ + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.25, + "output_per_million": 60 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-02-26", + "cost": { + "input": 0.25, + "output": 60 + }, + "limit": { + "context": 131072, + "output": 32768 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-3.1-flash-lite-preview", + "name": "Gemini 3.1 Flash Lite Preview", + "provider": "gemini", + "family": "gemini-flash-lite", + "created_at": "2026-03-03 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video", + "audio", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.25, + "output_per_million": 1.5, + "cached_input_per_million": 0.025 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-03-03", + "cost": { + "input": 0.25, + "output": 1.5, + "cache_read": 0.025, + "cache_write": 1 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-3.1-pro-preview", + "name": "Gemini 3.1 Pro Preview", + "provider": "gemini", + "family": "gemini-pro", + "created_at": "2026-02-19 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video", + "audio", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2, + "output_per_million": 12, + "cached_input_per_million": 0.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-02-19", + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "context_over_200k": { + "input": 4, + "output": 18, + "cache_read": 0.4 + } + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-3.1-pro-preview-customtools", + "name": "Gemini 3.1 Pro Preview Custom Tools", + "provider": "gemini", + "family": "gemini-pro", + "created_at": "2026-02-19 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video", + "audio", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2, + "output_per_million": 12, + "cached_input_per_million": 0.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-02-19", + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "context_over_200k": { + "input": 4, + "output": 18, + "cache_read": 0.4 + } + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-embedding-001", + "name": "Gemini Embedding 001", + "provider": "gemini", + "family": "gemini", + "created_at": "2025-05-20 00:00:00 +0530", + "context_window": 2048, + "max_output_tokens": 3072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": false, + "temperature": false, + "last_updated": "2025-05-20", + "cost": { + "input": 0.15, + "output": 0 + }, + "limit": { + "context": 2048, + "output": 3072 + }, + "knowledge": "2025-05" + } + }, + { + "id": "gemini-flash-latest", + "name": "Gemini Flash Latest", + "provider": "gemini", + "family": "gemini-flash", + "created_at": "2025-09-25 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.3, + "output_per_million": 2.5, + "cached_input_per_million": 0.075 + } + }, + "audio_tokens": { + "standard": { + "input_per_million": 1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-09-25", + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "input_audio": 1 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-flash-lite-latest", + "name": "Gemini Flash-Lite Latest", + "provider": "gemini", + "family": "gemini-flash-lite", + "created_at": "2025-09-25 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.4, + "cached_input_per_million": 0.025 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-09-25", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-live-2.5-flash", + "name": "Gemini Live 2.5 Flash", + "provider": "gemini", + "family": "gemini-flash", + "created_at": "2025-09-01 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 8000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ], + "output": [ + "text", + "audio" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 2 + } + }, + "audio_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 12 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-09-01", + "cost": { + "input": 0.5, + "output": 2, + "input_audio": 3, + "output_audio": 12 + }, + "limit": { + "context": 128000, + "output": 8000 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-live-2.5-flash-preview-native-audio", + "name": "Gemini Live 2.5 Flash Preview Native Audio", + "provider": "gemini", + "family": "gemini-flash", + "created_at": "2025-06-17 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio", + "video" + ], + "output": [ + "text", + "audio" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 2 + } + }, + "audio_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 12 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": false, + "attachment": false, + "temperature": false, + "last_updated": "2025-09-18", + "cost": { + "input": 0.5, + "output": 2, + "input_audio": 3, + "output_audio": 12 + }, + "limit": { + "context": 131072, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemma-3-12b-it", + "name": "Gemma 3 12B", + "provider": "gemini", + "family": "gemma", + "created_at": "2025-03-13 00:00:00 +0530", + "context_window": 32768, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "structured_output", + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-03-13", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 32768, + "output": 8192 + }, + "knowledge": "2024-10" + } + }, + { + "id": "gemma-3-27b-it", + "name": "Gemma 3 27B", + "provider": "gemini", + "family": "gemma", + "created_at": "2025-03-12 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-03-12", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "knowledge": "2024-10" + } + }, + { + "id": "gemma-3-4b-it", + "name": "Gemma 3 4B", + "provider": "gemini", + "family": "gemma", + "created_at": "2025-03-13 00:00:00 +0530", + "context_window": 32768, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-03-13", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 32768, + "output": 8192 + }, + "knowledge": "2024-10" + } + }, + { + "id": "gemma-3n-e2b-it", + "name": "Gemma 3n 2B", + "provider": "gemini", + "family": "gemma", + "created_at": "2025-07-09 00:00:00 +0530", + "context_window": 8192, + "max_output_tokens": 2000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-07-09", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 8192, + "output": 2000 + }, + "knowledge": "2024-10" + } + }, + { + "id": "gemma-3n-e4b-it", + "name": "Gemma 3n 4B", + "provider": "gemini", + "family": "gemma", + "created_at": "2025-05-20 00:00:00 +0530", + "context_window": 8192, + "max_output_tokens": 2000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-05-20", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 8192, + "output": 2000 + }, + "knowledge": "2024-10" + } + }, + { + "id": "gemma-4-26b-it", + "name": "Gemma 4 26B", + "provider": "gemini", + "family": "gemma", + "created_at": "2026-04-02 00:00:00 +0530", + "context_window": 256000, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-04-02", + "limit": { + "context": 256000, + "output": 8192 + } + } + }, + { + "id": "gemma-4-31b-it", + "name": "Gemma 4 31B", + "provider": "gemini", + "family": "gemma", + "created_at": "2026-04-02 00:00:00 +0530", + "context_window": 256000, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "google", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-04-02", + "limit": { + "context": 256000, + "output": 8192 + } + } + }, + { + "id": "codestral-latest", + "name": "Codestral (latest)", + "provider": "mistral", + "family": "codestral", + "created_at": "2024-05-29 00:00:00 +0530", + "context_window": 256000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.3, + "output_per_million": 0.9 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-01-04", + "cost": { + "input": 0.3, + "output": 0.9 + }, + "limit": { + "context": 256000, + "output": 4096 + }, + "knowledge": "2024-10" + } + }, + { + "id": "devstral-2512", + "name": "Devstral 2", + "provider": "mistral", + "family": "devstral", + "created_at": "2025-12-09 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 262144, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.4, + "output_per_million": 2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-12-09", + "cost": { + "input": 0.4, + "output": 2 + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "knowledge": "2025-12" + } + }, + { + "id": "devstral-medium-2507", + "name": "Devstral Medium", + "provider": "mistral", + "family": "devstral", + "created_at": "2025-07-10 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 128000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.4, + "output_per_million": 2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-07-10", + "cost": { + "input": 0.4, + "output": 2 + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "knowledge": "2025-05" + } + }, + { + "id": "devstral-medium-latest", + "name": "Devstral 2 (latest)", + "provider": "mistral", + "family": "devstral", + "created_at": "2025-12-02 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 262144, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.4, + "output_per_million": 2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-12-02", + "cost": { + "input": 0.4, + "output": 2 + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "knowledge": "2025-12" + } + }, + { + "id": "devstral-small-2505", + "name": "Devstral Small 2505", + "provider": "mistral", + "family": "devstral", + "created_at": "2025-05-07 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 128000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-05-07", + "cost": { + "input": 0.1, + "output": 0.3 + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "knowledge": "2025-05" + } + }, + { + "id": "devstral-small-2507", + "name": "Devstral Small", + "provider": "mistral", + "family": "devstral", + "created_at": "2025-07-10 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 128000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-07-10", + "cost": { + "input": 0.1, + "output": 0.3 + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "knowledge": "2025-05" + } + }, + { + "id": "labs-devstral-small-2512", + "name": "Devstral Small 2", + "provider": "mistral", + "family": "devstral", + "created_at": "2025-12-09 00:00:00 +0530", + "context_window": 256000, + "max_output_tokens": 256000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-12-09", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 256000, + "output": 256000 + }, + "knowledge": "2025-12" + } + }, + { + "id": "magistral-medium-latest", + "name": "Magistral Medium (latest)", + "provider": "mistral", + "family": "magistral-medium", + "created_at": "2025-03-17 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2, + "output_per_million": 5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-03-20", + "cost": { + "input": 2, + "output": 5 + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "knowledge": "2025-06" + } + }, + { + "id": "magistral-small", + "name": "Magistral Small", + "provider": "mistral", + "family": "magistral-small", + "created_at": "2025-03-17 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 128000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-03-17", + "cost": { + "input": 0.5, + "output": 1.5 + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "knowledge": "2025-06" + } + }, + { + "id": "ministral-3b-latest", + "name": "Ministral 3B (latest)", + "provider": "mistral", + "family": "ministral", + "created_at": "2024-10-01 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 128000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.04, + "output_per_million": 0.04 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2024-10-04", + "cost": { + "input": 0.04, + "output": 0.04 + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "knowledge": "2024-10" + } + }, + { + "id": "ministral-8b-latest", + "name": "Ministral 8B (latest)", + "provider": "mistral", + "family": "ministral", + "created_at": "2024-10-01 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 128000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2024-10-04", + "cost": { + "input": 0.1, + "output": 0.1 + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "knowledge": "2024-10" + } + }, + { + "id": "mistral-embed", + "name": "Mistral Embed", + "provider": "mistral", + "family": "mistral-embed", + "created_at": "2023-12-11 00:00:00 +0530", + "context_window": 8000, + "max_output_tokens": 3072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": false, + "attachment": false, + "temperature": false, + "last_updated": "2023-12-11", + "cost": { + "input": 0.1, + "output": 0 + }, + "limit": { + "context": 8000, + "output": 3072 + } + } + }, + { + "id": "mistral-large-2411", + "name": "Mistral Large 2.1", + "provider": "mistral", + "family": "mistral-large", + "created_at": "2024-11-01 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2, + "output_per_million": 6 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2024-11-04", + "cost": { + "input": 2, + "output": 6 + }, + "limit": { + "context": 131072, + "output": 16384 + }, + "knowledge": "2024-11" + } + }, + { + "id": "mistral-large-2512", + "name": "Mistral Large 3", + "provider": "mistral", + "family": "mistral-large", + "created_at": "2024-11-01 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 262144, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-12-02", + "cost": { + "input": 0.5, + "output": 1.5 + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "knowledge": "2024-11" + } + }, + { + "id": "mistral-large-latest", + "name": "Mistral Large (latest)", + "provider": "mistral", + "family": "mistral-large", + "created_at": "2024-11-01 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 262144, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-12-02", + "cost": { + "input": 0.5, + "output": 1.5 + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "knowledge": "2024-11" + } + }, + { + "id": "mistral-medium-2505", + "name": "Mistral Medium 3", + "provider": "mistral", + "family": "mistral-medium", + "created_at": "2025-05-07 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.4, + "output_per_million": 2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-05-07", + "cost": { + "input": 0.4, + "output": 2 + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "knowledge": "2025-05" + } + }, + { + "id": "mistral-medium-2508", + "name": "Mistral Medium 3.1", + "provider": "mistral", + "family": "mistral-medium", + "created_at": "2025-08-12 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 262144, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.4, + "output_per_million": 2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-08-12", + "cost": { + "input": 0.4, + "output": 2 + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "knowledge": "2025-05" + } + }, + { + "id": "mistral-medium-latest", + "name": "Mistral Medium (latest)", + "provider": "mistral", + "family": "mistral-medium", + "created_at": "2025-05-07 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.4, + "output_per_million": 2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-05-10", + "cost": { + "input": 0.4, + "output": 2 + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "knowledge": "2025-05" + } + }, + { + "id": "mistral-nemo", + "name": "Mistral Nemo", + "provider": "mistral", + "family": "mistral-nemo", + "created_at": "2024-07-01 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 128000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.15 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2024-07-01", + "cost": { + "input": 0.15, + "output": 0.15 + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "knowledge": "2024-07" + } + }, + { + "id": "mistral-small-2506", + "name": "Mistral Small 3.2", + "provider": "mistral", + "family": "mistral-small", + "created_at": "2025-06-20 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-06-20", + "cost": { + "input": 0.1, + "output": 0.3 + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "knowledge": "2025-03" + } + }, + { + "id": "mistral-small-2603", + "name": "Mistral Small 4", + "provider": "mistral", + "family": "mistral-small", + "created_at": "2026-03-16 00:00:00 +0530", + "context_window": 256000, + "max_output_tokens": 256000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.6 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2026-03-16", + "cost": { + "input": 0.15, + "output": 0.6 + }, + "limit": { + "context": 256000, + "output": 256000 + }, + "knowledge": "2025-06" + } + }, + { + "id": "mistral-small-latest", + "name": "Mistral Small (latest)", + "provider": "mistral", + "family": "mistral-small", + "created_at": "2026-03-16 00:00:00 +0530", + "context_window": 256000, + "max_output_tokens": 256000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.6 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2026-03-16", + "cost": { + "input": 0.15, + "output": 0.6 + }, + "limit": { + "context": 256000, + "output": 256000 + }, + "knowledge": "2025-06" + } + }, + { + "id": "open-mistral-7b", + "name": "Mistral 7B", + "provider": "mistral", + "family": "mistral", + "created_at": "2023-09-27 00:00:00 +0530", + "context_window": 8000, + "max_output_tokens": 8000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.25, + "output_per_million": 0.25 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2023-09-27", + "cost": { + "input": 0.25, + "output": 0.25 + }, + "limit": { + "context": 8000, + "output": 8000 + }, + "knowledge": "2023-12" + } + }, + { + "id": "open-mixtral-8x22b", + "name": "Mixtral 8x22B", + "provider": "mistral", + "family": "mixtral", + "created_at": "2024-04-17 00:00:00 +0530", + "context_window": 64000, + "max_output_tokens": 64000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2, + "output_per_million": 6 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2024-04-17", + "cost": { + "input": 2, + "output": 6 + }, + "limit": { + "context": 64000, + "output": 64000 + }, + "knowledge": "2024-04" + } + }, + { + "id": "open-mixtral-8x7b", + "name": "Mixtral 8x7B", + "provider": "mistral", + "family": "mixtral", + "created_at": "2023-12-11 00:00:00 +0530", + "context_window": 32000, + "max_output_tokens": 32000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.7, + "output_per_million": 0.7 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2023-12-11", + "cost": { + "input": 0.7, + "output": 0.7 + }, + "limit": { + "context": 32000, + "output": 32000 + }, + "knowledge": "2024-01" + } + }, + { + "id": "pixtral-12b", + "name": "Pixtral 12B", + "provider": "mistral", + "family": "pixtral", + "created_at": "2024-09-01 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 128000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.15 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2024-09-01", + "cost": { + "input": 0.15, + "output": 0.15 + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "knowledge": "2024-09" + } + }, + { + "id": "pixtral-large-latest", + "name": "Pixtral Large (latest)", + "provider": "mistral", + "family": "pixtral", + "created_at": "2024-11-01 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 128000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2, + "output_per_million": 6 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "mistral", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2024-11-04", + "cost": { + "input": 2, + "output": 6 + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "knowledge": "2024-11" + } + }, + { + "id": "babbage-002", + "name": "Babbage 002", + "provider": "openai", + "family": "babbage", + "created_at": "2023-08-21 21:46:55 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.4, + "output_per_million": 0.4 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "chatgpt-image-latest", + "name": "chatgpt-image-latest", + "provider": "openai", + "family": "gpt-image", + "created_at": "2025-12-16 00:00:00 +0530", + "context_window": 0, + "max_output_tokens": 0, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text", + "image" + ] + }, + "capabilities": [ + "vision", + "streaming" + ], + "pricing": {}, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-12-16", + "limit": { + "context": 0, + "input": 0, + "output": 0 + } + } + }, + { + "id": "codex-mini-latest", + "name": "Codex Mini", + "provider": "openai", + "family": "gpt-codex-mini", + "created_at": "2025-05-16 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 100000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.5, + "output_per_million": 6, + "cached_input_per_million": 0.375 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-05-16", + "cost": { + "input": 1.5, + "output": 6, + "cache_read": 0.375 + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "knowledge": "2024-04" + } + }, + { + "id": "computer-use-preview", + "name": "Computer Use Preview", + "provider": "openai", + "family": "other", + "created_at": "2024-12-20 06:17:57 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "computer-use-preview-2025-03-11", + "name": "Computer Use Preview 20250311", + "provider": "openai", + "family": "other", + "created_at": "2025-03-08 01:20:21 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "dall-e-2", + "name": "DALL-E-2", + "provider": "openai", + "family": "dall_e", + "created_at": "2023-11-01 05:52:57 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text", + "image" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "dall-e-3", + "name": "DALL-E-3", + "provider": "openai", + "family": "dall_e", + "created_at": "2023-11-01 02:16:29 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text", + "image" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "davinci-002", + "name": "Davinci 002", + "provider": "openai", + "family": "davinci", + "created_at": "2023-08-21 21:41:41 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2.0, + "output_per_million": 2.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-3.5-turbo", + "name": "GPT-3.5-turbo", + "provider": "openai", + "family": "gpt", + "created_at": "2023-03-01 00:00:00 +0530", + "context_window": 16385, + "max_output_tokens": 4096, + "knowledge_cutoff": "2021-09-01", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5, + "cached_input_per_million": 1.25 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "openai", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2023-11-06", + "cost": { + "input": 0.5, + "output": 1.5, + "cache_read": 1.25 + }, + "limit": { + "context": 16385, + "output": 4096 + }, + "knowledge": "2021-09-01" + } + }, + { + "id": "gpt-3.5-turbo-0125", + "name": "GPT-3.5 Turbo 0125", + "provider": "openai", + "family": "gpt35_turbo", + "created_at": "2024-01-24 03:49:18 +0530", + "context_window": 16385, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-3.5-turbo-1106", + "name": "GPT-3.5 Turbo 1106", + "provider": "openai", + "family": "gpt35_turbo", + "created_at": "2023-11-03 02:45:48 +0530", + "context_window": 16385, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-3.5-turbo-16k", + "name": "GPT-3.5 Turbo 16k", + "provider": "openai", + "family": "gpt35_turbo", + "created_at": "2023-05-11 04:05:02 +0530", + "context_window": 16385, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "openai-internal" + } + }, + { + "id": "gpt-3.5-turbo-instruct", + "name": "GPT-3.5 Turbo Instruct", + "provider": "openai", + "family": "gpt35_turbo", + "created_at": "2023-08-24 23:53:47 +0530", + "context_window": 16385, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-3.5-turbo-instruct-0914", + "name": "GPT-3.5 Turbo Instruct 0914", + "provider": "openai", + "family": "gpt35_turbo", + "created_at": "2023-09-08 03:04:32 +0530", + "context_window": 16385, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4", + "name": "GPT-4", + "provider": "openai", + "family": "gpt", + "created_at": "2023-11-06 00:00:00 +0530", + "context_window": 8192, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 30, + "output_per_million": 60 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "openai", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-04-09", + "cost": { + "input": 30, + "output": 60 + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "knowledge": "2023-11" + } + }, + { + "id": "gpt-4-0613", + "name": "GPT-4 0613", + "provider": "openai", + "family": "other", + "created_at": "2023-06-12 22:24:56 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "openai" + } + }, + { + "id": "gpt-4-turbo", + "name": "GPT-4 Turbo", + "provider": "openai", + "family": "gpt", + "created_at": "2023-11-06 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 10, + "output_per_million": 30 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-04-09", + "cost": { + "input": 10, + "output": 30 + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "knowledge": "2023-12" + } + }, + { + "id": "gpt-4-turbo-2024-04-09", + "name": "GPT-4 Turbo 20240409", + "provider": "openai", + "family": "gpt4_turbo", + "created_at": "2024-04-09 00:11:17 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 10.0, + "output_per_million": 30.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4.1", + "name": "GPT-4.1", + "provider": "openai", + "family": "gpt", + "created_at": "2025-04-14 00:00:00 +0530", + "context_window": 1047576, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2, + "output_per_million": 8, + "cached_input_per_million": 0.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-04-14", + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "knowledge": "2024-04" + } + }, + { + "id": "gpt-4.1-2025-04-14", + "name": "GPT-4.1 20250414", + "provider": "openai", + "family": "gpt41", + "created_at": "2025-04-11 01:39:06 +0530", + "context_window": 1047576, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2.0, + "output_per_million": 8.0, + "cached_input_per_million": 0.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4.1-mini", + "name": "GPT-4.1 mini", + "provider": "openai", + "family": "gpt-mini", + "created_at": "2025-04-14 00:00:00 +0530", + "context_window": 1047576, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.4, + "output_per_million": 1.6, + "cached_input_per_million": 0.1 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-04-14", + "cost": { + "input": 0.4, + "output": 1.6, + "cache_read": 0.1 + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "knowledge": "2024-04" + } + }, + { + "id": "gpt-4.1-mini-2025-04-14", + "name": "GPT-4.1 Mini 20250414", + "provider": "openai", + "family": "gpt41_mini", + "created_at": "2025-04-11 02:09:07 +0530", + "context_window": 1047576, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.4, + "output_per_million": 1.6, + "cached_input_per_million": 0.1 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4.1-nano", + "name": "GPT-4.1 nano", + "provider": "openai", + "family": "gpt-nano", + "created_at": "2025-04-14 00:00:00 +0530", + "context_window": 1047576, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.4, + "cached_input_per_million": 0.03 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-04-14", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.03 + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "knowledge": "2024-04" + } + }, + { + "id": "gpt-4.1-nano-2025-04-14", + "name": "GPT-4.1 Nano 20250414", + "provider": "openai", + "family": "gpt41_nano", + "created_at": "2025-04-11 03:07:05 +0530", + "context_window": 1047576, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.4 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4o", + "name": "GPT-4o", + "provider": "openai", + "family": "gpt", + "created_at": "2024-05-13 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2.5, + "output_per_million": 10, + "cached_input_per_million": 1.25 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-08-06", + "cost": { + "input": 2.5, + "output": 10, + "cache_read": 1.25 + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "knowledge": "2023-09" + } + }, + { + "id": "gpt-4o-2024-05-13", + "name": "GPT-4o (2024-05-13)", + "provider": "openai", + "family": "gpt", + "created_at": "2024-05-13 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 5, + "output_per_million": 15 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-05-13", + "cost": { + "input": 5, + "output": 15 + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "knowledge": "2023-09" + } + }, + { + "id": "gpt-4o-2024-08-06", + "name": "GPT-4o (2024-08-06)", + "provider": "openai", + "family": "gpt", + "created_at": "2024-08-06 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2.5, + "output_per_million": 10, + "cached_input_per_million": 1.25 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-08-06", + "cost": { + "input": 2.5, + "output": 10, + "cache_read": 1.25 + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "knowledge": "2023-09" + } + }, + { + "id": "gpt-4o-2024-11-20", + "name": "GPT-4o (2024-11-20)", + "provider": "openai", + "family": "gpt", + "created_at": "2024-11-20 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2.5, + "output_per_million": 10, + "cached_input_per_million": 1.25 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-11-20", + "cost": { + "input": 2.5, + "output": 10, + "cache_read": 1.25 + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "knowledge": "2023-09" + } + }, + { + "id": "gpt-4o-audio-preview", + "name": "GPT-4o-Audio Preview", + "provider": "openai", + "family": "gpt4o_audio", + "created_at": "2024-09-27 23:37:23 +0530", + "context_window": 128000, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text", + "audio" + ] + }, + "capabilities": [ + "streaming", + "speech_generation", + "transcription" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2.5, + "output_per_million": 10.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4o-audio-preview-2024-12-17", + "name": "GPT-4o-Audio Preview 20241217", + "provider": "openai", + "family": "gpt4o_audio", + "created_at": "2024-12-13 01:40:39 +0530", + "context_window": 128000, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text", + "audio" + ] + }, + "capabilities": [ + "streaming", + "speech_generation", + "transcription" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2.5, + "output_per_million": 10.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4o-audio-preview-2025-06-03", + "name": "GPT-4o-Audio Preview 20250603", + "provider": "openai", + "family": "gpt4o_audio", + "created_at": "2025-06-03 05:24:58 +0530", + "context_window": 128000, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text", + "audio" + ] + }, + "capabilities": [ + "streaming", + "speech_generation", + "transcription" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2.5, + "output_per_million": 10.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4o-mini", + "name": "GPT-4o mini", + "provider": "openai", + "family": "gpt-mini", + "created_at": "2024-07-18 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.6, + "cached_input_per_million": 0.08 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-07-18", + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.08 + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "knowledge": "2023-09" + } + }, + { + "id": "gpt-4o-mini-2024-07-18", + "name": "GPT-4o-Mini 20240718", + "provider": "openai", + "family": "gpt4o_mini", + "created_at": "2024-07-17 05:01:57 +0530", + "context_window": 128000, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.6 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4o-mini-audio-preview", + "name": "GPT-4o-Mini Audio Preview", + "provider": "openai", + "family": "gpt4o_mini_audio", + "created_at": "2024-12-17 03:47:04 +0530", + "context_window": 128000, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text", + "audio" + ] + }, + "capabilities": [ + "streaming", + "speech_generation", + "transcription" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.6 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4o-mini-audio-preview-2024-12-17", + "name": "GPT-4o-Mini Audio Preview 20241217", + "provider": "openai", + "family": "gpt4o_mini_audio", + "created_at": "2024-12-14 00:22:00 +0530", + "context_window": 128000, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text", + "audio" + ] + }, + "capabilities": [ + "streaming", + "speech_generation", + "transcription" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.6 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4o-mini-realtime-preview", + "name": "GPT-4o-Mini Realtime Preview", + "provider": "openai", + "family": "gpt4o_mini_realtime", + "created_at": "2024-12-17 03:46:20 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.6, + "output_per_million": 2.4 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4o-mini-realtime-preview-2024-12-17", + "name": "GPT-4o-Mini Realtime Preview 20241217", + "provider": "openai", + "family": "gpt4o_mini_realtime", + "created_at": "2024-12-13 23:26:41 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.6, + "output_per_million": 2.4 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4o-mini-search-preview", + "name": "GPT-4o-Mini Search Preview", + "provider": "openai", + "family": "other", + "created_at": "2025-03-08 05:16:01 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4o-mini-search-preview-2025-03-11", + "name": "GPT-4o-Mini Search Preview 20250311", + "provider": "openai", + "family": "other", + "created_at": "2025-03-08 05:10:58 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4o-mini-transcribe", + "name": "GPT-4o-Mini Transcribe", + "provider": "openai", + "family": "gpt4o_mini_transcribe", + "created_at": "2025-03-16 01:26:36 +0530", + "context_window": 16000, + "max_output_tokens": 2000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 5.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4o-mini-transcribe-2025-03-20", + "name": "GPT-4o-Mini Transcribe 20250320", + "provider": "openai", + "family": "gpt4o_mini_transcribe", + "created_at": "2025-12-13 12:52:25 +0530", + "context_window": 16000, + "max_output_tokens": 2000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 5.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4o-mini-transcribe-2025-12-15", + "name": "GPT-4o-Mini Transcribe 20251215", + "provider": "openai", + "family": "gpt4o_mini_transcribe", + "created_at": "2025-12-13 12:50:07 +0530", + "context_window": 16000, + "max_output_tokens": 2000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 5.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4o-mini-tts", + "name": "GPT-4o-Mini Tts", + "provider": "openai", + "family": "gpt4o_mini_tts", + "created_at": "2025-03-19 22:35:59 +0530", + "context_window": null, + "max_output_tokens": null, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text", + "audio" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.6, + "output_per_million": 12.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4o-mini-tts-2025-03-20", + "name": "GPT-4o-Mini Tts 20250320", + "provider": "openai", + "family": "gpt4o_mini_tts", + "created_at": "2025-12-13 12:55:31 +0530", + "context_window": null, + "max_output_tokens": null, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text", + "audio" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.6, + "output_per_million": 12.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4o-mini-tts-2025-12-15", + "name": "GPT-4o-Mini Tts 20251215", + "provider": "openai", + "family": "gpt4o_mini_tts", + "created_at": "2025-12-13 12:57:17 +0530", + "context_window": null, + "max_output_tokens": null, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text", + "audio" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.6, + "output_per_million": 12.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4o-realtime-preview", + "name": "GPT-4o-Realtime Preview", + "provider": "openai", + "family": "gpt4o_realtime", + "created_at": "2024-09-30 07:03:18 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 5.0, + "output_per_million": 20.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4o-realtime-preview-2024-12-17", + "name": "GPT-4o-Realtime Preview 20241217", + "provider": "openai", + "family": "gpt4o_realtime", + "created_at": "2024-12-12 01:00:30 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 5.0, + "output_per_million": 20.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4o-realtime-preview-2025-06-03", + "name": "GPT-4o-Realtime Preview 20250603", + "provider": "openai", + "family": "gpt4o_realtime", + "created_at": "2025-06-03 05:13:58 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 5.0, + "output_per_million": 20.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4o-search-preview", + "name": "GPT-4o Search Preview", + "provider": "openai", + "family": "gpt4o_search", + "created_at": "2026-02-24 09:28:54 +0530", + "context_window": 128000, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2.5, + "output_per_million": 10.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4o-search-preview-2025-03-11", + "name": "GPT-4o Search Preview 20250311", + "provider": "openai", + "family": "gpt4o_search", + "created_at": "2026-02-24 09:30:21 +0530", + "context_window": 128000, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2.5, + "output_per_million": 10.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4o-transcribe", + "name": "GPT-4o-Transcribe", + "provider": "openai", + "family": "gpt4o_transcribe", + "created_at": "2025-03-16 01:24:23 +0530", + "context_window": 128000, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2.5, + "output_per_million": 10.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4o-transcribe-diarize", + "name": "GPT-4o-Transcribe Diarize", + "provider": "openai", + "family": "gpt4o_transcribe", + "created_at": "2025-06-25 02:31:27 +0530", + "context_window": 128000, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2.5, + "output_per_million": 10.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-5", + "name": "GPT-5", + "provider": "openai", + "family": "gpt", + "created_at": "2025-08-07 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2024-09-30", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10, + "cached_input_per_million": 0.125 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-08-07", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "knowledge": "2024-09-30" + } + }, + { + "id": "gpt-5-2025-08-07", + "name": "GPT-5 20250807", + "provider": "openai", + "family": "gpt5", + "created_at": "2025-08-02 00:39:20 +0530", + "context_window": 128000, + "max_output_tokens": 400000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10.0, + "cached_input_per_million": 0.125 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-5-chat-latest", + "name": "GPT-5 Chat (latest)", + "provider": "openai", + "family": "gpt-codex", + "created_at": "2025-08-07 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2024-09-30", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "structured_output", + "reasoning", + "vision", + "streaming", + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-08-07", + "cost": { + "input": 1.25, + "output": 10 + }, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "knowledge": "2024-09-30" + } + }, + { + "id": "gpt-5-codex", + "name": "GPT-5-Codex", + "provider": "openai", + "family": "gpt-codex", + "created_at": "2025-09-15 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2024-09-30", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10, + "cached_input_per_million": 0.125 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": false, + "temperature": false, + "last_updated": "2025-09-15", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "knowledge": "2024-09-30" + } + }, + { + "id": "gpt-5-mini", + "name": "GPT-5 Mini", + "provider": "openai", + "family": "gpt-mini", + "created_at": "2025-08-07 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2024-05-30", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.25, + "output_per_million": 2, + "cached_input_per_million": 0.025 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-08-07", + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.025 + }, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "knowledge": "2024-05-30" + } + }, + { + "id": "gpt-5-mini-2025-08-07", + "name": "GPT-5 Mini 20250807", + "provider": "openai", + "family": "gpt5", + "created_at": "2025-08-06 02:01:07 +0530", + "context_window": 128000, + "max_output_tokens": 400000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10.0, + "cached_input_per_million": 0.125 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-5-nano", + "name": "GPT-5 Nano", + "provider": "openai", + "family": "gpt-nano", + "created_at": "2025-08-07 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2024-05-30", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.05, + "output_per_million": 0.4, + "cached_input_per_million": 0.005 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-08-07", + "cost": { + "input": 0.05, + "output": 0.4, + "cache_read": 0.005 + }, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "knowledge": "2024-05-30" + } + }, + { + "id": "gpt-5-nano-2025-08-07", + "name": "GPT-5 Nano 20250807", + "provider": "openai", + "family": "gpt5", + "created_at": "2025-08-06 02:08:23 +0530", + "context_window": 128000, + "max_output_tokens": 400000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10.0, + "cached_input_per_million": 0.125 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-5-pro", + "name": "GPT-5 Pro", + "provider": "openai", + "family": "gpt-pro", + "created_at": "2025-10-06 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 272000, + "knowledge_cutoff": "2024-09-30", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 15, + "output_per_million": 120 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-10-06", + "cost": { + "input": 15, + "output": 120 + }, + "limit": { + "context": 400000, + "input": 272000, + "output": 272000 + }, + "knowledge": "2024-09-30" + } + }, + { + "id": "gpt-5-pro-2025-10-06", + "name": "GPT-5 Pro 20251006", + "provider": "openai", + "family": "gpt5", + "created_at": "2025-10-03 11:05:07 +0530", + "context_window": 128000, + "max_output_tokens": 400000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10.0, + "cached_input_per_million": 0.125 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-5-search-api", + "name": "GPT-5 Search Api", + "provider": "openai", + "family": "gpt5", + "created_at": "2025-10-03 23:33:49 +0530", + "context_window": 128000, + "max_output_tokens": 400000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10.0, + "cached_input_per_million": 0.125 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-5-search-api-2025-10-14", + "name": "GPT-5 Search Api 20251014", + "provider": "openai", + "family": "gpt5", + "created_at": "2025-10-10 02:36:00 +0530", + "context_window": 128000, + "max_output_tokens": 400000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10.0, + "cached_input_per_million": 0.125 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-5.1", + "name": "GPT-5.1", + "provider": "openai", + "family": "gpt", + "created_at": "2025-11-13 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2024-09-30", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10, + "cached_input_per_million": 0.13 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-11-13", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.13 + }, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "knowledge": "2024-09-30" + } + }, + { + "id": "gpt-5.1-2025-11-13", + "name": "GPT-5.1 20251113", + "provider": "openai", + "family": "gpt5", + "created_at": "2025-11-11 00:15:53 +0530", + "context_window": 128000, + "max_output_tokens": 400000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10.0, + "cached_input_per_million": 0.125 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-5.1-chat-latest", + "name": "GPT-5.1 Chat", + "provider": "openai", + "family": "gpt-codex", + "created_at": "2025-11-13 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 16384, + "knowledge_cutoff": "2024-09-30", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10, + "cached_input_per_million": 0.125 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-11-13", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "knowledge": "2024-09-30" + } + }, + { + "id": "gpt-5.1-codex", + "name": "GPT-5.1 Codex", + "provider": "openai", + "family": "gpt-codex", + "created_at": "2025-11-13 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2024-09-30", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10, + "cached_input_per_million": 0.125 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-11-13", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "knowledge": "2024-09-30" + } + }, + { + "id": "gpt-5.1-codex-max", + "name": "GPT-5.1 Codex Max", + "provider": "openai", + "family": "gpt-codex", + "created_at": "2025-11-13 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2024-09-30", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10, + "cached_input_per_million": 0.125 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-11-13", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "knowledge": "2024-09-30" + } + }, + { + "id": "gpt-5.1-codex-mini", + "name": "GPT-5.1 Codex mini", + "provider": "openai", + "family": "gpt-codex", + "created_at": "2025-11-13 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2024-09-30", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.25, + "output_per_million": 2, + "cached_input_per_million": 0.025 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-11-13", + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.025 + }, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "knowledge": "2024-09-30" + } + }, + { + "id": "gpt-5.2", + "name": "GPT-5.2", + "provider": "openai", + "family": "gpt", + "created_at": "2025-12-11 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2025-08-31", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.75, + "output_per_million": 14, + "cached_input_per_million": 0.175 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-12-11", + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "knowledge": "2025-08-31" + } + }, + { + "id": "gpt-5.2-2025-12-11", + "name": "GPT-5.2 20251211", + "provider": "openai", + "family": "gpt5", + "created_at": "2025-12-10 02:13:48 +0530", + "context_window": 128000, + "max_output_tokens": 400000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10.0, + "cached_input_per_million": 0.125 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-5.2-chat-latest", + "name": "GPT-5.2 Chat", + "provider": "openai", + "family": "gpt-codex", + "created_at": "2025-12-11 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 16384, + "knowledge_cutoff": "2025-08-31", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.75, + "output_per_million": 14, + "cached_input_per_million": 0.175 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-12-11", + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "knowledge": "2025-08-31" + } + }, + { + "id": "gpt-5.2-codex", + "name": "GPT-5.2 Codex", + "provider": "openai", + "family": "gpt-codex", + "created_at": "2025-12-11 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2025-08-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.75, + "output_per_million": 14, + "cached_input_per_million": 0.175 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-12-11", + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "knowledge": "2025-08-31" + } + }, + { + "id": "gpt-5.2-pro", + "name": "GPT-5.2 Pro", + "provider": "openai", + "family": "gpt-pro", + "created_at": "2025-12-11 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2025-08-31", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision", + "streaming", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 21, + "output_per_million": 168 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-12-11", + "cost": { + "input": 21, + "output": 168 + }, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "knowledge": "2025-08-31" + } + }, + { + "id": "gpt-5.2-pro-2025-12-11", + "name": "GPT-5.2 Pro 20251211", + "provider": "openai", + "family": "gpt5", + "created_at": "2025-12-10 10:49:19 +0530", + "context_window": 128000, + "max_output_tokens": 400000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10.0, + "cached_input_per_million": 0.125 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-5.3-chat-latest", + "name": "GPT-5.3 Chat (latest)", + "provider": "openai", + "family": "gpt", + "created_at": "2026-03-03 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 16384, + "knowledge_cutoff": "2025-08-31", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision", + "streaming", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.75, + "output_per_million": 14, + "cached_input_per_million": 0.175 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-03-03", + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "knowledge": "2025-08-31" + } + }, + { + "id": "gpt-5.3-codex", + "name": "GPT-5.3 Codex", + "provider": "openai", + "family": "gpt-codex", + "created_at": "2026-02-05 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2025-08-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.75, + "output_per_million": 14, + "cached_input_per_million": 0.175 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2026-02-05", + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "knowledge": "2025-08-31" + } + }, + { + "id": "gpt-5.3-codex-spark", + "name": "GPT-5.3 Codex Spark", + "provider": "openai", + "family": "gpt-codex-spark", + "created_at": "2026-02-05 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 32000, + "knowledge_cutoff": "2025-08-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.75, + "output_per_million": 14, + "cached_input_per_million": 0.175 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2026-02-05", + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 128000, + "input": 100000, + "output": 32000 + }, + "knowledge": "2025-08-31" + } + }, + { + "id": "gpt-5.4", + "name": "GPT-5.4", + "provider": "openai", + "family": "gpt", + "created_at": "2026-03-05 00:00:00 +0530", + "context_window": 1050000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2025-08-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2.5, + "output_per_million": 15, + "cached_input_per_million": 0.25 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2026-03-05", + "cost": { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "context_over_200k": { + "input": 5, + "output": 22.5, + "cache_read": 0.5 + } + }, + "limit": { + "context": 1050000, + "input": 922000, + "output": 128000 + }, + "knowledge": "2025-08-31" + } + }, + { + "id": "gpt-5.4-2026-03-05", + "name": "GPT-5.4 20260305", + "provider": "openai", + "family": "gpt5", + "created_at": "2026-03-05 01:24:22 +0530", + "context_window": 128000, + "max_output_tokens": 400000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10.0, + "cached_input_per_million": 0.125 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-5.4-mini", + "name": "GPT-5.4 mini", + "provider": "openai", + "family": "gpt-mini", + "created_at": "2026-03-17 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2025-08-31", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.75, + "output_per_million": 4.5, + "cached_input_per_million": 0.075 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2026-03-17", + "cost": { + "input": 0.75, + "output": 4.5, + "cache_read": 0.075 + }, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "knowledge": "2025-08-31" + } + }, + { + "id": "gpt-5.4-mini-2026-03-17", + "name": "GPT-5.4 Mini 20260317", + "provider": "openai", + "family": "gpt5", + "created_at": "2026-03-14 06:47:56 +0530", + "context_window": 128000, + "max_output_tokens": 400000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10.0, + "cached_input_per_million": 0.125 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-5.4-nano", + "name": "GPT-5.4 nano", + "provider": "openai", + "family": "gpt-nano", + "created_at": "2026-03-17 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2025-08-31", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.2, + "output_per_million": 1.25, + "cached_input_per_million": 0.02 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2026-03-17", + "cost": { + "input": 0.2, + "output": 1.25, + "cache_read": 0.02 + }, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "knowledge": "2025-08-31" + } + }, + { + "id": "gpt-5.4-nano-2026-03-17", + "name": "GPT-5.4 Nano 20260317", + "provider": "openai", + "family": "gpt5", + "created_at": "2026-03-14 06:43:57 +0530", + "context_window": 128000, + "max_output_tokens": 400000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10.0, + "cached_input_per_million": 0.125 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-5.4-pro", + "name": "GPT-5.4 Pro", + "provider": "openai", + "family": "gpt-pro", + "created_at": "2026-03-05 00:00:00 +0530", + "context_window": 1050000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2025-08-31", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision", + "streaming", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 30, + "output_per_million": 180 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2026-03-05", + "cost": { + "input": 30, + "output": 180, + "context_over_200k": { + "input": 60, + "output": 270 + } + }, + "limit": { + "context": 1050000, + "input": 922000, + "output": 128000 + }, + "knowledge": "2025-08-31" + } + }, + { + "id": "gpt-5.4-pro-2026-03-05", + "name": "GPT-5.4 Pro 20260305", + "provider": "openai", + "family": "gpt5", + "created_at": "2026-03-05 02:57:37 +0530", + "context_window": 128000, + "max_output_tokens": 400000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10.0, + "cached_input_per_million": 0.125 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-audio", + "name": "GPT-Audio", + "provider": "openai", + "family": "other", + "created_at": "2025-08-28 05:30:49 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text", + "audio" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-audio-1.5", + "name": "GPT-Audio 1.5", + "provider": "openai", + "family": "other", + "created_at": "2026-02-20 06:58:05 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text", + "audio" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-audio-2025-08-28", + "name": "GPT-Audio 20250828", + "provider": "openai", + "family": "other", + "created_at": "2025-08-27 06:25:46 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text", + "audio" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-audio-mini", + "name": "GPT-Audio Mini", + "provider": "openai", + "family": "other", + "created_at": "2025-10-03 22:50:27 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text", + "audio" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-audio-mini-2025-10-06", + "name": "GPT-Audio Mini 20251006", + "provider": "openai", + "family": "other", + "created_at": "2025-10-03 22:52:17 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text", + "audio" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-audio-mini-2025-12-15", + "name": "GPT-Audio Mini 20251215", + "provider": "openai", + "family": "other", + "created_at": "2025-12-15 06:23:28 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text", + "audio" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-image-1", + "name": "gpt-image-1", + "provider": "openai", + "family": "gpt-image", + "created_at": "2025-04-24 00:00:00 +0530", + "context_window": 0, + "max_output_tokens": 0, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "image" + ] + }, + "capabilities": [ + "vision", + "streaming" + ], + "pricing": {}, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-04-24", + "limit": { + "context": 0, + "input": 0, + "output": 0 + } + } + }, + { + "id": "gpt-image-1-mini", + "name": "gpt-image-1-mini", + "provider": "openai", + "family": "gpt-image", + "created_at": "2025-09-26 00:00:00 +0530", + "context_window": 0, + "max_output_tokens": 0, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text", + "image" + ] + }, + "capabilities": [ + "vision", + "streaming" + ], + "pricing": {}, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-09-26", + "limit": { + "context": 0, + "input": 0, + "output": 0 + } + } + }, + { + "id": "gpt-image-1.5", + "name": "gpt-image-1.5", + "provider": "openai", + "family": "gpt-image", + "created_at": "2025-11-25 00:00:00 +0530", + "context_window": 0, + "max_output_tokens": 0, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text", + "image" + ] + }, + "capabilities": [ + "vision", + "streaming" + ], + "pricing": {}, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-11-25", + "limit": { + "context": 0, + "input": 0, + "output": 0 + } + } + }, + { + "id": "gpt-realtime", + "name": "GPT-Realtime", + "provider": "openai", + "family": "other", + "created_at": "2025-08-27 10:45:01 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-realtime-1.5", + "name": "GPT-Realtime 1.5", + "provider": "openai", + "family": "other", + "created_at": "2026-02-19 06:07:49 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-realtime-2025-08-28", + "name": "GPT-Realtime 20250828", + "provider": "openai", + "family": "other", + "created_at": "2025-08-27 10:46:13 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-realtime-mini", + "name": "GPT-Realtime Mini", + "provider": "openai", + "family": "other", + "created_at": "2025-10-04 00:15:33 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-realtime-mini-2025-10-06", + "name": "GPT-Realtime Mini 20251006", + "provider": "openai", + "family": "other", + "created_at": "2025-10-04 00:16:15 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-realtime-mini-2025-12-15", + "name": "GPT-Realtime Mini 20251215", + "provider": "openai", + "family": "other", + "created_at": "2025-12-13 13:16:47 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "o1", + "name": "o1", + "provider": "openai", + "family": "o", + "created_at": "2024-12-05 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 100000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 15, + "output_per_million": 60, + "cached_input_per_million": 7.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2024-12-05", + "cost": { + "input": 15, + "output": 60, + "cache_read": 7.5 + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "knowledge": "2023-09" + } + }, + { + "id": "o1-2024-12-17", + "name": "O1-20241217", + "provider": "openai", + "family": "o1", + "created_at": "2024-12-16 10:59:36 +0530", + "context_window": 200000, + "max_output_tokens": 100000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 15.0, + "output_per_million": 60.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "o1-mini", + "name": "o1-mini", + "provider": "openai", + "family": "o-mini", + "created_at": "2024-09-12 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.1, + "output_per_million": 4.4, + "cached_input_per_million": 0.55 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": false, + "temperature": false, + "last_updated": "2024-09-12", + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 + }, + "limit": { + "context": 128000, + "output": 65536 + }, + "knowledge": "2023-09" + } + }, + { + "id": "o1-preview", + "name": "o1-preview", + "provider": "openai", + "family": "o", + "created_at": "2024-09-12 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 15, + "output_per_million": 60, + "cached_input_per_million": 7.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2024-09-12", + "cost": { + "input": 15, + "output": 60, + "cache_read": 7.5 + }, + "limit": { + "context": 128000, + "output": 32768 + }, + "knowledge": "2023-09" + } + }, + { + "id": "o1-pro", + "name": "o1-pro", + "provider": "openai", + "family": "o-pro", + "created_at": "2025-03-19 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 100000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 150, + "output_per_million": 600 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-03-19", + "cost": { + "input": 150, + "output": 600 + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "knowledge": "2023-09" + } + }, + { + "id": "o1-pro-2025-03-19", + "name": "O1-Pro 20250319", + "provider": "openai", + "family": "o1_pro", + "created_at": "2025-03-18 04:15:04 +0530", + "context_window": 200000, + "max_output_tokens": 100000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 150.0, + "output_per_million": 600.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "o3", + "name": "o3", + "provider": "openai", + "family": "o", + "created_at": "2025-04-16 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 100000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2, + "output_per_million": 8, + "cached_input_per_million": 0.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-04-16", + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "knowledge": "2024-05" + } + }, + { + "id": "o3-2025-04-16", + "name": "O3-20250416", + "provider": "openai", + "family": "other", + "created_at": "2025-04-08 22:58:21 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "o3-deep-research", + "name": "o3-deep-research", + "provider": "openai", + "family": "o", + "created_at": "2024-06-26 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 100000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 10, + "output_per_million": 40, + "cached_input_per_million": 2.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2024-06-26", + "cost": { + "input": 10, + "output": 40, + "cache_read": 2.5 + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "knowledge": "2024-05" + } + }, + { + "id": "o3-deep-research-2025-06-26", + "name": "O3-Deep Research 20250626", + "provider": "openai", + "family": "other", + "created_at": "2025-06-25 20:56:59 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "o3-mini", + "name": "o3-mini", + "provider": "openai", + "family": "o-mini", + "created_at": "2024-12-20 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 100000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.1, + "output_per_million": 4.4, + "cached_input_per_million": 0.55 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": false, + "temperature": false, + "last_updated": "2025-01-29", + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "knowledge": "2024-05" + } + }, + { + "id": "o3-mini-2025-01-31", + "name": "O3-Mini 20250131", + "provider": "openai", + "family": "o3_mini", + "created_at": "2025-01-28 02:06:40 +0530", + "context_window": 200000, + "max_output_tokens": 100000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.1, + "output_per_million": 4.4 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "o3-pro", + "name": "o3-pro", + "provider": "openai", + "family": "o-pro", + "created_at": "2025-06-10 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 100000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 20, + "output_per_million": 80 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-06-10", + "cost": { + "input": 20, + "output": 80 + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "knowledge": "2024-05" + } + }, + { + "id": "o3-pro-2025-06-10", + "name": "O3-Pro 20250610", + "provider": "openai", + "family": "other", + "created_at": "2025-06-06 05:09:21 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "o4-mini", + "name": "o4-mini", + "provider": "openai", + "family": "o-mini", + "created_at": "2025-04-16 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 100000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.1, + "output_per_million": 4.4, + "cached_input_per_million": 0.28 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-04-16", + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.28 + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "knowledge": "2024-05" + } + }, + { + "id": "o4-mini-2025-04-16", + "name": "O4 Mini 20250416", + "provider": "openai", + "family": "other", + "created_at": "2025-04-08 23:01:46 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "o4-mini-deep-research", + "name": "o4-mini-deep-research", + "provider": "openai", + "family": "o-mini", + "created_at": "2024-06-26 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 100000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision", + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2, + "output_per_million": 8, + "cached_input_per_million": 0.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2024-06-26", + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "knowledge": "2024-05" + } + }, + { + "id": "o4-mini-deep-research-2025-06-26", + "name": "O4 Mini Deep Research 20250626", + "provider": "openai", + "family": "other", + "created_at": "2025-06-25 21:12:01 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "omni-moderation-2024-09-26", + "name": "Omni Moderation 20240926", + "provider": "openai", + "family": "moderation", + "created_at": "2024-11-28 00:37:46 +0530", + "context_window": null, + "max_output_tokens": null, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text", + "moderation" + ] + }, + "capabilities": [], + "pricing": {}, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "omni-moderation-latest", + "name": "Omni Moderation Latest", + "provider": "openai", + "family": "moderation", + "created_at": "2024-11-15 22:17:45 +0530", + "context_window": null, + "max_output_tokens": null, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text", + "moderation" + ] + }, + "capabilities": [], + "pricing": {}, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "sora-2", + "name": "Sora 2", + "provider": "openai", + "family": "other", + "created_at": "2025-10-06 05:26:55 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "sora-2-pro", + "name": "Sora 2 Pro", + "provider": "openai", + "family": "other", + "created_at": "2025-10-06 05:27:43 +0530", + "context_window": 4096, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "text-embedding-3-large", + "name": "text-embedding-3-large", + "provider": "openai", + "family": "text-embedding", + "created_at": "2024-01-25 00:00:00 +0530", + "context_window": 8191, + "max_output_tokens": 3072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "batch" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.13 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": false, + "temperature": false, + "last_updated": "2024-01-25", + "cost": { + "input": 0.13, + "output": 0 + }, + "limit": { + "context": 8191, + "output": 3072 + }, + "knowledge": "2024-01" + } + }, + { + "id": "text-embedding-3-small", + "name": "text-embedding-3-small", + "provider": "openai", + "family": "text-embedding", + "created_at": "2024-01-25 00:00:00 +0530", + "context_window": 8191, + "max_output_tokens": 1536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "batch" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.02 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": false, + "temperature": false, + "last_updated": "2024-01-25", + "cost": { + "input": 0.02, + "output": 0 + }, + "limit": { + "context": 8191, + "output": 1536 + }, + "knowledge": "2024-01" + } + }, + { + "id": "text-embedding-ada-002", + "name": "text-embedding-ada-002", + "provider": "openai", + "family": "text-embedding", + "created_at": "2022-12-15 00:00:00 +0530", + "context_window": 8192, + "max_output_tokens": 1536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "batch" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "openai-internal", + "source": "models.dev", + "provider_id": "openai", + "open_weights": false, + "attachment": false, + "temperature": false, + "last_updated": "2022-12-15", + "cost": { + "input": 0.1, + "output": 0 + }, + "limit": { + "context": 8192, + "output": 1536 + }, + "knowledge": "2022-12" + } + }, + { + "id": "tts-1", + "name": "TTS-1", + "provider": "openai", + "family": "tts1", + "created_at": "2023-04-20 03:19:11 +0530", + "context_window": null, + "max_output_tokens": null, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text", + "audio" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 15.0, + "output_per_million": 15.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "openai-internal" + } + }, + { + "id": "tts-1-1106", + "name": "TTS-1 1106", + "provider": "openai", + "family": "tts1", + "created_at": "2023-11-04 04:44:01 +0530", + "context_window": null, + "max_output_tokens": null, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text", + "audio" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 15.0, + "output_per_million": 15.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "tts-1-hd", + "name": "TTS-1 HD", + "provider": "openai", + "family": "tts1_hd", + "created_at": "2023-11-04 02:43:35 +0530", + "context_window": null, + "max_output_tokens": null, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text", + "audio" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 30.0, + "output_per_million": 30.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "tts-1-hd-1106", + "name": "TTS-1 HD 1106", + "provider": "openai", + "family": "tts1_hd", + "created_at": "2023-11-04 04:48:53 +0530", + "context_window": null, + "max_output_tokens": null, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text", + "audio" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 30.0, + "output_per_million": 30.0 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "whisper-1", + "name": "Whisper 1", + "provider": "openai", + "family": "whisper", + "created_at": "2023-02-28 02:43:04 +0530", + "context_window": null, + "max_output_tokens": null, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "streaming" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.006, + "output_per_million": 0.006 + } + } + }, + "metadata": { + "object": "model", + "owned_by": "openai-internal" + } + }, + { + "id": "anthropic/claude-3.5-haiku", + "name": "Claude Haiku 3.5", + "provider": "openrouter", + "family": "claude-haiku", + "created_at": "2024-10-22 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 8192, + "knowledge_cutoff": "2024-07-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.8, + "output_per_million": 4, + "cached_input_per_million": 0.08 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-10-22", + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + }, + "limit": { + "context": 200000, + "output": 8192 + }, + "knowledge": "2024-07-31" + } + }, + { + "id": "anthropic/claude-3.7-sonnet", + "name": "Claude Sonnet 3.7", + "provider": "openrouter", + "family": "claude-sonnet", + "created_at": "2025-02-19 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 128000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 15, + "output_per_million": 75, + "cached_input_per_million": 1.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-02-19", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + }, + "limit": { + "context": 200000, + "output": 128000 + }, + "knowledge": "2024-01" + } + }, + { + "id": "anthropic/claude-haiku-4.5", + "name": "Claude Haiku 4.5", + "provider": "openrouter", + "family": "claude-haiku", + "created_at": "2025-10-15 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2025-02-28", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1, + "output_per_million": 5, + "cached_input_per_million": 0.1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-10-15", + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2025-02-28" + } + }, + { + "id": "anthropic/claude-opus-4", + "name": "Claude Opus 4", + "provider": "openrouter", + "family": "claude-opus", + "created_at": "2025-05-22 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 32000, + "knowledge_cutoff": "2025-03-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 15, + "output_per_million": 75, + "cached_input_per_million": 1.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-05-22", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "knowledge": "2025-03-31" + } + }, + { + "id": "anthropic/claude-opus-4.1", + "name": "Claude Opus 4.1", + "provider": "openrouter", + "family": "claude-opus", + "created_at": "2025-08-05 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 32000, + "knowledge_cutoff": "2025-03-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 15, + "output_per_million": 75, + "cached_input_per_million": 1.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-08-05", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "knowledge": "2025-03-31" + } + }, + { + "id": "anthropic/claude-opus-4.5", + "name": "Claude Opus 4.5", + "provider": "openrouter", + "family": "claude-opus", + "created_at": "2025-11-24 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 32000, + "knowledge_cutoff": "2025-05-30", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 5, + "output_per_million": 25, + "cached_input_per_million": 0.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-11-24", + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "knowledge": "2025-05-30" + } + }, + { + "id": "anthropic/claude-opus-4.6", + "name": "Claude Opus 4.6", + "provider": "openrouter", + "family": "claude-opus", + "created_at": "2026-02-05 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2025-05-30", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 5, + "output_per_million": 25, + "cached_input_per_million": 0.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-02-05", + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25, + "context_over_200k": { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5 + } + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "knowledge": "2025-05-30" + } + }, + { + "id": "anthropic/claude-sonnet-4", + "name": "Claude Sonnet 4", + "provider": "openrouter", + "family": "claude-sonnet", + "created_at": "2025-05-22 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2025-03-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-05-22", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "context_over_200k": { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5 + } + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "knowledge": "2025-03-31" + } + }, + { + "id": "anthropic/claude-sonnet-4.5", + "name": "Claude Sonnet 4.5", + "provider": "openrouter", + "family": "claude-sonnet", + "created_at": "2025-09-29 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 64000, + "knowledge_cutoff": "2025-07-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-09-29", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "context_over_200k": { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5 + } + }, + "limit": { + "context": 1000000, + "output": 64000 + }, + "knowledge": "2025-07-31" + } + }, + { + "id": "anthropic/claude-sonnet-4.6", + "name": "Claude Sonnet 4.6", + "provider": "openrouter", + "family": "claude-sonnet", + "created_at": "2026-02-17 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 128000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-02-17", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "context_over_200k": { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5 + } + }, + "limit": { + "context": 1000000, + "output": 128000 + } + } + }, + { + "id": "arcee-ai/trinity-large-preview:free", + "name": "Trinity Large Preview", + "provider": "openrouter", + "family": "trinity", + "created_at": "2026-01-28 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-01-28", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "knowledge": "2025-06" + } + }, + { + "id": "arcee-ai/trinity-large-thinking", + "name": "Trinity Large Thinking", + "provider": "openrouter", + "family": "trinity", + "created_at": "2026-04-01 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 80000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.22, + "output_per_million": 0.85 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-04-03", + "cost": { + "input": 0.22, + "output": 0.85 + }, + "limit": { + "context": 262144, + "output": 80000 + } + } + }, + { + "id": "black-forest-labs/flux.2-flex", + "name": "FLUX.2 Flex", + "provider": "openrouter", + "family": "flux", + "created_at": "2025-11-25 00:00:00 +0530", + "context_window": 67344, + "max_output_tokens": 67344, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "image" + ] + }, + "capabilities": [ + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2026-01-31", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 67344, + "output": 67344 + }, + "knowledge": "2025-06" + } + }, + { + "id": "black-forest-labs/flux.2-klein-4b", + "name": "FLUX.2 Klein 4B", + "provider": "openrouter", + "family": "flux", + "created_at": "2026-01-14 00:00:00 +0530", + "context_window": 40960, + "max_output_tokens": 40960, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "image" + ] + }, + "capabilities": [ + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-01-31", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 40960, + "output": 40960 + }, + "knowledge": "2025-06" + } + }, + { + "id": "black-forest-labs/flux.2-max", + "name": "FLUX.2 Max", + "provider": "openrouter", + "family": "flux", + "created_at": "2025-12-16 00:00:00 +0530", + "context_window": 46864, + "max_output_tokens": 46864, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "image" + ] + }, + "capabilities": [ + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2026-01-31", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 46864, + "output": 46864 + }, + "knowledge": "2025-06" + } + }, + { + "id": "black-forest-labs/flux.2-pro", + "name": "FLUX.2 Pro", + "provider": "openrouter", + "family": "flux", + "created_at": "2025-11-25 00:00:00 +0530", + "context_window": 46864, + "max_output_tokens": 46864, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "image" + ] + }, + "capabilities": [ + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2026-01-31", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 46864, + "output": 46864 + }, + "knowledge": "2025-06" + } + }, + { + "id": "bytedance-seed/seedream-4.5", + "name": "Seedream 4.5", + "provider": "openrouter", + "family": "seed", + "created_at": "2025-12-23 00:00:00 +0530", + "context_window": 4096, + "max_output_tokens": 4096, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "image" + ] + }, + "capabilities": [ + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-01-31", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 4096, + "output": 4096 + }, + "knowledge": "2025-06" + } + }, + { + "id": "cognitivecomputations/dolphin-mistral-24b-venice-edition:free", + "name": "Uncensored (free)", + "provider": "openrouter", + "family": "mistral", + "created_at": "2025-07-09 00:00:00 +0530", + "context_window": 32768, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "structured_output" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-01-31", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 32768, + "output": 32768 + }, + "knowledge": "2025-06" + } + }, + { + "id": "deepseek/deepseek-chat-v3-0324", + "name": "DeepSeek V3 0324", + "provider": "openrouter", + "family": "deepseek", + "created_at": "2025-03-24 00:00:00 +0530", + "context_window": 16384, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "structured_output" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-03-24", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 16384, + "output": 8192 + }, + "knowledge": "2024-10" + } + }, + { + "id": "deepseek/deepseek-chat-v3.1", + "name": "DeepSeek-V3.1", + "provider": "openrouter", + "family": "deepseek", + "created_at": "2025-08-21 00:00:00 +0530", + "context_window": 163840, + "max_output_tokens": 163840, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.2, + "output_per_million": 0.8 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-08-21", + "cost": { + "input": 0.2, + "output": 0.8 + }, + "limit": { + "context": 163840, + "output": 163840 + }, + "knowledge": "2025-07" + } + }, + { + "id": "deepseek/deepseek-r1", + "name": "DeepSeek: R1", + "provider": "openrouter", + "family": "deepseek-thinking", + "created_at": "2025-01-20 00:00:00 +0530", + "context_window": 64000, + "max_output_tokens": 16000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.7, + "output_per_million": 2.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-01-20", + "cost": { + "input": 0.7, + "output": 2.5 + }, + "limit": { + "context": 64000, + "output": 16000 + }, + "knowledge": "2024-07" + } + }, + { + "id": "deepseek/deepseek-r1-distill-llama-70b", + "name": "DeepSeek R1 Distill Llama 70B", + "provider": "openrouter", + "family": "deepseek-thinking", + "created_at": "2025-01-23 00:00:00 +0530", + "context_window": 8192, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "structured_output", + "reasoning" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-01-23", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "knowledge": "2024-10" + } + }, + { + "id": "deepseek/deepseek-v3.1-terminus", + "name": "DeepSeek V3.1 Terminus", + "provider": "openrouter", + "family": "deepseek", + "created_at": "2025-09-22 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.27, + "output_per_million": 1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-09-22", + "cost": { + "input": 0.27, + "output": 1 + }, + "limit": { + "context": 131072, + "output": 65536 + }, + "knowledge": "2025-07" + } + }, + { + "id": "deepseek/deepseek-v3.1-terminus:exacto", + "name": "DeepSeek V3.1 Terminus (exacto)", + "provider": "openrouter", + "family": "deepseek", + "created_at": "2025-09-22 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.27, + "output_per_million": 1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-09-22", + "cost": { + "input": 0.27, + "output": 1 + }, + "limit": { + "context": 131072, + "output": 65536 + }, + "knowledge": "2025-07" + } + }, + { + "id": "deepseek/deepseek-v3.2", + "name": "DeepSeek V3.2", + "provider": "openrouter", + "family": "deepseek", + "created_at": "2025-12-01 00:00:00 +0530", + "context_window": 163840, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.28, + "output_per_million": 0.4 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-12-01", + "cost": { + "input": 0.28, + "output": 0.4 + }, + "limit": { + "context": 163840, + "output": 65536 + }, + "knowledge": "2024-07" + } + }, + { + "id": "deepseek/deepseek-v3.2-speciale", + "name": "DeepSeek V3.2 Speciale", + "provider": "openrouter", + "family": "deepseek", + "created_at": "2025-12-01 00:00:00 +0530", + "context_window": 163840, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.27, + "output_per_million": 0.41 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-12-01", + "cost": { + "input": 0.27, + "output": 0.41 + }, + "limit": { + "context": 163840, + "output": 65536 + }, + "knowledge": "2024-07" + } + }, + { + "id": "google/gemini-2.0-flash-001", + "name": "Gemini 2.0 Flash", + "provider": "openrouter", + "family": "gemini-flash", + "created_at": "2024-12-11 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.4, + "cached_input_per_million": 0.025 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-12-11", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + }, + "limit": { + "context": 1048576, + "output": 8192 + }, + "knowledge": "2024-06" + } + }, + { + "id": "google/gemini-2.5-flash", + "name": "Gemini 2.5 Flash", + "provider": "openrouter", + "family": "gemini-flash", + "created_at": "2025-07-17 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.3, + "output_per_million": 2.5, + "cached_input_per_million": 0.0375 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-07-17", + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.0375 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "google/gemini-2.5-flash-lite", + "name": "Gemini 2.5 Flash Lite", + "provider": "openrouter", + "family": "gemini-flash-lite", + "created_at": "2025-06-17 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.4, + "cached_input_per_million": 0.025 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-06-17", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "google/gemini-2.5-flash-lite-preview-09-2025", + "name": "Gemini 2.5 Flash Lite Preview 09-25", + "provider": "openrouter", + "family": "gemini-flash-lite", + "created_at": "2025-09-25 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.4, + "cached_input_per_million": 0.025 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-09-25", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "google/gemini-2.5-flash-preview-09-2025", + "name": "Gemini 2.5 Flash Preview 09-25", + "provider": "openrouter", + "family": "gemini-flash", + "created_at": "2025-09-25 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.3, + "output_per_million": 2.5, + "cached_input_per_million": 0.031 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-09-25", + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.031 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "google/gemini-2.5-pro", + "name": "Gemini 2.5 Pro", + "provider": "openrouter", + "family": "gemini-pro", + "created_at": "2025-03-20 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10, + "cached_input_per_million": 0.31 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-06-05", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.31 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "google/gemini-2.5-pro-preview-05-06", + "name": "Gemini 2.5 Pro Preview 05-06", + "provider": "openrouter", + "family": "gemini-pro", + "created_at": "2025-05-06 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10, + "cached_input_per_million": 0.31 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-05-06", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.31 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "google/gemini-2.5-pro-preview-06-05", + "name": "Gemini 2.5 Pro Preview 06-05", + "provider": "openrouter", + "family": "gemini-pro", + "created_at": "2025-06-05 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10, + "cached_input_per_million": 0.31 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-06-05", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.31 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "google/gemini-3-flash-preview", + "name": "Gemini 3 Flash Preview", + "provider": "openrouter", + "family": "gemini-flash", + "created_at": "2025-12-17 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 3, + "cached_input_per_million": 0.05 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-12-17", + "interleaved": { + "field": "reasoning_details" + }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "google/gemini-3-pro-preview", + "name": "Gemini 3 Pro Preview", + "provider": "openrouter", + "family": "gemini-pro", + "created_at": "2025-11-18 00:00:00 +0530", + "context_window": 1050000, + "max_output_tokens": 66000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2, + "output_per_million": 12 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-11", + "interleaved": { + "field": "reasoning_details" + }, + "cost": { + "input": 2, + "output": 12 + }, + "limit": { + "context": 1050000, + "output": 66000 + }, + "knowledge": "2025-01" + } + }, + { + "id": "google/gemini-3.1-flash-lite-preview", + "name": "Gemini 3.1 Flash Lite Preview", + "provider": "openrouter", + "family": "gemini-flash-lite", + "created_at": "2026-03-03 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video", + "pdf", + "audio" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.25, + "output_per_million": 1.5, + "cached_input_per_million": 0.025, + "reasoning_output_per_million": 1.5 + } + }, + "audio_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 0.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-03-03", + "cost": { + "input": 0.25, + "output": 1.5, + "reasoning": 1.5, + "cache_read": 0.025, + "cache_write": 0.083, + "input_audio": 0.5, + "output_audio": 0.5 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + } + }, + { + "id": "google/gemini-3.1-pro-preview", + "name": "Gemini 3.1 Pro Preview", + "provider": "openrouter", + "family": "gemini-pro", + "created_at": "2026-02-19 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2, + "output_per_million": 12, + "reasoning_output_per_million": 12 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-02-19", + "interleaved": { + "field": "reasoning_details" + }, + "cost": { + "input": 2, + "output": 12, + "reasoning": 12, + "context_over_200k": { + "input": 4, + "output": 18, + "cache_read": 0.4 + } + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "google/gemini-3.1-pro-preview-customtools", + "name": "Gemini 3.1 Pro Preview Custom Tools", + "provider": "openrouter", + "family": "gemini-pro", + "created_at": "2026-02-19 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2, + "output_per_million": 12, + "reasoning_output_per_million": 12 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-02-19", + "interleaved": { + "field": "reasoning_details" + }, + "cost": { + "input": 2, + "output": 12, + "reasoning": 12, + "context_over_200k": { + "input": 4, + "output": 18, + "cache_read": 0.4 + } + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "google/gemma-2-9b-it", + "name": "Gemma 2 9B", + "provider": "openrouter", + "family": "gemma", + "created_at": "2024-06-28 00:00:00 +0530", + "context_window": 8192, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.03, + "output_per_million": 0.09 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2024-06-28", + "cost": { + "input": 0.03, + "output": 0.09 + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "knowledge": "2024-06" + } + }, + { + "id": "google/gemma-3-12b-it", + "name": "Gemma 3 12B", + "provider": "openrouter", + "family": "gemma", + "created_at": "2025-03-13 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "structured_output", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.03, + "output_per_million": 0.1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-03-13", + "cost": { + "input": 0.03, + "output": 0.1 + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "knowledge": "2024-10" + } + }, + { + "id": "google/gemma-3-12b-it:free", + "name": "Gemma 3 12B (free)", + "provider": "openrouter", + "family": "gemma", + "created_at": "2025-03-13 00:00:00 +0530", + "context_window": 32768, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-03-13", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 32768, + "output": 8192 + }, + "knowledge": "2024-10" + } + }, + { + "id": "google/gemma-3-27b-it", + "name": "Gemma 3 27B", + "provider": "openrouter", + "family": "gemma", + "created_at": "2025-03-12 00:00:00 +0530", + "context_window": 96000, + "max_output_tokens": 96000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.04, + "output_per_million": 0.15 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-03-12", + "cost": { + "input": 0.04, + "output": 0.15 + }, + "limit": { + "context": 96000, + "output": 96000 + }, + "knowledge": "2024-10" + } + }, + { + "id": "google/gemma-3-27b-it:free", + "name": "Gemma 3 27B (free)", + "provider": "openrouter", + "family": "gemma", + "created_at": "2025-03-12 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-03-12", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "knowledge": "2024-10" + } + }, + { + "id": "google/gemma-3-4b-it", + "name": "Gemma 3 4B", + "provider": "openrouter", + "family": "gemma", + "created_at": "2025-03-13 00:00:00 +0530", + "context_window": 96000, + "max_output_tokens": 96000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.01703, + "output_per_million": 0.06815 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-03-13", + "cost": { + "input": 0.01703, + "output": 0.06815 + }, + "limit": { + "context": 96000, + "output": 96000 + }, + "knowledge": "2024-10" + } + }, + { + "id": "google/gemma-3-4b-it:free", + "name": "Gemma 3 4B (free)", + "provider": "openrouter", + "family": "gemma", + "created_at": "2025-03-13 00:00:00 +0530", + "context_window": 32768, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-03-13", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 32768, + "output": 8192 + }, + "knowledge": "2024-10" + } + }, + { + "id": "google/gemma-3n-e2b-it:free", + "name": "Gemma 3n 2B (free)", + "provider": "openrouter", + "family": "gemma", + "created_at": "2025-07-09 00:00:00 +0530", + "context_window": 8192, + "max_output_tokens": 2000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-07-09", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 8192, + "output": 2000 + }, + "knowledge": "2024-06" + } + }, + { + "id": "google/gemma-3n-e4b-it", + "name": "Gemma 3n 4B", + "provider": "openrouter", + "family": "gemma", + "created_at": "2025-05-20 00:00:00 +0530", + "context_window": 32768, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.02, + "output_per_million": 0.04 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-05-20", + "cost": { + "input": 0.02, + "output": 0.04 + }, + "limit": { + "context": 32768, + "output": 32768 + }, + "knowledge": "2024-06" + } + }, + { + "id": "google/gemma-3n-e4b-it:free", + "name": "Gemma 3n 4B (free)", + "provider": "openrouter", + "family": "gemma", + "created_at": "2025-05-20 00:00:00 +0530", + "context_window": 8192, + "max_output_tokens": 2000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-05-20", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 8192, + "output": 2000 + }, + "knowledge": "2024-06" + } + }, + { + "id": "google/gemma-4-26b-a4b-it", + "name": "Gemma 4 26B A4B", + "provider": "openrouter", + "family": "gemma", + "created_at": "2026-04-03 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 262144, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.13, + "output_per_million": 0.4 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2026-04-03", + "cost": { + "input": 0.13, + "output": 0.4 + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "knowledge": "2025-01" + } + }, + { + "id": "google/gemma-4-26b-a4b-it:free", + "name": "Gemma 4 26B A4B (free)", + "provider": "openrouter", + "family": "gemma", + "created_at": "2026-04-03 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2026-04-03", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 32768 + }, + "knowledge": "2025-01" + } + }, + { + "id": "google/gemma-4-31b-it", + "name": "Gemma 4 31B", + "provider": "openrouter", + "family": "gemma", + "created_at": "2026-04-02 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 262144, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.14, + "output_per_million": 0.4 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2026-04-02", + "cost": { + "input": 0.14, + "output": 0.4 + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "knowledge": "2025-01" + } + }, + { + "id": "google/gemma-4-31b-it:free", + "name": "Gemma 4 31B (free)", + "provider": "openrouter", + "family": "gemma", + "created_at": "2026-04-02 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2026-04-02", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 32768 + }, + "knowledge": "2025-01" + } + }, + { + "id": "inception/mercury-2", + "name": "Mercury 2", + "provider": "openrouter", + "family": "mercury", + "created_at": "2026-03-04 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 50000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.25, + "output_per_million": 0.75, + "cached_input_per_million": 0.025 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2026-03-04", + "cost": { + "input": 0.25, + "output": 0.75, + "cache_read": 0.025 + }, + "limit": { + "context": 128000, + "output": 50000 + } + } + }, + { + "id": "inception/mercury-edit-2", + "name": "Mercury Edit 2", + "provider": "openrouter", + "family": null, + "created_at": "2026-03-30 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.25, + "output_per_million": 0.75, + "cached_input_per_million": 0.025 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2026-03-30", + "cost": { + "input": 0.25, + "output": 0.75, + "cache_read": 0.025 + }, + "limit": { + "context": 128000, + "output": 8192 + } + } + }, + { + "id": "liquid/lfm-2.5-1.2b-instruct:free", + "name": "LFM2.5-1.2B-Instruct (free)", + "provider": "openrouter", + "family": "liquid", + "created_at": "2026-01-20 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-01-28", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 32768 + }, + "knowledge": "2025-06" + } + }, + { + "id": "liquid/lfm-2.5-1.2b-thinking:free", + "name": "LFM2.5-1.2B-Thinking (free)", + "provider": "openrouter", + "family": "liquid", + "created_at": "2026-01-20 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "reasoning" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-01-28", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 32768 + }, + "knowledge": "2025-06" + } + }, + { + "id": "meta-llama/llama-3.2-11b-vision-instruct", + "name": "Llama 3.2 11B Vision Instruct", + "provider": "openrouter", + "family": "llama", + "created_at": "2024-09-25 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2024-09-25", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "knowledge": "2023-12" + } + }, + { + "id": "meta-llama/llama-3.2-3b-instruct:free", + "name": "Llama 3.2 3B Instruct (free)", + "provider": "openrouter", + "family": "llama", + "created_at": "2024-09-25 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2024-09-25", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "knowledge": "2023-12" + } + }, + { + "id": "meta-llama/llama-3.3-70b-instruct:free", + "name": "Llama 3.3 70B Instruct (free)", + "provider": "openrouter", + "family": "llama", + "created_at": "2024-12-06 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2024-12-06", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "knowledge": "2024-12" + } + }, + { + "id": "minimax/minimax-01", + "name": "MiniMax-01", + "provider": "openrouter", + "family": "minimax", + "created_at": "2025-01-15 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 1000000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.2, + "output_per_million": 1.1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-01-15", + "cost": { + "input": 0.2, + "output": 1.1 + }, + "limit": { + "context": 1000000, + "output": 1000000 + } + } + }, + { + "id": "minimax/minimax-m1", + "name": "MiniMax M1", + "provider": "openrouter", + "family": "minimax", + "created_at": "2025-06-17 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 40000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.4, + "output_per_million": 2.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-06-17", + "cost": { + "input": 0.4, + "output": 2.2 + }, + "limit": { + "context": 1000000, + "output": 40000 + } + } + }, + { + "id": "minimax/minimax-m2", + "name": "MiniMax M2", + "provider": "openrouter", + "family": "minimax", + "created_at": "2025-10-23 00:00:00 +0530", + "context_window": 196600, + "max_output_tokens": 118000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.28, + "output_per_million": 1.15, + "cached_input_per_million": 0.28 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-10-23", + "interleaved": { + "field": "reasoning_details" + }, + "cost": { + "input": 0.28, + "output": 1.15, + "cache_read": 0.28, + "cache_write": 1.15 + }, + "limit": { + "context": 196600, + "output": 118000 + } + } + }, + { + "id": "minimax/minimax-m2.1", + "name": "MiniMax M2.1", + "provider": "openrouter", + "family": "minimax", + "created_at": "2025-12-23 00:00:00 +0530", + "context_window": 204800, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.3, + "output_per_million": 1.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-12-23", + "interleaved": { + "field": "reasoning_details" + }, + "cost": { + "input": 0.3, + "output": 1.2 + }, + "limit": { + "context": 204800, + "output": 131072 + } + } + }, + { + "id": "minimax/minimax-m2.5", + "name": "MiniMax M2.5", + "provider": "openrouter", + "family": "minimax", + "created_at": "2026-02-12 00:00:00 +0530", + "context_window": 204800, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.3, + "output_per_million": 1.2, + "cached_input_per_million": 0.03 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-02-12", + "interleaved": { + "field": "reasoning_details" + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.03 + }, + "limit": { + "context": 204800, + "output": 131072 + } + } + }, + { + "id": "minimax/minimax-m2.5:free", + "name": "MiniMax M2.5 (free)", + "provider": "openrouter", + "family": "minimax", + "created_at": "2026-02-12 00:00:00 +0530", + "context_window": 204800, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-02-12", + "interleaved": { + "field": "reasoning_details" + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 204800, + "output": 131072 + } + } + }, + { + "id": "minimax/minimax-m2.7", + "name": "MiniMax M2.7", + "provider": "openrouter", + "family": "minimax", + "created_at": "2026-03-18 00:00:00 +0530", + "context_window": 204800, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.3, + "output_per_million": 1.2, + "cached_input_per_million": 0.06 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-03-18", + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06, + "cache_write": 0.375 + }, + "limit": { + "context": 204800, + "output": 131072 + } + } + }, + { + "id": "mistralai/codestral-2508", + "name": "Codestral 2508", + "provider": "openrouter", + "family": "codestral", + "created_at": "2025-08-01 00:00:00 +0530", + "context_window": 256000, + "max_output_tokens": 256000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.3, + "output_per_million": 0.9 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-08-01", + "cost": { + "input": 0.3, + "output": 0.9 + }, + "limit": { + "context": 256000, + "output": 256000 + }, + "knowledge": "2025-05" + } + }, + { + "id": "mistralai/devstral-2512", + "name": "Devstral 2 2512", + "provider": "openrouter", + "family": "devstral", + "created_at": "2025-09-12 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 262144, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.6 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-09-12", + "cost": { + "input": 0.15, + "output": 0.6 + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "knowledge": "2025-12" + } + }, + { + "id": "mistralai/devstral-medium-2507", + "name": "Devstral Medium", + "provider": "openrouter", + "family": "devstral", + "created_at": "2025-07-10 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.4, + "output_per_million": 2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-07-10", + "cost": { + "input": 0.4, + "output": 2 + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "knowledge": "2025-05" + } + }, + { + "id": "mistralai/devstral-small-2505", + "name": "Devstral Small", + "provider": "openrouter", + "family": "devstral", + "created_at": "2025-05-07 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 128000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.06, + "output_per_million": 0.12 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-05-07", + "cost": { + "input": 0.06, + "output": 0.12 + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "knowledge": "2025-05" + } + }, + { + "id": "mistralai/devstral-small-2507", + "name": "Devstral Small 1.1", + "provider": "openrouter", + "family": "devstral", + "created_at": "2025-07-10 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-07-10", + "cost": { + "input": 0.1, + "output": 0.3 + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "knowledge": "2025-05" + } + }, + { + "id": "mistralai/mistral-medium-3", + "name": "Mistral Medium 3", + "provider": "openrouter", + "family": "mistral-medium", + "created_at": "2025-05-07 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.4, + "output_per_million": 2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-05-07", + "cost": { + "input": 0.4, + "output": 2 + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "knowledge": "2025-05" + } + }, + { + "id": "mistralai/mistral-medium-3.1", + "name": "Mistral Medium 3.1", + "provider": "openrouter", + "family": "mistral-medium", + "created_at": "2025-08-12 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 262144, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.4, + "output_per_million": 2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-08-12", + "cost": { + "input": 0.4, + "output": 2 + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "knowledge": "2025-05" + } + }, + { + "id": "mistralai/mistral-small-2603", + "name": "Mistral Small 4", + "provider": "openrouter", + "family": "mistral-small", + "created_at": "2026-03-16 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 262144, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.6 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2026-03-16", + "cost": { + "input": 0.15, + "output": 0.6 + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "knowledge": "2025-06" + } + }, + { + "id": "mistralai/mistral-small-3.1-24b-instruct", + "name": "Mistral Small 3.1 24B Instruct", + "provider": "openrouter", + "family": "mistral-small", + "created_at": "2025-03-17 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-03-17", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 8192 + }, + "knowledge": "2024-10" + } + }, + { + "id": "mistralai/mistral-small-3.2-24b-instruct", + "name": "Mistral Small 3.2 24B Instruct", + "provider": "openrouter", + "family": "mistral-small", + "created_at": "2025-06-20 00:00:00 +0530", + "context_window": 96000, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-06-20", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 96000, + "output": 8192 + }, + "knowledge": "2024-10" + } + }, + { + "id": "moonshotai/kimi-k2", + "name": "Kimi K2", + "provider": "openrouter", + "family": "kimi", + "created_at": "2025-07-11 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.55, + "output_per_million": 2.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-07-11", + "cost": { + "input": 0.55, + "output": 2.2 + }, + "limit": { + "context": 131072, + "output": 32768 + }, + "knowledge": "2024-10" + } + }, + { + "id": "moonshotai/kimi-k2-0905", + "name": "Kimi K2 Instruct 0905", + "provider": "openrouter", + "family": "kimi", + "created_at": "2025-09-05 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.6, + "output_per_million": 2.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-09-05", + "cost": { + "input": 0.6, + "output": 2.5 + }, + "limit": { + "context": 262144, + "output": 16384 + }, + "knowledge": "2024-10" + } + }, + { + "id": "moonshotai/kimi-k2-0905:exacto", + "name": "Kimi K2 Instruct 0905 (exacto)", + "provider": "openrouter", + "family": "kimi", + "created_at": "2025-09-05 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.6, + "output_per_million": 2.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-09-05", + "cost": { + "input": 0.6, + "output": 2.5 + }, + "limit": { + "context": 262144, + "output": 16384 + }, + "knowledge": "2024-10" + } + }, + { + "id": "moonshotai/kimi-k2-thinking", + "name": "Kimi K2 Thinking", + "provider": "openrouter", + "family": "kimi-thinking", + "created_at": "2025-11-06 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 262144, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.6, + "output_per_million": 2.5, + "cached_input_per_million": 0.15 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-11-06", + "interleaved": { + "field": "reasoning_details" + }, + "cost": { + "input": 0.6, + "output": 2.5, + "cache_read": 0.15 + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "knowledge": "2024-08" + } + }, + { + "id": "moonshotai/kimi-k2.5", + "name": "Kimi K2.5", + "provider": "openrouter", + "family": "kimi", + "created_at": "2026-01-27 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 262144, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.6, + "output_per_million": 3, + "cached_input_per_million": 0.1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2026-01-27", + "interleaved": { + "field": "reasoning_details" + }, + "cost": { + "input": 0.6, + "output": 3, + "cache_read": 0.1 + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "knowledge": "2025-01" + } + }, + { + "id": "nousresearch/hermes-3-llama-3.1-405b:free", + "name": "Hermes 3 405B Instruct (free)", + "provider": "openrouter", + "family": "hermes", + "created_at": "2024-08-16 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "reasoning" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2024-08-16", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "knowledge": "2023-12" + } + }, + { + "id": "nousresearch/hermes-4-405b", + "name": "Hermes 4 405B", + "provider": "openrouter", + "family": "hermes", + "created_at": "2025-08-25 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1, + "output_per_million": 3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-08-25", + "cost": { + "input": 1, + "output": 3 + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "knowledge": "2023-12" + } + }, + { + "id": "nousresearch/hermes-4-70b", + "name": "Hermes 4 70B", + "provider": "openrouter", + "family": "hermes", + "created_at": "2025-08-25 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.13, + "output_per_million": 0.4 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-08-25", + "cost": { + "input": 0.13, + "output": 0.4 + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "knowledge": "2023-12" + } + }, + { + "id": "nvidia/nemotron-3-nano-30b-a3b:free", + "name": "Nemotron 3 Nano 30B A3B (free)", + "provider": "openrouter", + "family": "nemotron", + "created_at": "2025-12-14 00:00:00 +0530", + "context_window": 256000, + "max_output_tokens": 256000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-01-31", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 256000, + "output": 256000 + }, + "knowledge": "2025-11" + } + }, + { + "id": "nvidia/nemotron-3-super-120b-a12b", + "name": "Nemotron 3 Super", + "provider": "openrouter", + "family": "nemotron", + "created_at": "2026-03-11 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 262144, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-03-11", + "cost": { + "input": 0.1, + "output": 0.5 + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "knowledge": "2024-04" + } + }, + { + "id": "nvidia/nemotron-3-super-120b-a12b:free", + "name": "Nemotron 3 Super (free)", + "provider": "openrouter", + "family": "nemotron", + "created_at": "2026-03-11 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 262144, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-03-11", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "knowledge": "2024-04" + } + }, + { + "id": "nvidia/nemotron-nano-12b-v2-vl:free", + "name": "Nemotron Nano 12B 2 VL (free)", + "provider": "openrouter", + "family": "nemotron", + "created_at": "2025-10-28 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 128000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-01-31", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "knowledge": "2025-11" + } + }, + { + "id": "nvidia/nemotron-nano-9b-v2", + "name": "nvidia-nemotron-nano-9b-v2", + "provider": "openrouter", + "family": "nemotron", + "created_at": "2025-08-18 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.04, + "output_per_million": 0.16 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-08-18", + "cost": { + "input": 0.04, + "output": 0.16 + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "knowledge": "2024-09" + } + }, + { + "id": "nvidia/nemotron-nano-9b-v2:free", + "name": "Nemotron Nano 9B V2 (free)", + "provider": "openrouter", + "family": "nemotron", + "created_at": "2025-09-05 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 128000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-08-18", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "knowledge": "2024-09" + } + }, + { + "id": "openai/gpt-4.1", + "name": "GPT-4.1", + "provider": "openrouter", + "family": "gpt", + "created_at": "2025-04-14 00:00:00 +0530", + "context_window": 1047576, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2, + "output_per_million": 8, + "cached_input_per_million": 0.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-04-14", + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "knowledge": "2024-04" + } + }, + { + "id": "openai/gpt-4.1-mini", + "name": "GPT-4.1 Mini", + "provider": "openrouter", + "family": "gpt-mini", + "created_at": "2025-04-14 00:00:00 +0530", + "context_window": 1047576, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.4, + "output_per_million": 1.6, + "cached_input_per_million": 0.1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-04-14", + "cost": { + "input": 0.4, + "output": 1.6, + "cache_read": 0.1 + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "knowledge": "2024-04" + } + }, + { + "id": "openai/gpt-4o-mini", + "name": "GPT-4o-mini", + "provider": "openrouter", + "family": "gpt-mini", + "created_at": "2024-07-18 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.6, + "cached_input_per_million": 0.08 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-07-18", + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.08 + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "knowledge": "2024-10" + } + }, + { + "id": "openai/gpt-5", + "name": "GPT-5", + "provider": "openrouter", + "family": "gpt", + "created_at": "2025-08-07 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2024-10-01", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-08-07", + "cost": { + "input": 1.25, + "output": 10 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "knowledge": "2024-10-01" + } + }, + { + "id": "openai/gpt-5-chat", + "name": "GPT-5 Chat (latest)", + "provider": "openrouter", + "family": "gpt-codex", + "created_at": "2025-08-07 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2024-09-30", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-08-07", + "cost": { + "input": 1.25, + "output": 10 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "knowledge": "2024-09-30" + } + }, + { + "id": "openai/gpt-5-codex", + "name": "GPT-5 Codex", + "provider": "openrouter", + "family": "gpt-codex", + "created_at": "2025-09-15 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2024-10-01", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10, + "cached_input_per_million": 0.125 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-09-15", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "knowledge": "2024-10-01" + } + }, + { + "id": "openai/gpt-5-image", + "name": "GPT-5 Image", + "provider": "openrouter", + "family": "gpt", + "created_at": "2025-10-14 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2024-10-01", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text", + "image" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 5, + "output_per_million": 10, + "cached_input_per_million": 1.25 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-10-14", + "cost": { + "input": 5, + "output": 10, + "cache_read": 1.25 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "knowledge": "2024-10-01" + } + }, + { + "id": "openai/gpt-5-mini", + "name": "GPT-5 Mini", + "provider": "openrouter", + "family": "gpt-mini", + "created_at": "2025-08-07 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2024-10-01", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.25, + "output_per_million": 2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-08-07", + "cost": { + "input": 0.25, + "output": 2 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "knowledge": "2024-10-01" + } + }, + { + "id": "openai/gpt-5-nano", + "name": "GPT-5 Nano", + "provider": "openrouter", + "family": "gpt-nano", + "created_at": "2025-08-07 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2024-10-01", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.05, + "output_per_million": 0.4 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-08-07", + "cost": { + "input": 0.05, + "output": 0.4 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "knowledge": "2024-10-01" + } + }, + { + "id": "openai/gpt-5-pro", + "name": "GPT-5 Pro", + "provider": "openrouter", + "family": "gpt-pro", + "created_at": "2025-10-06 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 272000, + "knowledge_cutoff": "2024-09-30", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 15, + "output_per_million": 120 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-10-06", + "cost": { + "input": 15, + "output": 120 + }, + "limit": { + "context": 400000, + "output": 272000 + }, + "knowledge": "2024-09-30" + } + }, + { + "id": "openai/gpt-5.1", + "name": "GPT-5.1", + "provider": "openrouter", + "family": "gpt", + "created_at": "2025-11-13 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2024-09-30", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10, + "cached_input_per_million": 0.125 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-11-13", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "knowledge": "2024-09-30" + } + }, + { + "id": "openai/gpt-5.1-chat", + "name": "GPT-5.1 Chat", + "provider": "openrouter", + "family": "gpt-codex", + "created_at": "2025-11-13 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 16384, + "knowledge_cutoff": "2024-09-30", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10, + "cached_input_per_million": 0.125 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-11-13", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "knowledge": "2024-09-30" + } + }, + { + "id": "openai/gpt-5.1-codex", + "name": "GPT-5.1-Codex", + "provider": "openrouter", + "family": "gpt-codex", + "created_at": "2025-11-13 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2024-09-30", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10, + "cached_input_per_million": 0.125 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-11-13", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "knowledge": "2024-09-30" + } + }, + { + "id": "openai/gpt-5.1-codex-max", + "name": "GPT-5.1-Codex-Max", + "provider": "openrouter", + "family": "gpt-codex", + "created_at": "2025-11-13 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2024-09-30", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.1, + "output_per_million": 9, + "cached_input_per_million": 0.11 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-11-13", + "cost": { + "input": 1.1, + "output": 9, + "cache_read": 0.11 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "knowledge": "2024-09-30" + } + }, + { + "id": "openai/gpt-5.1-codex-mini", + "name": "GPT-5.1-Codex-Mini", + "provider": "openrouter", + "family": "gpt-codex", + "created_at": "2025-11-13 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 100000, + "knowledge_cutoff": "2024-09-30", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.25, + "output_per_million": 2, + "cached_input_per_million": 0.025 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-11-13", + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.025 + }, + "limit": { + "context": 400000, + "output": 100000 + }, + "knowledge": "2024-09-30" + } + }, + { + "id": "openai/gpt-5.2", + "name": "GPT-5.2", + "provider": "openrouter", + "family": "gpt", + "created_at": "2025-12-11 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2025-08-31", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.75, + "output_per_million": 14, + "cached_input_per_million": 0.175 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-12-11", + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "knowledge": "2025-08-31" + } + }, + { + "id": "openai/gpt-5.2-chat", + "name": "GPT-5.2 Chat", + "provider": "openrouter", + "family": "gpt-codex", + "created_at": "2025-12-11 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 16384, + "knowledge_cutoff": "2025-08-31", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.75, + "output_per_million": 14, + "cached_input_per_million": 0.175 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-12-11", + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "knowledge": "2025-08-31" + } + }, + { + "id": "openai/gpt-5.2-codex", + "name": "GPT-5.2-Codex", + "provider": "openrouter", + "family": "gpt-codex", + "created_at": "2026-01-14 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2025-08-31", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.75, + "output_per_million": 14, + "cached_input_per_million": 0.175 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-01-14", + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "knowledge": "2025-08-31" + } + }, + { + "id": "openai/gpt-5.2-pro", + "name": "GPT-5.2 Pro", + "provider": "openrouter", + "family": "gpt-pro", + "created_at": "2025-12-11 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2025-08-31", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 21, + "output_per_million": 168 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2025-12-11", + "cost": { + "input": 21, + "output": 168 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "knowledge": "2025-08-31" + } + }, + { + "id": "openai/gpt-5.3-codex", + "name": "GPT-5.3-Codex", + "provider": "openrouter", + "family": "gpt-codex", + "created_at": "2026-02-24 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2025-08-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.75, + "output_per_million": 14, + "cached_input_per_million": 0.175 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2026-02-24", + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "knowledge": "2025-08-31" + } + }, + { + "id": "openai/gpt-5.4", + "name": "GPT-5.4", + "provider": "openrouter", + "family": "gpt", + "created_at": "2026-03-05 00:00:00 +0530", + "context_window": 1050000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2025-08-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2.5, + "output_per_million": 15, + "cached_input_per_million": 0.25 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2026-03-05", + "cost": { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "context_over_200k": { + "input": 5, + "output": 22.5, + "cache_read": 0.5 + } + }, + "limit": { + "context": 1050000, + "input": 922000, + "output": 128000 + }, + "knowledge": "2025-08-31" + } + }, + { + "id": "openai/gpt-5.4-mini", + "name": "GPT-5.4 Mini", + "provider": "openrouter", + "family": "gpt-mini", + "created_at": "2026-03-17 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2025-08-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.00000075, + "output_per_million": 0.0000045, + "cached_input_per_million": 0.000000075 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-03-17", + "cost": { + "input": 0.00000075, + "output": 0.0000045, + "cache_read": 0.000000075 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "knowledge": "2025-08-31" + } + }, + { + "id": "openai/gpt-5.4-nano", + "name": "GPT-5.4 Nano", + "provider": "openrouter", + "family": "gpt-nano", + "created_at": "2026-03-17 00:00:00 +0530", + "context_window": 400000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2025-08-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.0000002, + "output_per_million": 0.00000125, + "cached_input_per_million": 0.00000002 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-03-17", + "cost": { + "input": 0.0000002, + "output": 0.00000125, + "cache_read": 0.00000002 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "knowledge": "2025-08-31" + } + }, + { + "id": "openai/gpt-5.4-pro", + "name": "GPT-5.4 Pro", + "provider": "openrouter", + "family": "gpt-pro", + "created_at": "2026-03-05 00:00:00 +0530", + "context_window": 1050000, + "max_output_tokens": 128000, + "knowledge_cutoff": "2025-08-31", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 30, + "output_per_million": 180, + "cached_input_per_million": 30 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": false, + "last_updated": "2026-03-05", + "cost": { + "input": 30, + "output": 180, + "cache_read": 30 + }, + "limit": { + "context": 1050000, + "input": 922000, + "output": 128000 + }, + "knowledge": "2025-08-31" + } + }, + { + "id": "openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "provider": "openrouter", + "family": "gpt-oss", + "created_at": "2025-08-05 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.072, + "output_per_million": 0.28 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-08-05", + "cost": { + "input": 0.072, + "output": 0.28 + }, + "limit": { + "context": 131072, + "output": 32768 + } + } + }, + { + "id": "openai/gpt-oss-120b:exacto", + "name": "GPT OSS 120B (exacto)", + "provider": "openrouter", + "family": "gpt-oss", + "created_at": "2025-08-05 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.05, + "output_per_million": 0.24 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-08-05", + "cost": { + "input": 0.05, + "output": 0.24 + }, + "limit": { + "context": 131072, + "output": 32768 + } + } + }, + { + "id": "openai/gpt-oss-120b:free", + "name": "gpt-oss-120b (free)", + "provider": "openrouter", + "family": "gpt-oss", + "created_at": "2025-08-05 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-08-05", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 32768 + } + } + }, + { + "id": "openai/gpt-oss-20b", + "name": "GPT OSS 20B", + "provider": "openrouter", + "family": "gpt-oss", + "created_at": "2025-08-05 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.05, + "output_per_million": 0.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-08-05", + "cost": { + "input": 0.05, + "output": 0.2 + }, + "limit": { + "context": 131072, + "output": 32768 + } + } + }, + { + "id": "openai/gpt-oss-20b:free", + "name": "gpt-oss-20b (free)", + "provider": "openrouter", + "family": "gpt-oss", + "created_at": "2025-08-05 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-01-31", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 32768 + } + } + }, + { + "id": "openai/gpt-oss-safeguard-20b", + "name": "GPT OSS Safeguard 20B", + "provider": "openrouter", + "family": "gpt-oss", + "created_at": "2025-10-29 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.075, + "output_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2025-10-29", + "cost": { + "input": 0.075, + "output": 0.3 + }, + "limit": { + "context": 131072, + "output": 65536 + } + } + }, + { + "id": "openai/o4-mini", + "name": "o4 Mini", + "provider": "openrouter", + "family": "o-mini", + "created_at": "2025-04-16 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 100000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.1, + "output_per_million": 4.4, + "cached_input_per_million": 0.28 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-04-16", + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.28 + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "knowledge": "2024-06" + } + }, + { + "id": "openrouter/elephant-alpha", + "name": "Elephant (free)", + "provider": "openrouter", + "family": "elephant", + "created_at": "2026-04-13 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2026-04-13", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 32768 + } + } + }, + { + "id": "openrouter/free", + "name": "Free Models Router", + "provider": "openrouter", + "family": null, + "created_at": "2026-02-01 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 8000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-02-01", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 200000, + "input": 200000, + "output": 8000 + } + } + }, + { + "id": "prime-intellect/intellect-3", + "name": "Intellect 3", + "provider": "openrouter", + "family": "glm", + "created_at": "2025-01-15 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.2, + "output_per_million": 1.1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-01-15", + "cost": { + "input": 0.2, + "output": 1.1 + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "knowledge": "2024-10" + } + }, + { + "id": "qwen/qwen-2.5-coder-32b-instruct", + "name": "Qwen2.5 Coder 32B Instruct", + "provider": "openrouter", + "family": "qwen", + "created_at": "2024-11-11 00:00:00 +0530", + "context_window": 32768, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "structured_output" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2024-11-11", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 32768, + "output": 8192 + }, + "knowledge": "2024-10" + } + }, + { + "id": "qwen/qwen2.5-vl-72b-instruct", + "name": "Qwen2.5 VL 72B Instruct", + "provider": "openrouter", + "family": "qwen", + "created_at": "2025-02-01 00:00:00 +0530", + "context_window": 32768, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "structured_output", + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-02-01", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 32768, + "output": 8192 + }, + "knowledge": "2024-10" + } + }, + { + "id": "qwen/qwen3-235b-a22b-07-25", + "name": "Qwen3 235B A22B Instruct 2507", + "provider": "openrouter", + "family": "qwen", + "created_at": "2025-04-28 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.85 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-07-21", + "cost": { + "input": 0.15, + "output": 0.85 + }, + "limit": { + "context": 262144, + "output": 131072 + }, + "knowledge": "2025-04" + } + }, + { + "id": "qwen/qwen3-235b-a22b-thinking-2507", + "name": "Qwen3 235B A22B Thinking 2507", + "provider": "openrouter", + "family": "qwen", + "created_at": "2025-07-25 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 81920, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.078, + "output_per_million": 0.312 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-07-25", + "cost": { + "input": 0.078, + "output": 0.312 + }, + "limit": { + "context": 262144, + "output": 81920 + }, + "knowledge": "2025-04" + } + }, + { + "id": "qwen/qwen3-30b-a3b-instruct-2507", + "name": "Qwen3 30B A3B Instruct 2507", + "provider": "openrouter", + "family": "qwen", + "created_at": "2025-07-29 00:00:00 +0530", + "context_window": 262000, + "max_output_tokens": 262000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.2, + "output_per_million": 0.8 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-07-29", + "cost": { + "input": 0.2, + "output": 0.8 + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "knowledge": "2025-04" + } + }, + { + "id": "qwen/qwen3-30b-a3b-thinking-2507", + "name": "Qwen3 30B A3B Thinking 2507", + "provider": "openrouter", + "family": "qwen", + "created_at": "2025-07-29 00:00:00 +0530", + "context_window": 262000, + "max_output_tokens": 262000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.2, + "output_per_million": 0.8 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-07-29", + "cost": { + "input": 0.2, + "output": 0.8 + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "knowledge": "2025-04" + } + }, + { + "id": "qwen/qwen3-coder", + "name": "Qwen3 Coder", + "provider": "openrouter", + "family": "qwen", + "created_at": "2025-07-23 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 66536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.3, + "output_per_million": 1.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-07-23", + "cost": { + "input": 0.3, + "output": 1.2 + }, + "limit": { + "context": 262144, + "output": 66536 + }, + "knowledge": "2025-04" + } + }, + { + "id": "qwen/qwen3-coder-30b-a3b-instruct", + "name": "Qwen3 Coder 30B A3B Instruct", + "provider": "openrouter", + "family": "qwen", + "created_at": "2025-07-31 00:00:00 +0530", + "context_window": 160000, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.07, + "output_per_million": 0.27 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-07-31", + "cost": { + "input": 0.07, + "output": 0.27 + }, + "limit": { + "context": 160000, + "output": 65536 + }, + "knowledge": "2025-04" + } + }, + { + "id": "qwen/qwen3-coder-flash", + "name": "Qwen3 Coder Flash", + "provider": "openrouter", + "family": "qwen", + "created_at": "2025-07-23 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 66536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.3, + "output_per_million": 1.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2025-07-23", + "cost": { + "input": 0.3, + "output": 1.5 + }, + "limit": { + "context": 128000, + "output": 66536 + }, + "knowledge": "2025-04" + } + }, + { + "id": "qwen/qwen3-coder:exacto", + "name": "Qwen3 Coder (exacto)", + "provider": "openrouter", + "family": "qwen", + "created_at": "2025-07-23 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.38, + "output_per_million": 1.53 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-07-23", + "cost": { + "input": 0.38, + "output": 1.53 + }, + "limit": { + "context": 131072, + "output": 32768 + }, + "knowledge": "2025-04" + } + }, + { + "id": "qwen/qwen3-max", + "name": "Qwen3 Max", + "provider": "openrouter", + "family": "qwen", + "created_at": "2025-09-05 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.2, + "output_per_million": 6 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2025-09-05", + "cost": { + "input": 1.2, + "output": 6 + }, + "limit": { + "context": 262144, + "output": 32768 + } + } + }, + { + "id": "qwen/qwen3-next-80b-a3b-instruct", + "name": "Qwen3 Next 80B A3B Instruct", + "provider": "openrouter", + "family": "qwen", + "created_at": "2025-09-11 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 262144, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.14, + "output_per_million": 1.4 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-09-11", + "cost": { + "input": 0.14, + "output": 1.4 + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "knowledge": "2025-04" + } + }, + { + "id": "qwen/qwen3-next-80b-a3b-thinking", + "name": "Qwen3 Next 80B A3B Thinking", + "provider": "openrouter", + "family": "qwen", + "created_at": "2025-09-11 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 262144, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.14, + "output_per_million": 1.4 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-09-11", + "cost": { + "input": 0.14, + "output": 1.4 + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "knowledge": "2025-04" + } + }, + { + "id": "qwen/qwen3.5-397b-a17b", + "name": "Qwen3.5 397B A17B", + "provider": "openrouter", + "family": "qwen", + "created_at": "2026-02-16 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.6, + "output_per_million": 3.6 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2026-02-16", + "cost": { + "input": 0.6, + "output": 3.6 + }, + "limit": { + "context": 262144, + "output": 65536 + }, + "knowledge": "2025-04" + } + }, + { + "id": "qwen/qwen3.5-flash-02-23", + "name": "Qwen: Qwen3.5-Flash", + "provider": "openrouter", + "family": "qwen", + "created_at": "2026-02-25 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.065, + "output_per_million": 0.26 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-02-25", + "cost": { + "input": 0.065, + "output": 0.26 + }, + "limit": { + "context": 1000000, + "output": 65536 + } + } + }, + { + "id": "qwen/qwen3.5-plus-02-15", + "name": "Qwen3.5 Plus 2026-02-15", + "provider": "openrouter", + "family": "qwen", + "created_at": "2026-02-16 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.4, + "output_per_million": 2.4 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-02-16", + "cost": { + "input": 0.4, + "output": 2.4 + }, + "limit": { + "context": 1000000, + "output": 65536 + }, + "knowledge": "2025-04" + } + }, + { + "id": "qwen/qwen3.6-plus", + "name": "Qwen3.6 Plus", + "provider": "openrouter", + "family": "qwen", + "created_at": "2026-04-02 00:00:00 +0530", + "context_window": 1000000, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.325, + "output_per_million": 1.95 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-04-02", + "cost": { + "input": 0.325, + "output": 1.95 + }, + "limit": { + "context": 1000000, + "output": 65536 + }, + "knowledge": "2025-04" + } + }, + { + "id": "sourceful/riverflow-v2-fast-preview", + "name": "Riverflow V2 Fast Preview", + "provider": "openrouter", + "family": "sourceful", + "created_at": "2025-12-08 00:00:00 +0530", + "context_window": 8192, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "image" + ] + }, + "capabilities": [ + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-01-28", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "knowledge": "2025-06" + } + }, + { + "id": "sourceful/riverflow-v2-max-preview", + "name": "Riverflow V2 Max Preview", + "provider": "openrouter", + "family": "sourceful", + "created_at": "2025-12-08 00:00:00 +0530", + "context_window": 8192, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "image" + ] + }, + "capabilities": [ + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-01-28", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "knowledge": "2025-06" + } + }, + { + "id": "sourceful/riverflow-v2-standard-preview", + "name": "Riverflow V2 Standard Preview", + "provider": "openrouter", + "family": "sourceful", + "created_at": "2025-12-08 00:00:00 +0530", + "context_window": 8192, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "image" + ] + }, + "capabilities": [ + "vision" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-01-28", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "knowledge": "2025-06" + } + }, + { + "id": "stepfun/step-3.5-flash", + "name": "Step 3.5 Flash", + "provider": "openrouter", + "family": "step", + "created_at": "2026-01-29 00:00:00 +0530", + "context_window": 256000, + "max_output_tokens": 256000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.3, + "cached_input_per_million": 0.02 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-01-29", + "cost": { + "input": 0.1, + "output": 0.3, + "cache_read": 0.02 + }, + "limit": { + "context": 256000, + "output": 256000 + }, + "knowledge": "2025-01" + } + }, + { + "id": "x-ai/grok-3", + "name": "Grok 3", + "provider": "openrouter", + "family": "grok", + "created_at": "2025-02-17 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.75 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2025-02-17", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.75, + "cache_write": 15 + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "knowledge": "2024-11" + } + }, + { + "id": "x-ai/grok-3-beta", + "name": "Grok 3 Beta", + "provider": "openrouter", + "family": "grok", + "created_at": "2025-02-17 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.75 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2025-02-17", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.75, + "cache_write": 15 + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "knowledge": "2024-11" + } + }, + { + "id": "x-ai/grok-3-mini", + "name": "Grok 3 Mini", + "provider": "openrouter", + "family": "grok", + "created_at": "2025-02-17 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.3, + "output_per_million": 0.5, + "cached_input_per_million": 0.075 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2025-02-17", + "cost": { + "input": 0.3, + "output": 0.5, + "cache_read": 0.075, + "cache_write": 0.5 + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "knowledge": "2024-11" + } + }, + { + "id": "x-ai/grok-3-mini-beta", + "name": "Grok 3 Mini Beta", + "provider": "openrouter", + "family": "grok", + "created_at": "2025-02-17 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.3, + "output_per_million": 0.5, + "cached_input_per_million": 0.075 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2025-02-17", + "cost": { + "input": 0.3, + "output": 0.5, + "cache_read": 0.075, + "cache_write": 0.5 + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "knowledge": "2024-11" + } + }, + { + "id": "x-ai/grok-4", + "name": "Grok 4", + "provider": "openrouter", + "family": "grok", + "created_at": "2025-07-09 00:00:00 +0530", + "context_window": 256000, + "max_output_tokens": 64000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15, + "cached_input_per_million": 0.75 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2025-07-09", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.75, + "cache_write": 15 + }, + "limit": { + "context": 256000, + "output": 64000 + }, + "knowledge": "2025-07" + } + }, + { + "id": "x-ai/grok-4-fast", + "name": "Grok 4 Fast", + "provider": "openrouter", + "family": "grok", + "created_at": "2025-08-19 00:00:00 +0530", + "context_window": 2000000, + "max_output_tokens": 30000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.2, + "output_per_million": 0.5, + "cached_input_per_million": 0.05 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2025-08-19", + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05, + "cache_write": 0.05 + }, + "limit": { + "context": 2000000, + "output": 30000 + }, + "knowledge": "2024-11" + } + }, + { + "id": "x-ai/grok-4.1-fast", + "name": "Grok 4.1 Fast", + "provider": "openrouter", + "family": "grok", + "created_at": "2025-11-19 00:00:00 +0530", + "context_window": 2000000, + "max_output_tokens": 30000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.2, + "output_per_million": 0.5, + "cached_input_per_million": 0.05 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2025-11-19", + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05, + "cache_write": 0.05 + }, + "limit": { + "context": 2000000, + "output": 30000 + }, + "knowledge": "2024-11" + } + }, + { + "id": "x-ai/grok-4.20-beta", + "name": "Grok 4.20 Beta", + "provider": "openrouter", + "family": "grok", + "created_at": "2026-03-12 00:00:00 +0530", + "context_window": 2000000, + "max_output_tokens": 30000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2, + "output_per_million": 6, + "cached_input_per_million": 0.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-03-12", + "status": "beta", + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.2, + "context_over_200k": { + "input": 4, + "output": 12 + } + }, + "limit": { + "context": 2000000, + "output": 30000 + } + } + }, + { + "id": "x-ai/grok-4.20-multi-agent-beta", + "name": "Grok 4.20 Multi - Agent Beta", + "provider": "openrouter", + "family": "grok", + "created_at": "2026-03-12 00:00:00 +0530", + "context_window": 2000000, + "max_output_tokens": 30000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2, + "output_per_million": 6, + "cached_input_per_million": 0.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-03-12", + "status": "beta", + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.2, + "context_over_200k": { + "input": 4, + "output": 12 + } + }, + "limit": { + "context": 2000000, + "output": 30000 + } + } + }, + { + "id": "x-ai/grok-code-fast-1", + "name": "Grok Code Fast 1", + "provider": "openrouter", + "family": "grok", + "created_at": "2025-08-26 00:00:00 +0530", + "context_window": 256000, + "max_output_tokens": 10000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.2, + "output_per_million": 1.5, + "cached_input_per_million": 0.02 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2025-08-26", + "cost": { + "input": 0.2, + "output": 1.5, + "cache_read": 0.02 + }, + "limit": { + "context": 256000, + "output": 10000 + }, + "knowledge": "2025-08" + } + }, + { + "id": "xiaomi/mimo-v2-flash", + "name": "MiMo-V2-Flash", + "provider": "openrouter", + "family": "mimo", + "created_at": "2025-12-14 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.3, + "cached_input_per_million": 0.01 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-12-14", + "cost": { + "input": 0.1, + "output": 0.3, + "cache_read": 0.01 + }, + "limit": { + "context": 262144, + "output": 65536 + }, + "knowledge": "2024-12" + } + }, + { + "id": "xiaomi/mimo-v2-omni", + "name": "MiMo-V2-Omni", + "provider": "openrouter", + "family": "mimo", + "created_at": "2026-03-18 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video", + "audio" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.4, + "output_per_million": 2, + "cached_input_per_million": 0.08 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2026-03-18", + "interleaved": { + "field": "reasoning_details" + }, + "cost": { + "input": 0.4, + "output": 2, + "cache_read": 0.08 + }, + "limit": { + "context": 262144, + "output": 65536 + } + } + }, + { + "id": "xiaomi/mimo-v2-pro", + "name": "MiMo-V2-Pro", + "provider": "openrouter", + "family": "mimo", + "created_at": "2026-03-18 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1, + "output_per_million": 3, + "cached_input_per_million": 0.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-03-18", + "interleaved": { + "field": "reasoning_details" + }, + "cost": { + "input": 1, + "output": 3, + "cache_read": 0.2 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + } + }, + { + "id": "z-ai/glm-4.5", + "name": "GLM 4.5", + "provider": "openrouter", + "family": "glm", + "created_at": "2025-07-28 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 96000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.6, + "output_per_million": 2.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-07-28", + "cost": { + "input": 0.6, + "output": 2.2 + }, + "limit": { + "context": 128000, + "output": 96000 + }, + "knowledge": "2025-04" + } + }, + { + "id": "z-ai/glm-4.5-air", + "name": "GLM 4.5 Air", + "provider": "openrouter", + "family": "glm-air", + "created_at": "2025-07-28 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 96000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.2, + "output_per_million": 1.1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-07-28", + "cost": { + "input": 0.2, + "output": 1.1 + }, + "limit": { + "context": 128000, + "output": 96000 + }, + "knowledge": "2025-04" + } + }, + { + "id": "z-ai/glm-4.5-air:free", + "name": "GLM 4.5 Air (free)", + "provider": "openrouter", + "family": "glm-air", + "created_at": "2025-07-28 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 96000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "reasoning" + ], + "pricing": {}, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-07-28", + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 96000 + }, + "knowledge": "2025-04" + } + }, + { + "id": "z-ai/glm-4.5v", + "name": "GLM 4.5V", + "provider": "openrouter", + "family": "glm", + "created_at": "2025-08-11 00:00:00 +0530", + "context_window": 64000, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.6, + "output_per_million": 1.8 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-08-11", + "cost": { + "input": 0.6, + "output": 1.8 + }, + "limit": { + "context": 64000, + "output": 16384 + }, + "knowledge": "2025-04" + } + }, + { + "id": "z-ai/glm-4.6", + "name": "GLM 4.6", + "provider": "openrouter", + "family": "glm", + "created_at": "2025-09-30 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 128000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.6, + "output_per_million": 2.2, + "cached_input_per_million": 0.11 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-09-30", + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.11 + }, + "limit": { + "context": 200000, + "output": 128000 + }, + "knowledge": "2025-09" + } + }, + { + "id": "z-ai/glm-4.6:exacto", + "name": "GLM 4.6 (exacto)", + "provider": "openrouter", + "family": "glm", + "created_at": "2025-09-30 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 128000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.6, + "output_per_million": 1.9, + "cached_input_per_million": 0.11 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-09-30", + "cost": { + "input": 0.6, + "output": 1.9, + "cache_read": 0.11 + }, + "limit": { + "context": 200000, + "output": 128000 + }, + "knowledge": "2025-09" + } + }, + { + "id": "z-ai/glm-4.7", + "name": "GLM-4.7", + "provider": "openrouter", + "family": "glm", + "created_at": "2025-12-22 00:00:00 +0530", + "context_window": 204800, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.6, + "output_per_million": 2.2, + "cached_input_per_million": 0.11 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-12-22", + "interleaved": { + "field": "reasoning_details" + }, + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.11 + }, + "limit": { + "context": 204800, + "output": 131072 + }, + "knowledge": "2025-04" + } + }, + { + "id": "z-ai/glm-4.7-flash", + "name": "GLM-4.7-Flash", + "provider": "openrouter", + "family": "glm", + "created_at": "2026-01-19 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 65535, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.07, + "output_per_million": 0.4 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-01-19", + "interleaved": { + "field": "reasoning_details" + }, + "cost": { + "input": 0.07, + "output": 0.4 + }, + "limit": { + "context": 200000, + "output": 65535 + } + } + }, + { + "id": "z-ai/glm-5", + "name": "GLM-5", + "provider": "openrouter", + "family": "glm", + "created_at": "2026-02-12 00:00:00 +0530", + "context_window": 202752, + "max_output_tokens": 131000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1, + "output_per_million": 3.2, + "cached_input_per_million": 0.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-02-12", + "interleaved": { + "field": "reasoning_content" + }, + "cost": { + "input": 1, + "output": 3.2, + "cache_read": 0.2 + }, + "limit": { + "context": 202752, + "output": 131000 + } + } + }, + { + "id": "z-ai/glm-5-turbo", + "name": "GLM-5-Turbo", + "provider": "openrouter", + "family": "glm", + "created_at": "2026-03-16 00:00:00 +0530", + "context_window": 202752, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.96, + "output_per_million": 3.2, + "cached_input_per_million": 0.192 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2026-03-16", + "interleaved": { + "field": "reasoning_content" + }, + "cost": { + "input": 0.96, + "output": 3.2, + "cache_read": 0.192, + "cache_write": 0 + }, + "limit": { + "context": 202752, + "output": 131072 + } + } + }, + { + "id": "z-ai/glm-5.1", + "name": "GLM-5.1", + "provider": "openrouter", + "family": "glm", + "created_at": "2026-04-07 00:00:00 +0530", + "context_window": 202752, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.4, + "output_per_million": 4.4, + "cached_input_per_million": 0.26 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "openrouter", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-04-07", + "interleaved": { + "field": "reasoning_content" + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.26 + }, + "limit": { + "context": 202752, + "output": 131072 + } + } + }, + { + "id": "sonar", + "name": "Sonar", + "provider": "perplexity", + "family": "sonar", + "created_at": "2024-01-01 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": "2025-09-01", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1, + "output_per_million": 1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "perplexity", + "open_weights": false, + "attachment": false, + "temperature": true, + "last_updated": "2025-09-01", + "cost": { + "input": 1, + "output": 1 + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "knowledge": "2025-09-01" + } + }, + { + "id": "sonar-deep-research", + "name": "Perplexity Sonar Deep Research", + "provider": "perplexity", + "family": null, + "created_at": "2025-02-01 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2, + "output_per_million": 8, + "reasoning_output_per_million": 3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "perplexity", + "open_weights": false, + "attachment": false, + "temperature": false, + "last_updated": "2025-09-01", + "cost": { + "input": 2, + "output": 8, + "reasoning": 3 + }, + "limit": { + "context": 128000, + "output": 32768 + }, + "knowledge": "2025-01" + } + }, + { + "id": "sonar-pro", + "name": "Sonar Pro", + "provider": "perplexity", + "family": "sonar-pro", + "created_at": "2024-01-01 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 8192, + "knowledge_cutoff": "2025-09-01", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 3, + "output_per_million": 15 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "perplexity", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-09-01", + "cost": { + "input": 3, + "output": 15 + }, + "limit": { + "context": 200000, + "output": 8192 + }, + "knowledge": "2025-09-01" + } + }, + { + "id": "sonar-reasoning-pro", + "name": "Sonar Reasoning Pro", + "provider": "perplexity", + "family": "sonar-reasoning", + "created_at": "2024-01-01 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 4096, + "knowledge_cutoff": "2025-09-01", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2, + "output_per_million": 8 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "perplexity", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-09-01", + "cost": { + "input": 2, + "output": 8 + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "knowledge": "2025-09-01" + } + }, + { + "id": "deepseek-ai/deepseek-v3.1-maas", + "name": "DeepSeek V3.1", + "provider": "vertexai", + "family": "deepseek", + "created_at": "2025-08-28 00:00:00 +0530", + "context_window": 163840, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.6, + "output_per_million": 1.7 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-08-28", + "cost": { + "input": 0.6, + "output": 1.7 + }, + "limit": { + "context": 163840, + "output": 32768 + } + } + }, + { + "id": "deepseek-ai/deepseek-v3.2-maas", + "name": "DeepSeek V3.2", + "provider": "vertexai", + "family": "deepseek", + "created_at": "2025-12-17 00:00:00 +0530", + "context_window": 163840, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.56, + "output_per_million": 1.68, + "cached_input_per_million": 0.056 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-04-04", + "cost": { + "input": 0.56, + "output": 1.68, + "cache_read": 0.056 + }, + "limit": { + "context": 163840, + "output": 65536 + } + } + }, + { + "id": "gemini-2.0-flash", + "name": "Gemini 2.0 Flash", + "provider": "vertexai", + "family": "gemini-flash", + "created_at": "2024-12-11 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.6, + "cached_input_per_million": 0.025 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-12-11", + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.025 + }, + "limit": { + "context": 1048576, + "output": 8192 + }, + "knowledge": "2024-06" + } + }, + { + "id": "gemini-2.0-flash-lite", + "name": "Gemini 2.0 Flash Lite", + "provider": "vertexai", + "family": "gemini-flash-lite", + "created_at": "2024-12-11 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.075, + "output_per_million": 0.3 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2024-12-11", + "cost": { + "input": 0.075, + "output": 0.3 + }, + "limit": { + "context": 1048576, + "output": 8192 + }, + "knowledge": "2024-06" + } + }, + { + "id": "gemini-2.5-flash", + "name": "Gemini 2.5 Flash", + "provider": "vertexai", + "family": "gemini-flash", + "created_at": "2025-06-17 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.3, + "output_per_million": 2.5, + "cached_input_per_million": 0.075 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-06-17", + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "cache_write": 0.383 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-2.5-flash-lite", + "name": "Gemini 2.5 Flash Lite", + "provider": "vertexai", + "family": "gemini-flash-lite", + "created_at": "2025-06-17 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.4, + "cached_input_per_million": 0.025 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-06-17", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-2.5-flash-lite-preview-06-17", + "name": "Gemini 2.5 Flash Lite Preview 06-17", + "provider": "vertexai", + "family": "gemini-flash-lite", + "created_at": "2025-06-17 00:00:00 +0530", + "context_window": 65536, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.4, + "cached_input_per_million": 0.025 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-06-17", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + }, + "limit": { + "context": 65536, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-2.5-flash-lite-preview-09-2025", + "name": "Gemini 2.5 Flash Lite Preview 09-25", + "provider": "vertexai", + "family": "gemini-flash-lite", + "created_at": "2025-09-25 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.4, + "cached_input_per_million": 0.025 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-09-25", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-2.5-flash-preview-04-17", + "name": "Gemini 2.5 Flash Preview 04-17", + "provider": "vertexai", + "family": "gemini-flash", + "created_at": "2025-04-17 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.6, + "cached_input_per_million": 0.0375 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-04-17", + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.0375 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-2.5-flash-preview-05-20", + "name": "Gemini 2.5 Flash Preview 05-20", + "provider": "vertexai", + "family": "gemini-flash", + "created_at": "2025-05-20 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15, + "output_per_million": 0.6, + "cached_input_per_million": 0.0375 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-05-20", + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.0375 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-2.5-flash-preview-09-2025", + "name": "Gemini 2.5 Flash Preview 09-25", + "provider": "vertexai", + "family": "gemini-flash", + "created_at": "2025-09-25 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.3, + "output_per_million": 2.5, + "cached_input_per_million": 0.075 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-09-25", + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "cache_write": 0.383 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-2.5-pro", + "name": "Gemini 2.5 Pro", + "provider": "vertexai", + "family": "gemini-pro", + "created_at": "2025-03-20 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10, + "cached_input_per_million": 0.31 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-06-05", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.31 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-2.5-pro-preview-05-06", + "name": "Gemini 2.5 Pro Preview 05-06", + "provider": "vertexai", + "family": "gemini-pro", + "created_at": "2025-05-06 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10, + "cached_input_per_million": 0.31 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-05-06", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.31 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-2.5-pro-preview-06-05", + "name": "Gemini 2.5 Pro Preview 06-05", + "provider": "vertexai", + "family": "gemini-pro", + "created_at": "2025-06-05 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1.25, + "output_per_million": 10, + "cached_input_per_million": 0.31 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-06-05", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.31 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-3-flash-preview", + "name": "Gemini 3 Flash Preview", + "provider": "vertexai", + "family": "gemini-flash", + "created_at": "2025-12-17 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video", + "audio", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.5, + "output_per_million": 3, + "cached_input_per_million": 0.05 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-12-17", + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "context_over_200k": { + "input": 0.5, + "output": 3, + "cache_read": 0.05 + } + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-3-pro-preview", + "name": "Gemini 3 Pro Preview", + "provider": "vertexai", + "family": "gemini-pro", + "created_at": "2025-11-18 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video", + "audio", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2, + "output_per_million": 12, + "cached_input_per_million": 0.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-11-18", + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "context_over_200k": { + "input": 4, + "output": 18, + "cache_read": 0.4 + } + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-3.1-pro-preview", + "name": "Gemini 3.1 Pro Preview", + "provider": "vertexai", + "family": "gemini-pro", + "created_at": "2026-02-19 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video", + "audio", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2, + "output_per_million": 12, + "cached_input_per_million": 0.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-02-19", + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "context_over_200k": { + "input": 4, + "output": 18, + "cache_read": 0.4 + } + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-3.1-pro-preview-customtools", + "name": "Gemini 3.1 Pro Preview Custom Tools", + "provider": "vertexai", + "family": "gemini-pro", + "created_at": "2026-02-19 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "video", + "audio", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 2, + "output_per_million": 12, + "cached_input_per_million": 0.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2026-02-19", + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "context_over_200k": { + "input": 4, + "output": 18, + "cache_read": 0.4 + } + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-embedding-001", + "name": "Gemini Embedding 001", + "provider": "vertexai", + "family": "gemini", + "created_at": "2025-05-20 00:00:00 +0530", + "context_window": 2048, + "max_output_tokens": 3072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.15 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": false, + "attachment": false, + "temperature": false, + "last_updated": "2025-05-20", + "cost": { + "input": 0.15, + "output": 0 + }, + "limit": { + "context": 2048, + "output": 3072 + }, + "knowledge": "2025-05" + } + }, + { + "id": "gemini-flash-latest", + "name": "Gemini Flash Latest", + "provider": "vertexai", + "family": "gemini-flash", + "created_at": "2025-09-25 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.3, + "output_per_million": 2.5, + "cached_input_per_million": 0.075 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-09-25", + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "cache_write": 0.383 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "gemini-flash-lite-latest", + "name": "Gemini Flash-Lite Latest", + "provider": "vertexai", + "family": "gemini-flash-lite", + "created_at": "2025-09-25 00:00:00 +0530", + "context_window": 1048576, + "max_output_tokens": 65536, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.1, + "output_per_million": 0.4, + "cached_input_per_million": 0.025 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": false, + "attachment": true, + "temperature": true, + "last_updated": "2025-09-25", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "knowledge": "2025-01" + } + }, + { + "id": "meta/llama-3.3-70b-instruct-maas", + "name": "Llama 3.3 70B Instruct", + "provider": "vertexai", + "family": "llama", + "created_at": "2025-04-29 00:00:00 +0530", + "context_window": 128000, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.72, + "output_per_million": 0.72 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-04-29", + "cost": { + "input": 0.72, + "output": 0.72 + }, + "limit": { + "context": 128000, + "output": 8192 + }, + "knowledge": "2023-12" + } + }, + { + "id": "meta/llama-4-maverick-17b-128e-instruct-maas", + "name": "Llama 4 Maverick 17B 128E Instruct", + "provider": "vertexai", + "family": "llama", + "created_at": "2025-04-29 00:00:00 +0530", + "context_window": 524288, + "max_output_tokens": 8192, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.35, + "output_per_million": 1.15 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": true, + "attachment": true, + "temperature": true, + "last_updated": "2025-04-29", + "cost": { + "input": 0.35, + "output": 1.15 + }, + "limit": { + "context": 524288, + "output": 8192 + }, + "knowledge": "2024-08" + } + }, + { + "id": "moonshotai/kimi-k2-thinking-maas", + "name": "Kimi K2 Thinking", + "provider": "vertexai", + "family": "kimi-thinking", + "created_at": "2025-11-13 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 262144, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.6, + "output_per_million": 2.5 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-11-13", + "interleaved": { + "field": "reasoning_content" + }, + "cost": { + "input": 0.6, + "output": 2.5 + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "knowledge": "2024-08" + } + }, + { + "id": "openai/gpt-oss-120b-maas", + "name": "GPT OSS 120B", + "provider": "vertexai", + "family": "gpt-oss", + "created_at": "2025-08-05 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.09, + "output_per_million": 0.36 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-08-05", + "cost": { + "input": 0.09, + "output": 0.36 + }, + "limit": { + "context": 131072, + "output": 32768 + } + } + }, + { + "id": "openai/gpt-oss-20b-maas", + "name": "GPT OSS 20B", + "provider": "vertexai", + "family": "gpt-oss", + "created_at": "2025-08-05 00:00:00 +0530", + "context_window": 131072, + "max_output_tokens": 32768, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.07, + "output_per_million": 0.25 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-08-05", + "cost": { + "input": 0.07, + "output": 0.25 + }, + "limit": { + "context": 131072, + "output": 32768 + } + } + }, + { + "id": "qwen/qwen3-235b-a22b-instruct-2507-maas", + "name": "Qwen3 235B A22B Instruct", + "provider": "vertexai", + "family": "qwen", + "created_at": "2025-08-13 00:00:00 +0530", + "context_window": 262144, + "max_output_tokens": 16384, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.22, + "output_per_million": 0.88 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2025-08-13", + "cost": { + "input": 0.22, + "output": 0.88 + }, + "limit": { + "context": 262144, + "output": 16384 + } + } + }, + { + "id": "zai-org/glm-4.7-maas", + "name": "GLM-4.7", + "provider": "vertexai", + "family": "glm", + "created_at": "2026-01-06 00:00:00 +0530", + "context_window": 200000, + "max_output_tokens": 128000, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text", + "pdf" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "structured_output", + "reasoning", + "vision" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 0.6, + "output_per_million": 2.2 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-01-06", + "interleaved": { + "field": "reasoning_content" + }, + "cost": { + "input": 0.6, + "output": 2.2 + }, + "limit": { + "context": 200000, + "output": 128000 + }, + "knowledge": "2025-04" + } + }, + { + "id": "zai-org/glm-5-maas", + "name": "GLM-5", + "provider": "vertexai", + "family": "glm", + "created_at": "2026-02-11 00:00:00 +0530", + "context_window": 202752, + "max_output_tokens": 131072, + "knowledge_cutoff": null, + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "capabilities": [ + "function_calling", + "reasoning" + ], + "pricing": { + "text_tokens": { + "standard": { + "input_per_million": 1, + "output_per_million": 3.2, + "cached_input_per_million": 0.1 + } + } + }, + "metadata": { + "source": "models.dev", + "provider_id": "google-vertex", + "open_weights": true, + "attachment": false, + "temperature": true, + "last_updated": "2026-02-11", + "interleaved": { + "field": "reasoning_content" + }, + "cost": { + "input": 1, + "output": 3.2, + "cache_read": 0.1 + }, + "limit": { + "context": 202752, + "output": 131072 + } + } + } +] \ No newline at end of file diff --git a/lib/llm/config.rb b/lib/llm/config.rb index 48de51022..6528e90c8 100644 --- a/lib/llm/config.rb +++ b/lib/llm/config.rb @@ -20,6 +20,7 @@ module Llm::Config end def with_api_key(api_key, api_base: nil) + initialize! context = RubyLLM.context do |config| config.openai_api_key = api_key config.openai_api_base = api_base @@ -34,6 +35,7 @@ module Llm::Config RubyLLM.configure do |config| config.openai_api_key = system_api_key if system_api_key.present? config.openai_api_base = openai_endpoint.chomp('/') if openai_endpoint.present? + config.model_registry_file = Rails.root.join('config/llm_models.json').to_s config.logger = Rails.logger end end diff --git a/lib/tasks/ruby_llm.rake b/lib/tasks/ruby_llm.rake new file mode 100644 index 000000000..0884f80c1 --- /dev/null +++ b/lib/tasks/ruby_llm.rake @@ -0,0 +1,17 @@ +# Refresh the RubyLLM model registry from models.dev and configured providers. +# Updates config/llm_models.json so new models are available without a gem upgrade. +# +# Usage: +# bundle exec rake ruby_llm:refresh_models +# +# Run this when new models are released, commit the updated config/llm_models.json. +namespace :ruby_llm do + desc 'Refresh RubyLLM model registry from models.dev' + task refresh_models: :environment do + registry_path = Rails.root.join('config/llm_models.json').to_s + puts 'Refreshing RubyLLM model registry...' + RubyLLM.models.refresh! + RubyLLM.models.save_to_json(registry_path) + puts "RubyLLM model registry updated with #{RubyLLM.models.all.size} models at #{registry_path}" + end +end From cc008951dbda26da25f61b35f8bb9b1d5e447f0a Mon Sep 17 00:00:00 2001 From: Gabriel Jablonski Date: Thu, 16 Apr 2026 02:27:16 -0300 Subject: [PATCH 09/20] fix(sidebar): improve active child route matching logic (#13121) --- .../dashboard/components-next/sidebar/SidebarGroup.vue | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/javascript/dashboard/components-next/sidebar/SidebarGroup.vue b/app/javascript/dashboard/components-next/sidebar/SidebarGroup.vue index 812da812a..048a99cf8 100644 --- a/app/javascript/dashboard/components-next/sidebar/SidebarGroup.vue +++ b/app/javascript/dashboard/components-next/sidebar/SidebarGroup.vue @@ -158,9 +158,11 @@ const activeChild = computed(() => { return rankedPage ?? activeOnPages[0]; } - return navigableChildren.value.find( - child => child.to && route.path.startsWith(resolvePath(child.to)) - ); + return navigableChildren.value.find(child => { + if (!child.to) return false; + const childPath = resolvePath(child.to); + return route.path === childPath || route.path.startsWith(`${childPath}/`); + }); }); const hasActiveChild = computed(() => { From edd0fc98dbf7d4e8e2810fa0df8c6f68c3678968 Mon Sep 17 00:00:00 2001 From: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Date: Thu, 16 Apr 2026 11:23:10 +0530 Subject: [PATCH 10/20] feat: Table support in article editor (#13974) --- .../Pages/ArticleEditorPage/ArticleEditor.vue | 15 ++++--- .../widgets/WootWriter/FullEditor.vue | 3 +- app/javascript/dashboard/constants/editor.js | 1 + .../api/v1/portals/articles/show.html.erb | 39 ++++++++++++++++++- lib/custom_markdown_renderer.rb | 6 +++ package.json | 2 +- pnpm-lock.yaml | 10 ++--- 7 files changed, 60 insertions(+), 16 deletions(-) diff --git a/app/javascript/dashboard/components-next/HelpCenter/Pages/ArticleEditorPage/ArticleEditor.vue b/app/javascript/dashboard/components-next/HelpCenter/Pages/ArticleEditorPage/ArticleEditor.vue index 2f06ea01e..22cb1441a 100644 --- a/app/javascript/dashboard/components-next/HelpCenter/Pages/ArticleEditorPage/ArticleEditor.vue +++ b/app/javascript/dashboard/components-next/HelpCenter/Pages/ArticleEditorPage/ArticleEditor.vue @@ -161,8 +161,12 @@ const handleCreateArticle = event => { } .editor-root .has-selection { + .ProseMirror-menubar:not(:has(*)) { + display: none !important; + } + .ProseMirror-menubar { - @apply h-8 rounded-lg !px-2 z-50 bg-n-solid-3 items-center gap-4 ml-0 mb-0 shadow-md outline outline-1 outline-n-weak; + @apply rounded-lg !px-3 !py-1.5 z-50 bg-n-background items-center gap-4 ml-0 mb-0 shadow-md outline outline-1 outline-n-weak; display: flex; top: var(--selection-top, auto) !important; left: var(--selection-left, 0) !important; @@ -170,15 +174,10 @@ const handleCreateArticle = event => { position: absolute !important; .ProseMirror-menuitem { - @apply mr-0; + @apply ltr:mr-0 rtl:ml-0 size-4 flex items-center; .ProseMirror-icon { - @apply p-0 mt-0 !mr-0; - - svg { - width: 20px !important; - height: 20px !important; - } + @apply p-0.5 flex-shrink-0 ltr:mr-2 rtl:ml-2; } } diff --git a/app/javascript/dashboard/components/widgets/WootWriter/FullEditor.vue b/app/javascript/dashboard/components/widgets/WootWriter/FullEditor.vue index 976ed3270..64f6136c2 100644 --- a/app/javascript/dashboard/components/widgets/WootWriter/FullEditor.vue +++ b/app/javascript/dashboard/components/widgets/WootWriter/FullEditor.vue @@ -262,7 +262,8 @@ export default { // Get the editor's width const editorWidth = editor.offsetWidth; - const menubarWidth = 480; // Menubar width (adjust as needed (px)) + const menubar = editor.querySelector('.ProseMirror-menubar'); + const menubarWidth = menubar ? menubar.scrollWidth : 480; // Get the end position of the selection const { bottom: endBottom, right: endRight } = editorView.coordsAtPos(to); diff --git a/app/javascript/dashboard/constants/editor.js b/app/javascript/dashboard/constants/editor.js index d33af1a11..3969f43a7 100644 --- a/app/javascript/dashboard/constants/editor.js +++ b/app/javascript/dashboard/constants/editor.js @@ -182,6 +182,7 @@ export const ARTICLE_EDITOR_MENU_OPTIONS = [ 'h3', 'imageUpload', 'code', + 'insertTable', ]; /** diff --git a/app/views/public/api/v1/portals/articles/show.html.erb b/app/views/public/api/v1/portals/articles/show.html.erb index 5ca116f89..784817c9c 100644 --- a/app/views/public/api/v1/portals/articles/show.html.erb +++ b/app/views/public/api/v1/portals/articles/show.html.erb @@ -36,7 +36,7 @@ <% end %>
-
+
<%= @parsed_content %>
@@ -45,4 +45,41 @@ .article-content li > p { margin: 0; } + .article-content .tableWrapper { + overflow-x: auto; + margin-bottom: 1rem; + } + .article-content table { + min-width: 100%; + border: 1px solid; + border-radius: 8px; + border-spacing: 0; + border-collapse: separate; + margin: 0; + } + .article-content th, + .article-content td { + border-bottom: 1px solid; + border-inline-end: 1px solid; + border-color: inherit; + padding: 0.5rem 0.75rem; + text-align: start; + vertical-align: top; + } + .article-content th:last-child, + .article-content td:last-child { + border-inline-end: none; + } + .article-content th { + font-weight: 600; + } + .article-content th:first-child { + border-start-start-radius: 7px; + } + .article-content th:last-child { + border-start-end-radius: 7px; + } + .article-content tr:last-child td { + border-bottom: none; + } diff --git a/lib/custom_markdown_renderer.rb b/lib/custom_markdown_renderer.rb index fea10388c..e7eefe5c8 100644 --- a/lib/custom_markdown_renderer.rb +++ b/lib/custom_markdown_renderer.rb @@ -9,6 +9,12 @@ class CustomMarkdownRenderer < CommonMarker::HtmlRenderer @embed_regexes ||= config.transform_values { |embed_config| Regexp.new(embed_config['regex']) } end + def table(node) + out('
') + super + out('
') + end + def text(node) content = node.string_content diff --git a/package.json b/package.json index c8e511be2..63ccc39f9 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "@amplitude/analytics-browser": "^2.11.10", "@breezystack/lamejs": "^1.2.7", "@chatwoot/ninja-keys": "1.2.3", - "@chatwoot/prosemirror-schema": "1.3.9", + "@chatwoot/prosemirror-schema": "1.3.10", "@chatwoot/utils": "^0.0.52", "@formkit/core": "^1.7.2", "@formkit/vue": "^1.7.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 818698372..19f9f04b9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,8 +26,8 @@ importers: specifier: 1.2.3 version: 1.2.3 '@chatwoot/prosemirror-schema': - specifier: 1.3.9 - version: 1.3.9 + specifier: 1.3.10 + version: 1.3.10 '@chatwoot/utils': specifier: ^0.0.52 version: 0.0.52 @@ -454,8 +454,8 @@ packages: '@chatwoot/ninja-keys@1.2.3': resolution: {integrity: sha512-xM8d9P5ikDMZm2WbaCTk/TW5HFauylrU3cJ75fq5je6ixKwyhl/0kZbVN/vbbZN4+AUX/OaSIn6IJbtCgIF67g==} - '@chatwoot/prosemirror-schema@1.3.9': - resolution: {integrity: sha512-nbzvW4Rfe7EC+tHF/wWJK5pIxRzfQj/DDAtZI7pwM9uJfv9yQz6bAUCA7kz7Vq1NF29XOisZaT5W0005ygk1pg==} + '@chatwoot/prosemirror-schema@1.3.10': + resolution: {integrity: sha512-MtOXqFPHptFHu/AoIPhQ9TskVXOxOXCgBY/tgAtCAQRut978F7I3QxozQBECBz83ubsoXnBecpNjGNq0OPgONw==} '@chatwoot/utils@0.0.52': resolution: {integrity: sha512-e57uVqyVW4tj1gql4YJPNMykqMJPkETn5Y9AmHdhc6Y7oxDXfRXBq27fZrrDadLkZdn5RYVCZjfIhXOumyYv2Q==} @@ -4967,7 +4967,7 @@ snapshots: hotkeys-js: 3.8.7 lit: 2.2.6 - '@chatwoot/prosemirror-schema@1.3.9': + '@chatwoot/prosemirror-schema@1.3.10': dependencies: markdown-it-sup: 2.0.0 prosemirror-commands: 1.6.0 From 5eee331da3794d1a9d53d017899bbaa1dcb53522 Mon Sep 17 00:00:00 2001 From: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Date: Thu, 16 Apr 2026 11:27:59 +0530 Subject: [PATCH 11/20] feat: add slash command menu to article editor (#14035) --- .../widgets/WootWriter/FullEditor.vue | 149 ++++++++++++++- .../widgets/WootWriter/SlashCommandMenu.vue | 180 ++++++++++++++++++ .../composables/useKeyboardNavigableList.js | 16 +- app/javascript/dashboard/constants/editor.js | 1 + .../dashboard/i18n/locale/en/components.json | 12 ++ .../dashboard/i18n/locale/en/helpCenter.json | 2 +- package.json | 2 + pnpm-lock.yaml | 33 +++- 8 files changed, 375 insertions(+), 20 deletions(-) create mode 100644 app/javascript/dashboard/components/widgets/WootWriter/SlashCommandMenu.vue diff --git a/app/javascript/dashboard/components/widgets/WootWriter/FullEditor.vue b/app/javascript/dashboard/components/widgets/WootWriter/FullEditor.vue index 64f6136c2..72104ff06 100644 --- a/app/javascript/dashboard/components/widgets/WootWriter/FullEditor.vue +++ b/app/javascript/dashboard/components/widgets/WootWriter/FullEditor.vue @@ -8,13 +8,22 @@ import { EditorState, Selection, } from '@chatwoot/prosemirror-schema'; +import { + suggestionsPlugin, + triggerCharacters, +} from '@chatwoot/prosemirror-schema/src/mentions/plugin'; import imagePastePlugin from '@chatwoot/prosemirror-schema/src/plugins/image'; +import { toggleMark } from 'prosemirror-commands'; +import { wrapInList } from 'prosemirror-schema-list'; +import { toggleBlockType } from '@chatwoot/prosemirror-schema/src/menu/common'; import { checkFileSizeLimit } from 'shared/helpers/FileHelper'; import { useAlert } from 'dashboard/composables'; import { useUISettings } from 'dashboard/composables/useUISettings'; import keyboardEventListenerMixins from 'shared/mixins/keyboardEventListenerMixins'; +import SlashCommandMenu from './SlashCommandMenu.vue'; const MAXIMUM_FILE_UPLOAD_SIZE = 4; // in MB +const SLASH_MENU_OFFSET = 4; const createState = ( content, placeholder, @@ -40,6 +49,7 @@ let editorView = null; let state; export default { + components: { SlashCommandMenu }, mixins: [keyboardEventListenerMixins], props: { modelValue: { type: String, default: '' }, @@ -62,8 +72,15 @@ export default { }, data() { return { - plugins: [imagePastePlugin(this.handleImageUpload)], + plugins: [ + imagePastePlugin(this.handleImageUpload), + this.createSlashPlugin(), + ], isTextSelected: false, // Tracks text selection and prevents unnecessary re-renders on mouse selection + showSlashMenu: false, + slashSearchTerm: '', + slashRange: null, + slashMenuPosition: null, }; }, watch: { @@ -95,6 +112,126 @@ export default { } }, methods: { + createSlashPlugin() { + return suggestionsPlugin({ + matcher: triggerCharacters('/', 0), + suggestionClass: '', + onEnter: args => { + this.showSlashMenu = true; + this.slashRange = args.range; + this.slashSearchTerm = args.text || ''; + this.updateSlashMenuPosition(args.range.from); + return false; + }, + onChange: args => { + this.slashRange = args.range; + this.slashSearchTerm = args.text; + return false; + }, + onExit: () => { + this.slashSearchTerm = ''; + this.showSlashMenu = false; + this.slashMenuPosition = null; + return false; + }, + onKeyDown: ({ event }) => { + return ( + event.keyCode === 13 && + this.showSlashMenu && + this.$refs.slashMenu?.hasItems + ); + }, + }); + }, + updateSlashMenuPosition(pos) { + if (!editorView) return; + const coords = editorView.coordsAtPos(pos); + const editorRect = this.$refs.editor.getBoundingClientRect(); + const isRtl = getComputedStyle(this.$refs.editor).direction === 'rtl'; + this.slashMenuPosition = { + top: coords.bottom - editorRect.top + SLASH_MENU_OFFSET, + ...(isRtl + ? { right: editorRect.right - coords.right } + : { left: coords.left - editorRect.left }), + }; + }, + removeSlashTriggerText() { + if (!editorView || !this.slashRange) return; + const { from, to } = this.slashRange; + editorView.dispatch(editorView.state.tr.delete(from, to)); + state = editorView.state; + }, + executeSlashCommand(actionKey) { + if (!editorView) return; + + this.removeSlashTriggerText(); + + const { schema } = editorView.state; + const commandMap = { + strong: () => + toggleMark(schema.marks.strong)( + editorView.state, + editorView.dispatch + ), + em: () => + toggleMark(schema.marks.em)(editorView.state, editorView.dispatch), + strike: () => + toggleMark(schema.marks.strike)( + editorView.state, + editorView.dispatch + ), + code: () => + toggleMark(schema.marks.code)(editorView.state, editorView.dispatch), + h1: () => + toggleBlockType(schema.nodes.heading, { level: 1 })( + editorView.state, + editorView.dispatch + ), + h2: () => + toggleBlockType(schema.nodes.heading, { level: 2 })( + editorView.state, + editorView.dispatch + ), + h3: () => + toggleBlockType(schema.nodes.heading, { level: 3 })( + editorView.state, + editorView.dispatch + ), + bulletList: () => + wrapInList(schema.nodes.bullet_list)( + editorView.state, + editorView.dispatch + ), + orderedList: () => + wrapInList(schema.nodes.ordered_list)( + editorView.state, + editorView.dispatch + ), + insertTable: () => { + const { table, table_row, table_header, table_cell, paragraph } = + schema.nodes; + const headerCells = [0, 1, 2].map(() => + table_header.createAndFill(null, paragraph.create()) + ); + const dataCells = [0, 1, 2].map(() => + table_cell.createAndFill(null, paragraph.create()) + ); + const headerRow = table_row.create(null, headerCells); + const dataRow = table_row.create(null, dataCells); + const tableNode = table.create(null, [headerRow, dataRow]); + const tr = editorView.state.tr.replaceSelectionWith(tableNode); + editorView.dispatch(tr.scrollIntoView()); + }, + }; + + const command = commandMap[actionKey]; + if (command) { + command(); + state = editorView.state; + this.emitOnChange(); + editorView.focus(); + } + }, contentFromEditor() { if (editorView) { return ArticleMarkdownSerializer.serialize(editorView.state.doc); @@ -291,7 +428,15 @@ export default {