diff --git a/Gemfile b/Gemfile
index 8c0bb82a5..dfcdb3e30 100644
--- a/Gemfile
+++ b/Gemfile
@@ -195,10 +195,10 @@ gem 'reverse_markdown'
gem 'iso-639'
gem 'ruby-openai'
-gem 'ai-agents', '>= 0.9.1'
+gem 'ai-agents', '>= 0.10.0'
# TODO: Move this gem as a dependency of ai-agents
-gem 'ruby_llm', '>= 1.8.2'
+gem 'ruby_llm', '>= 1.14.1'
gem 'ruby_llm-schema'
gem 'cld3', '~> 3.7'
diff --git a/Gemfile.lock b/Gemfile.lock
index bd21b7a36..7b94e6fe1 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -126,8 +126,8 @@ GEM
jbuilder (~> 2)
rails (>= 4.2, < 7.2)
selectize-rails (~> 0.6)
- ai-agents (0.9.1)
- ruby_llm (~> 1.9.1)
+ ai-agents (0.10.0)
+ ruby_llm (~> 1.14)
annotaterb (4.20.0)
activerecord (>= 6.0.0)
activesupport (>= 6.0.0)
@@ -307,8 +307,8 @@ GEM
faraday-mashify (1.0.0)
faraday (~> 2.0)
hashie
- faraday-multipart (1.0.4)
- multipart-post (~> 2)
+ faraday-multipart (1.2.0)
+ multipart-post (~> 2.0)
faraday-net_http (3.4.2)
net-http (~> 0.5)
faraday-net_http_persistent (2.1.0)
@@ -466,7 +466,7 @@ GEM
rails-dom-testing (>= 1, < 3)
railties (>= 4.2.0)
thor (>= 0.14, < 2.0)
- json (2.19.2)
+ json (2.19.5)
json_refs (0.1.8)
hana
json_schemer (0.2.24)
@@ -590,14 +590,14 @@ GEM
newrelic_rpm (9.6.0)
base64
nio4r (2.7.3)
- nokogiri (1.19.1)
+ nokogiri (1.19.3)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
- nokogiri (1.19.1-arm64-darwin)
+ nokogiri (1.19.3-arm64-darwin)
racc (~> 1.4)
- nokogiri (1.19.1-x86_64-darwin)
+ nokogiri (1.19.3-x86_64-darwin)
racc (~> 1.4)
- nokogiri (1.19.1-x86_64-linux-gnu)
+ nokogiri (1.19.3-x86_64-linux-gnu)
racc (~> 1.4)
oauth (1.1.0)
oauth-tty (~> 1.0, >= 1.0.1)
@@ -835,17 +835,17 @@ GEM
ruby2ruby (2.5.0)
ruby_parser (~> 3.1)
sexp_processor (~> 4.6)
- ruby_llm (1.9.2)
+ ruby_llm (1.15.0)
base64
event_stream_parser (~> 1)
faraday (>= 1.10.0)
faraday-multipart (>= 1)
faraday-net_http (>= 1)
faraday-retry (>= 1)
- marcel (~> 1.0)
- ruby_llm-schema (~> 0.2.1)
+ marcel (~> 1)
+ ruby_llm-schema (~> 0)
zeitwerk (~> 2)
- ruby_llm-schema (0.2.5)
+ ruby_llm-schema (0.3.0)
ruby_parser (3.20.0)
sexp_processor (~> 4.16)
sass (3.7.4)
@@ -1019,7 +1019,7 @@ GEM
working_hours (1.4.1)
activesupport (>= 3.2)
tzinfo
- zeitwerk (2.7.4)
+ zeitwerk (2.7.5)
PLATFORMS
arm64-darwin-20
@@ -1039,7 +1039,7 @@ DEPENDENCIES
administrate (>= 0.20.1)
administrate-field-active_storage (>= 1.0.3)
administrate-field-belongs_to_search (>= 0.9.0)
- ai-agents (>= 0.9.1)
+ ai-agents (>= 0.10.0)
annotaterb
attr_extras
audited (~> 5.4, >= 5.4.1)
@@ -1144,7 +1144,7 @@ DEPENDENCIES
rubocop-rails
rubocop-rspec
ruby-openai
- ruby_llm (>= 1.8.2)
+ ruby_llm (>= 1.14.1)
ruby_llm-schema
scout_apm
scss_lint
diff --git a/app/builders/notification_builder.rb b/app/builders/notification_builder.rb
index d5461eb4e..e09e44d50 100644
--- a/app/builders/notification_builder.rb
+++ b/app/builders/notification_builder.rb
@@ -27,6 +27,8 @@ class NotificationBuilder
return if notification_type == 'conversation_creation' && !user_subscribed_to_notification?
# skip notifications for blocked conversations except for user mentions
return if primary_actor.contact.blocked? && notification_type != 'conversation_mention'
+ # respect conversation access (inbox/team membership and custom-role permissions)
+ return unless user_can_access_conversation?
user.notifications.create!(
notification_type: notification_type,
@@ -36,4 +38,17 @@ class NotificationBuilder
secondary_actor: secondary_actor || current_user
)
end
+
+ def user_can_access_conversation?
+ conversation = primary_actor.is_a?(Conversation) ? primary_actor : primary_actor.try(:conversation)
+ return true if conversation.blank?
+
+ account_user = AccountUser.find_by(account_id: account.id, user_id: user.id)
+ return false if account_user.blank?
+
+ ConversationPolicy.new(
+ { user: user, account: account, account_user: account_user },
+ conversation
+ ).show?
+ end
end
diff --git a/app/controllers/api/v1/accounts/custom_attribute_definitions_controller.rb b/app/controllers/api/v1/accounts/custom_attribute_definitions_controller.rb
index 69df99e14..7bd9ae0c3 100644
--- a/app/controllers/api/v1/accounts/custom_attribute_definitions_controller.rb
+++ b/app/controllers/api/v1/accounts/custom_attribute_definitions_controller.rb
@@ -1,6 +1,7 @@
class Api::V1::Accounts::CustomAttributeDefinitionsController < Api::V1::Accounts::BaseController
before_action :fetch_custom_attributes_definitions, except: [:create]
before_action :fetch_custom_attribute_definition, only: [:show, :update, :destroy]
+ before_action :check_authorization
DEFAULT_ATTRIBUTE_MODEL = 'conversation_attribute'.freeze
def index; end
diff --git a/app/controllers/api/v1/accounts/labels_controller.rb b/app/controllers/api/v1/accounts/labels_controller.rb
index 54455943b..6889d30a4 100644
--- a/app/controllers/api/v1/accounts/labels_controller.rb
+++ b/app/controllers/api/v1/accounts/labels_controller.rb
@@ -18,7 +18,16 @@ class Api::V1::Accounts::LabelsController < Api::V1::Accounts::BaseController
end
def destroy
+ label_title = @label.title
+ account_id = Current.account.id
+ label_deleted_at = Time.current
+
@label.destroy!
+ Labels::RemoveAssociationsJob.perform_later(
+ label_title: label_title,
+ account_id: account_id,
+ label_deleted_at: label_deleted_at
+ )
head :ok
end
diff --git a/app/helpers/api/v1/inboxes_helper.rb b/app/helpers/api/v1/inboxes_helper.rb
index 3d6b559c8..8a10fa99c 100644
--- a/app/helpers/api/v1/inboxes_helper.rb
+++ b/app/helpers/api/v1/inboxes_helper.rb
@@ -17,15 +17,12 @@ module Api::V1::InboxesHelper
def validate_imap(channel_data)
return unless channel_data.key?('imap_enabled') && channel_data[:imap_enabled]
- Mail.defaults do
- retriever_method :imap, { address: channel_data[:imap_address],
- port: channel_data[:imap_port],
- user_name: channel_data[:imap_login],
- password: channel_data[:imap_password],
- enable_ssl: channel_data[:imap_enable_ssl] }
- end
+ # Validate the user-selected auth mechanism before opening the connection.
+ authentication = Imap::Authentication.validate_user_configurable!(channel_data[:imap_authentication])
- check_imap_connection(channel_data)
+ # Use the same auth adapter as the fetch service so LOGIN uses the IMAP LOGIN command,
+ # not SASL AUTH=LOGIN.
+ check_imap_connection(channel_data, authentication)
end
def validate_smtp(channel_data)
@@ -37,8 +34,8 @@ module Api::V1::InboxesHelper
check_smtp_connection(channel_data, smtp)
end
- def check_imap_connection(channel_data)
- Mail.connection {} # rubocop:disable:block
+ def check_imap_connection(channel_data, authentication)
+ imap = open_imap_connection(channel_data, authentication)
rescue SocketError => e
raise StandardError, I18n.t('errors.inboxes.imap.socket_error')
rescue Net::IMAP::NoResponseError => e
@@ -53,9 +50,20 @@ module Api::V1::InboxesHelper
rescue StandardError => e
raise StandardError, e.message
ensure
+ imap.disconnect if imap.present? && !imap.disconnected?
Rails.logger.error "[Api::V1::InboxesHelper] check_imap_connection failed with #{e.message}" if e.present?
end
+ def open_imap_connection(channel_data, authentication)
+ imap = build_imap_connection(channel_data)
+ Imap::Authentication.authenticate!(imap, authentication, channel_data[:imap_login], channel_data[:imap_password])
+ imap
+ end
+
+ def build_imap_connection(channel_data)
+ Net::IMAP.new(channel_data[:imap_address], port: channel_data[:imap_port], ssl: channel_data[:imap_enable_ssl])
+ end
+
def check_smtp_connection(channel_data, smtp)
smtp.open_timeout = 10
smtp.start(channel_data[:smtp_domain], channel_data[:smtp_login], channel_data[:smtp_password],
diff --git a/app/javascript/dashboard/api/captain/document.js b/app/javascript/dashboard/api/captain/document.js
index dc22b0c32..e23a8c460 100644
--- a/app/javascript/dashboard/api/captain/document.js
+++ b/app/javascript/dashboard/api/captain/document.js
@@ -6,15 +6,22 @@ class CaptainDocument extends ApiClient {
super('captain/documents', { accountScoped: true });
}
- get({ page = 1, searchKey, assistantId } = {}) {
+ get({ page = 1, searchKey, assistantId, filter, source, sort } = {}) {
return axios.get(this.url, {
params: {
page,
- searchKey,
+ search_key: searchKey,
assistant_id: assistantId,
+ filter,
+ source,
+ sort,
},
});
}
+
+ sync(id) {
+ return axios.post(`${this.url}/${id}/sync`);
+ }
}
export default new CaptainDocument();
diff --git a/app/javascript/dashboard/api/companies.js b/app/javascript/dashboard/api/companies.js
index b98a59983..a45b21d68 100644
--- a/app/javascript/dashboard/api/companies.js
+++ b/app/javascript/dashboard/api/companies.js
@@ -28,6 +28,14 @@ class CompanyAPI extends ApiClient {
return axios.get(`${this.url}/${id}/contacts?${buildParams({ page })}`);
}
+ listNotes(id) {
+ return axios.get(`${this.url}/${id}/notes`);
+ }
+
+ listConversations(id) {
+ return axios.get(`${this.url}/${id}/conversations`);
+ }
+
searchContacts(id, query = '', page = 1) {
const requestURL = `${this.url}/${id}/contacts/search?${buildParams({ q: query, page })}`;
return axios.get(requestURL);
diff --git a/app/javascript/dashboard/components-next/Companies/CompaniesDetailsLayout.vue b/app/javascript/dashboard/components-next/Companies/CompaniesDetailsLayout.vue
index 7736ccffd..14b5e62d9 100644
--- a/app/javascript/dashboard/components-next/Companies/CompaniesDetailsLayout.vue
+++ b/app/javascript/dashboard/components-next/Companies/CompaniesDetailsLayout.vue
@@ -56,9 +56,14 @@ const closeMobileSidebar = () => {
diff --git a/app/javascript/dashboard/components-next/Companies/CompaniesHeader/CompanyHeader.vue b/app/javascript/dashboard/components-next/Companies/CompaniesHeader/CompanyHeader.vue
index f85b613a3..00c1a1694 100644
--- a/app/javascript/dashboard/components-next/Companies/CompaniesHeader/CompanyHeader.vue
+++ b/app/javascript/dashboard/components-next/Companies/CompaniesHeader/CompanyHeader.vue
@@ -2,6 +2,7 @@
import Input from 'dashboard/components-next/input/Input.vue';
import Icon from 'dashboard/components-next/icon/Icon.vue';
import CompanySortMenu from './components/CompanySortMenu.vue';
+import CompanyMoreActions from './components/CompanyMoreActions.vue';
defineProps({
showSearch: { type: Boolean, default: true },
@@ -11,7 +12,7 @@ defineProps({
activeOrdering: { type: String, default: '' },
});
-const emit = defineEmits(['search', 'update:sort']);
+const emit = defineEmits(['search', 'update:sort', 'create']);
@@ -48,6 +49,7 @@ const emit = defineEmits(['search', 'update:sort']);
:active-ordering="activeOrdering"
@update:sort="emit('update:sort', $event)"
/>
+
diff --git a/app/javascript/dashboard/components-next/Companies/CompaniesHeader/components/CompanyMoreActions.vue b/app/javascript/dashboard/components-next/Companies/CompaniesHeader/components/CompanyMoreActions.vue
new file mode 100644
index 000000000..8b95288e3
--- /dev/null
+++ b/app/javascript/dashboard/components-next/Companies/CompaniesHeader/components/CompanyMoreActions.vue
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/components-next/Companies/CompaniesListLayout.vue b/app/javascript/dashboard/components-next/Companies/CompaniesListLayout.vue
index dce8c6af1..490ace284 100644
--- a/app/javascript/dashboard/components-next/Companies/CompaniesListLayout.vue
+++ b/app/javascript/dashboard/components-next/Companies/CompaniesListLayout.vue
@@ -12,7 +12,12 @@ defineProps({
showPaginationFooter: { type: Boolean, default: true },
});
-const emit = defineEmits(['update:currentPage', 'update:sort', 'search']);
+const emit = defineEmits([
+ 'update:currentPage',
+ 'update:sort',
+ 'search',
+ 'create',
+]);
const updateCurrentPage = page => {
emit('update:currentPage', page);
@@ -31,6 +36,7 @@ const updateCurrentPage = page => {
:active-ordering="activeOrdering"
@search="emit('search', $event)"
@update:sort="emit('update:sort', $event)"
+ @create="emit('create')"
/>
diff --git a/app/javascript/dashboard/components-next/Companies/CompanyCreateDialog.vue b/app/javascript/dashboard/components-next/Companies/CompanyCreateDialog.vue
new file mode 100644
index 000000000..b3847030b
--- /dev/null
+++ b/app/javascript/dashboard/components-next/Companies/CompanyCreateDialog.vue
@@ -0,0 +1,110 @@
+
+
+
+
+
diff --git a/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyContactsSidebar.vue b/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyContactsSidebar.vue
index 2ca1b33c4..ce2a68da1 100644
--- a/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyContactsSidebar.vue
+++ b/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyContactsSidebar.vue
@@ -169,7 +169,7 @@ const handleContactSelect = contactId => {
-
+
diff --git a/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyHistorySidebar.vue b/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyHistorySidebar.vue
new file mode 100644
index 000000000..c82ed71fb
--- /dev/null
+++ b/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyHistorySidebar.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('COMPANIES.DETAIL.HISTORY.EMPTY') }}
+
+
diff --git a/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyNotesSidebar.vue b/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyNotesSidebar.vue
new file mode 100644
index 000000000..234e0cd12
--- /dev/null
+++ b/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyNotesSidebar.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ getWrittenBy(note) }}
+
+ {{ t('CONTACTS_LAYOUT.SIDEBAR.NOTES.WROTE') }}
+
+ {{ dynamicTime(note.createdAt) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('COMPANIES.DETAIL.NOTES.EMPTY') }}
+
+
diff --git a/app/javascript/dashboard/components-next/captain/assistant/DocumentBulkActions.vue b/app/javascript/dashboard/components-next/captain/assistant/DocumentBulkActions.vue
new file mode 100644
index 000000000..378860b3e
--- /dev/null
+++ b/app/javascript/dashboard/components-next/captain/assistant/DocumentBulkActions.vue
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/components-next/captain/assistant/DocumentCard.vue b/app/javascript/dashboard/components-next/captain/assistant/DocumentCard.vue
index 30ebfc448..c8a011b9a 100644
--- a/app/javascript/dashboard/components-next/captain/assistant/DocumentCard.vue
+++ b/app/javascript/dashboard/components-next/captain/assistant/DocumentCard.vue
@@ -5,14 +5,17 @@ import { useI18n } from 'vue-i18n';
import { dynamicTime } from 'shared/helpers/timeHelper';
import { usePolicy } from 'dashboard/composables/usePolicy';
import {
- isPdfDocument,
+ isSafeHttpLink,
formatDocumentLink,
+ getDocumentDisplayPath,
} from 'shared/helpers/documentHelper';
+import Icon from 'dashboard/components-next/icon/Icon.vue';
import CardLayout from 'dashboard/components-next/CardLayout.vue';
import DropdownMenu from 'dashboard/components-next/dropdown-menu/DropdownMenu.vue';
import Button from 'dashboard/components-next/button/Button.vue';
import Checkbox from 'dashboard/components-next/checkbox/Checkbox.vue';
+import DocumentSyncStatus from 'dashboard/components-next/captain/assistant/DocumentSyncStatus.vue';
const props = defineProps({
id: {
@@ -31,10 +34,38 @@ const props = defineProps({
type: String,
required: true,
},
+ pdfDocument: {
+ type: Boolean,
+ default: false,
+ },
createdAt: {
type: Number,
required: true,
},
+ status: {
+ type: String,
+ default: null,
+ },
+ syncStatus: {
+ type: String,
+ default: null,
+ },
+ lastSyncedAt: {
+ type: Number,
+ default: null,
+ },
+ lastSyncErrorCode: {
+ type: String,
+ default: null,
+ },
+ syncInProgress: {
+ type: Boolean,
+ default: false,
+ },
+ syncStaleAfterHours: {
+ type: Number,
+ default: null,
+ },
isSelected: {
type: Boolean,
default: false,
@@ -64,6 +95,20 @@ const modelValue = computed({
set: () => emit('select', props.id),
});
+const isPdf = computed(() => props.pdfDocument);
+const hasSafeLink = computed(() => isSafeHttpLink(props.externalLink));
+const canManage = computed(() => checkPermissions(['administrator']));
+const isAvailable = computed(() => props.status === 'available');
+const canSync = computed(
+ () => canManage.value && !isPdf.value && isAvailable.value
+);
+const isSyncing = computed(() => props.syncStatus === 'syncing');
+const isFailed = computed(() => props.syncStatus === 'failed');
+const isRetryableSync = computed(
+ () => isFailed.value || (isSyncing.value && !props.syncInProgress)
+);
+const showSyncStatus = computed(() => !isPdf.value);
+
const menuItems = computed(() => {
const allOptions = [
{
@@ -74,7 +119,19 @@ const menuItems = computed(() => {
},
];
- if (checkPermissions(['administrator'])) {
+ if (canSync.value) {
+ allOptions.push({
+ label: isRetryableSync.value
+ ? t('CAPTAIN.DOCUMENTS.OPTIONS.RETRY_SYNC')
+ : t('CAPTAIN.DOCUMENTS.OPTIONS.SYNC_NOW'),
+ value: 'sync',
+ action: 'sync',
+ icon: 'i-lucide-refresh-cw',
+ disabled: props.syncInProgress,
+ });
+ }
+
+ if (canManage.value) {
allOptions.push({
label: t('CAPTAIN.DOCUMENTS.OPTIONS.DELETE_DOCUMENT'),
value: 'delete',
@@ -86,17 +143,25 @@ const menuItems = computed(() => {
return allOptions;
});
-const createdAt = computed(() => dynamicTime(props.createdAt));
+const createdAtLabel = computed(() => dynamicTime(props.createdAt));
-const displayLink = computed(() => formatDocumentLink(props.externalLink));
+const displayLink = computed(() =>
+ isPdf.value
+ ? formatDocumentLink(props.externalLink)
+ : getDocumentDisplayPath(props.externalLink)
+);
const linkIcon = computed(() =>
- isPdfDocument(props.externalLink) ? 'i-ph-file-pdf' : 'i-ph-link-simple'
+ isPdf.value ? 'i-ph-file-pdf' : 'i-ph-link-simple'
);
const handleAction = ({ action, value }) => {
toggleDropdown(false);
emit('action', { action, value, id: props.id });
};
+
+const handleRetry = () => {
+ emit('action', { action: 'sync', id: props.id });
+};
@@ -141,17 +206,41 @@ const handleAction = ({ action, value }) => {
-
+
{{ assistant?.name || '' }}
+
+
+ {{ displayLink }}
+
+
-
+
{{ displayLink }}
-
- {{ createdAt }}
+
+
+ {{ createdAtLabel }}
diff --git a/app/javascript/dashboard/components-next/captain/assistant/DocumentFilter.vue b/app/javascript/dashboard/components-next/captain/assistant/DocumentFilter.vue
new file mode 100644
index 000000000..57d1f32b0
--- /dev/null
+++ b/app/javascript/dashboard/components-next/captain/assistant/DocumentFilter.vue
@@ -0,0 +1,61 @@
+
+
+
+
+
diff --git a/app/javascript/dashboard/components-next/captain/assistant/DocumentFiltersBar.vue b/app/javascript/dashboard/components-next/captain/assistant/DocumentFiltersBar.vue
new file mode 100644
index 000000000..b0a5b9dd0
--- /dev/null
+++ b/app/javascript/dashboard/components-next/captain/assistant/DocumentFiltersBar.vue
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/components-next/captain/assistant/DocumentSyncStatus.vue b/app/javascript/dashboard/components-next/captain/assistant/DocumentSyncStatus.vue
new file mode 100644
index 000000000..df0c99851
--- /dev/null
+++ b/app/javascript/dashboard/components-next/captain/assistant/DocumentSyncStatus.vue
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+ {{ label }}
+
+
+
diff --git a/app/javascript/dashboard/components-next/captain/pageComponents/document/CreateDocumentDialog.vue b/app/javascript/dashboard/components-next/captain/pageComponents/document/CreateDocumentDialog.vue
index 05fc69342..ffdc95e25 100644
--- a/app/javascript/dashboard/components-next/captain/pageComponents/document/CreateDocumentDialog.vue
+++ b/app/javascript/dashboard/components-next/captain/pageComponents/document/CreateDocumentDialog.vue
@@ -15,7 +15,7 @@ defineProps({
},
});
-const emit = defineEmits(['close']);
+const emit = defineEmits(['close', 'createSuccess']);
const { t } = useI18n();
const store = useStore();
@@ -26,6 +26,7 @@ const i18nKey = 'CAPTAIN.DOCUMENTS.CREATE';
const handleSubmit = async newDocument => {
try {
await store.dispatch('captainDocuments/create', newDocument);
+ emit('createSuccess');
useAlert(t(`${i18nKey}.SUCCESS_MESSAGE`));
dialogRef.value.close();
} catch (error) {
diff --git a/app/javascript/dashboard/components/widgets/conversation/conversationBulkActions/BulkTeamActions.vue b/app/javascript/dashboard/components/widgets/conversation/conversationBulkActions/BulkTeamActions.vue
index 06a58d961..3e7bc49ec 100644
--- a/app/javascript/dashboard/components/widgets/conversation/conversationBulkActions/BulkTeamActions.vue
+++ b/app/javascript/dashboard/components/widgets/conversation/conversationBulkActions/BulkTeamActions.vue
@@ -1,9 +1,8 @@
diff --git a/app/javascript/dashboard/featureFlags.js b/app/javascript/dashboard/featureFlags.js
index 1f9632425..da296bac4 100644
--- a/app/javascript/dashboard/featureFlags.js
+++ b/app/javascript/dashboard/featureFlags.js
@@ -41,6 +41,7 @@ export const FEATURE_FLAGS = {
CAPTAIN_CUSTOM_TOOLS: 'custom_tools',
CAPTAIN_V2: 'captain_integration_v2',
CAPTAIN_TASKS: 'captain_tasks',
+ CAPTAIN_DOCUMENT_AUTO_SYNC: 'captain_document_auto_sync',
SAML: 'saml',
QUOTED_EMAIL_REPLY: 'quoted_email_reply',
COMPANIES: 'companies',
diff --git a/app/javascript/dashboard/i18n/locale/en/companies.json b/app/javascript/dashboard/i18n/locale/en/companies.json
index 370af697e..534205038 100644
--- a/app/javascript/dashboard/i18n/locale/en/companies.json
+++ b/app/javascript/dashboard/i18n/locale/en/companies.json
@@ -22,6 +22,19 @@
"LOADING": "Loading companies...",
"UNNAMED": "Unnamed Company",
"CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
"DETAIL": {
"LOADING": "Loading company details...",
"EMPTY_STATE": {
@@ -31,9 +44,17 @@
"SIDEBAR": {
"TABS": {
"ATTRIBUTES": "Attributes",
- "CONTACTS": "Contacts"
+ "CONTACTS": "Contacts",
+ "HISTORY": "History",
+ "NOTES": "Notes"
}
},
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
"ATTRIBUTES": {
"SEARCH_PLACEHOLDER": "Search attributes...",
"EMPTY_STATE": "There are no company custom attributes configured yet.",
diff --git a/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json
index fa67d3de6..bd118557c 100644
--- a/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json
@@ -1035,7 +1035,8 @@
"LABEL": "Password",
"PLACE_HOLDER": "Password"
},
- "ENABLE_SSL": "Enable SSL"
+ "ENABLE_SSL": "Enable SSL",
+ "AUTH_MECHANISM": "Authentication"
},
"MICROSOFT": {
"TITLE": "Microsoft",
diff --git a/app/javascript/dashboard/i18n/locale/en/integrations.json b/app/javascript/dashboard/i18n/locale/en/integrations.json
index ad89755e1..6bf332b25 100644
--- a/app/javascript/dashboard/i18n/locale/en/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/en/integrations.json
@@ -742,6 +742,7 @@
"SELECT_ALL": "Select all ({count})",
"UNSELECT_ALL": "Unselect all ({count})",
"BULK_DELETE_BUTTON": "Delete",
+ "BULK_SYNC_BUTTON": "Refresh",
"BULK_DELETE": {
"TITLE": "Delete documents?",
"DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
@@ -749,6 +750,51 @@
"SUCCESS_MESSAGE": "Documents deleted successfully",
"ERROR_MESSAGE": "There was an error deleting the documents, please try again."
},
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Page not found",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
"RELATED_RESPONSES": {
"TITLE": "Related FAQs",
"DESCRIPTION": "These FAQs are generated directly from the document."
@@ -793,11 +839,15 @@
"OPTIONS": {
"VIEW_RELATED_RESPONSES": "View Related Responses",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
"DELETE_DOCUMENT": "Delete Document"
},
"EMPTY_STATE": {
"TITLE": "No documents available",
"SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
"FEATURE_SPOTLIGHT": {
"TITLE": "Captain Document",
"NOTE": "A document in Captain serves as a knowledge resource for the assistant. By connecting your help center or guides, Captain can analyze the content and provide accurate responses for customer inquiries."
diff --git a/app/javascript/dashboard/routes/dashboard/captain/documents/Index.vue b/app/javascript/dashboard/routes/dashboard/captain/documents/Index.vue
index 2bd7446cb..87c04aefe 100644
--- a/app/javascript/dashboard/routes/dashboard/captain/documents/Index.vue
+++ b/app/javascript/dashboard/routes/dashboard/captain/documents/Index.vue
@@ -1,15 +1,19 @@
@@ -170,27 +328,43 @@ onMounted(() => {
:current-page="documentsMeta.page"
:show-pagination-footer="!isFetching && !!documents.length"
:is-fetching="isFetching"
- :is-empty="!documents.length"
- :show-know-more="false"
+ :is-empty="!documents.length && !hasActiveDocumentFilters"
:feature-flag="FEATURE_FLAGS.CAPTAIN"
@update:current-page="onPageChange"
@click="handleCreateDocument"
>
-
-
-
+
+
-
+
+
+
+
+
+
+
{
-
+
+
+ {{ $t('CAPTAIN.DOCUMENTS.EMPTY_STATE.FILTERED_TITLE') }}
+
+
+ {{ $t('CAPTAIN.DOCUMENTS.EMPTY_STATE.FILTERED_SUBTITLE') }}
+
+
+
+
{
v-if="showCreateDialog"
ref="createDocumentDialog"
:assistant-id="selectedAssistantId"
+ @create-success="onCreateSuccess"
@close="handleCreateDialogClose"
/>
{
type="Documents"
@delete-success="onDeleteSuccess"
/>
-
diff --git a/app/javascript/dashboard/routes/dashboard/companies/pages/CompaniesIndex.vue b/app/javascript/dashboard/routes/dashboard/companies/pages/CompaniesIndex.vue
index 6c437fa1f..8ec401376 100644
--- a/app/javascript/dashboard/routes/dashboard/companies/pages/CompaniesIndex.vue
+++ b/app/javascript/dashboard/routes/dashboard/companies/pages/CompaniesIndex.vue
@@ -3,11 +3,13 @@ import { ref, computed, onMounted, reactive } from 'vue';
import { useRoute, useRouter } from 'vue-router';
import { useI18n } from 'vue-i18n';
import { useUISettings } from 'dashboard/composables/useUISettings';
+import { useAlert } from 'dashboard/composables';
import { debounce } from '@chatwoot/utils';
import { useCompaniesStore } from 'dashboard/stores/companies';
import CompaniesListLayout from 'dashboard/components-next/Companies/CompaniesListLayout.vue';
import CompaniesCard from 'dashboard/components-next/Companies/CompaniesCard/CompaniesCard.vue';
+import CompanyCreateDialog from 'dashboard/components-next/Companies/CompanyCreateDialog.vue';
const DEFAULT_SORT_FIELD = 'name';
const DEBOUNCE_DELAY = 300;
@@ -26,6 +28,7 @@ const uiFlags = computed(() => companiesStore.getUIFlags);
const searchQuery = computed(() => route.query?.search || '');
const searchValue = ref(searchQuery.value);
+const createCompanyDialogRef = ref(null);
const pageNumber = computed(() => Number(route.query?.page) || 1);
const parseSortSettings = (sortString = '') => {
@@ -51,6 +54,7 @@ const activeSort = computed(() => sortState.activeSort);
const activeOrdering = computed(() => sortState.activeOrdering);
const isFetchingList = computed(() => uiFlags.value.fetchingList);
+const isCreatingCompany = computed(() => uiFlags.value.creatingItem);
const buildSortAttr = () =>
`${sortState.activeOrdering}${sortState.activeSort}`;
@@ -121,6 +125,21 @@ const showCompany = companyId => {
});
};
+const openCreateCompanyDialog = () => {
+ createCompanyDialogRef.value?.dialogRef.open();
+};
+
+const createCompany = async company => {
+ try {
+ const newCompany = await companiesStore.create(company);
+ createCompanyDialogRef.value?.onSuccess();
+ useAlert(t('COMPANIES.CREATE.MESSAGES.SUCCESS'));
+ showCompany(newCompany.id);
+ } catch {
+ useAlert(t('COMPANIES.CREATE.MESSAGES.ERROR'));
+ }
+};
+
const handleSort = async ({ sort, order }) => {
Object.assign(sortState, { activeSort: sort, activeOrdering: order });
@@ -155,6 +174,7 @@ onMounted(() => {
@update:current-page="onPageChange"
@update:sort="handleSort"
@search="onSearch"
+ @create="openCreateCompanyDialog"
>
{{
@@ -182,5 +202,10 @@ onMounted(() => {
@show-company="showCompany"
/>
+
diff --git a/app/javascript/dashboard/routes/dashboard/companies/pages/CompanyDetailView.vue b/app/javascript/dashboard/routes/dashboard/companies/pages/CompanyDetailView.vue
index 313df49d3..86627f952 100644
--- a/app/javascript/dashboard/routes/dashboard/companies/pages/CompanyDetailView.vue
+++ b/app/javascript/dashboard/routes/dashboard/companies/pages/CompanyDetailView.vue
@@ -8,7 +8,10 @@ import Policy from 'dashboard/components/policy.vue';
import Button from 'dashboard/components-next/button/Button.vue';
import CompaniesDetailsLayout from 'dashboard/components-next/Companies/CompaniesDetailsLayout.vue';
import Spinner from 'dashboard/components-next/spinner/Spinner.vue';
+import TabBar from 'dashboard/components-next/tabbar/TabBar.vue';
import CompanyContactsSidebar from 'dashboard/components-next/Companies/CompanyDetail/CompanyContactsSidebar.vue';
+import CompanyHistorySidebar from 'dashboard/components-next/Companies/CompanyDetail/CompanyHistorySidebar.vue';
+import CompanyNotesSidebar from 'dashboard/components-next/Companies/CompanyDetail/CompanyNotesSidebar.vue';
import CompanyProfileCard from 'dashboard/components-next/Companies/CompanyDetail/CompanyProfileCard.vue';
import ConfirmCompanyDeleteDialog from 'dashboard/components-next/Companies/CompanyDetail/ConfirmCompanyDeleteDialog.vue';
import { useCompaniesStore } from 'dashboard/stores/companies';
@@ -20,11 +23,16 @@ const { t } = useI18n();
const confirmDeleteDialogRef = ref(null);
const selectedCandidate = ref(null);
+const activeSidebarTab = ref('history');
const companyId = computed(() => Number(route.params.companyId));
const company = computed(() => companiesStore.getRecord(companyId.value));
const companyContacts = computed(() => companiesStore.companyContacts);
const companyContactsMeta = computed(() => companiesStore.companyContactsMeta);
+const companyConversations = computed(
+ () => companiesStore.companyConversations || []
+);
+const companyNotes = computed(() => companiesStore.companyNotes || []);
const contactSearchResults = computed(
() => companiesStore.contactSearchResults
);
@@ -32,6 +40,10 @@ const uiFlags = computed(() => companiesStore.getUIFlags);
const isFetchingCompany = computed(() => uiFlags.value.fetchingItem);
const isFetchingContacts = computed(() => uiFlags.value.fetchingContacts);
+const isFetchingConversations = computed(
+ () => uiFlags.value.fetchingConversations
+);
+const isFetchingNotes = computed(() => uiFlags.value.fetchingNotes);
const isSearchingContacts = computed(() => uiFlags.value.searchingContacts);
const isManagingContacts = computed(
() => uiFlags.value.creatingContact || uiFlags.value.removingContact
@@ -50,6 +62,27 @@ const breadcrumbItems = computed(() => [
: []),
]);
+const SIDEBAR_TABS_OPTIONS = [
+ { key: 'HISTORY', value: 'history' },
+ { key: 'NOTES', value: 'notes' },
+ { key: 'CONTACTS', value: 'contacts' },
+];
+
+const sidebarTabs = computed(() =>
+ SIDEBAR_TABS_OPTIONS.map(tab => ({
+ label: {
+ notes: t('COMPANIES.DETAIL.SIDEBAR.TABS.NOTES'),
+ history: t('COMPANIES.DETAIL.SIDEBAR.TABS.HISTORY'),
+ contacts: `${t('COMPANIES.DETAIL.SIDEBAR.TABS.CONTACTS')} (${Number(companyContactsMeta.value.totalCount || 0)})`,
+ }[tab.value],
+ value: tab.value,
+ }))
+);
+
+const activeSidebarTabIndex = computed(() =>
+ SIDEBAR_TABS_OPTIONS.findIndex(tab => tab.value === activeSidebarTab.value)
+);
+
const goToCompaniesIndex = () => {
router.push({
name: 'companies_dashboard_index',
@@ -79,6 +112,19 @@ const clearSelectedCandidate = () => {
selectedCandidate.value = null;
};
+const loadSidebarTab = tab => {
+ if (!companyId.value) return;
+ if (tab === 'notes') companiesStore.getCompanyNotes(companyId.value);
+ if (tab === 'history') {
+ companiesStore.getCompanyConversations(companyId.value);
+ }
+};
+
+const handleSidebarTabChange = tab => {
+ activeSidebarTab.value = tab.value;
+ loadSidebarTab(tab.value);
+};
+
const handleContactSearch = async query => {
await companiesStore.searchCompanyContactCandidates({
companyId: companyId.value,
@@ -143,10 +189,12 @@ watch(
async id => {
companiesStore.resetCompanyDetailState();
clearSelectedCandidate();
+ activeSidebarTab.value = 'history';
if (!id) return;
await Promise.allSettled([
companiesStore.show(id),
companiesStore.getCompanyContacts(id),
+ companiesStore.getCompanyConversations(id),
]);
},
{ immediate: true }
@@ -207,8 +255,29 @@ onBeforeUnmount(() => {
+
+
+
+
+
+
+
@@ -155,6 +169,13 @@ export default {
/>
{{ $t('INBOX_MGMT.IMAP.ENABLE_SSL') }}
+
{
+ const idSet = new Set(ids);
+ return records.map(record =>
+ idSet.has(record.id)
+ ? {
+ ...record,
+ sync_status: SYNCING_STATE,
+ sync_in_progress: true,
+ last_sync_attempted_at: Math.floor(Date.now() / 1000),
+ last_sync_error_code: null,
+ }
+ : record
+ );
+};
+
export default createStore({
name: 'CaptainDocument',
API: CaptainDocumentAPI,
+ getters: {
+ getRecords: state => state.records,
+ },
actions: mutations => ({
+ setFetchingList({ commit }, isFetching) {
+ commit(mutations.SET_UI_FLAG, { fetchingList: isFetching });
+ },
+ setRecords({ commit }, { records, meta }) {
+ commit(mutations.SET, records);
+ commit(mutations.SET_META, meta);
+ },
removeBulkRecords({ commit, getters }, ids) {
const records = getters.getRecords.filter(
record => !ids.includes(record.id)
);
commit(mutations.SET, records);
},
+ markSyncing({ commit, getters }, ids) {
+ commit(mutations.SET, markRecordsSyncing(getters.getRecords, ids));
+ },
+ async sync({ dispatch }, id) {
+ try {
+ await CaptainDocumentAPI.sync(id);
+ dispatch('markSyncing', [id]);
+ return id;
+ } catch (error) {
+ return throwErrorMessage(error);
+ }
+ },
}),
});
diff --git a/app/javascript/dashboard/store/storeFactory.js b/app/javascript/dashboard/store/storeFactory.js
index a623b4785..9a6d7ec01 100644
--- a/app/javascript/dashboard/store/storeFactory.js
+++ b/app/javascript/dashboard/store/storeFactory.js
@@ -134,10 +134,13 @@ export const createVuexStore = options => {
* @returns {Function} Pinia store composable
*/
export const createPiniaStore = options => {
- const { name, API, actions, getters } = options;
+ const { name, API, actions, getters, state } = options;
return defineStore(name.toLowerCase(), {
- state: createInitialState,
+ state: () => ({
+ ...createInitialState(),
+ ...(state ? state() : {}),
+ }),
getters: {
...createGetters(),
diff --git a/app/javascript/dashboard/stores/companies.js b/app/javascript/dashboard/stores/companies.js
index e31f1677a..818e4829f 100644
--- a/app/javascript/dashboard/stores/companies.js
+++ b/app/javascript/dashboard/stores/companies.js
@@ -8,10 +8,13 @@ const createInitialUIFlags = () => ({
fetchingList: false,
fetchingItem: false,
updatingItem: false,
+ creatingItem: false,
deletingItem: false,
deletingAvatar: false,
deletingCustomAttributes: false,
fetchingContacts: false,
+ fetchingConversations: false,
+ fetchingNotes: false,
searchingContacts: false,
creatingContact: false,
removingContact: false,
@@ -66,6 +69,16 @@ export const useCompaniesStore = createStore({
name: 'companies',
type: 'pinia',
API: CompanyAPI,
+ state: () => ({
+ activeCompanyId: null,
+ companyContacts: [],
+ companyContactsMeta: {},
+ companyConversations: [],
+ companyNotes: [],
+ contactSearchResults: [],
+ contactSearchMeta: {},
+ activeContactSearchQuery: '',
+ }),
getters: {
getCompaniesList: state => state.records,
@@ -172,6 +185,22 @@ export const useCompaniesStore = createStore({
}
},
+ async create(companyAttrs) {
+ this.setUIFlag({ creatingItem: true });
+ try {
+ const {
+ data: { payload },
+ } = await CompanyAPI.create(buildCompanyRequestPayload(companyAttrs));
+ const company = camelizeCompany(payload);
+ this.upsertCompanyRecord(company);
+ return company;
+ } catch (error) {
+ return throwErrorMessage(error);
+ } finally {
+ this.setUIFlag({ creatingItem: false });
+ }
+ },
+
async delete(id) {
this.setUIFlag({ deletingItem: true });
try {
@@ -253,6 +282,74 @@ export const useCompaniesStore = createStore({
}
},
+ async getCompanyNotes(companyId) {
+ this.setUIFlag({ fetchingNotes: true });
+ this.ensureActiveCompanyContext(companyId);
+ const activeCompanyId = Number(companyId);
+ const requestToken = (this.companyNotesRequestToken || 0) + 1;
+ this.companyNotesRequestToken = requestToken;
+
+ try {
+ const {
+ data: { payload },
+ } = await CompanyAPI.listNotes(companyId);
+ const notes = camelcaseKeys(payload || [], { deep: true });
+
+ if (
+ this.companyNotesRequestToken !== requestToken ||
+ this.activeCompanyId !== activeCompanyId
+ ) {
+ return notes;
+ }
+
+ this.companyNotes = notes;
+ return notes;
+ } catch (error) {
+ return throwErrorMessage(error);
+ } finally {
+ if (
+ this.companyNotesRequestToken === requestToken &&
+ this.activeCompanyId === activeCompanyId
+ ) {
+ this.setUIFlag({ fetchingNotes: false });
+ }
+ }
+ },
+
+ async getCompanyConversations(companyId) {
+ this.setUIFlag({ fetchingConversations: true });
+ this.ensureActiveCompanyContext(companyId);
+ const activeCompanyId = Number(companyId);
+ const requestToken = (this.companyConversationsRequestToken || 0) + 1;
+ this.companyConversationsRequestToken = requestToken;
+
+ try {
+ const {
+ data: { payload },
+ } = await CompanyAPI.listConversations(companyId);
+ const conversations = camelcaseKeys(payload || [], { deep: true });
+
+ if (
+ this.companyConversationsRequestToken !== requestToken ||
+ this.activeCompanyId !== activeCompanyId
+ ) {
+ return conversations;
+ }
+
+ this.companyConversations = conversations;
+ return conversations;
+ } catch (error) {
+ return throwErrorMessage(error);
+ } finally {
+ if (
+ this.companyConversationsRequestToken === requestToken &&
+ this.activeCompanyId === activeCompanyId
+ ) {
+ this.setUIFlag({ fetchingConversations: false });
+ }
+ }
+ },
+
async searchCompanyContactCandidates({ companyId, search, page = 1 }) {
const query = search?.trim() || '';
if (!query) {
@@ -362,10 +459,15 @@ export const useCompaniesStore = createStore({
(this.companyDetailRequestToken || 0) + 1;
this.companyContactsRequestToken =
(this.companyContactsRequestToken || 0) + 1;
+ this.companyConversationsRequestToken =
+ (this.companyConversationsRequestToken || 0) + 1;
+ this.companyNotesRequestToken = (this.companyNotesRequestToken || 0) + 1;
this.contactSearchRequestToken =
(this.contactSearchRequestToken || 0) + 1;
this.companyContacts = [];
this.companyContactsMeta = {};
+ this.companyConversations = [];
+ this.companyNotes = [];
this.contactSearchResults = [];
this.contactSearchMeta = {};
this.activeContactSearchQuery = '';
diff --git a/app/javascript/shared/helpers/documentHelper.js b/app/javascript/shared/helpers/documentHelper.js
index f050ad54d..ca7610f53 100644
--- a/app/javascript/shared/helpers/documentHelper.js
+++ b/app/javascript/shared/helpers/documentHelper.js
@@ -5,6 +5,7 @@
// Constants for document processing
const PDF_PREFIX = 'PDF:';
const TIMESTAMP_PATTERN = /_\d{14}(?=\.pdf$)/; // Format: _YYYYMMDDHHMMSS before .pdf extension
+const URL_DISPLAY_PREFIX_PATTERN = /^https?:\/\/(www\.)?/i;
/**
* Checks if a document is a PDF based on its external link
@@ -16,10 +17,26 @@ export const isPdfDocument = externalLink => {
return externalLink.startsWith(PDF_PREFIX);
};
+/**
+ * Checks if a link is safe to bind to an href attribute (http/https only).
+ * Guards against schemes like `javascript:` that would execute on click.
+ * @param {string} externalLink - The external link string
+ * @returns {boolean} True if the link uses http or https
+ */
+export const isSafeHttpLink = externalLink => {
+ if (!externalLink) return false;
+ try {
+ const { protocol } = new URL(externalLink);
+ return protocol === 'http:' || protocol === 'https:';
+ } catch (e) {
+ return false;
+ }
+};
+
/**
* Formats the display link for documents
* For PDF documents: removes 'PDF:' prefix and timestamp suffix
- * For regular URLs: returns as-is
+ * For regular URLs: strips http(s):// and www. for a denser list view
*
* @param {string} externalLink - The external link string
* @returns {string} Formatted display link
@@ -34,5 +51,28 @@ export const formatDocumentLink = externalLink => {
return fullName.replace(TIMESTAMP_PATTERN, '');
}
- return externalLink;
+ return externalLink.replace(URL_DISPLAY_PREFIX_PATTERN, '');
+};
+
+/**
+ * Returns the path of a URL for compact display in document lists. This avoids
+ * repeating the domain while preserving enough context to distinguish pages.
+ * Falls back to the bare hostname for root URLs and formatDocumentLink for
+ * malformed URLs and PDFs.
+ */
+export const getDocumentDisplayPath = externalLink => {
+ if (!externalLink) return '';
+ if (isPdfDocument(externalLink)) return formatDocumentLink(externalLink);
+ try {
+ const { pathname, hostname } = new URL(externalLink);
+ const path = pathname.replace(/^\/+/, '');
+ if (!path) return hostname.replace(/^www\./i, '');
+ try {
+ return decodeURIComponent(path);
+ } catch (e) {
+ return path;
+ }
+ } catch (e) {
+ return formatDocumentLink(externalLink);
+ }
};
diff --git a/app/javascript/shared/helpers/specs/documentHelper.spec.js b/app/javascript/shared/helpers/specs/documentHelper.spec.js
index 64baf7069..dc01e078d 100644
--- a/app/javascript/shared/helpers/specs/documentHelper.spec.js
+++ b/app/javascript/shared/helpers/specs/documentHelper.spec.js
@@ -1,5 +1,6 @@
import {
isPdfDocument,
+ isSafeHttpLink,
formatDocumentLink,
} from 'shared/helpers/documentHelper';
@@ -31,6 +32,35 @@ describe('documentHelper', () => {
});
});
+ describe('#isSafeHttpLink', () => {
+ it('returns true for http and https URLs', () => {
+ expect(isSafeHttpLink('http://example.com')).toBe(true);
+ expect(isSafeHttpLink('https://example.com/path?q=1#x')).toBe(true);
+ expect(isSafeHttpLink('HTTPS://EXAMPLE.COM')).toBe(true);
+ });
+
+ /* eslint-disable no-script-url */
+ it('returns false for javascript: and other dangerous schemes', () => {
+ expect(isSafeHttpLink('javascript:alert(1)')).toBe(false);
+ expect(isSafeHttpLink('JavaScript:alert(1)')).toBe(false);
+ expect(isSafeHttpLink('data:text/html,')).toBe(
+ false
+ );
+ expect(isSafeHttpLink('vbscript:msgbox(1)')).toBe(false);
+ expect(isSafeHttpLink('file:///etc/passwd')).toBe(false);
+ expect(isSafeHttpLink('ftp://files.example.com/doc.pdf')).toBe(false);
+ });
+ /* eslint-enable no-script-url */
+
+ it('returns false for invalid or empty values', () => {
+ expect(isSafeHttpLink('')).toBe(false);
+ expect(isSafeHttpLink(null)).toBe(false);
+ expect(isSafeHttpLink(undefined)).toBe(false);
+ expect(isSafeHttpLink('not a url')).toBe(false);
+ expect(isSafeHttpLink('//example.com')).toBe(false);
+ });
+ });
+
describe('#formatDocumentLink', () => {
describe('PDF documents', () => {
it('removes PDF: prefix from PDF documents', () => {
@@ -78,32 +108,30 @@ describe('documentHelper', () => {
});
describe('Regular URLs', () => {
- it('returns regular URLs unchanged', () => {
- expect(formatDocumentLink('https://example.com')).toBe(
- 'https://example.com'
- );
+ it('removes http(s) and www prefixes for compact display', () => {
+ expect(formatDocumentLink('https://example.com')).toBe('example.com');
expect(formatDocumentLink('http://docs.example.com/api')).toBe(
- 'http://docs.example.com/api'
+ 'docs.example.com/api'
);
- expect(formatDocumentLink('https://github.com/user/repo')).toBe(
- 'https://github.com/user/repo'
+ expect(formatDocumentLink('https://www.github.com/user/repo')).toBe(
+ 'github.com/user/repo'
);
});
it('handles URLs with query parameters', () => {
expect(formatDocumentLink('https://example.com?param=value')).toBe(
- 'https://example.com?param=value'
+ 'example.com?param=value'
);
expect(
formatDocumentLink(
'https://api.example.com/docs?version=v1&format=json'
)
- ).toBe('https://api.example.com/docs?version=v1&format=json');
+ ).toBe('api.example.com/docs?version=v1&format=json');
});
it('handles URLs with fragments', () => {
expect(formatDocumentLink('https://example.com/docs#section1')).toBe(
- 'https://example.com/docs#section1'
+ 'example.com/docs#section1'
);
});
});
diff --git a/app/jobs/account/branding_enrichment_job.rb b/app/jobs/account/branding_enrichment_job.rb
index 2898604ca..3deb81821 100644
--- a/app/jobs/account/branding_enrichment_job.rb
+++ b/app/jobs/account/branding_enrichment_job.rb
@@ -3,7 +3,10 @@ class Account::BrandingEnrichmentJob < ApplicationJob
def perform(account_id, email)
result = WebsiteBrandingService.new(email).perform
- return if result.blank?
+ if result.blank?
+ Rails.logger.info "[BrandingEnrichment] Enrichment failed for account=#{account_id} email=#{email}"
+ return
+ end
account = Account.find(account_id)
account.name = result[:title] if result[:title].present?
diff --git a/app/jobs/hook_job.rb b/app/jobs/hook_job.rb
index deb7c81d8..eff80844f 100644
--- a/app/jobs/hook_job.rb
+++ b/app/jobs/hook_job.rb
@@ -3,19 +3,19 @@ class HookJob < MutexApplicationJob
queue_as :medium
+ INTEGRATION_PROCESSORS = {
+ 'slack' => :process_slack_integration,
+ 'dialogflow' => :process_dialogflow_integration,
+ 'google_translate' => :google_translate_integration,
+ 'leadsquared' => :process_leadsquared_integration_with_lock,
+ 'linear' => :process_linear_integration
+ }.freeze
+
def perform(hook, event_name, event_data = {})
return if hook.disabled?
- case hook.app_id
- when 'slack'
- process_slack_integration(hook, event_name, event_data)
- when 'dialogflow'
- process_dialogflow_integration(hook, event_name, event_data)
- when 'google_translate'
- google_translate_integration(hook, event_name, event_data)
- when 'leadsquared'
- process_leadsquared_integration_with_lock(hook, event_name, event_data)
- end
+ processor = INTEGRATION_PROCESSORS[hook.app_id]
+ send(processor, hook, event_name, event_data) if processor
rescue StandardError => e
Rails.logger.error e
end
@@ -57,6 +57,13 @@ class HookJob < MutexApplicationJob
Integrations::GoogleTranslate::DetectLanguageService.new(hook: hook, message: message).perform
end
+ def process_linear_integration(hook, event_name, event_data)
+ return unless event_name == 'message.created'
+
+ message = event_data[:message]
+ Integrations::Linear::AutoLinkService.new(account: hook.account, message: message).perform
+ end
+
def process_leadsquared_integration_with_lock(hook, event_name, event_data)
# Why do we need a mutex here? glad you asked
# When a new conversation is created. We get a contact created event, immediately followed by
diff --git a/app/jobs/labels/remove_associations_job.rb b/app/jobs/labels/remove_associations_job.rb
new file mode 100644
index 000000000..502d9339e
--- /dev/null
+++ b/app/jobs/labels/remove_associations_job.rb
@@ -0,0 +1,11 @@
+class Labels::RemoveAssociationsJob < ApplicationJob
+ queue_as :default
+
+ def perform(label_title:, account_id:, label_deleted_at:)
+ Labels::DestroyService.new(
+ label_title: label_title,
+ account_id: account_id,
+ label_deleted_at: label_deleted_at
+ ).perform
+ end
+end
diff --git a/app/listeners/hook_listener.rb b/app/listeners/hook_listener.rb
index 6176d53dd..7c55b76d1 100644
--- a/app/listeners/hook_listener.rb
+++ b/app/listeners/hook_listener.rb
@@ -62,7 +62,8 @@ class HookListener < BaseListener
'slack' => ['message.created', 'message.updated'],
'dialogflow' => ['message.created', 'message.updated'],
'google_translate' => ['message.created'],
- 'leadsquared' => ['contact.updated', 'conversation.created', 'conversation.resolved']
+ 'leadsquared' => ['contact.updated', 'conversation.created', 'conversation.resolved'],
+ 'linear' => ['message.created']
}
return false unless supported_events_map.key?(hook.app_id)
diff --git a/app/models/channel/email.rb b/app/models/channel/email.rb
index b1124dd75..e61123b22 100644
--- a/app/models/channel/email.rb
+++ b/app/models/channel/email.rb
@@ -6,6 +6,7 @@
# email :string not null
# forward_to_email :string not null
# imap_address :string default("")
+# imap_authentication :string default("plain")
# imap_enable_ssl :boolean default(TRUE)
# imap_enabled :boolean default(FALSE)
# imap_login :string default("")
@@ -47,7 +48,7 @@ class Channel::Email < ApplicationRecord
end
self.table_name = 'channel_email'
- EDITABLE_ATTRS = [:email, :imap_enabled, :imap_login, :imap_password, :imap_address, :imap_port, :imap_enable_ssl,
+ EDITABLE_ATTRS = [:email, :imap_enabled, :imap_login, :imap_password, :imap_address, :imap_port, :imap_enable_ssl, :imap_authentication,
:smtp_enabled, :smtp_login, :smtp_password, :smtp_address, :smtp_port, :smtp_domain, :smtp_enable_starttls_auto,
:smtp_enable_ssl_tls, :smtp_openssl_verify_mode, :smtp_authentication, :provider, :verified_for_sending].freeze
diff --git a/app/policies/custom_attribute_definition_policy.rb b/app/policies/custom_attribute_definition_policy.rb
new file mode 100644
index 000000000..c62a04b20
--- /dev/null
+++ b/app/policies/custom_attribute_definition_policy.rb
@@ -0,0 +1,21 @@
+class CustomAttributeDefinitionPolicy < ApplicationPolicy
+ def index?
+ @account_user.administrator? || @account_user.agent?
+ end
+
+ def show?
+ @account_user.administrator? || @account_user.agent?
+ end
+
+ def create?
+ @account_user.administrator?
+ end
+
+ def update?
+ @account_user.administrator?
+ end
+
+ def destroy?
+ @account_user.administrator?
+ end
+end
diff --git a/app/services/crm/leadsquared/processor_service.rb b/app/services/crm/leadsquared/processor_service.rb
index ef33718f2..9ffa3d12c 100644
--- a/app/services/crm/leadsquared/processor_service.rb
+++ b/app/services/crm/leadsquared/processor_service.rb
@@ -89,11 +89,19 @@ class Crm::Leadsquared::ProcessorService < Crm::BaseProcessorService
metadata[metadata_key] = activity_id
store_conversation_metadata(conversation, metadata)
rescue Crm::Leadsquared::Api::BaseClient::ApiError => e
- ChatwootExceptionTracker.new(e, account: @account).capture_exception
- Rails.logger.error "LeadSquared API error in #{activity_type} activity: #{e.message}"
+ log_activity_error(e, activity_type, conversation, payload: { lead_id: lead_id, activity_code: activity_code, activity_note: activity_note })
rescue StandardError => e
- ChatwootExceptionTracker.new(e, account: @account).capture_exception
- Rails.logger.error "Error creating #{activity_type} activity in LeadSquared: #{e.message}"
+ log_activity_error(e, activity_type, conversation)
+ end
+
+ def log_activity_error(error, activity_type, conversation, payload: nil)
+ ChatwootExceptionTracker.new(error, account: @account).capture_exception
+ context = "account_id=#{conversation.account_id}, conversation_display_id=#{conversation.display_id}"
+ if payload
+ context += ", http_status=#{error.code}, prospect_id=#{payload[:lead_id]}, " \
+ "activity_event=#{payload[:activity_code]}, note_bytes=#{payload[:activity_note].to_s.bytesize}"
+ end
+ Rails.logger.error("LeadSquared #{activity_type} activity failed: #{error.message} (#{context})")
end
def get_activity_code(key)
diff --git a/app/services/imap/authentication.rb b/app/services/imap/authentication.rb
new file mode 100644
index 000000000..d5eb17cdd
--- /dev/null
+++ b/app/services/imap/authentication.rb
@@ -0,0 +1,31 @@
+module Imap::Authentication
+ DEFAULT_MECHANISM = 'plain'.freeze
+ USER_CONFIGURABLE_MECHANISMS = %w[plain login cram-md5].freeze
+
+ module_function
+
+ def normalize(mechanism)
+ mechanism.presence || DEFAULT_MECHANISM
+ end
+
+ def validate_user_configurable!(mechanism)
+ normalized_mechanism = normalize(mechanism).to_s.downcase
+ return normalized_mechanism if USER_CONFIGURABLE_MECHANISMS.include?(normalized_mechanism)
+
+ allowed_values = USER_CONFIGURABLE_MECHANISMS.join(', ')
+ raise StandardError, "Invalid IMAP authentication mechanism. Allowed values: #{allowed_values}"
+ end
+
+ def authenticate!(imap, mechanism, username, password)
+ normalized_mechanism = normalize(mechanism).to_s.downcase
+
+ case normalized_mechanism
+ when 'cram-md5'
+ imap.authenticate('CRAM-MD5', username, password)
+ when 'login'
+ imap.login(username, password)
+ else
+ imap.authenticate(normalize(mechanism), username, password)
+ end
+ end
+end
diff --git a/app/services/imap/base_fetch_email_service.rb b/app/services/imap/base_fetch_email_service.rb
index 17114f516..5a6d3537c 100644
--- a/app/services/imap/base_fetch_email_service.rb
+++ b/app/services/imap/base_fetch_email_service.rb
@@ -130,8 +130,9 @@ class Imap::BaseFetchEmailService
end
def build_imap_client
- imap = Net::IMAP.new(channel.imap_address, port: channel.imap_port, ssl: true)
- imap.authenticate(authentication_type, channel.imap_login, imap_password)
+ imap = Net::IMAP.new(channel.imap_address, port: channel.imap_port, ssl: channel.imap_enable_ssl)
+ Imap::Authentication.authenticate!(imap, authentication_type, channel.imap_login, imap_password)
+
imap.select('INBOX')
imap
end
diff --git a/app/services/imap/fetch_email_service.rb b/app/services/imap/fetch_email_service.rb
index f602b3375..2fa389e31 100644
--- a/app/services/imap/fetch_email_service.rb
+++ b/app/services/imap/fetch_email_service.rb
@@ -6,7 +6,7 @@ class Imap::FetchEmailService < Imap::BaseFetchEmailService
private
def authentication_type
- 'PLAIN'
+ channel.imap_authentication || 'plain'
end
def imap_password
diff --git a/app/services/labels/destroy_service.rb b/app/services/labels/destroy_service.rb
new file mode 100644
index 000000000..080e708e7
--- /dev/null
+++ b/app/services/labels/destroy_service.rb
@@ -0,0 +1,60 @@
+class Labels::DestroyService
+ pattr_initialize [:label_title!, :account_id!, :label_deleted_at!]
+
+ def perform
+ remove_conversation_labels
+ remove_contact_labels
+ end
+
+ private
+
+ def remove_conversation_labels
+ tagged_conversations.find_in_batches do |conversation_batch|
+ conversation_batch.each do |conversation|
+ update_conversation_cached_labels(conversation)
+ end
+ delete_label_taggings('Conversation', conversation_batch.map(&:id))
+ end
+ end
+
+ def remove_contact_labels
+ contact_label_taggings.in_batches do |tagging_batch|
+ ActsAsTaggableOn::Tagging.where(id: tagging_batch.select(:id)).delete_all
+ end
+ end
+
+ def update_conversation_cached_labels(conversation)
+ label_list = conversation.label_list.dup
+ label_list.remove(label_title)
+
+ # We only want the acts-as-taggable-on cache effect here, not Conversation callbacks/events.
+ # rubocop:disable Rails/SkipsModelValidations
+ conversation.update_column(:cached_label_list, label_list.join("#{ActsAsTaggableOn.delimiter} "))
+ # rubocop:enable Rails/SkipsModelValidations
+ end
+
+ def tagged_conversations
+ account.conversations.where(id: label_taggings_for('Conversation').select(:taggable_id))
+ end
+
+ def contact_label_taggings
+ label_taggings_for('Contact').where(taggable_id: account.contacts.select(:id))
+ end
+
+ def delete_label_taggings(taggable_type, taggable_ids)
+ ActsAsTaggableOn::Tagging
+ .where(id: label_taggings_for(taggable_type).where(taggable_id: taggable_ids).select(:id))
+ .delete_all
+ end
+
+ def label_taggings_for(taggable_type)
+ ActsAsTaggableOn::Tagging
+ .joins(:tag)
+ .where(context: 'labels', taggable_type: taggable_type, tags: { name: label_title })
+ .where('taggings.created_at <= ?', label_deleted_at)
+ end
+
+ def account
+ @account ||= Account.find(account_id)
+ end
+end
diff --git a/app/services/messages/mention_service.rb b/app/services/messages/mention_service.rb
index 8171f8168..1d42498a9 100644
--- a/app/services/messages/mention_service.rb
+++ b/app/services/messages/mention_service.rb
@@ -8,8 +8,8 @@ class Messages::MentionService
return if validated_mentioned_ids.blank?
Conversations::UserMentionJob.perform_later(validated_mentioned_ids, message.conversation.id, message.account.id)
- generate_notifications_for_mentions(validated_mentioned_ids)
add_mentioned_users_as_participants(validated_mentioned_ids)
+ generate_notifications_for_mentions(validated_mentioned_ids)
end
private
diff --git a/app/services/onboarding/web_widget_creation_service.rb b/app/services/onboarding/web_widget_creation_service.rb
new file mode 100644
index 000000000..363643f05
--- /dev/null
+++ b/app/services/onboarding/web_widget_creation_service.rb
@@ -0,0 +1,75 @@
+class Onboarding::WebWidgetCreationService
+ DEFAULT_WIDGET_COLOR = '#1f93ff'.freeze
+ # context.dev descriptions and LLM completions are unbounded; bound the
+ # stored tagline so a long string doesn't render as a wall of text in the
+ # widget UI (and so backends that enforce varchar limits don't raise).
+ WELCOME_TAGLINE_MAX_LENGTH = 255
+
+ def initialize(account, user)
+ @account = account
+ @user = user
+ end
+
+ def perform
+ existing = existing_web_widget_inbox
+ if existing
+ Rails.logger.info "[WidgetCreation] Reusing existing web widget inbox #{existing.id} for account #{@account.id}"
+ return existing
+ end
+
+ if website_url.blank?
+ Rails.logger.info "[WidgetCreation] Skipping for account #{@account.id}: no website_url available"
+ return nil
+ end
+
+ attrs = channel_attributes
+
+ ActiveRecord::Base.transaction do
+ channel = @account.web_widgets.create!(attrs)
+ inbox = @account.inboxes.create!(name: @account.name, channel: channel)
+ InboxMember.find_or_create_by!(inbox: inbox, user: @user)
+ inbox
+ end
+ rescue StandardError => e
+ Rails.logger.error "[WidgetCreation] #{e.message}"
+ nil
+ end
+
+ private
+
+ def existing_web_widget_inbox
+ @account.inboxes.find_by(channel_type: 'Channel::WebWidget')
+ end
+
+ def channel_attributes
+ {
+ website_url: website_url,
+ widget_color: widget_color,
+ welcome_title: welcome_title,
+ welcome_tagline: welcome_tagline_text&.truncate(WELCOME_TAGLINE_MAX_LENGTH)
+ }
+ end
+
+ def brand_info
+ @brand_info ||= (@account.custom_attributes['brand_info'] || {}).deep_symbolize_keys
+ end
+
+ def website_url
+ @account.domain.presence || brand_info[:domain].presence
+ end
+
+ def widget_color
+ hex = brand_info[:colors]&.first&.dig(:hex)
+ hex.to_s.match?(/\A#\h{6}\z/) ? hex : DEFAULT_WIDGET_COLOR
+ end
+
+ def welcome_title
+ brand_info[:title].presence || @account.name
+ end
+
+ def welcome_tagline_text
+ brand_info[:slogan].presence || brand_info[:description].presence
+ end
+end
+
+Onboarding::WebWidgetCreationService.prepend_mod_with('Onboarding::WebWidgetCreationService')
diff --git a/app/views/api/v1/models/_inbox.json.jbuilder b/app/views/api/v1/models/_inbox.json.jbuilder
index 89a6258ad..0ae0745cd 100644
--- a/app/views/api/v1/models/_inbox.json.jbuilder
+++ b/app/views/api/v1/models/_inbox.json.jbuilder
@@ -90,6 +90,7 @@ if resource.email?
json.imap_port resource.channel.try(:imap_port)
json.imap_enabled resource.channel.try(:imap_enabled)
json.imap_enable_ssl resource.channel.try(:imap_enable_ssl)
+ json.imap_authentication resource.channel.try(:imap_authentication)
if resource.channel.try(:microsoft?) || resource.channel.try(:google?) || resource.channel.try(:legacy_google?)
json.reauthorization_required resource.channel.try(:provider_config).empty? || resource.channel.try(:reauthorization_required?)
diff --git a/config/llm_models.json b/config/llm_models.json
index e2fe0e938..00c2038e5 100644
--- a/config/llm_models.json
+++ b/config/llm_models.json
@@ -4,7 +4,7 @@
"name": "Claude Haiku 3.5",
"provider": "anthropic",
"family": "claude-haiku",
- "created_at": "2024-10-22 00:00:00 +0530",
+ "created_at": "2024-10-22 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 8192,
"knowledge_cutoff": "2024-07-31",
@@ -27,7 +27,8 @@
"standard": {
"input_per_million": 0.8,
"output_per_million": 4,
- "cached_input_per_million": 0.08
+ "cache_read_input_per_million": 0.08,
+ "cache_write_input_per_million": 1
}
}
},
@@ -56,7 +57,7 @@
"name": "Claude Haiku 3.5 (latest)",
"provider": "anthropic",
"family": "claude-haiku",
- "created_at": "2024-10-22 00:00:00 +0530",
+ "created_at": "2024-10-22 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 8192,
"knowledge_cutoff": "2024-07-31",
@@ -79,7 +80,8 @@
"standard": {
"input_per_million": 0.8,
"output_per_million": 4,
- "cached_input_per_million": 0.08
+ "cache_read_input_per_million": 0.08,
+ "cache_write_input_per_million": 1
}
}
},
@@ -108,7 +110,7 @@
"name": "Claude Sonnet 3.5",
"provider": "anthropic",
"family": "claude-sonnet",
- "created_at": "2024-06-20 00:00:00 +0530",
+ "created_at": "2024-06-20 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 8192,
"knowledge_cutoff": "2024-04-30",
@@ -131,7 +133,8 @@
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
@@ -160,7 +163,7 @@
"name": "Claude Sonnet 3.5 v2",
"provider": "anthropic",
"family": "claude-sonnet",
- "created_at": "2024-10-22 00:00:00 +0530",
+ "created_at": "2024-10-22 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 8192,
"knowledge_cutoff": "2024-04-30",
@@ -183,7 +186,8 @@
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
@@ -212,7 +216,7 @@
"name": "Claude Sonnet 3.7",
"provider": "anthropic",
"family": "claude-sonnet",
- "created_at": "2025-02-19 00:00:00 +0530",
+ "created_at": "2025-02-19 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2024-10-31",
@@ -236,7 +240,8 @@
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
@@ -265,7 +270,7 @@
"name": "Claude Haiku 3",
"provider": "anthropic",
"family": "claude-haiku",
- "created_at": "2024-03-13 00:00:00 +0530",
+ "created_at": "2024-03-13 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 4096,
"knowledge_cutoff": "2023-08-31",
@@ -288,7 +293,8 @@
"standard": {
"input_per_million": 0.25,
"output_per_million": 1.25,
- "cached_input_per_million": 0.03
+ "cache_read_input_per_million": 0.03,
+ "cache_write_input_per_million": 0.3
}
}
},
@@ -317,7 +323,7 @@
"name": "Claude Opus 3",
"provider": "anthropic",
"family": "claude-opus",
- "created_at": "2024-02-29 00:00:00 +0530",
+ "created_at": "2024-02-29 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 4096,
"knowledge_cutoff": "2023-08-31",
@@ -340,7 +346,8 @@
"standard": {
"input_per_million": 15,
"output_per_million": 75,
- "cached_input_per_million": 1.5
+ "cache_read_input_per_million": 1.5,
+ "cache_write_input_per_million": 18.75
}
}
},
@@ -369,7 +376,7 @@
"name": "Claude Sonnet 3",
"provider": "anthropic",
"family": "claude-sonnet",
- "created_at": "2024-03-04 00:00:00 +0530",
+ "created_at": "2024-03-04 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 4096,
"knowledge_cutoff": "2023-08-31",
@@ -392,7 +399,8 @@
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 0.3
}
}
},
@@ -421,7 +429,7 @@
"name": "Claude Haiku 4.5 (latest)",
"provider": "anthropic",
"family": "claude-haiku",
- "created_at": "2025-10-15 00:00:00 +0530",
+ "created_at": "2025-10-15 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2025-02-28",
@@ -445,7 +453,8 @@
"standard": {
"input_per_million": 1,
"output_per_million": 5,
- "cached_input_per_million": 0.1
+ "cache_read_input_per_million": 0.1,
+ "cache_write_input_per_million": 1.25
}
}
},
@@ -474,7 +483,7 @@
"name": "Claude Haiku 4.5",
"provider": "anthropic",
"family": "claude-haiku",
- "created_at": "2025-10-15 00:00:00 +0530",
+ "created_at": "2025-10-15 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2025-02-28",
@@ -498,7 +507,8 @@
"standard": {
"input_per_million": 1,
"output_per_million": 5,
- "cached_input_per_million": 0.1
+ "cache_read_input_per_million": 0.1,
+ "cache_write_input_per_million": 1.25
}
}
},
@@ -527,7 +537,7 @@
"name": "Claude Opus 4 (latest)",
"provider": "anthropic",
"family": "claude-opus",
- "created_at": "2025-05-22 00:00:00 +0530",
+ "created_at": "2025-05-22 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 32000,
"knowledge_cutoff": "2025-03-31",
@@ -551,7 +561,8 @@
"standard": {
"input_per_million": 15,
"output_per_million": 75,
- "cached_input_per_million": 1.5
+ "cache_read_input_per_million": 1.5,
+ "cache_write_input_per_million": 18.75
}
}
},
@@ -580,7 +591,7 @@
"name": "Claude Opus 4.1 (latest)",
"provider": "anthropic",
"family": "claude-opus",
- "created_at": "2025-08-05 00:00:00 +0530",
+ "created_at": "2025-08-05 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 32000,
"knowledge_cutoff": "2025-03-31",
@@ -604,7 +615,8 @@
"standard": {
"input_per_million": 15,
"output_per_million": 75,
- "cached_input_per_million": 1.5
+ "cache_read_input_per_million": 1.5,
+ "cache_write_input_per_million": 18.75
}
}
},
@@ -633,7 +645,7 @@
"name": "Claude Opus 4.1",
"provider": "anthropic",
"family": "claude-opus",
- "created_at": "2025-08-05 00:00:00 +0530",
+ "created_at": "2025-08-05 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 32000,
"knowledge_cutoff": "2025-03-31",
@@ -657,7 +669,8 @@
"standard": {
"input_per_million": 15,
"output_per_million": 75,
- "cached_input_per_million": 1.5
+ "cache_read_input_per_million": 1.5,
+ "cache_write_input_per_million": 18.75
}
}
},
@@ -686,7 +699,7 @@
"name": "Claude Opus 4",
"provider": "anthropic",
"family": "claude-opus",
- "created_at": "2025-05-22 00:00:00 +0530",
+ "created_at": "2025-05-22 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 32000,
"knowledge_cutoff": "2025-03-31",
@@ -710,7 +723,8 @@
"standard": {
"input_per_million": 15,
"output_per_million": 75,
- "cached_input_per_million": 1.5
+ "cache_read_input_per_million": 1.5,
+ "cache_write_input_per_million": 18.75
}
}
},
@@ -739,7 +753,7 @@
"name": "Claude Opus 4.5 (latest)",
"provider": "anthropic",
"family": "claude-opus",
- "created_at": "2025-11-24 00:00:00 +0530",
+ "created_at": "2025-11-24 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2025-03-31",
@@ -763,7 +777,8 @@
"standard": {
"input_per_million": 5,
"output_per_million": 25,
- "cached_input_per_million": 0.5
+ "cache_read_input_per_million": 0.5,
+ "cache_write_input_per_million": 6.25
}
}
},
@@ -792,7 +807,7 @@
"name": "Claude Opus 4.5",
"provider": "anthropic",
"family": "claude-opus",
- "created_at": "2025-11-01 00:00:00 +0530",
+ "created_at": "2025-11-01 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2025-03-31",
@@ -816,7 +831,8 @@
"standard": {
"input_per_million": 5,
"output_per_million": 25,
- "cached_input_per_million": 0.5
+ "cache_read_input_per_million": 0.5,
+ "cache_write_input_per_million": 6.25
}
}
},
@@ -845,10 +861,10 @@
"name": "Claude Opus 4.6",
"provider": "anthropic",
"family": "claude-opus",
- "created_at": "2026-02-05 00:00:00 +0530",
+ "created_at": "2026-02-05 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 128000,
- "knowledge_cutoff": null,
+ "knowledge_cutoff": "2025-05-31",
"modalities": {
"input": [
"text",
@@ -869,7 +885,8 @@
"standard": {
"input_per_million": 5,
"output_per_million": 25,
- "cached_input_per_million": 0.5
+ "cache_read_input_per_million": 0.5,
+ "cache_write_input_per_million": 6.25
}
}
},
@@ -890,7 +907,61 @@
"context": 1000000,
"output": 128000
},
- "knowledge": "2025-05"
+ "knowledge": "2025-05-31"
+ }
+ },
+ {
+ "id": "claude-opus-4-7",
+ "name": "Claude Opus 4.7",
+ "provider": "anthropic",
+ "family": "claude-opus",
+ "created_at": "2026-04-16 00:00:00 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 128000,
+ "knowledge_cutoff": "2026-01-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,
+ "cache_read_input_per_million": 0.5,
+ "cache_write_input_per_million": 6.25
+ }
+ }
+ },
+ "metadata": {
+ "source": "models.dev",
+ "provider_id": "anthropic",
+ "open_weights": false,
+ "attachment": true,
+ "temperature": false,
+ "last_updated": "2026-04-16",
+ "cost": {
+ "input": 5,
+ "output": 25,
+ "cache_read": 0.5,
+ "cache_write": 6.25
+ },
+ "limit": {
+ "context": 1000000,
+ "output": 128000
+ },
+ "knowledge": "2026-01-31"
}
},
{
@@ -898,7 +969,7 @@
"name": "Claude Sonnet 4 (latest)",
"provider": "anthropic",
"family": "claude-sonnet",
- "created_at": "2025-05-22 00:00:00 +0530",
+ "created_at": "2025-05-22 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2025-03-31",
@@ -922,7 +993,8 @@
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
@@ -951,7 +1023,7 @@
"name": "Claude Sonnet 4",
"provider": "anthropic",
"family": "claude-sonnet",
- "created_at": "2025-05-22 00:00:00 +0530",
+ "created_at": "2025-05-22 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2025-03-31",
@@ -975,7 +1047,8 @@
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
@@ -1004,7 +1077,7 @@
"name": "Claude Sonnet 4.5 (latest)",
"provider": "anthropic",
"family": "claude-sonnet",
- "created_at": "2025-09-29 00:00:00 +0530",
+ "created_at": "2025-09-29 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2025-07-31",
@@ -1028,7 +1101,8 @@
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
@@ -1057,7 +1131,7 @@
"name": "Claude Sonnet 4.5",
"provider": "anthropic",
"family": "claude-sonnet",
- "created_at": "2025-09-29 00:00:00 +0530",
+ "created_at": "2025-09-29 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2025-07-31",
@@ -1081,7 +1155,8 @@
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
@@ -1110,10 +1185,10 @@
"name": "Claude Sonnet 4.6",
"provider": "anthropic",
"family": "claude-sonnet",
- "created_at": "2026-02-17 00:00:00 +0530",
+ "created_at": "2026-02-17 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 64000,
- "knowledge_cutoff": null,
+ "knowledge_cutoff": "2025-08-31",
"modalities": {
"input": [
"text",
@@ -1134,7 +1209,8 @@
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
@@ -1155,7 +1231,8577 @@
"context": 1000000,
"output": 64000
},
- "knowledge": "2025-08"
+ "knowledge": "2025-08-31"
+ }
+ },
+ {
+ "id": "AI21-Jamba-1.5-Large",
+ "name": "AI21-Jamba-1.5-Large",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "AI21-Jamba-1.5-Mini",
+ "name": "AI21-Jamba-1.5-Mini",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "AI21-Jamba-Instruct",
+ "name": "AI21-Jamba-Instruct",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Codestral-2501-2",
+ "name": "Codestral-2501-2",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Cohere-command-r",
+ "name": "Cohere-command-r",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Cohere-command-r-08-2024",
+ "name": "Cohere-command-r-08-2024",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Cohere-command-r-plus",
+ "name": "Cohere-command-r-plus",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Cohere-command-r-plus-08-2024",
+ "name": "Cohere-command-r-plus-08-2024",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Cohere-embed-v3-english",
+ "name": "Cohere-embed-v3-english",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Cohere-embed-v3-multilingual",
+ "name": "Cohere-embed-v3-multilingual",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Cohere-rerank-v4.0-fast",
+ "name": "Cohere-rerank-v4.0-fast",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Cohere-rerank-v4.0-pro",
+ "name": "Cohere-rerank-v4.0-pro",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "DeepSeek-R1",
+ "name": "DeepSeek-R1",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "DeepSeek-R1-0528",
+ "name": "DeepSeek-R1-0528",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "DeepSeek-V3",
+ "name": "DeepSeek-V3",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "DeepSeek-V3-0324",
+ "name": "DeepSeek-V3-0324",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "DeepSeek-V3.1",
+ "name": "DeepSeek-V3.1",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "DeepSeek-V3.2",
+ "name": "DeepSeek-V3.2",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "DeepSeek-V3.2-Speciale",
+ "name": "DeepSeek-V3.2-Speciale",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "DeepSeek-V4-Flash-2026-04-23",
+ "name": "DeepSeek-V4-Flash-2026-04-23",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "FLUX-1.1-pro",
+ "name": "FLUX-1.1-pro",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "FLUX.1-Kontext-pro",
+ "name": "FLUX.1-Kontext-pro",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "FLUX.2-pro",
+ "name": "FLUX.2-pro",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Kimi-K2-Thinking",
+ "name": "Kimi-K2-Thinking",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Kimi-K2.5",
+ "name": "Kimi-K2.5",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Kimi-K2.6-2026-04-20",
+ "name": "Kimi-K2.6-2026-04-20",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Llama-3.2-11B-Vision-Instruct",
+ "name": "Llama-3.2-11B-Vision-Instruct",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Llama-3.2-11B-Vision-Instruct-2",
+ "name": "Llama-3.2-11B-Vision-Instruct-2",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Llama-3.2-90B-Vision-Instruct",
+ "name": "Llama-3.2-90B-Vision-Instruct",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Llama-3.2-90B-Vision-Instruct-2",
+ "name": "Llama-3.2-90B-Vision-Instruct-2",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Llama-3.2-90B-Vision-Instruct-3",
+ "name": "Llama-3.2-90B-Vision-Instruct-3",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Llama-3.3-70B-Instruct",
+ "name": "Llama-3.3-70B-Instruct",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Llama-3.3-70B-Instruct-2",
+ "name": "Llama-3.3-70B-Instruct-2",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Llama-3.3-70B-Instruct-3",
+ "name": "Llama-3.3-70B-Instruct-3",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Llama-3.3-70B-Instruct-4",
+ "name": "Llama-3.3-70B-Instruct-4",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Llama-3.3-70B-Instruct-5",
+ "name": "Llama-3.3-70B-Instruct-5",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Llama-3.3-70B-Instruct-9",
+ "name": "Llama-3.3-70B-Instruct-9",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Llama-4-Maverick-17B-128E-Instruct-FP8",
+ "name": "Llama-4-Maverick-17B-128E-Instruct-FP8",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Llama-4-Scout-17B-16E-Instruct",
+ "name": "Llama-4-Scout-17B-16E-Instruct",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "MAI-DS-R1",
+ "name": "MAI-DS-R1",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "MAI-Image-2-2026-02-20",
+ "name": "MAI-Image-2-2026-02-20",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "MAI-Image-2e-2026-04-09",
+ "name": "MAI-Image-2e-2026-04-09",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Meta-Llama-3-70B-Instruct-6",
+ "name": "Meta-Llama-3-70B-Instruct-6",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Meta-Llama-3-70B-Instruct-7",
+ "name": "Meta-Llama-3-70B-Instruct-7",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Meta-Llama-3-70B-Instruct-8",
+ "name": "Meta-Llama-3-70B-Instruct-8",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Meta-Llama-3-70B-Instruct-9",
+ "name": "Meta-Llama-3-70B-Instruct-9",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Meta-Llama-3-8B-Instruct-6",
+ "name": "Meta-Llama-3-8B-Instruct-6",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Meta-Llama-3-8B-Instruct-7",
+ "name": "Meta-Llama-3-8B-Instruct-7",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Meta-Llama-3-8B-Instruct-8",
+ "name": "Meta-Llama-3-8B-Instruct-8",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Meta-Llama-3-8B-Instruct-9",
+ "name": "Meta-Llama-3-8B-Instruct-9",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Meta-Llama-3.1-405B-Instruct",
+ "name": "Meta-Llama-3.1-405B-Instruct",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Meta-Llama-3.1-70B-Instruct",
+ "name": "Meta-Llama-3.1-70B-Instruct",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Meta-Llama-3.1-70B-Instruct-2",
+ "name": "Meta-Llama-3.1-70B-Instruct-2",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Meta-Llama-3.1-70B-Instruct-3",
+ "name": "Meta-Llama-3.1-70B-Instruct-3",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Meta-Llama-3.1-70B-Instruct-4",
+ "name": "Meta-Llama-3.1-70B-Instruct-4",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Meta-Llama-3.1-8B-Instruct",
+ "name": "Meta-Llama-3.1-8B-Instruct",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Meta-Llama-3.1-8B-Instruct-2",
+ "name": "Meta-Llama-3.1-8B-Instruct-2",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Meta-Llama-3.1-8B-Instruct-3",
+ "name": "Meta-Llama-3.1-8B-Instruct-3",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Meta-Llama-3.1-8B-Instruct-4",
+ "name": "Meta-Llama-3.1-8B-Instruct-4",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Meta-Llama-3.1-8B-Instruct-5",
+ "name": "Meta-Llama-3.1-8B-Instruct-5",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Ministral-3B",
+ "name": "Ministral-3B",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Mistral-Large-2411-2",
+ "name": "Mistral-Large-2411-2",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Mistral-Large-3",
+ "name": "Mistral-Large-3",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Mistral-Nemo",
+ "name": "Mistral-Nemo",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Mistral-large",
+ "name": "Mistral-large",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Mistral-large-2407",
+ "name": "Mistral-large-2407",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Mistral-small",
+ "name": "Mistral-small",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-medium-128k-instruct-3",
+ "name": "Phi-3-medium-128k-instruct-3",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-medium-128k-instruct-4",
+ "name": "Phi-3-medium-128k-instruct-4",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-medium-128k-instruct-5",
+ "name": "Phi-3-medium-128k-instruct-5",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-medium-128k-instruct-6",
+ "name": "Phi-3-medium-128k-instruct-6",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-medium-128k-instruct-7",
+ "name": "Phi-3-medium-128k-instruct-7",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-medium-4k-instruct-3",
+ "name": "Phi-3-medium-4k-instruct-3",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-medium-4k-instruct-4",
+ "name": "Phi-3-medium-4k-instruct-4",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-medium-4k-instruct-5",
+ "name": "Phi-3-medium-4k-instruct-5",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-medium-4k-instruct-6",
+ "name": "Phi-3-medium-4k-instruct-6",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-mini-128k-instruct-10",
+ "name": "Phi-3-mini-128k-instruct-10",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-mini-128k-instruct-11",
+ "name": "Phi-3-mini-128k-instruct-11",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-mini-128k-instruct-12",
+ "name": "Phi-3-mini-128k-instruct-12",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-mini-128k-instruct-13",
+ "name": "Phi-3-mini-128k-instruct-13",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-mini-4k-instruct-10",
+ "name": "Phi-3-mini-4k-instruct-10",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-mini-4k-instruct-11",
+ "name": "Phi-3-mini-4k-instruct-11",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-mini-4k-instruct-13",
+ "name": "Phi-3-mini-4k-instruct-13",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-mini-4k-instruct-14",
+ "name": "Phi-3-mini-4k-instruct-14",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-mini-4k-instruct-15",
+ "name": "Phi-3-mini-4k-instruct-15",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-small-128k-instruct-3",
+ "name": "Phi-3-small-128k-instruct-3",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-small-128k-instruct-4",
+ "name": "Phi-3-small-128k-instruct-4",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-small-128k-instruct-5",
+ "name": "Phi-3-small-128k-instruct-5",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-small-8k-instruct-3",
+ "name": "Phi-3-small-8k-instruct-3",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-small-8k-instruct-4",
+ "name": "Phi-3-small-8k-instruct-4",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3-small-8k-instruct-5",
+ "name": "Phi-3-small-8k-instruct-5",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3.5-MoE-instruct-2",
+ "name": "Phi-3.5-MoE-instruct-2",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3.5-MoE-instruct-3",
+ "name": "Phi-3.5-MoE-instruct-3",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3.5-MoE-instruct-4",
+ "name": "Phi-3.5-MoE-instruct-4",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3.5-MoE-instruct-5",
+ "name": "Phi-3.5-MoE-instruct-5",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3.5-mini-instruct",
+ "name": "Phi-3.5-mini-instruct",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3.5-mini-instruct-2",
+ "name": "Phi-3.5-mini-instruct-2",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3.5-mini-instruct-3",
+ "name": "Phi-3.5-mini-instruct-3",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3.5-mini-instruct-4",
+ "name": "Phi-3.5-mini-instruct-4",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3.5-mini-instruct-6",
+ "name": "Phi-3.5-mini-instruct-6",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3.5-vision-instruct",
+ "name": "Phi-3.5-vision-instruct",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-3.5-vision-instruct-2",
+ "name": "Phi-3.5-vision-instruct-2",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-4-2",
+ "name": "Phi-4-2",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-4-3",
+ "name": "Phi-4-3",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-4-4",
+ "name": "Phi-4-4",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-4-5",
+ "name": "Phi-4-5",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-4-6",
+ "name": "Phi-4-6",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-4-7",
+ "name": "Phi-4-7",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-4-mini-instruct",
+ "name": "Phi-4-mini-instruct",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-4-mini-reasoning",
+ "name": "Phi-4-mini-reasoning",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-4-multimodal-instruct",
+ "name": "Phi-4-multimodal-instruct",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Phi-4-reasoning",
+ "name": "Phi-4-reasoning",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Stable-Diffusion-3.5-Large",
+ "name": "Stable-Diffusion-3.5-Large",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Stable-Image-Core",
+ "name": "Stable-Image-Core",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "Stable-Image-Ultra",
+ "name": "Stable-Image-Ultra",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "ada",
+ "name": "ada",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "aoai-sora",
+ "name": "aoai-sora",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "aoai-sora-2025-02-28",
+ "name": "aoai-sora-2025-02-28",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "babbage",
+ "name": "babbage",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.4,
+ "output_per_million": 0.4
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "claude-haiku-4-5-20251001",
+ "name": "claude-haiku-4-5-20251001",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "claude-opus-4-1-20250805",
+ "name": "claude-opus-4-1-20250805",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "claude-opus-4-5-20251101",
+ "name": "claude-opus-4-5-20251101",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "claude-opus-4-6",
+ "name": "claude-opus-4-6",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "claude-opus-4-7",
+ "name": "claude-opus-4-7",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "claude-sonnet-4-5-20250929",
+ "name": "claude-sonnet-4-5-20250929",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "claude-sonnet-4-6",
+ "name": "claude-sonnet-4-6",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "code-cushman-001",
+ "name": "code-cushman-001",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "code-cushman-fine-tune-002",
+ "name": "code-cushman-fine-tune-002",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "code-davinci-002",
+ "name": "code-davinci-002",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "code-davinci-fine-tune-002",
+ "name": "code-davinci-fine-tune-002",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "code-search-ada-code-001",
+ "name": "code-search-ada-code-001",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "code-search-ada-text-001",
+ "name": "code-search-ada-text-001",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "code-search-babbage-code-001",
+ "name": "code-search-babbage-code-001",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "code-search-babbage-text-001",
+ "name": "code-search-babbage-text-001",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "codex-mini-2025-05-16",
+ "name": "codex-mini-2025-05-16",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "cohere-command-a",
+ "name": "cohere-command-a",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "computer-use-preview-2025-04-15",
+ "name": "computer-use-preview-2025-04-15",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "curie",
+ "name": "curie",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "dall-e-2",
+ "name": "dall-e-2",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "dall-e-2-2.0",
+ "name": "dall-e-2-2.0",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "dall-e-3",
+ "name": "dall-e-3",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "dall-e-3-3.0",
+ "name": "dall-e-3-3.0",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "davinci",
+ "name": "davinci",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.0,
+ "output_per_million": 2.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "embed-v-4-0",
+ "name": "embed-v-4-0",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-35-turbo",
+ "name": "gpt-35-turbo",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-35-turbo-0125",
+ "name": "gpt-35-turbo-0125",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-35-turbo-0301",
+ "name": "gpt-35-turbo-0301",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-35-turbo-0613",
+ "name": "gpt-35-turbo-0613",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-35-turbo-1106",
+ "name": "gpt-35-turbo-1106",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-35-turbo-16k",
+ "name": "gpt-35-turbo-16k",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-35-turbo-16k-0613",
+ "name": "gpt-35-turbo-16k-0613",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-35-turbo-instruct",
+ "name": "gpt-35-turbo-instruct",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-35-turbo-instruct-0914",
+ "name": "gpt-35-turbo-instruct-0914",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4",
+ "name": "gpt-4",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 8192,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 10.0,
+ "output_per_million": 30.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4-0125-Preview",
+ "name": "gpt-4-0125-Preview",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4-0314",
+ "name": "gpt-4-0314",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4-0613",
+ "name": "gpt-4-0613",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4-1106-Preview",
+ "name": "gpt-4-1106-Preview",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4-32k",
+ "name": "gpt-4-32k",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4-32k-0314",
+ "name": "gpt-4-32k-0314",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4-32k-0613",
+ "name": "gpt-4-32k-0613",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4-turbo-2024-04-09",
+ "name": "gpt-4-turbo-2024-04-09",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 10.0,
+ "output_per_million": 30.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4-turbo-jp",
+ "name": "gpt-4-turbo-jp",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 10.0,
+ "output_per_million": 30.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4-vision-preview",
+ "name": "gpt-4-vision-preview",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4.1",
+ "name": "gpt-4.1",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 1047576,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.0,
+ "output_per_million": 8.0,
+ "cache_read_input_per_million": 0.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4.1-2025-04-14",
+ "name": "gpt-4.1-2025-04-14",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 1047576,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.0,
+ "output_per_million": 8.0,
+ "cache_read_input_per_million": 0.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4.1-2025-04-14-text",
+ "name": "gpt-4.1-2025-04-14-text",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 1047576,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.0,
+ "output_per_million": 8.0,
+ "cache_read_input_per_million": 0.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4.1-mini",
+ "name": "gpt-4.1-mini",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 1047576,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.4,
+ "output_per_million": 1.6,
+ "cache_read_input_per_million": 0.1
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4.1-mini-2025-04-14",
+ "name": "gpt-4.1-mini-2025-04-14",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 1047576,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.4,
+ "output_per_million": 1.6,
+ "cache_read_input_per_million": 0.1
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4.1-nano",
+ "name": "gpt-4.1-nano",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 1047576,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.1,
+ "output_per_million": 0.4
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4.1-nano-2025-04-14",
+ "name": "gpt-4.1-nano-2025-04-14",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 1047576,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.1,
+ "output_per_million": 0.4
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o",
+ "name": "gpt-4o",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-2024-05-13",
+ "name": "gpt-4o-2024-05-13",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-2024-08-06",
+ "name": "gpt-4o-2024-08-06",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-2024-11-20",
+ "name": "gpt-4o-2024-11-20",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-audio-mai",
+ "name": "gpt-4o-audio-mai",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-audio-preview-2024-10-01",
+ "name": "gpt-4o-audio-preview-2024-10-01",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-audio-preview-2024-12-17",
+ "name": "gpt-4o-audio-preview-2024-12-17",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-audio-preview-2025-06-03",
+ "name": "gpt-4o-audio-preview-2025-06-03",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-canvas-2024-09-25",
+ "name": "gpt-4o-canvas-2024-09-25",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-mini",
+ "name": "gpt-4o-mini",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.15,
+ "output_per_million": 0.6
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-mini-2024-07-18",
+ "name": "gpt-4o-mini-2024-07-18",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.15,
+ "output_per_million": 0.6
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-mini-audio-preview-2024-12-17",
+ "name": "gpt-4o-mini-audio-preview-2024-12-17",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.15,
+ "output_per_million": 0.6
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-mini-realtime-preview-2024-12-17",
+ "name": "gpt-4o-mini-realtime-preview-2024-12-17",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.6,
+ "output_per_million": 2.4
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-mini-transcribe",
+ "name": "gpt-4o-mini-transcribe",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 16000,
+ "max_output_tokens": 2000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 5.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-mini-transcribe-2025-03-20",
+ "name": "gpt-4o-mini-transcribe-2025-03-20",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 16000,
+ "max_output_tokens": 2000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 5.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-mini-transcribe-2025-12-15",
+ "name": "gpt-4o-mini-transcribe-2025-12-15",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 16000,
+ "max_output_tokens": 2000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 5.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-mini-tts",
+ "name": "gpt-4o-mini-tts",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.6,
+ "output_per_million": 12.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-mini-tts-2025-03-20",
+ "name": "gpt-4o-mini-tts-2025-03-20",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.6,
+ "output_per_million": 12.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-mini-tts-2025-12-15",
+ "name": "gpt-4o-mini-tts-2025-12-15",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.6,
+ "output_per_million": 12.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-realtime-preview",
+ "name": "gpt-4o-realtime-preview",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 5.0,
+ "output_per_million": 20.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-realtime-preview-2024-12-17",
+ "name": "gpt-4o-realtime-preview-2024-12-17",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 5.0,
+ "output_per_million": 20.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-realtime-preview-2025-06-03",
+ "name": "gpt-4o-realtime-preview-2025-06-03",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 5.0,
+ "output_per_million": 20.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-transcribe",
+ "name": "gpt-4o-transcribe",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-transcribe-2025-03-20",
+ "name": "gpt-4o-transcribe-2025-03-20",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-transcribe-diarize",
+ "name": "gpt-4o-transcribe-diarize",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-4o-transcribe-diarize-2025-10-15",
+ "name": "gpt-4o-transcribe-diarize-2025-10-15",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5-2025-08-07",
+ "name": "gpt-5-2025-08-07",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5-chat-2025-08-07",
+ "name": "gpt-5-chat-2025-08-07",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5-chat-2025-08-15",
+ "name": "gpt-5-chat-2025-08-15",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5-chat-2025-10-03",
+ "name": "gpt-5-chat-2025-10-03",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5-codex-2025-09-15",
+ "name": "gpt-5-codex-2025-09-15",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5-mini-2025-08-07",
+ "name": "gpt-5-mini-2025-08-07",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.25,
+ "output_per_million": 2.0,
+ "cache_read_input_per_million": 0.025
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5-mini-2025-08-07-lite",
+ "name": "gpt-5-mini-2025-08-07-lite",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.25,
+ "output_per_million": 2.0,
+ "cache_read_input_per_million": 0.025
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5-mini-lite-2025-08-07",
+ "name": "gpt-5-mini-lite-2025-08-07",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.25,
+ "output_per_million": 2.0,
+ "cache_read_input_per_million": 0.025
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5-nano-2025-08-07",
+ "name": "gpt-5-nano-2025-08-07",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.05,
+ "output_per_million": 0.4,
+ "cache_read_input_per_million": 0.005
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5-pro-2025-10-06",
+ "name": "gpt-5-pro-2025-10-06",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5.1",
+ "name": "gpt-5.1",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5.1-2025-11-13",
+ "name": "gpt-5.1-2025-11-13",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5.1-chat-2025-11-13",
+ "name": "gpt-5.1-chat-2025-11-13",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5.1-codex-2025-11-13",
+ "name": "gpt-5.1-codex-2025-11-13",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5.1-codex-max-2025-12-04",
+ "name": "gpt-5.1-codex-max-2025-12-04",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5.1-codex-mini-2025-11-13",
+ "name": "gpt-5.1-codex-mini-2025-11-13",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.25,
+ "output_per_million": 2.0,
+ "cache_read_input_per_million": 0.025
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5.2-2025-12-11",
+ "name": "gpt-5.2-2025-12-11",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5.2-chat-2025-12-11",
+ "name": "gpt-5.2-chat-2025-12-11",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5.2-chat-2026-02-10",
+ "name": "gpt-5.2-chat-2026-02-10",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5.2-codex-2026-01-14",
+ "name": "gpt-5.2-codex-2026-01-14",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5.3-chat-2026-03-03",
+ "name": "gpt-5.3-chat-2026-03-03",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5.3-codex-2026-02-20",
+ "name": "gpt-5.3-codex-2026-02-20",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5.3-codex-2026-02-24",
+ "name": "gpt-5.3-codex-2026-02-24",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5.4-2026-03-05",
+ "name": "gpt-5.4-2026-03-05",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5.4-mini-2026-03-17",
+ "name": "gpt-5.4-mini-2026-03-17",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.25,
+ "output_per_million": 2.0,
+ "cache_read_input_per_million": 0.025
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5.4-nano-2026-03-17",
+ "name": "gpt-5.4-nano-2026-03-17",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.05,
+ "output_per_million": 0.4,
+ "cache_read_input_per_million": 0.005
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5.4-pro-2026-03-05",
+ "name": "gpt-5.4-pro-2026-03-05",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-5.5-2026-04-24",
+ "name": "gpt-5.5-2026-04-24",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-audio-1.5-2026-02-23",
+ "name": "gpt-audio-1.5-2026-02-23",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-audio-2025-08-28",
+ "name": "gpt-audio-2025-08-28",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-audio-mini-2025-10-06",
+ "name": "gpt-audio-mini-2025-10-06",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-chat-latest-2026-05-05",
+ "name": "gpt-chat-latest-2026-05-05",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-image-1",
+ "name": "gpt-image-1",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 5.0,
+ "cache_read_input_per_million": 1.25
+ }
+ },
+ "images": {
+ "standard": {
+ "input_per_million": 10.0,
+ "output_per_million": 40.0,
+ "cache_read_input_per_million": 2.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-image-1-2025-04-15",
+ "name": "gpt-image-1-2025-04-15",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 5.0,
+ "cache_read_input_per_million": 1.25
+ }
+ },
+ "images": {
+ "standard": {
+ "input_per_million": 10.0,
+ "output_per_million": 40.0,
+ "cache_read_input_per_million": 2.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-image-1-mini",
+ "name": "gpt-image-1-mini",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.0,
+ "cache_read_input_per_million": 0.2
+ }
+ },
+ "images": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 8.0,
+ "cache_read_input_per_million": 0.25
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-image-1-mini-2025-10-06",
+ "name": "gpt-image-1-mini-2025-10-06",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.0,
+ "cache_read_input_per_million": 0.2
+ }
+ },
+ "images": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 8.0,
+ "cache_read_input_per_million": 0.25
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-image-1.5",
+ "name": "gpt-image-1.5",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 5.0,
+ "cache_read_input_per_million": 1.25
+ }
+ },
+ "images": {
+ "standard": {
+ "input_per_million": 8.0,
+ "output_per_million": 32.0,
+ "cache_read_input_per_million": 2.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-image-1.5-2025-12-16",
+ "name": "gpt-image-1.5-2025-12-16",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 5.0,
+ "cache_read_input_per_million": 1.25
+ }
+ },
+ "images": {
+ "standard": {
+ "input_per_million": 8.0,
+ "output_per_million": 32.0,
+ "cache_read_input_per_million": 2.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-oss-120b",
+ "name": "gpt-oss-120b",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-oss-20b-11",
+ "name": "gpt-oss-20b-11",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-realtime-1.5-2026-02-23",
+ "name": "gpt-realtime-1.5-2026-02-23",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-realtime-2025-08-28",
+ "name": "gpt-realtime-2025-08-28",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-realtime-mini",
+ "name": "gpt-realtime-mini",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-realtime-mini-2025-10-06",
+ "name": "gpt-realtime-mini-2025-10-06",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "gpt-realtime-mini-2025-12-15",
+ "name": "gpt-realtime-mini-2025-12-15",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "grok-3",
+ "name": "grok-3",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "grok-3-mini",
+ "name": "grok-3-mini",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "grok-4-1-fast-non-reasoning",
+ "name": "grok-4-1-fast-non-reasoning",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "grok-4-1-fast-reasoning",
+ "name": "grok-4-1-fast-reasoning",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "grok-4-20-non-reasoning",
+ "name": "grok-4-20-non-reasoning",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "grok-4-20-reasoning",
+ "name": "grok-4-20-reasoning",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "grok-4-fast-non-reasoning",
+ "name": "grok-4-fast-non-reasoning",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "grok-4-fast-reasoning",
+ "name": "grok-4-fast-reasoning",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "jais-30b-chat",
+ "name": "jais-30b-chat",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "jais-30b-chat-2",
+ "name": "jais-30b-chat-2",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "jais-30b-chat-3",
+ "name": "jais-30b-chat-3",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "mistral-document-ai-2505",
+ "name": "mistral-document-ai-2505",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "mistral-document-ai-2512",
+ "name": "mistral-document-ai-2512",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "mistral-medium-2505",
+ "name": "mistral-medium-2505",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "mistral-small-2503",
+ "name": "mistral-small-2503",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "model-router",
+ "name": "model-router",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "model-router-2025-05-19",
+ "name": "model-router-2025-05-19",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "model-router-2025-08-07",
+ "name": "model-router-2025-08-07",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "model-router-2025-11-18",
+ "name": "model-router-2025-11-18",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "o1-2024-12-17",
+ "name": "o1-2024-12-17",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 200000,
+ "max_output_tokens": 100000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 15.0,
+ "output_per_million": 60.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "o1-mini-2024-09-12",
+ "name": "o1-mini-2024-09-12",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.1,
+ "output_per_million": 4.4
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "o1-pro",
+ "name": "o1-pro",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 200000,
+ "max_output_tokens": 100000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 150.0,
+ "output_per_million": 600.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "o1-pro-2025-03-19",
+ "name": "o1-pro-2025-03-19",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 200000,
+ "max_output_tokens": 100000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 150.0,
+ "output_per_million": 600.0
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "o3-deep-research-2025-06-26",
+ "name": "o3-deep-research-2025-06-26",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "o3-deep-research-2025-06-26-ev3",
+ "name": "o3-deep-research-2025-06-26-ev3",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "o3-mini",
+ "name": "o3-mini",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 200000,
+ "max_output_tokens": 100000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.1,
+ "output_per_million": 4.4
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "o3-mini-2025-01-31",
+ "name": "o3-mini-2025-01-31",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 200000,
+ "max_output_tokens": 100000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.1,
+ "output_per_million": 4.4
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "o3-mini-alpha",
+ "name": "o3-mini-alpha",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 200000,
+ "max_output_tokens": 100000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.1,
+ "output_per_million": 4.4
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "o3-mini-alpha-2024-12-17",
+ "name": "o3-mini-alpha-2024-12-17",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 200000,
+ "max_output_tokens": 100000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.1,
+ "output_per_million": 4.4
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "o4-mini",
+ "name": "o4-mini",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "o4-mini-2025-04-16",
+ "name": "o4-mini-2025-04-16",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "qwen-3-32b",
+ "name": "qwen-3-32b",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "qwen3-32b",
+ "name": "qwen3-32b",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "sora",
+ "name": "sora",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "sora-2",
+ "name": "sora-2",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "sora-2-2025-10-06",
+ "name": "sora-2-2025-10-06",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "sora-2-2025-12-08",
+ "name": "sora-2-2025-12-08",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "sora-2025-05-02",
+ "name": "sora-2025-05-02",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "text-ada-001",
+ "name": "text-ada-001",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "text-babbage-001",
+ "name": "text-babbage-001",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "text-curie-001",
+ "name": "text-curie-001",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "text-davinci-001",
+ "name": "text-davinci-001",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "text-davinci-002",
+ "name": "text-davinci-002",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "text-davinci-003",
+ "name": "text-davinci-003",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "text-davinci-fine-tune-002",
+ "name": "text-davinci-fine-tune-002",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "text-embedding-3-large",
+ "name": "text-embedding-3-large",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.13,
+ "output_per_million": 0.13
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "text-embedding-3-small",
+ "name": "text-embedding-3-small",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.02,
+ "output_per_million": 0.02
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "text-embedding-ada-002",
+ "name": "text-embedding-ada-002",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.1,
+ "output_per_million": 0.1
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "text-embedding-ada-002-2",
+ "name": "text-embedding-ada-002-2",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.1,
+ "output_per_million": 0.1
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "text-search-ada-doc-001",
+ "name": "text-search-ada-doc-001",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "text-search-ada-query-001",
+ "name": "text-search-ada-query-001",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "text-search-babbage-doc-001",
+ "name": "text-search-babbage-doc-001",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "text-search-babbage-query-001",
+ "name": "text-search-babbage-query-001",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "text-search-curie-doc-001",
+ "name": "text-search-curie-doc-001",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "text-search-curie-query-001",
+ "name": "text-search-curie-query-001",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "text-search-davinci-doc-001",
+ "name": "text-search-davinci-doc-001",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "text-search-davinci-query-001",
+ "name": "text-search-davinci-query-001",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "text-similarity-ada-001",
+ "name": "text-similarity-ada-001",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "text-similarity-babbage-001",
+ "name": "text-similarity-babbage-001",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "text-similarity-curie-001",
+ "name": "text-similarity-curie-001",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "text-similarity-davinci-001",
+ "name": "text-similarity-davinci-001",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "whisper",
+ "name": "whisper",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.006,
+ "output_per_million": 0.006
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
+ }
+ },
+ {
+ "id": "whisper-001",
+ "name": "whisper-001",
+ "provider": "azure",
+ "family": null,
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.006,
+ "output_per_million": 0.006
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": null
}
},
{
@@ -1163,7 +9809,7 @@
"name": "Nova 2 Lite",
"provider": "bedrock",
"family": "nova",
- "created_at": "2024-12-01 00:00:00 +0530",
+ "created_at": "2024-12-01 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -1206,12 +9852,44 @@
}
}
},
+ {
+ "id": "amazon.nova-2-sonic-v1:0",
+ "name": "Nova 2 Sonic",
+ "provider": "bedrock",
+ "family": "Nova",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "audio"
+ ],
+ "output": [
+ "audio",
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Amazon",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/amazon.nova-2-sonic-v1:0",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {}
+ }
+ },
{
"id": "amazon.nova-lite-v1:0",
"name": "Nova Lite",
"provider": "bedrock",
"family": "nova-lite",
- "created_at": "2024-12-03 00:00:00 +0530",
+ "created_at": "2024-12-03 00:00:00 UTC",
"context_window": 300000,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -1234,7 +9912,7 @@
"standard": {
"input_per_million": 0.06,
"output_per_million": 0.24,
- "cached_input_per_million": 0.015
+ "cache_read_input_per_million": 0.015
}
}
},
@@ -1262,7 +9940,7 @@
"name": "Nova Micro",
"provider": "bedrock",
"family": "nova-micro",
- "created_at": "2024-12-03 00:00:00 +0530",
+ "created_at": "2024-12-03 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -1282,7 +9960,7 @@
"standard": {
"input_per_million": 0.035,
"output_per_million": 0.14,
- "cached_input_per_million": 0.00875
+ "cache_read_input_per_million": 0.00875
}
}
},
@@ -1310,7 +9988,7 @@
"name": "Nova Premier",
"provider": "bedrock",
"family": "nova",
- "created_at": "2024-12-03 00:00:00 +0530",
+ "created_at": "2024-12-03 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
@@ -1355,12 +10033,208 @@
"knowledge": "2024-10"
}
},
+ {
+ "id": "amazon.nova-premier-v1:0:1000k",
+ "name": "Nova Premier",
+ "provider": "bedrock",
+ "family": "nova",
+ "created_at": "2024-12-03 00:00:00 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "reasoning",
+ "vision",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 12.5
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Amazon",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/amazon.nova-premier-v1:0:1000k",
+ "inference_types": [],
+ "converse": {},
+ "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-premier-v1:0:20k",
+ "name": "Nova Premier",
+ "provider": "bedrock",
+ "family": "nova",
+ "created_at": "2024-12-03 00:00:00 UTC",
+ "context_window": 20000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "reasoning",
+ "vision",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 12.5
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Amazon",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/amazon.nova-premier-v1:0:20k",
+ "inference_types": [],
+ "converse": {},
+ "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-premier-v1:0:8k",
+ "name": "Nova Premier",
+ "provider": "bedrock",
+ "family": "nova",
+ "created_at": "2024-12-03 00:00:00 UTC",
+ "context_window": 8000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "reasoning",
+ "vision",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 12.5
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Amazon",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/amazon.nova-premier-v1:0:8k",
+ "inference_types": [],
+ "converse": {},
+ "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-premier-v1:0:mm",
+ "name": "Nova Premier",
+ "provider": "bedrock",
+ "family": "amazon",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Amazon",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/amazon.nova-premier-v1:0:mm",
+ "inference_types": [],
+ "converse": {}
+ }
+ },
{
"id": "amazon.nova-pro-v1:0",
"name": "Nova Pro",
"provider": "bedrock",
"family": "nova-pro",
- "created_at": "2024-12-03 00:00:00 +0530",
+ "created_at": "2024-12-03 00:00:00 UTC",
"context_window": 300000,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -1383,7 +10257,7 @@
"standard": {
"input_per_million": 0.8,
"output_per_million": 3.2,
- "cached_input_per_million": 0.2
+ "cache_read_input_per_million": 0.2
}
}
},
@@ -1406,15 +10280,259 @@
"knowledge": "2024-10"
}
},
+ {
+ "id": "amazon.rerank-v1:0",
+ "name": "Rerank 1.0",
+ "provider": "bedrock",
+ "family": "amazon",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Amazon",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/amazon.rerank-v1:0",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "amazon.titan-embed-g1-text-02",
+ "name": "Titan Text Embeddings v2",
+ "provider": "bedrock",
+ "family": "amazon",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "embeddings"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Amazon",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/amazon.titan-embed-g1-text-02",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "amazon.titan-embed-image-v1",
+ "name": "Titan Multimodal Embeddings G1",
+ "provider": "bedrock",
+ "family": "amazon",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "embeddings"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Amazon",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/amazon.titan-embed-image-v1",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "amazon.titan-embed-image-v1:0",
+ "name": "Titan Multimodal Embeddings G1",
+ "provider": "bedrock",
+ "family": "amazon",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "embeddings"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Amazon",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/amazon.titan-embed-image-v1:0",
+ "inference_types": [
+ "PROVISIONED"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "amazon.titan-embed-text-v1",
+ "name": "Titan Embeddings G1 - Text",
+ "provider": "bedrock",
+ "family": "amazon",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "embeddings"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Amazon",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/amazon.titan-embed-text-v1",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "amazon.titan-embed-text-v1:2:8k",
+ "name": "Titan Embeddings G1 - Text",
+ "provider": "bedrock",
+ "family": "amazon",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "embeddings"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Amazon",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/amazon.titan-embed-text-v1:2:8k",
+ "inference_types": [
+ "PROVISIONED"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "amazon.titan-embed-text-v2:0",
+ "name": "Titan Text Embeddings V2",
+ "provider": "bedrock",
+ "family": "amazon",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "embeddings"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Amazon",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/amazon.titan-embed-text-v2:0",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "amazon.titan-image-generator-v2:0",
+ "name": "Titan Image Generator G1 v2",
+ "provider": "bedrock",
+ "family": "amazon",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "image"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Amazon",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/amazon.titan-image-generator-v2:0",
+ "inference_types": [
+ "PROVISIONED",
+ "ON_DEMAND"
+ ],
+ "converse": {}
+ }
+ },
{
"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",
+ "created_at": "2024-10-22 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 8192,
- "knowledge_cutoff": null,
+ "knowledge_cutoff": "2024-07-31",
"modalities": {
"input": [
"text",
@@ -1427,18 +10545,26 @@
},
"capabilities": [
"function_calling",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.8,
"output_per_million": 4,
- "cached_input_per_million": 0.08
+ "cache_read_input_per_million": 0.08,
+ "cache_write_input_per_million": 1
}
}
},
"metadata": {
+ "provider_name": "Anthropic",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-5-haiku-20241022-v1:0",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {},
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
@@ -1455,7 +10581,7 @@
"context": 200000,
"output": 8192
},
- "knowledge": "2024-07"
+ "knowledge": "2024-07-31"
}
},
{
@@ -1463,10 +10589,10 @@
"name": "Claude Sonnet 3.5",
"provider": "bedrock",
"family": "claude-sonnet",
- "created_at": "2024-06-20 00:00:00 +0530",
+ "created_at": "2024-06-20 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 8192,
- "knowledge_cutoff": null,
+ "knowledge_cutoff": "2024-04-30",
"modalities": {
"input": [
"text",
@@ -1486,7 +10612,8 @@
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
@@ -1507,7 +10634,7 @@
"context": 200000,
"output": 8192
},
- "knowledge": "2024-04"
+ "knowledge": "2024-04-30"
}
},
{
@@ -1515,7 +10642,7 @@
"name": "Claude Sonnet 3.5 v2",
"provider": "bedrock",
"family": "claude-sonnet",
- "created_at": "2024-10-22 00:00:00 +0530",
+ "created_at": "2024-10-22 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -1538,7 +10665,8 @@
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
@@ -1567,7 +10695,7 @@
"name": "Claude Sonnet 3.7",
"provider": "bedrock",
"family": "claude-sonnet",
- "created_at": "2025-02-19 00:00:00 +0530",
+ "created_at": "2025-02-19 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -1590,7 +10718,8 @@
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
@@ -1619,7 +10748,7 @@
"name": "Claude Haiku 3",
"provider": "bedrock",
"family": "claude-haiku",
- "created_at": "2024-03-13 00:00:00 +0530",
+ "created_at": "2024-03-13 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -1635,7 +10764,8 @@
},
"capabilities": [
"function_calling",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -1646,6 +10776,12 @@
}
},
"metadata": {
+ "provider_name": "Anthropic",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-haiku-20240307-v1:0",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {},
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
@@ -1663,12 +10799,220 @@
"knowledge": "2024-02"
}
},
+ {
+ "id": "anthropic.claude-3-haiku-20240307-v1:0:200k",
+ "name": "Claude Haiku 3",
+ "provider": "bedrock",
+ "family": "claude-haiku",
+ "created_at": "2024-03-13 00:00:00 UTC",
+ "context_window": 200000,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "pdf"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "vision",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.25,
+ "output_per_million": 1.25
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Anthropic",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-haiku-20240307-v1:0:200k",
+ "inference_types": [
+ "PROVISIONED"
+ ],
+ "converse": {},
+ "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-3-haiku-20240307-v1:0:48k",
+ "name": "Claude Haiku 3",
+ "provider": "bedrock",
+ "family": "claude-haiku",
+ "created_at": "2024-03-13 00:00:00 UTC",
+ "context_window": 48000,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "pdf"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "vision",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.25,
+ "output_per_million": 1.25
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Anthropic",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-haiku-20240307-v1:0:48k",
+ "inference_types": [
+ "PROVISIONED"
+ ],
+ "converse": {},
+ "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-3-sonnet-20240229-v1:0",
+ "name": "Claude 3 Sonnet",
+ "provider": "bedrock",
+ "family": "anthropic",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Anthropic",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "anthropic.claude-3-sonnet-20240229-v1:0:200k",
+ "name": "Claude 3 Sonnet",
+ "provider": "bedrock",
+ "family": "anthropic",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Anthropic",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0:200k",
+ "inference_types": [
+ "PROVISIONED"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "anthropic.claude-3-sonnet-20240229-v1:0:28k",
+ "name": "Claude 3 Sonnet",
+ "provider": "bedrock",
+ "family": "anthropic",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Anthropic",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0:28k",
+ "inference_types": [
+ "PROVISIONED"
+ ],
+ "converse": {}
+ }
+ },
{
"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",
+ "created_at": "2025-10-15 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2025-02-28",
@@ -1693,7 +11037,8 @@
"standard": {
"input_per_million": 1,
"output_per_million": 5,
- "cached_input_per_million": 0.1
+ "cache_read_input_per_million": 0.1,
+ "cache_write_input_per_million": 1.25
}
}
},
@@ -1722,7 +11067,7 @@
"name": "Claude Opus 4.1",
"provider": "bedrock",
"family": "claude-opus",
- "created_at": "2025-08-05 00:00:00 +0530",
+ "created_at": "2025-08-05 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 32000,
"knowledge_cutoff": "2025-03-31",
@@ -1746,7 +11091,8 @@
"standard": {
"input_per_million": 15,
"output_per_million": 75,
- "cached_input_per_million": 1.5
+ "cache_read_input_per_million": 1.5,
+ "cache_write_input_per_million": 18.75
}
}
},
@@ -1775,10 +11121,10 @@
"name": "Claude Opus 4",
"provider": "bedrock",
"family": "claude-opus",
- "created_at": "2025-05-22 00:00:00 +0530",
+ "created_at": "2025-05-22 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 32000,
- "knowledge_cutoff": null,
+ "knowledge_cutoff": "2025-03-31",
"modalities": {
"input": [
"text",
@@ -1799,7 +11145,8 @@
"standard": {
"input_per_million": 15,
"output_per_million": 75,
- "cached_input_per_million": 1.5
+ "cache_read_input_per_million": 1.5,
+ "cache_write_input_per_million": 18.75
}
}
},
@@ -1820,7 +11167,7 @@
"context": 200000,
"output": 32000
},
- "knowledge": "2024-04"
+ "knowledge": "2025-03-31"
}
},
{
@@ -1828,7 +11175,7 @@
"name": "Claude Opus 4.5",
"provider": "bedrock",
"family": "claude-opus",
- "created_at": "2025-11-24 00:00:00 +0530",
+ "created_at": "2025-11-24 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2025-03-31",
@@ -1853,7 +11200,8 @@
"standard": {
"input_per_million": 5,
"output_per_million": 25,
- "cached_input_per_million": 0.5
+ "cache_read_input_per_million": 0.5,
+ "cache_write_input_per_million": 6.25
}
}
},
@@ -1882,10 +11230,10 @@
"name": "Claude Opus 4.6",
"provider": "bedrock",
"family": "claude-opus",
- "created_at": "2026-02-05 00:00:00 +0530",
+ "created_at": "2026-02-05 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 128000,
- "knowledge_cutoff": null,
+ "knowledge_cutoff": "2025-05-31",
"modalities": {
"input": [
"text",
@@ -1907,7 +11255,8 @@
"standard": {
"input_per_million": 5,
"output_per_million": 25,
- "cached_input_per_million": 0.5
+ "cache_read_input_per_million": 0.5,
+ "cache_write_input_per_million": 6.25
}
}
},
@@ -1917,7 +11266,7 @@
"open_weights": false,
"attachment": true,
"temperature": true,
- "last_updated": "2026-03-18",
+ "last_updated": "2026-03-13",
"cost": {
"input": 5,
"output": 25,
@@ -1928,7 +11277,62 @@
"context": 1000000,
"output": 128000
},
- "knowledge": "2025-05"
+ "knowledge": "2025-05-31"
+ }
+ },
+ {
+ "id": "anthropic.claude-opus-4-7",
+ "name": "Claude Opus 4.7",
+ "provider": "bedrock",
+ "family": "claude-opus",
+ "created_at": "2026-04-16 00:00:00 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 128000,
+ "knowledge_cutoff": "2026-01-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,
+ "cache_read_input_per_million": 0.5,
+ "cache_write_input_per_million": 6.25
+ }
+ }
+ },
+ "metadata": {
+ "source": "models.dev",
+ "provider_id": "amazon-bedrock",
+ "open_weights": false,
+ "attachment": true,
+ "temperature": false,
+ "last_updated": "2026-04-16",
+ "cost": {
+ "input": 5,
+ "output": 25,
+ "cache_read": 0.5,
+ "cache_write": 6.25
+ },
+ "limit": {
+ "context": 1000000,
+ "output": 128000
+ },
+ "knowledge": "2026-01-31"
}
},
{
@@ -1936,10 +11340,10 @@
"name": "Claude Sonnet 4",
"provider": "bedrock",
"family": "claude-sonnet",
- "created_at": "2025-05-22 00:00:00 +0530",
+ "created_at": "2025-05-22 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
- "knowledge_cutoff": null,
+ "knowledge_cutoff": "2025-03-31",
"modalities": {
"input": [
"text",
@@ -1960,7 +11364,8 @@
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
@@ -1981,7 +11386,7 @@
"context": 200000,
"output": 64000
},
- "knowledge": "2024-04"
+ "knowledge": "2025-03-31"
}
},
{
@@ -1989,7 +11394,7 @@
"name": "Claude Sonnet 4.5",
"provider": "bedrock",
"family": "claude-sonnet",
- "created_at": "2025-09-29 00:00:00 +0530",
+ "created_at": "2025-09-29 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2025-07-31",
@@ -2014,7 +11419,8 @@
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
@@ -2043,10 +11449,10 @@
"name": "Claude Sonnet 4.6",
"provider": "bedrock",
"family": "claude-sonnet",
- "created_at": "2026-02-17 00:00:00 +0530",
+ "created_at": "2026-02-17 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 64000,
- "knowledge_cutoff": null,
+ "knowledge_cutoff": "2025-08-31",
"modalities": {
"input": [
"text",
@@ -2067,7 +11473,8 @@
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
@@ -2077,7 +11484,7 @@
"open_weights": false,
"attachment": true,
"temperature": true,
- "last_updated": "2026-03-18",
+ "last_updated": "2026-03-13",
"cost": {
"input": 3,
"output": 15,
@@ -2088,15 +11495,337 @@
"context": 1000000,
"output": 64000
},
+ "knowledge": "2025-08-31"
+ }
+ },
+ {
+ "id": "au.anthropic.claude-opus-4-6-v1",
+ "name": "AU Anthropic Claude Opus 4.6",
+ "provider": "bedrock",
+ "family": "claude-opus",
+ "created_at": "2026-02-05 00:00:00 UTC",
+ "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": 16.5,
+ "output_per_million": 82.5,
+ "cache_read_input_per_million": 1.65,
+ "cache_write_input_per_million": 20.625
+ }
+ }
+ },
+ "metadata": {
+ "source": "models.dev",
+ "provider_id": "amazon-bedrock",
+ "open_weights": false,
+ "attachment": true,
+ "temperature": true,
+ "last_updated": "2026-02-05",
+ "cost": {
+ "input": 16.5,
+ "output": 82.5,
+ "cache_read": 1.65,
+ "cache_write": 20.625
+ },
+ "limit": {
+ "context": 1000000,
+ "output": 128000
+ },
+ "knowledge": "2025-05"
+ }
+ },
+ {
+ "id": "au.anthropic.claude-sonnet-4-6",
+ "name": "AU Anthropic Claude Sonnet 4.6",
+ "provider": "bedrock",
+ "family": "claude-sonnet",
+ "created_at": "2026-02-17 00:00:00 UTC",
+ "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": 3.3,
+ "output_per_million": 16.5,
+ "cache_read_input_per_million": 0.33,
+ "cache_write_input_per_million": 4.125
+ }
+ }
+ },
+ "metadata": {
+ "source": "models.dev",
+ "provider_id": "amazon-bedrock",
+ "open_weights": false,
+ "attachment": true,
+ "temperature": true,
+ "last_updated": "2026-02-17",
+ "cost": {
+ "input": 3.3,
+ "output": 16.5,
+ "cache_read": 0.33,
+ "cache_write": 4.125
+ },
+ "limit": {
+ "context": 1000000,
+ "output": 128000
+ },
"knowledge": "2025-08"
}
},
+ {
+ "id": "cohere.command-r-plus-v1:0",
+ "name": "Command R+",
+ "provider": "bedrock",
+ "family": "cohere",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Cohere",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/cohere.command-r-plus-v1:0",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "cohere.command-r-v1:0",
+ "name": "Command R",
+ "provider": "bedrock",
+ "family": "cohere",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Cohere",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/cohere.command-r-v1:0",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "cohere.embed-english-v3",
+ "name": "Embed English",
+ "provider": "bedrock",
+ "family": "cohere",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "embeddings"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Cohere",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/cohere.embed-english-v3",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "cohere.embed-english-v3:0:512",
+ "name": "Embed English",
+ "provider": "bedrock",
+ "family": "cohere",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "embeddings"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Cohere",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/cohere.embed-english-v3:0:512",
+ "inference_types": [
+ "PROVISIONED"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "cohere.embed-multilingual-v3",
+ "name": "Embed Multilingual",
+ "provider": "bedrock",
+ "family": "cohere",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "embeddings"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Cohere",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/cohere.embed-multilingual-v3",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "cohere.embed-multilingual-v3:0:512",
+ "name": "Embed Multilingual",
+ "provider": "bedrock",
+ "family": "cohere",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "embeddings"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Cohere",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/cohere.embed-multilingual-v3:0:512",
+ "inference_types": [
+ "PROVISIONED"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "cohere.rerank-v3-5:0",
+ "name": "Rerank 3.5",
+ "provider": "bedrock",
+ "family": "cohere",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Cohere",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/cohere.rerank-v3-5:0",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {}
+ }
+ },
{
"id": "deepseek.r1-v1:0",
"name": "DeepSeek-R1",
"provider": "bedrock",
"family": "deepseek-thinking",
- "created_at": "2025-01-20 00:00:00 +0530",
+ "created_at": "2025-01-20 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -2143,7 +11872,7 @@
"name": "DeepSeek-V3.1",
"provider": "bedrock",
"family": "deepseek",
- "created_at": "2025-09-18 00:00:00 +0530",
+ "created_at": "2025-09-18 00:00:00 UTC",
"context_window": 163840,
"max_output_tokens": 81920,
"knowledge_cutoff": null,
@@ -2158,7 +11887,8 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -2169,6 +11899,24 @@
}
},
"metadata": {
+ "provider_name": "DeepSeek",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/deepseek.v3-v1:0",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false}}}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 163840,
+ "reasoningSupported": {
+ "embedded": false
+ },
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -2191,7 +11939,7 @@
"name": "DeepSeek-V3.2",
"provider": "bedrock",
"family": "deepseek",
- "created_at": "2026-02-06 00:00:00 +0530",
+ "created_at": "2026-02-06 00:00:00 UTC",
"context_window": 163840,
"max_output_tokens": 81920,
"knowledge_cutoff": null,
@@ -2205,7 +11953,8 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -2216,6 +11965,24 @@
}
},
"metadata": {
+ "provider_name": "DeepSeek",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/deepseek.v3.2",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false}}}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 163840,
+ "reasoningSupported": {
+ "embedded": false
+ },
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -2238,7 +12005,7 @@
"name": "Claude Haiku 4.5 (EU)",
"provider": "bedrock",
"family": "claude-haiku",
- "created_at": "2025-10-15 00:00:00 +0530",
+ "created_at": "2025-10-15 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2025-02-28",
@@ -2263,7 +12030,8 @@
"standard": {
"input_per_million": 1,
"output_per_million": 5,
- "cached_input_per_million": 0.1
+ "cache_read_input_per_million": 0.1,
+ "cache_write_input_per_million": 1.25
}
}
},
@@ -2292,7 +12060,7 @@
"name": "Claude Opus 4.5 (EU)",
"provider": "bedrock",
"family": "claude-opus",
- "created_at": "2025-11-24 00:00:00 +0530",
+ "created_at": "2025-11-24 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2025-03-31",
@@ -2317,7 +12085,8 @@
"standard": {
"input_per_million": 5,
"output_per_million": 25,
- "cached_input_per_million": 0.5
+ "cache_read_input_per_million": 0.5,
+ "cache_write_input_per_million": 6.25
}
}
},
@@ -2346,10 +12115,10 @@
"name": "Claude Opus 4.6 (EU)",
"provider": "bedrock",
"family": "claude-opus",
- "created_at": "2026-02-05 00:00:00 +0530",
+ "created_at": "2026-02-05 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 128000,
- "knowledge_cutoff": null,
+ "knowledge_cutoff": "2025-05-31",
"modalities": {
"input": [
"text",
@@ -2371,7 +12140,8 @@
"standard": {
"input_per_million": 5,
"output_per_million": 25,
- "cached_input_per_million": 0.5
+ "cache_read_input_per_million": 0.5,
+ "cache_write_input_per_million": 6.25
}
}
},
@@ -2381,7 +12151,7 @@
"open_weights": false,
"attachment": true,
"temperature": true,
- "last_updated": "2026-03-18",
+ "last_updated": "2026-03-13",
"cost": {
"input": 5,
"output": 25,
@@ -2392,7 +12162,62 @@
"context": 1000000,
"output": 128000
},
- "knowledge": "2025-05"
+ "knowledge": "2025-05-31"
+ }
+ },
+ {
+ "id": "eu.anthropic.claude-opus-4-7",
+ "name": "Claude Opus 4.7 (EU)",
+ "provider": "bedrock",
+ "family": "claude-opus",
+ "created_at": "2026-04-16 00:00:00 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 128000,
+ "knowledge_cutoff": "2026-01-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,
+ "cache_read_input_per_million": 0.5,
+ "cache_write_input_per_million": 6.25
+ }
+ }
+ },
+ "metadata": {
+ "source": "models.dev",
+ "provider_id": "amazon-bedrock",
+ "open_weights": false,
+ "attachment": true,
+ "temperature": false,
+ "last_updated": "2026-04-16",
+ "cost": {
+ "input": 5,
+ "output": 25,
+ "cache_read": 0.5,
+ "cache_write": 6.25
+ },
+ "limit": {
+ "context": 1000000,
+ "output": 128000
+ },
+ "knowledge": "2026-01-31"
}
},
{
@@ -2400,10 +12225,10 @@
"name": "Claude Sonnet 4 (EU)",
"provider": "bedrock",
"family": "claude-sonnet",
- "created_at": "2025-05-22 00:00:00 +0530",
+ "created_at": "2025-05-22 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
- "knowledge_cutoff": null,
+ "knowledge_cutoff": "2025-03-31",
"modalities": {
"input": [
"text",
@@ -2424,7 +12249,8 @@
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
@@ -2445,7 +12271,7 @@
"context": 200000,
"output": 64000
},
- "knowledge": "2024-04"
+ "knowledge": "2025-03-31"
}
},
{
@@ -2453,7 +12279,7 @@
"name": "Claude Sonnet 4.5 (EU)",
"provider": "bedrock",
"family": "claude-sonnet",
- "created_at": "2025-09-29 00:00:00 +0530",
+ "created_at": "2025-09-29 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2025-07-31",
@@ -2478,7 +12304,8 @@
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
@@ -2507,10 +12334,10 @@
"name": "Claude Sonnet 4.6 (EU)",
"provider": "bedrock",
"family": "claude-sonnet",
- "created_at": "2026-02-17 00:00:00 +0530",
+ "created_at": "2026-02-17 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 64000,
- "knowledge_cutoff": null,
+ "knowledge_cutoff": "2025-08-31",
"modalities": {
"input": [
"text",
@@ -2531,7 +12358,8 @@
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
@@ -2541,7 +12369,7 @@
"open_weights": false,
"attachment": true,
"temperature": true,
- "last_updated": "2026-03-18",
+ "last_updated": "2026-03-13",
"cost": {
"input": 3,
"output": 15,
@@ -2552,7 +12380,7 @@
"context": 1000000,
"output": 64000
},
- "knowledge": "2025-08"
+ "knowledge": "2025-08-31"
}
},
{
@@ -2560,7 +12388,7 @@
"name": "Claude Haiku 4.5 (Global)",
"provider": "bedrock",
"family": "claude-haiku",
- "created_at": "2025-10-15 00:00:00 +0530",
+ "created_at": "2025-10-15 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2025-02-28",
@@ -2585,7 +12413,8 @@
"standard": {
"input_per_million": 1,
"output_per_million": 5,
- "cached_input_per_million": 0.1
+ "cache_read_input_per_million": 0.1,
+ "cache_write_input_per_million": 1.25
}
}
},
@@ -2614,7 +12443,7 @@
"name": "Claude Opus 4.5 (Global)",
"provider": "bedrock",
"family": "claude-opus",
- "created_at": "2025-11-24 00:00:00 +0530",
+ "created_at": "2025-11-24 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2025-03-31",
@@ -2639,7 +12468,8 @@
"standard": {
"input_per_million": 5,
"output_per_million": 25,
- "cached_input_per_million": 0.5
+ "cache_read_input_per_million": 0.5,
+ "cache_write_input_per_million": 6.25
}
}
},
@@ -2668,10 +12498,10 @@
"name": "Claude Opus 4.6 (Global)",
"provider": "bedrock",
"family": "claude-opus",
- "created_at": "2026-02-05 00:00:00 +0530",
+ "created_at": "2026-02-05 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 128000,
- "knowledge_cutoff": null,
+ "knowledge_cutoff": "2025-05-31",
"modalities": {
"input": [
"text",
@@ -2693,7 +12523,8 @@
"standard": {
"input_per_million": 5,
"output_per_million": 25,
- "cached_input_per_million": 0.5
+ "cache_read_input_per_million": 0.5,
+ "cache_write_input_per_million": 6.25
}
}
},
@@ -2703,7 +12534,7 @@
"open_weights": false,
"attachment": true,
"temperature": true,
- "last_updated": "2026-03-18",
+ "last_updated": "2026-03-13",
"cost": {
"input": 5,
"output": 25,
@@ -2714,7 +12545,62 @@
"context": 1000000,
"output": 128000
},
- "knowledge": "2025-05"
+ "knowledge": "2025-05-31"
+ }
+ },
+ {
+ "id": "global.anthropic.claude-opus-4-7",
+ "name": "Claude Opus 4.7 (Global)",
+ "provider": "bedrock",
+ "family": "claude-opus",
+ "created_at": "2026-04-16 00:00:00 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 128000,
+ "knowledge_cutoff": "2026-01-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,
+ "cache_read_input_per_million": 0.5,
+ "cache_write_input_per_million": 6.25
+ }
+ }
+ },
+ "metadata": {
+ "source": "models.dev",
+ "provider_id": "amazon-bedrock",
+ "open_weights": false,
+ "attachment": true,
+ "temperature": false,
+ "last_updated": "2026-04-16",
+ "cost": {
+ "input": 5,
+ "output": 25,
+ "cache_read": 0.5,
+ "cache_write": 6.25
+ },
+ "limit": {
+ "context": 1000000,
+ "output": 128000
+ },
+ "knowledge": "2026-01-31"
}
},
{
@@ -2722,10 +12608,10 @@
"name": "Claude Sonnet 4 (Global)",
"provider": "bedrock",
"family": "claude-sonnet",
- "created_at": "2025-05-22 00:00:00 +0530",
+ "created_at": "2025-05-22 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
- "knowledge_cutoff": null,
+ "knowledge_cutoff": "2025-03-31",
"modalities": {
"input": [
"text",
@@ -2746,7 +12632,8 @@
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
@@ -2767,7 +12654,7 @@
"context": 200000,
"output": 64000
},
- "knowledge": "2024-04"
+ "knowledge": "2025-03-31"
}
},
{
@@ -2775,7 +12662,7 @@
"name": "Claude Sonnet 4.5 (Global)",
"provider": "bedrock",
"family": "claude-sonnet",
- "created_at": "2025-09-29 00:00:00 +0530",
+ "created_at": "2025-09-29 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2025-07-31",
@@ -2800,7 +12687,8 @@
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
@@ -2829,10 +12717,10 @@
"name": "Claude Sonnet 4.6 (Global)",
"provider": "bedrock",
"family": "claude-sonnet",
- "created_at": "2026-02-17 00:00:00 +0530",
+ "created_at": "2026-02-17 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 64000,
- "knowledge_cutoff": null,
+ "knowledge_cutoff": "2025-08-31",
"modalities": {
"input": [
"text",
@@ -2853,7 +12741,8 @@
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
@@ -2863,7 +12752,7 @@
"open_weights": false,
"attachment": true,
"temperature": true,
- "last_updated": "2026-03-18",
+ "last_updated": "2026-03-13",
"cost": {
"input": 3,
"output": 15,
@@ -2874,7 +12763,7 @@
"context": 1000000,
"output": 64000
},
- "knowledge": "2025-08"
+ "knowledge": "2025-08-31"
}
},
{
@@ -2882,7 +12771,7 @@
"name": "Google Gemma 3 12B",
"provider": "bedrock",
"family": "gemma",
- "created_at": "2024-12-01 00:00:00 +0530",
+ "created_at": "2024-12-01 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -2897,7 +12786,9 @@
},
"capabilities": [
"structured_output",
- "vision"
+ "vision",
+ "streaming",
+ "function_calling"
],
"pricing": {
"text_tokens": {
@@ -2908,6 +12799,27 @@
}
},
"metadata": {
+ "provider_name": "Google",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/google.gemma-3-12b-it",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false}}}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 131072,
+ "reasoningSupported": null,
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [
+ "png",
+ "jpeg",
+ "gif",
+ "webp"
+ ],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
@@ -2930,7 +12842,7 @@
"name": "Google Gemma 3 27B Instruct",
"provider": "bedrock",
"family": "gemma",
- "created_at": "2025-07-27 00:00:00 +0530",
+ "created_at": "2025-07-27 00:00:00 UTC",
"context_window": 202752,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -2946,7 +12858,8 @@
"capabilities": [
"function_calling",
"structured_output",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -2957,6 +12870,27 @@
}
},
"metadata": {
+ "provider_name": "Google",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/google.gemma-3-27b-it",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false}}}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 131072,
+ "reasoningSupported": null,
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [
+ "png",
+ "jpeg",
+ "gif",
+ "webp"
+ ],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -2979,7 +12913,7 @@
"name": "Gemma 3 4B IT",
"provider": "bedrock",
"family": "gemma",
- "created_at": "2024-12-01 00:00:00 +0530",
+ "created_at": "2024-12-01 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -2994,7 +12928,8 @@
},
"capabilities": [
"function_calling",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -3005,6 +12940,27 @@
}
},
"metadata": {
+ "provider_name": "Google",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/google.gemma-3-4b-it",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false}}}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 131072,
+ "reasoningSupported": null,
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [
+ "png",
+ "jpeg",
+ "gif",
+ "webp"
+ ],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
@@ -3021,12 +12977,42 @@
}
}
},
+ {
+ "id": "luma.ray-v2:0",
+ "name": "Ray v2",
+ "provider": "bedrock",
+ "family": "luma ai",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "video"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Luma AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/luma.ray-v2:0",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {}
+ }
+ },
{
"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",
+ "created_at": "2024-07-23 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -3039,7 +13025,8 @@
]
},
"capabilities": [
- "function_calling"
+ "function_calling",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -3050,6 +13037,12 @@
}
},
"metadata": {
+ "provider_name": "Meta",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-1-405b-instruct-v1:0",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {},
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -3072,7 +13065,7 @@
"name": "Llama 3.1 70B Instruct",
"provider": "bedrock",
"family": "llama",
- "created_at": "2024-07-23 00:00:00 +0530",
+ "created_at": "2024-07-23 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -3085,7 +13078,8 @@
]
},
"capabilities": [
- "function_calling"
+ "function_calling",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -3096,6 +13090,66 @@
}
},
"metadata": {
+ "provider_name": "Meta",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-1-70b-instruct-v1:0",
+ "inference_types": [
+ "ON_DEMAND",
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {},
+ "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-70b-instruct-v1:0:128k",
+ "name": "Llama 3.1 70B Instruct",
+ "provider": "bedrock",
+ "family": "llama",
+ "created_at": "2024-07-23 00:00:00 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.72,
+ "output_per_million": 0.72
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Meta",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-1-70b-instruct-v1:0:128k",
+ "inference_types": [
+ "PROVISIONED"
+ ],
+ "converse": {},
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -3118,7 +13172,7 @@
"name": "Llama 3.1 8B Instruct",
"provider": "bedrock",
"family": "llama",
- "created_at": "2024-07-23 00:00:00 +0530",
+ "created_at": "2024-07-23 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -3131,7 +13185,8 @@
]
},
"capabilities": [
- "function_calling"
+ "function_calling",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -3142,6 +13197,66 @@
}
},
"metadata": {
+ "provider_name": "Meta",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-1-8b-instruct-v1:0",
+ "inference_types": [
+ "ON_DEMAND",
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {},
+ "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-1-8b-instruct-v1:0:128k",
+ "name": "Llama 3.1 8B Instruct",
+ "provider": "bedrock",
+ "family": "llama",
+ "created_at": "2024-07-23 00:00:00 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.22,
+ "output_per_million": 0.22
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Meta",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-1-8b-instruct-v1:0:128k",
+ "inference_types": [
+ "PROVISIONED"
+ ],
+ "converse": {},
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -3164,7 +13279,7 @@
"name": "Llama 3.2 11B Instruct",
"provider": "bedrock",
"family": "llama",
- "created_at": "2024-09-25 00:00:00 +0530",
+ "created_at": "2024-09-25 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -3207,12 +13322,67 @@
"knowledge": "2023-12"
}
},
+ {
+ "id": "meta.llama3-2-11b-instruct-v1:0:128k",
+ "name": "Llama 3.2 11B Instruct",
+ "provider": "bedrock",
+ "family": "llama",
+ "created_at": "2024-09-25 00:00:00 UTC",
+ "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": 0.16,
+ "output_per_million": 0.16
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Meta",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-2-11b-instruct-v1:0:128k",
+ "inference_types": [
+ "PROVISIONED"
+ ],
+ "converse": {},
+ "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",
+ "created_at": "2024-09-25 00:00:00 UTC",
"context_window": 131000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -3253,12 +13423,65 @@
"knowledge": "2023-12"
}
},
+ {
+ "id": "meta.llama3-2-1b-instruct-v1:0:128k",
+ "name": "Llama 3.2 1B Instruct",
+ "provider": "bedrock",
+ "family": "llama",
+ "created_at": "2024-09-25 00:00:00 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.1,
+ "output_per_million": 0.1
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Meta",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-2-1b-instruct-v1:0:128k",
+ "inference_types": [
+ "PROVISIONED"
+ ],
+ "converse": {},
+ "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",
+ "created_at": "2024-09-25 00:00:00 UTC",
"context_window": 131000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -3299,12 +13522,65 @@
"knowledge": "2023-12"
}
},
+ {
+ "id": "meta.llama3-2-3b-instruct-v1:0:128k",
+ "name": "Llama 3.2 3B Instruct",
+ "provider": "bedrock",
+ "family": "llama",
+ "created_at": "2024-09-25 00:00:00 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.15,
+ "output_per_million": 0.15
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Meta",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-2-3b-instruct-v1:0:128k",
+ "inference_types": [
+ "PROVISIONED"
+ ],
+ "converse": {},
+ "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",
+ "created_at": "2024-09-25 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -3347,12 +13623,67 @@
"knowledge": "2023-12"
}
},
+ {
+ "id": "meta.llama3-2-90b-instruct-v1:0:128k",
+ "name": "Llama 3.2 90B Instruct",
+ "provider": "bedrock",
+ "family": "llama",
+ "created_at": "2024-09-25 00:00:00 UTC",
+ "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": 0.72,
+ "output_per_million": 0.72
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Meta",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-2-90b-instruct-v1:0:128k",
+ "inference_types": [
+ "PROVISIONED"
+ ],
+ "converse": {},
+ "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",
+ "created_at": "2024-12-06 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -3393,12 +13724,125 @@
"knowledge": "2023-12"
}
},
+ {
+ "id": "meta.llama3-3-70b-instruct-v1:0:128k",
+ "name": "Llama 3.3 70B Instruct",
+ "provider": "bedrock",
+ "family": "llama",
+ "created_at": "2024-12-06 00:00:00 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.72,
+ "output_per_million": 0.72
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Meta",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-3-70b-instruct-v1:0:128k",
+ "inference_types": [],
+ "converse": {},
+ "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.llama3-70b-instruct-v1:0",
+ "name": "Llama 3 70B Instruct",
+ "provider": "bedrock",
+ "family": "meta",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Meta",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-70b-instruct-v1:0",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "meta.llama3-8b-instruct-v1:0",
+ "name": "Llama 3 8B Instruct",
+ "provider": "bedrock",
+ "family": "meta",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Meta",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-8b-instruct-v1:0",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {}
+ }
+ },
{
"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",
+ "created_at": "2025-04-05 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
@@ -3446,7 +13890,7 @@
"name": "Llama 4 Scout 17B Instruct",
"provider": "bedrock",
"family": "llama",
- "created_at": "2025-04-05 00:00:00 +0530",
+ "created_at": "2025-04-05 00:00:00 UTC",
"context_window": 3500000,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
@@ -3494,7 +13938,7 @@
"name": "MiniMax M2",
"provider": "bedrock",
"family": "minimax",
- "created_at": "2025-10-27 00:00:00 +0530",
+ "created_at": "2025-10-27 00:00:00 UTC",
"context_window": 204608,
"max_output_tokens": 128000,
"knowledge_cutoff": null,
@@ -3508,7 +13952,8 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -3519,6 +13964,24 @@
}
},
"metadata": {
+ "provider_name": "MiniMax",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/minimax.minimax-m2",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false}}}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 409600,
+ "reasoningSupported": {
+ "embedded": true
+ },
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -3540,7 +14003,7 @@
"name": "MiniMax M2.1",
"provider": "bedrock",
"family": "minimax",
- "created_at": "2025-12-23 00:00:00 +0530",
+ "created_at": "2025-12-23 00:00:00 UTC",
"context_window": 204800,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -3554,7 +14017,8 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -3565,6 +14029,24 @@
}
},
"metadata": {
+ "provider_name": "MiniMax",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/minimax.minimax-m2.1",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false}}}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 196608,
+ "reasoningSupported": {
+ "embedded": true
+ },
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -3586,7 +14068,7 @@
"name": "MiniMax M2.5",
"provider": "bedrock",
"family": "minimax",
- "created_at": "2026-03-18 00:00:00 +0530",
+ "created_at": "2026-03-18 00:00:00 UTC",
"context_window": 196608,
"max_output_tokens": 98304,
"knowledge_cutoff": null,
@@ -3600,7 +14082,8 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -3611,6 +14094,24 @@
}
},
"metadata": {
+ "provider_name": "MiniMax",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/minimax.minimax-m2.5",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false}}}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 196608,
+ "reasoningSupported": {
+ "embedded": true
+ },
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -3632,7 +14133,7 @@
"name": "Devstral 2 123B",
"provider": "bedrock",
"family": "devstral",
- "created_at": "2026-02-17 00:00:00 +0530",
+ "created_at": "2026-02-17 00:00:00 UTC",
"context_window": 256000,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -3645,7 +14146,8 @@
]
},
"capabilities": [
- "function_calling"
+ "function_calling",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -3656,6 +14158,22 @@
}
},
"metadata": {
+ "provider_name": "Mistral AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/mistral.devstral-2-123b",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 262144,
+ "reasoningSupported": null,
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -3677,7 +14195,7 @@
"name": "Magistral Small 1.2",
"provider": "bedrock",
"family": "magistral",
- "created_at": "2025-12-02 00:00:00 +0530",
+ "created_at": "2025-12-02 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 40000,
"knowledge_cutoff": null,
@@ -3694,7 +14212,8 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -3705,6 +14224,29 @@
}
},
"metadata": {
+ "provider_name": "Mistral AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/mistral.magistral-small-2509",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false}}}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 131072,
+ "reasoningSupported": {
+ "embedded": true
+ },
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [
+ "png",
+ "jpeg",
+ "gif",
+ "webp"
+ ],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -3726,7 +14268,7 @@
"name": "Ministral 14B 3.0",
"provider": "bedrock",
"family": "ministral",
- "created_at": "2024-12-01 00:00:00 +0530",
+ "created_at": "2024-12-01 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -3740,7 +14282,8 @@
},
"capabilities": [
"function_calling",
- "structured_output"
+ "structured_output",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -3751,6 +14294,27 @@
}
},
"metadata": {
+ "provider_name": "Mistral AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/mistral.ministral-3-14b-instruct",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 262144,
+ "reasoningSupported": null,
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [
+ "png",
+ "jpeg",
+ "gif",
+ "webp"
+ ],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
@@ -3772,7 +14336,7 @@
"name": "Ministral 3 3B",
"provider": "bedrock",
"family": "ministral",
- "created_at": "2025-12-02 00:00:00 +0530",
+ "created_at": "2025-12-02 00:00:00 UTC",
"context_window": 256000,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -3788,7 +14352,8 @@
"capabilities": [
"function_calling",
"structured_output",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -3799,6 +14364,27 @@
}
},
"metadata": {
+ "provider_name": "Mistral AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/mistral.ministral-3-3b-instruct",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 262144,
+ "reasoningSupported": null,
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [
+ "png",
+ "jpeg",
+ "gif",
+ "webp"
+ ],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -3820,7 +14406,7 @@
"name": "Ministral 3 8B",
"provider": "bedrock",
"family": "ministral",
- "created_at": "2024-12-01 00:00:00 +0530",
+ "created_at": "2024-12-01 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -3834,7 +14420,8 @@
},
"capabilities": [
"function_calling",
- "structured_output"
+ "structured_output",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -3845,6 +14432,27 @@
}
},
"metadata": {
+ "provider_name": "Mistral AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/mistral.ministral-3-8b-instruct",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 262144,
+ "reasoningSupported": null,
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [
+ "png",
+ "jpeg",
+ "gif",
+ "webp"
+ ],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
@@ -3861,12 +14469,105 @@
}
}
},
+ {
+ "id": "mistral.mistral-7b-instruct-v0:2",
+ "name": "Mistral 7B Instruct",
+ "provider": "bedrock",
+ "family": "mistral ai",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Mistral AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/mistral.mistral-7b-instruct-v0:2",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "mistral.mistral-large-2402-v1:0",
+ "name": "Mistral Large (24.02)",
+ "provider": "bedrock",
+ "family": "mistral ai",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Mistral AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/mistral.mistral-large-2402-v1:0",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "mistral.mistral-large-2407-v1:0",
+ "name": "Mistral Large (24.07)",
+ "provider": "bedrock",
+ "family": "mistral ai",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Mistral AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/mistral.mistral-large-2407-v1:0",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {}
+ }
+ },
{
"id": "mistral.mistral-large-3-675b-instruct",
"name": "Mistral Large 3",
"provider": "bedrock",
"family": "mistral",
- "created_at": "2025-12-02 00:00:00 +0530",
+ "created_at": "2025-12-02 00:00:00 UTC",
"context_window": 256000,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -3882,7 +14583,8 @@
"capabilities": [
"function_calling",
"structured_output",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -3893,6 +14595,27 @@
}
},
"metadata": {
+ "provider_name": "Mistral AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/mistral.mistral-large-3-675b-instruct",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 262144,
+ "reasoningSupported": null,
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [
+ "png",
+ "jpeg",
+ "gif",
+ "webp"
+ ],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -3909,12 +14632,43 @@
}
}
},
+ {
+ "id": "mistral.mixtral-8x7b-instruct-v0:1",
+ "name": "Mixtral 8x7B Instruct",
+ "provider": "bedrock",
+ "family": "mistral ai",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Mistral AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/mistral.mixtral-8x7b-instruct-v0:1",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {}
+ }
+ },
{
"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",
+ "created_at": "2025-04-08 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -3961,7 +14715,7 @@
"name": "Voxtral Mini 3B 2507",
"provider": "bedrock",
"family": "mistral",
- "created_at": "2024-12-01 00:00:00 +0530",
+ "created_at": "2024-12-01 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -3976,7 +14730,8 @@
},
"capabilities": [
"function_calling",
- "structured_output"
+ "structured_output",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -3987,6 +14742,22 @@
}
},
"metadata": {
+ "provider_name": "Mistral AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/mistral.voxtral-mini-3b-2507",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false}}}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 32768,
+ "reasoningSupported": null,
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
@@ -4008,7 +14779,7 @@
"name": "Voxtral Small 24B 2507",
"provider": "bedrock",
"family": "mistral",
- "created_at": "2025-07-01 00:00:00 +0530",
+ "created_at": "2025-07-01 00:00:00 UTC",
"context_window": 32000,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -4023,7 +14794,8 @@
},
"capabilities": [
"function_calling",
- "structured_output"
+ "structured_output",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -4034,6 +14806,22 @@
}
},
"metadata": {
+ "provider_name": "Mistral AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/mistral.voxtral-small-24b-2507",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false}}}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 32768,
+ "reasoningSupported": null,
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -4055,7 +14843,7 @@
"name": "Kimi K2 Thinking",
"provider": "bedrock",
"family": "kimi-thinking",
- "created_at": "2025-12-02 00:00:00 +0530",
+ "created_at": "2025-12-02 00:00:00 UTC",
"context_window": 256000,
"max_output_tokens": 256000,
"knowledge_cutoff": null,
@@ -4070,7 +14858,8 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -4081,6 +14870,24 @@
}
},
"metadata": {
+ "provider_name": "Moonshot AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/moonshot.kimi-k2-thinking",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false}}}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 262144,
+ "reasoningSupported": {
+ "embedded": true
+ },
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -4103,7 +14910,7 @@
"name": "Kimi K2.5",
"provider": "bedrock",
"family": "kimi",
- "created_at": "2026-02-06 00:00:00 +0530",
+ "created_at": "2026-02-06 00:00:00 UTC",
"context_window": 256000,
"max_output_tokens": 256000,
"knowledge_cutoff": null,
@@ -4119,7 +14926,8 @@
"capabilities": [
"function_calling",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -4130,6 +14938,29 @@
}
},
"metadata": {
+ "provider_name": "Moonshot AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/moonshotai.kimi-k2.5",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false}}}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 262144,
+ "reasoningSupported": {
+ "embedded": false
+ },
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [
+ "jpeg",
+ "png",
+ "gif",
+ "webp"
+ ],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -4152,7 +14983,7 @@
"name": "NVIDIA Nemotron Nano 12B v2 VL BF16",
"provider": "bedrock",
"family": "nemotron",
- "created_at": "2024-12-01 00:00:00 +0530",
+ "created_at": "2024-12-01 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -4168,7 +14999,8 @@
"capabilities": [
"function_calling",
"structured_output",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -4179,6 +15011,27 @@
}
},
"metadata": {
+ "provider_name": "NVIDIA",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/nvidia.nemotron-nano-12b-v2",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 131072,
+ "reasoningSupported": null,
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [
+ "png",
+ "jpeg",
+ "gif",
+ "webp"
+ ],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
@@ -4200,7 +15053,7 @@
"name": "NVIDIA Nemotron Nano 3 30B",
"provider": "bedrock",
"family": "nemotron",
- "created_at": "2025-12-23 00:00:00 +0530",
+ "created_at": "2025-12-23 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -4214,7 +15067,8 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -4225,6 +15079,24 @@
}
},
"metadata": {
+ "provider_name": "NVIDIA",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/nvidia.nemotron-nano-3-30b",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false}}}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 262144,
+ "reasoningSupported": {
+ "embedded": false
+ },
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -4246,7 +15118,7 @@
"name": "NVIDIA Nemotron Nano 9B v2",
"provider": "bedrock",
"family": "nemotron",
- "created_at": "2024-12-01 00:00:00 +0530",
+ "created_at": "2024-12-01 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -4260,7 +15132,8 @@
},
"capabilities": [
"function_calling",
- "structured_output"
+ "structured_output",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -4271,6 +15144,22 @@
}
},
"metadata": {
+ "provider_name": "NVIDIA",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/nvidia.nemotron-nano-9b-v2",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 131072,
+ "reasoningSupported": null,
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
@@ -4292,7 +15181,7 @@
"name": "NVIDIA Nemotron 3 Super 120B A12B",
"provider": "bedrock",
"family": "nemotron",
- "created_at": "2026-03-11 00:00:00 +0530",
+ "created_at": "2026-03-11 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -4306,7 +15195,8 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -4317,6 +15207,22 @@
}
},
"metadata": {
+ "provider_name": "NVIDIA",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/nvidia.nemotron-super-3-120b",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 262144,
+ "reasoningSupported": null,
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -4338,7 +15244,7 @@
"name": "gpt-oss-120b",
"provider": "bedrock",
"family": "gpt-oss",
- "created_at": "2024-12-01 00:00:00 +0530",
+ "created_at": "2024-12-01 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -4352,7 +15258,8 @@
},
"capabilities": [
"function_calling",
- "structured_output"
+ "structured_output",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -4363,6 +15270,24 @@
}
},
"metadata": {
+ "provider_name": "OpenAI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/openai.gpt-oss-120b-1:0",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": null,
+ "maxTokensDefault": 4096,
+ "maxTokensMaximum": 128000,
+ "reasoningSupported": {
+ "embedded": false
+ },
+ "stopSequencesDefault": null,
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
@@ -4384,7 +15309,7 @@
"name": "gpt-oss-20b",
"provider": "bedrock",
"family": "gpt-oss",
- "created_at": "2024-12-01 00:00:00 +0530",
+ "created_at": "2024-12-01 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -4398,7 +15323,8 @@
},
"capabilities": [
"function_calling",
- "structured_output"
+ "structured_output",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -4409,6 +15335,24 @@
}
},
"metadata": {
+ "provider_name": "OpenAI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/openai.gpt-oss-20b-1:0",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": null,
+ "maxTokensDefault": 4096,
+ "maxTokensMaximum": 128000,
+ "reasoningSupported": {
+ "embedded": false
+ },
+ "stopSequencesDefault": null,
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
@@ -4430,7 +15374,7 @@
"name": "GPT OSS Safeguard 120B",
"provider": "bedrock",
"family": "gpt-oss",
- "created_at": "2024-12-01 00:00:00 +0530",
+ "created_at": "2024-12-01 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -4444,7 +15388,9 @@
},
"capabilities": [
"function_calling",
- "structured_output"
+ "structured_output",
+ "streaming",
+ "reasoning"
],
"pricing": {
"text_tokens": {
@@ -4455,6 +15401,24 @@
}
},
"metadata": {
+ "provider_name": "OpenAI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/openai.gpt-oss-safeguard-120b",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false}}}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 131072,
+ "reasoningSupported": {
+ "embedded": true
+ },
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
@@ -4476,7 +15440,7 @@
"name": "GPT OSS Safeguard 20B",
"provider": "bedrock",
"family": "gpt-oss",
- "created_at": "2024-12-01 00:00:00 +0530",
+ "created_at": "2024-12-01 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -4490,7 +15454,9 @@
},
"capabilities": [
"function_calling",
- "structured_output"
+ "structured_output",
+ "streaming",
+ "reasoning"
],
"pricing": {
"text_tokens": {
@@ -4501,6 +15467,24 @@
}
},
"metadata": {
+ "provider_name": "OpenAI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/openai.gpt-oss-safeguard-20b",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false}}}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 131072,
+ "reasoningSupported": {
+ "embedded": true
+ },
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
@@ -4522,7 +15506,7 @@
"name": "Qwen3 235B A22B 2507",
"provider": "bedrock",
"family": "qwen",
- "created_at": "2025-09-18 00:00:00 +0530",
+ "created_at": "2025-09-18 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -4536,7 +15520,8 @@
},
"capabilities": [
"function_calling",
- "structured_output"
+ "structured_output",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -4547,6 +15532,22 @@
}
},
"metadata": {
+ "provider_name": "Qwen",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/qwen.qwen3-235b-a22b-2507-v1:0",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 262144,
+ "reasoningSupported": null,
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -4569,7 +15570,7 @@
"name": "Qwen3 32B (dense)",
"provider": "bedrock",
"family": "qwen",
- "created_at": "2025-09-18 00:00:00 +0530",
+ "created_at": "2025-09-18 00:00:00 UTC",
"context_window": 16384,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
@@ -4584,7 +15585,8 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -4595,6 +15597,24 @@
}
},
"metadata": {
+ "provider_name": "Qwen",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/qwen.qwen3-32b-v1:0",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":true}}}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 32768,
+ "reasoningSupported": {
+ "embedded": false
+ },
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -4617,7 +15637,7 @@
"name": "Qwen3 Coder 30B A3B Instruct",
"provider": "bedrock",
"family": "qwen",
- "created_at": "2025-09-18 00:00:00 +0530",
+ "created_at": "2025-09-18 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -4631,7 +15651,8 @@
},
"capabilities": [
"function_calling",
- "structured_output"
+ "structured_output",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -4642,6 +15663,22 @@
}
},
"metadata": {
+ "provider_name": "Qwen",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/qwen.qwen3-coder-30b-a3b-v1:0",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 262144,
+ "reasoningSupported": null,
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
@@ -4664,7 +15701,7 @@
"name": "Qwen3 Coder 480B A35B Instruct",
"provider": "bedrock",
"family": "qwen",
- "created_at": "2025-09-18 00:00:00 +0530",
+ "created_at": "2025-09-18 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -4678,7 +15715,8 @@
},
"capabilities": [
"function_calling",
- "structured_output"
+ "structured_output",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -4689,6 +15727,22 @@
}
},
"metadata": {
+ "provider_name": "Qwen",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/qwen.qwen3-coder-480b-a35b-v1:0",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 131072,
+ "reasoningSupported": null,
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -4711,7 +15765,7 @@
"name": "Qwen3 Coder Next",
"provider": "bedrock",
"family": "qwen",
- "created_at": "2026-02-06 00:00:00 +0530",
+ "created_at": "2026-02-06 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -4758,7 +15812,7 @@
"name": "Qwen/Qwen3-Next-80B-A3B-Instruct",
"provider": "bedrock",
"family": "qwen",
- "created_at": "2025-09-18 00:00:00 +0530",
+ "created_at": "2025-09-18 00:00:00 UTC",
"context_window": 262000,
"max_output_tokens": 262000,
"knowledge_cutoff": null,
@@ -4772,7 +15826,8 @@
},
"capabilities": [
"function_calling",
- "structured_output"
+ "structured_output",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -4783,6 +15838,24 @@
}
},
"metadata": {
+ "provider_name": "Qwen",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/qwen.qwen3-next-80b-a3b",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false}}}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 262144,
+ "reasoningSupported": {
+ "embedded": false
+ },
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
@@ -4804,7 +15877,7 @@
"name": "Qwen/Qwen3-VL-235B-A22B-Instruct",
"provider": "bedrock",
"family": "qwen",
- "created_at": "2025-10-04 00:00:00 +0530",
+ "created_at": "2025-10-04 00:00:00 UTC",
"context_window": 262000,
"max_output_tokens": 262000,
"knowledge_cutoff": null,
@@ -4820,7 +15893,8 @@
"capabilities": [
"function_calling",
"structured_output",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -4831,6 +15905,29 @@
}
},
"metadata": {
+ "provider_name": "Qwen",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/qwen.qwen3-vl-235b-a22b",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false}}}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 262144,
+ "reasoningSupported": {
+ "embedded": false
+ },
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [
+ "png",
+ "jpeg",
+ "gif",
+ "webp"
+ ],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
@@ -4847,12 +15944,444 @@
}
}
},
+ {
+ "id": "stability.sd3-5-large-v1:0",
+ "name": "Stable Diffusion 3.5 Large",
+ "provider": "bedrock",
+ "family": "stability ai",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "image"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Stability AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/stability.sd3-5-large-v1:0",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "stability.stable-image-core-v1:1",
+ "name": "Stable Image Core 1.0",
+ "provider": "bedrock",
+ "family": "stability ai",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "image"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Stability AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/stability.stable-image-core-v1:1",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "stability.stable-image-ultra-v1:1",
+ "name": "Stable Image Ultra 1.0",
+ "provider": "bedrock",
+ "family": "stability ai",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "image"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Stability AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/stability.stable-image-ultra-v1:1",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "us.amazon.nova-2-lite-v1:0",
+ "name": "Nova 2 Lite",
+ "provider": "bedrock",
+ "family": "nova",
+ "created_at": "2024-12-01 00:00:00 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "vision",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.33,
+ "output_per_million": 2.75
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Amazon",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/amazon.nova-2-lite-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"topK\":{\"type\":\"number\",\"default\":50,\"minimum\":1,\"maximum\":100},\"reasoningConfig\":{\"budgetTokens\":{\"type\":\"enum\",\"default\":\"low\",\"minimum\":10000,\"maximum\":64000,\"enum\":{\"low\":10000,\"medium\":40000,\"high\":64000},\"smartSyncEnabled\":true}}}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 65535,
+ "reasoningSupported": {
+ "embedded": false
+ },
+ "stopSequencesDefault": null,
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [
+ "pdf",
+ "docx"
+ ],
+ "userImageTypesSupported": [
+ "jpeg",
+ "png",
+ "gif",
+ "webp"
+ ],
+ "userVideoTypesSupported": [
+ "mkv",
+ "mov",
+ "mp4",
+ "webm",
+ "flv",
+ "mpeg",
+ "mpg",
+ "wmv",
+ "three_gp"
+ ]
+ },
+ "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": "us.amazon.nova-lite-v1:0",
+ "name": "Nova Lite",
+ "provider": "bedrock",
+ "family": "nova-lite",
+ "created_at": "2024-12-03 00:00:00 UTC",
+ "context_window": 300000,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "vision",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.06,
+ "output_per_million": 0.24,
+ "cache_read_input_per_million": 0.015
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Amazon",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/amazon.nova-lite-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {},
+ "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": "us.amazon.nova-micro-v1:0",
+ "name": "Nova Micro",
+ "provider": "bedrock",
+ "family": "nova-micro",
+ "created_at": "2024-12-03 00:00:00 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.035,
+ "output_per_million": 0.14,
+ "cache_read_input_per_million": 0.00875
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Amazon",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/amazon.nova-micro-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {},
+ "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": "us.amazon.nova-premier-v1:0",
+ "name": "Nova Premier",
+ "provider": "bedrock",
+ "family": "nova",
+ "created_at": "2024-12-03 00:00:00 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "reasoning",
+ "vision",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 12.5
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Amazon",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/amazon.nova-premier-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {},
+ "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": "us.amazon.nova-pro-v1:0",
+ "name": "Nova Pro",
+ "provider": "bedrock",
+ "family": "nova-pro",
+ "created_at": "2024-12-03 00:00:00 UTC",
+ "context_window": 300000,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "vision",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.8,
+ "output_per_million": 3.2,
+ "cache_read_input_per_million": 0.2
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Amazon",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/amazon.nova-pro-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": null,
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 10000,
+ "reasoningSupported": null,
+ "stopSequencesDefault": null,
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [
+ "pdf",
+ "docx"
+ ],
+ "userImageTypesSupported": [
+ "jpeg",
+ "png",
+ "gif",
+ "webp"
+ ],
+ "userVideoTypesSupported": [
+ "mkv",
+ "mov",
+ "mp4",
+ "webm",
+ "flv",
+ "mpeg",
+ "mpg",
+ "wmv",
+ "three_gp"
+ ]
+ },
+ "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": "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",
+ "created_at": "2025-10-15 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2025-02-28",
@@ -4870,18 +16399,45 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1,
"output_per_million": 5,
- "cached_input_per_million": 0.1
+ "cache_read_input_per_million": 0.1,
+ "cache_write_input_per_million": 1.25
}
}
},
"metadata": {
+ "provider_name": "Anthropic",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-haiku-4-5-20251001-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"top_k\":{\"type\":\"number\",\"default\":250,\"minimum\":0,\"maximum\":500},\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false},\"budgetTokens\":{\"type\":\"integer\",\"default\":2048,\"minimum\":1024,\"maximum\":63999}}}",
+ "maxTokensDefault": 64000,
+ "maxTokensMaximum": 64000,
+ "reasoningSupported": {
+ "embedded": false
+ },
+ "stopSequencesDefault": null,
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [
+ "pdf"
+ ],
+ "userImageTypesSupported": [
+ "jpeg",
+ "png",
+ "gif",
+ "webp"
+ ],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
@@ -4906,7 +16462,7 @@
"name": "Claude Opus 4.1 (US)",
"provider": "bedrock",
"family": "claude-opus",
- "created_at": "2025-08-05 00:00:00 +0530",
+ "created_at": "2025-08-05 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 32000,
"knowledge_cutoff": "2025-03-31",
@@ -4923,18 +16479,45 @@
"capabilities": [
"function_calling",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 15,
"output_per_million": 75,
- "cached_input_per_million": 1.5
+ "cache_read_input_per_million": 1.5,
+ "cache_write_input_per_million": 18.75
}
}
},
"metadata": {
+ "provider_name": "Anthropic",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-opus-4-1-20250805-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"topK\":{\"type\":\"number\",\"default\":250,\"minimum\":0,\"maximum\":500},\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false},\"budgetTokens\":{\"type\":\"integer\",\"default\":2048,\"minimum\":1024,\"maximum\":63999}}}",
+ "maxTokensDefault": 1024,
+ "maxTokensMaximum": 32000,
+ "reasoningSupported": {
+ "embedded": false
+ },
+ "stopSequencesDefault": null,
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [
+ "pdf"
+ ],
+ "userImageTypesSupported": [
+ "jpeg",
+ "png",
+ "gif",
+ "webp"
+ ],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
@@ -4959,10 +16542,10 @@
"name": "Claude Opus 4 (US)",
"provider": "bedrock",
"family": "claude-opus",
- "created_at": "2025-05-22 00:00:00 +0530",
+ "created_at": "2025-05-22 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 32000,
- "knowledge_cutoff": null,
+ "knowledge_cutoff": "2025-03-31",
"modalities": {
"input": [
"text",
@@ -4976,18 +16559,26 @@
"capabilities": [
"function_calling",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 15,
"output_per_million": 75,
- "cached_input_per_million": 1.5
+ "cache_read_input_per_million": 1.5,
+ "cache_write_input_per_million": 18.75
}
}
},
"metadata": {
+ "provider_name": "Anthropic",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-opus-4-20250514-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {},
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
@@ -5004,7 +16595,7 @@
"context": 200000,
"output": 32000
},
- "knowledge": "2024-04"
+ "knowledge": "2025-03-31"
}
},
{
@@ -5012,7 +16603,7 @@
"name": "Claude Opus 4.5 (US)",
"provider": "bedrock",
"family": "claude-opus",
- "created_at": "2025-11-24 00:00:00 +0530",
+ "created_at": "2025-11-24 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2025-03-31",
@@ -5030,18 +16621,45 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 5,
"output_per_million": 25,
- "cached_input_per_million": 0.5
+ "cache_read_input_per_million": 0.5,
+ "cache_write_input_per_million": 6.25
}
}
},
"metadata": {
+ "provider_name": "Anthropic",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-opus-4-5-20251101-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"top_k\":{\"type\":\"number\",\"default\":250,\"minimum\":0,\"maximum\":500},\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false},\"budgetTokens\":{\"type\":\"integer\",\"default\":2048,\"minimum\":1024,\"maximum\":63999}}}",
+ "maxTokensDefault": 64000,
+ "maxTokensMaximum": 64000,
+ "reasoningSupported": {
+ "embedded": false
+ },
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [
+ "pdf"
+ ],
+ "userImageTypesSupported": [
+ "jpeg",
+ "png",
+ "gif",
+ "webp"
+ ],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
@@ -5066,10 +16684,10 @@
"name": "Claude Opus 4.6 (US)",
"provider": "bedrock",
"family": "claude-opus",
- "created_at": "2026-02-05 00:00:00 +0530",
+ "created_at": "2026-02-05 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 128000,
- "knowledge_cutoff": null,
+ "knowledge_cutoff": "2025-05-31",
"modalities": {
"input": [
"text",
@@ -5084,24 +16702,51 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 5,
"output_per_million": 25,
- "cached_input_per_million": 0.5
+ "cache_read_input_per_million": 0.5,
+ "cache_write_input_per_million": 6.25
}
}
},
"metadata": {
+ "provider_name": "Anthropic",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-opus-4-6-v1",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"top_k\":{\"type\":\"number\",\"default\":250,\"minimum\":0,\"maximum\":500},\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false},\"budgetTokens\":{\"type\":\"enum\",\"default\":\"low\",\"enum\":{\"low\":1024,\"medium\":40000,\"high\":63999},\"minimum\":1024,\"maximum\":63999}}}",
+ "maxTokensDefault": 128000,
+ "maxTokensMaximum": 128000,
+ "reasoningSupported": {
+ "embedded": false
+ },
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [
+ "pdf"
+ ],
+ "userImageTypesSupported": [
+ "jpeg",
+ "png",
+ "gif",
+ "webp"
+ ],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
"attachment": true,
"temperature": true,
- "last_updated": "2026-03-18",
+ "last_updated": "2026-03-13",
"cost": {
"input": 5,
"output": 25,
@@ -5112,7 +16757,88 @@
"context": 1000000,
"output": 128000
},
- "knowledge": "2025-05"
+ "knowledge": "2025-05-31"
+ }
+ },
+ {
+ "id": "us.anthropic.claude-opus-4-7",
+ "name": "Claude Opus 4.7 (US)",
+ "provider": "bedrock",
+ "family": "claude-opus",
+ "created_at": "2026-04-16 00:00:00 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 128000,
+ "knowledge_cutoff": "2026-01-31",
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "pdf"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "reasoning",
+ "vision",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 5,
+ "output_per_million": 25,
+ "cache_read_input_per_million": 0.5,
+ "cache_write_input_per_million": 6.25
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Anthropic",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-opus-4-7",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false},\"budgetTokens\":{\"type\":\"enum\",\"default\":\"low\",\"enum\":{\"low\":1024,\"medium\":40000,\"high\":63999},\"minimum\":1024,\"maximum\":63999}},\"hideSamplingParameter\":true}",
+ "maxTokensDefault": 4096,
+ "maxTokensMaximum": 128000,
+ "reasoningSupported": {
+ "embedded": false
+ },
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [
+ "pdf"
+ ],
+ "userImageTypesSupported": [
+ "jpeg",
+ "png",
+ "gif",
+ "webp"
+ ],
+ "userVideoTypesSupported": []
+ },
+ "source": "models.dev",
+ "provider_id": "amazon-bedrock",
+ "open_weights": false,
+ "attachment": true,
+ "temperature": false,
+ "last_updated": "2026-04-16",
+ "cost": {
+ "input": 5,
+ "output": 25,
+ "cache_read": 0.5,
+ "cache_write": 6.25
+ },
+ "limit": {
+ "context": 1000000,
+ "output": 128000
+ },
+ "knowledge": "2026-01-31"
}
},
{
@@ -5120,10 +16846,10 @@
"name": "Claude Sonnet 4 (US)",
"provider": "bedrock",
"family": "claude-sonnet",
- "created_at": "2025-05-22 00:00:00 +0530",
+ "created_at": "2025-05-22 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
- "knowledge_cutoff": null,
+ "knowledge_cutoff": "2025-03-31",
"modalities": {
"input": [
"text",
@@ -5137,18 +16863,45 @@
"capabilities": [
"function_calling",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
"metadata": {
+ "provider_name": "Anthropic",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": null,
+ "maxTokensDefault": 8192,
+ "maxTokensMaximum": 65536,
+ "reasoningSupported": {
+ "embedded": true
+ },
+ "stopSequencesDefault": null,
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [
+ "pdf"
+ ],
+ "userImageTypesSupported": [
+ "jpeg",
+ "png",
+ "gif",
+ "webp"
+ ],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
@@ -5165,7 +16918,7 @@
"context": 200000,
"output": 64000
},
- "knowledge": "2024-04"
+ "knowledge": "2025-03-31"
}
},
{
@@ -5173,7 +16926,7 @@
"name": "Claude Sonnet 4.5 (US)",
"provider": "bedrock",
"family": "claude-sonnet",
- "created_at": "2025-09-29 00:00:00 +0530",
+ "created_at": "2025-09-29 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2025-07-31",
@@ -5191,18 +16944,45 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
"metadata": {
+ "provider_name": "Anthropic",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-sonnet-4-5-20250929-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"top_k\":{\"type\":\"number\",\"default\":250,\"minimum\":0,\"maximum\":500},\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false},\"budgetTokens\":{\"type\":\"integer\",\"default\":2048,\"minimum\":1024,\"maximum\":63999}}}",
+ "maxTokensDefault": 64000,
+ "maxTokensMaximum": 64000,
+ "reasoningSupported": {
+ "embedded": false
+ },
+ "stopSequencesDefault": null,
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [
+ "pdf"
+ ],
+ "userImageTypesSupported": [
+ "jpeg",
+ "png",
+ "gif",
+ "webp"
+ ],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
@@ -5227,10 +17007,10 @@
"name": "Claude Sonnet 4.6 (US)",
"provider": "bedrock",
"family": "claude-sonnet",
- "created_at": "2026-02-17 00:00:00 +0530",
+ "created_at": "2026-02-17 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 64000,
- "knowledge_cutoff": null,
+ "knowledge_cutoff": "2025-08-31",
"modalities": {
"input": [
"text",
@@ -5244,24 +17024,52 @@
"capabilities": [
"function_calling",
"reasoning",
- "vision"
+ "vision",
+ "streaming",
+ "structured_output"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
"metadata": {
+ "provider_name": "Anthropic",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-sonnet-4-6",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"top_k\":{\"type\":\"number\",\"default\":250,\"minimum\":0,\"maximum\":500},\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false},\"budgetTokens\":{\"type\":\"enum\",\"default\":\"low\",\"enum\":{\"low\":1024,\"medium\":40000,\"high\":63999},\"minimum\":1024,\"maximum\":63999}}}",
+ "maxTokensDefault": 128000,
+ "maxTokensMaximum": 128000,
+ "reasoningSupported": {
+ "embedded": false
+ },
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [
+ "pdf"
+ ],
+ "userImageTypesSupported": [
+ "jpeg",
+ "png",
+ "gif",
+ "webp"
+ ],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": false,
"attachment": true,
"temperature": true,
- "last_updated": "2026-03-18",
+ "last_updated": "2026-03-13",
"cost": {
"input": 3,
"output": 15,
@@ -5272,7 +17080,1113 @@
"context": 1000000,
"output": 64000
},
- "knowledge": "2025-08"
+ "knowledge": "2025-08-31"
+ }
+ },
+ {
+ "id": "us.cohere.embed-v4:0",
+ "name": "Embed v4",
+ "provider": "bedrock",
+ "family": "Embed",
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "embeddings"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Cohere",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/cohere.embed-v4:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "us.deepseek.r1-v1:0",
+ "name": "DeepSeek-R1",
+ "provider": "bedrock",
+ "family": "deepseek-thinking",
+ "created_at": "2025-01-20 00:00:00 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "reasoning",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.35,
+ "output_per_million": 5.4
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "DeepSeek",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/deepseek.r1-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {},
+ "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": "us.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 UTC",
+ "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": 0.16,
+ "output_per_million": 0.16
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Meta",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-2-11b-instruct-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {},
+ "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": "us.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 UTC",
+ "context_window": 131000,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.1,
+ "output_per_million": 0.1
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Meta",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-2-1b-instruct-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {},
+ "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": "us.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 UTC",
+ "context_window": 131000,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.15,
+ "output_per_million": 0.15
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Meta",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-2-3b-instruct-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {},
+ "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": "us.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 UTC",
+ "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": 0.72,
+ "output_per_million": 0.72
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Meta",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-2-90b-instruct-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {},
+ "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": "us.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 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.72,
+ "output_per_million": 0.72
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Meta",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-3-70b-instruct-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {},
+ "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": "us.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 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "vision",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.24,
+ "output_per_million": 0.97
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Meta",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/meta.llama4-maverick-17b-instruct-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {},
+ "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": "us.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 UTC",
+ "context_window": 3500000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "vision",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.17,
+ "output_per_million": 0.66
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Meta",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/meta.llama4-scout-17b-instruct-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {},
+ "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": "us.mistral.pixtral-large-2502-v1:0",
+ "name": "Pixtral Large (25.02)",
+ "provider": "bedrock",
+ "family": "mistral",
+ "created_at": "2025-04-08 00:00:00 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "vision",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2,
+ "output_per_million": 6
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Mistral AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/mistral.pixtral-large-2502-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {},
+ "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": "us.stability.stable-conservative-upscale-v1:0",
+ "name": "Stable Image Conservative Upscale",
+ "provider": "bedrock",
+ "family": "Stable Image Services",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "image"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Stability AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/stability.stable-conservative-upscale-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "us.stability.stable-creative-upscale-v1:0",
+ "name": "Stable Image Creative Upscale",
+ "provider": "bedrock",
+ "family": "Stable Image Services",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "image"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Stability AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/stability.stable-creative-upscale-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "us.stability.stable-fast-upscale-v1:0",
+ "name": "Stable Image Fast Upscale",
+ "provider": "bedrock",
+ "family": "Stable Image Services",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "image"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Stability AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/stability.stable-fast-upscale-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "us.stability.stable-image-control-sketch-v1:0",
+ "name": "Stable Image Control Sketch",
+ "provider": "bedrock",
+ "family": "Stable Image Services",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "image"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Stability AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/stability.stable-image-control-sketch-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "us.stability.stable-image-control-structure-v1:0",
+ "name": "Stable Image Control Structure",
+ "provider": "bedrock",
+ "family": "Stable Image Services",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "image"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Stability AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/stability.stable-image-control-structure-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "us.stability.stable-image-erase-object-v1:0",
+ "name": "Stable Image Erase Object",
+ "provider": "bedrock",
+ "family": "Stable Image Services",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "image"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Stability AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/stability.stable-image-erase-object-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "us.stability.stable-image-inpaint-v1:0",
+ "name": "Stable Image Inpaint",
+ "provider": "bedrock",
+ "family": "Stable Image Services",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "image"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Stability AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/stability.stable-image-inpaint-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "us.stability.stable-image-remove-background-v1:0",
+ "name": "Stable Image Remove Background",
+ "provider": "bedrock",
+ "family": "Stable Image Services",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "image"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Stability AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/stability.stable-image-remove-background-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "us.stability.stable-image-search-recolor-v1:0",
+ "name": "Stable Image Search and Recolor",
+ "provider": "bedrock",
+ "family": "Stable Image Services",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "image"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Stability AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/stability.stable-image-search-recolor-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "us.stability.stable-image-search-replace-v1:0",
+ "name": "Stable Image Search and Replace",
+ "provider": "bedrock",
+ "family": "Stable Image Services",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "image"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Stability AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/stability.stable-image-search-replace-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "us.stability.stable-image-style-guide-v1:0",
+ "name": "Stable Image Style Guide",
+ "provider": "bedrock",
+ "family": "Stable Image Services",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "image"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Stability AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/stability.stable-image-style-guide-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "us.stability.stable-outpaint-v1:0",
+ "name": "Stable Image Outpaint",
+ "provider": "bedrock",
+ "family": "Stable Image Services",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "image"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Stability AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/stability.stable-outpaint-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "us.stability.stable-style-transfer-v1:0",
+ "name": "Stable Image Style Transfer",
+ "provider": "bedrock",
+ "family": "Stable Image Services",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "image"
+ ]
+ },
+ "capabilities": [
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Stability AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/stability.stable-style-transfer-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "us.twelvelabs.pegasus-1-2-v1:0",
+ "name": "Pegasus v1.2",
+ "provider": "bedrock",
+ "family": "Pegasus",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "TwelveLabs",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/twelvelabs.pegasus-1-2-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {}
+ }
+ },
+ {
+ "id": "us.writer.palmyra-x4-v1:0",
+ "name": "Palmyra X4",
+ "provider": "bedrock",
+ "family": "palmyra",
+ "created_at": "2025-04-28 00:00:00 UTC",
+ "context_window": 122880,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "reasoning",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Writer",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/writer.palmyra-x4-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {},
+ "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": "us.writer.palmyra-x5-v1:0",
+ "name": "Palmyra X5",
+ "provider": "bedrock",
+ "family": "palmyra",
+ "created_at": "2025-04-28 00:00:00 UTC",
+ "context_window": 1040000,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "reasoning",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.6,
+ "output_per_million": 6
+ }
+ }
+ },
+ "metadata": {
+ "provider_name": "Writer",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/writer.palmyra-x5-v1:0",
+ "inference_types": [
+ "INFERENCE_PROFILE"
+ ],
+ "converse": {},
+ "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": "writer.palmyra-vision-7b",
+ "name": "Writer Palmyra Vision 7B",
+ "provider": "bedrock",
+ "family": "Writer Palmyra Vision",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "provider_name": "Writer",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/writer.palmyra-vision-7b",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 4096,
+ "reasoningSupported": null,
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [
+ "jpeg",
+ "png",
+ "gif",
+ "webp"
+ ],
+ "userVideoTypesSupported": []
+ }
}
},
{
@@ -5280,7 +18194,7 @@
"name": "Palmyra X4",
"provider": "bedrock",
"family": "palmyra",
- "created_at": "2025-04-28 00:00:00 +0530",
+ "created_at": "2025-04-28 00:00:00 UTC",
"context_window": 122880,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -5326,7 +18240,7 @@
"name": "Palmyra X5",
"provider": "bedrock",
"family": "palmyra",
- "created_at": "2025-04-28 00:00:00 +0530",
+ "created_at": "2025-04-28 00:00:00 UTC",
"context_window": 1040000,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -5372,7 +18286,7 @@
"name": "GLM-4.7",
"provider": "bedrock",
"family": "glm",
- "created_at": "2025-12-22 00:00:00 +0530",
+ "created_at": "2025-12-22 00:00:00 UTC",
"context_window": 204800,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -5386,7 +18300,8 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -5397,6 +18312,24 @@
}
},
"metadata": {
+ "provider_name": "Z.AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/zai.glm-4.7",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false}}}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 202752,
+ "reasoningSupported": {
+ "embedded": false
+ },
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -5422,7 +18355,7 @@
"name": "GLM-4.7-Flash",
"provider": "bedrock",
"family": "glm-flash",
- "created_at": "2026-01-19 00:00:00 +0530",
+ "created_at": "2026-01-19 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -5436,7 +18369,8 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -5447,6 +18381,24 @@
}
},
"metadata": {
+ "provider_name": "Z.AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/zai.glm-4.7-flash",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false}}}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 202752,
+ "reasoningSupported": {
+ "embedded": false
+ },
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -5469,7 +18421,7 @@
"name": "GLM-5",
"provider": "bedrock",
"family": "glm",
- "created_at": "2026-03-18 00:00:00 +0530",
+ "created_at": "2026-03-18 00:00:00 UTC",
"context_window": 202752,
"max_output_tokens": 101376,
"knowledge_cutoff": null,
@@ -5483,7 +18435,8 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -5494,6 +18447,24 @@
}
},
"metadata": {
+ "provider_name": "Z.AI",
+ "model_arn": "arn:aws:bedrock:us-west-2::foundation-model/zai.glm-5",
+ "inference_types": [
+ "ON_DEMAND"
+ ],
+ "converse": {
+ "additionalRequestFieldsSchema": "{\"reasoningConfig\":{\"enabled\":{\"type\":\"boolean\",\"default\":false}}}",
+ "maxTokensDefault": null,
+ "maxTokensMaximum": 202752,
+ "reasoningSupported": {
+ "embedded": false
+ },
+ "stopSequencesDefault": [],
+ "systemRoleSupported": true,
+ "userDocumentTypesSupported": [],
+ "userImageTypesSupported": [],
+ "userVideoTypesSupported": []
+ },
"source": "models.dev",
"provider_id": "amazon-bedrock",
"open_weights": true,
@@ -5518,9 +18489,9 @@
"name": "DeepSeek Chat",
"provider": "deepseek",
"family": "deepseek",
- "created_at": "2025-12-01 00:00:00 +0530",
- "context_window": 131072,
- "max_output_tokens": 8192,
+ "created_at": "2025-12-01 00:00:00 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 384000,
"knowledge_cutoff": null,
"modalities": {
"input": [
@@ -5536,9 +18507,9 @@
"pricing": {
"text_tokens": {
"standard": {
- "input_per_million": 0.28,
- "output_per_million": 0.42,
- "cached_input_per_million": 0.028
+ "input_per_million": 0.14,
+ "output_per_million": 0.28,
+ "cache_read_input_per_million": 0.028
}
}
},
@@ -5550,13 +18521,13 @@
"temperature": true,
"last_updated": "2026-02-28",
"cost": {
- "input": 0.28,
- "output": 0.42,
+ "input": 0.14,
+ "output": 0.28,
"cache_read": 0.028
},
"limit": {
- "context": 131072,
- "output": 8192
+ "context": 1000000,
+ "output": 384000
},
"knowledge": "2025-09"
}
@@ -5566,9 +18537,9 @@
"name": "DeepSeek Reasoner",
"provider": "deepseek",
"family": "deepseek-thinking",
- "created_at": "2025-12-01 00:00:00 +0530",
- "context_window": 128000,
- "max_output_tokens": 64000,
+ "created_at": "2025-12-01 00:00:00 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 384000,
"knowledge_cutoff": null,
"modalities": {
"input": [
@@ -5585,9 +18556,9 @@
"pricing": {
"text_tokens": {
"standard": {
- "input_per_million": 0.28,
- "output_per_million": 0.42,
- "cached_input_per_million": 0.028
+ "input_per_million": 0.14,
+ "output_per_million": 0.28,
+ "cache_read_input_per_million": 0.028
}
}
},
@@ -5602,23 +18573,249 @@
"field": "reasoning_content"
},
"cost": {
- "input": 0.28,
- "output": 0.42,
+ "input": 0.14,
+ "output": 0.28,
"cache_read": 0.028
},
"limit": {
- "context": 128000,
- "output": 64000
+ "context": 1000000,
+ "output": 384000
},
"knowledge": "2025-09"
}
},
+ {
+ "id": "deepseek-v4-flash",
+ "name": "DeepSeek V4 Flash",
+ "provider": "deepseek",
+ "family": "deepseek-flash",
+ "created_at": "2026-04-24 00:00:00 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 384000,
+ "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": 0.28,
+ "cache_read_input_per_million": 0.028
+ }
+ }
+ },
+ "metadata": {
+ "source": "models.dev",
+ "provider_id": "deepseek",
+ "open_weights": true,
+ "attachment": false,
+ "temperature": true,
+ "last_updated": "2026-04-24",
+ "interleaved": {
+ "field": "reasoning_content"
+ },
+ "cost": {
+ "input": 0.14,
+ "output": 0.28,
+ "cache_read": 0.028
+ },
+ "limit": {
+ "context": 1000000,
+ "output": 384000
+ },
+ "knowledge": "2025-05"
+ }
+ },
+ {
+ "id": "deepseek-v4-pro",
+ "name": "DeepSeek V4 Pro",
+ "provider": "deepseek",
+ "family": "deepseek-thinking",
+ "created_at": "2026-04-24 00:00:00 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 384000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.74,
+ "output_per_million": 3.48,
+ "cache_read_input_per_million": 0.145
+ }
+ }
+ },
+ "metadata": {
+ "source": "models.dev",
+ "provider_id": "deepseek",
+ "open_weights": true,
+ "attachment": false,
+ "temperature": true,
+ "last_updated": "2026-04-24",
+ "interleaved": {
+ "field": "reasoning_content"
+ },
+ "cost": {
+ "input": 1.74,
+ "output": 3.48,
+ "cache_read": 0.145
+ },
+ "limit": {
+ "context": 1000000,
+ "output": 384000
+ },
+ "knowledge": "2025-05"
+ }
+ },
+ {
+ "id": "aqa",
+ "name": "Model that performs Attributed Question Answering.",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 7168,
+ "max_output_tokens": 1024,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {},
+ "metadata": {
+ "version": "001",
+ "description": "Model trained to return answers to questions that are grounded in provided sources, along with estimating answerable probability.",
+ "supported_generation_methods": [
+ "generateAnswer"
+ ]
+ }
+ },
+ {
+ "id": "deep-research-max-preview-04-2026",
+ "name": "Deep Research Max Preview (Apr-21-2026)",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 131072,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "version": "deepthink-exp-05-20",
+ "description": "Preview release (April 21st, 2026) of Deep Research Max",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens"
+ ]
+ }
+ },
+ {
+ "id": "deep-research-preview-04-2026",
+ "name": "Deep Research Preview (Apr-21-2026)",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 131072,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "version": "deepthink-exp-05-20",
+ "description": "Preview release (April 21th, 2026) of Deep Research",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens"
+ ]
+ }
+ },
+ {
+ "id": "deep-research-pro-preview-12-2025",
+ "name": "Deep Research Pro Preview (Dec-12-2025)",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 131072,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "version": "deepthink-exp-05-20",
+ "description": "Preview release (December 12th, 2025) of Deep Research Pro",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens"
+ ]
+ }
+ },
{
"id": "gemini-1.5-flash",
"name": "Gemini 1.5 Flash",
"provider": "gemini",
"family": "gemini-flash",
- "created_at": "2024-05-14 00:00:00 +0530",
+ "created_at": "2024-05-14 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -5642,7 +18839,7 @@
"standard": {
"input_per_million": 0.075,
"output_per_million": 0.3,
- "cached_input_per_million": 0.01875
+ "cache_read_input_per_million": 0.01875
}
}
},
@@ -5670,7 +18867,7 @@
"name": "Gemini 1.5 Flash-8B",
"provider": "gemini",
"family": "gemini-flash",
- "created_at": "2024-10-03 00:00:00 +0530",
+ "created_at": "2024-10-03 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -5694,7 +18891,7 @@
"standard": {
"input_per_million": 0.0375,
"output_per_million": 0.15,
- "cached_input_per_million": 0.01
+ "cache_read_input_per_million": 0.01
}
}
},
@@ -5722,7 +18919,7 @@
"name": "Gemini 1.5 Pro",
"provider": "gemini",
"family": "gemini-pro",
- "created_at": "2024-02-15 00:00:00 +0530",
+ "created_at": "2024-02-15 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -5746,7 +18943,7 @@
"standard": {
"input_per_million": 1.25,
"output_per_million": 5,
- "cached_input_per_million": 0.3125
+ "cache_read_input_per_million": 0.3125
}
}
},
@@ -5774,7 +18971,7 @@
"name": "Gemini 2.0 Flash",
"provider": "gemini",
"family": "gemini-flash",
- "created_at": "2024-12-11 00:00:00 +0530",
+ "created_at": "2024-12-11 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -5800,11 +18997,19 @@
"standard": {
"input_per_million": 0.1,
"output_per_million": 0.4,
- "cached_input_per_million": 0.025
+ "cache_read_input_per_million": 0.025
}
}
},
"metadata": {
+ "version": "2.0",
+ "description": "Gemini 2.0 Flash",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens",
+ "createCachedContent",
+ "batchGenerateContent"
+ ],
"source": "models.dev",
"provider_id": "google",
"open_weights": false,
@@ -5823,12 +19028,49 @@
"knowledge": "2024-06"
}
},
+ {
+ "id": "gemini-2.0-flash-001",
+ "name": "Gemini 2.0 Flash 001",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 1048576,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.1,
+ "output_per_million": 0.4
+ }
+ }
+ },
+ "metadata": {
+ "version": "2.0",
+ "description": "Stable version of Gemini 2.0 Flash, our fast and versatile multimodal model for scaling across diverse tasks, released in January of 2025.",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens",
+ "createCachedContent",
+ "batchGenerateContent"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2024-12-11 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -5858,6 +19100,14 @@
}
},
"metadata": {
+ "version": "2.0",
+ "description": "Gemini 2.0 Flash-Lite",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens",
+ "createCachedContent",
+ "batchGenerateContent"
+ ],
"source": "models.dev",
"provider_id": "google",
"open_weights": false,
@@ -5875,12 +19125,82 @@
"knowledge": "2024-06"
}
},
+ {
+ "id": "gemini-2.0-flash-lite-001",
+ "name": "Gemini 2.0 Flash-Lite 001",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 1048576,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "version": "2.0",
+ "description": "Stable version of Gemini 2.0 Flash-Lite",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens",
+ "createCachedContent",
+ "batchGenerateContent"
+ ]
+ }
+ },
+ {
+ "id": "gemini-2.5-computer-use-preview-10-2025",
+ "name": "Gemini 2.5 Computer Use Preview 10-2025",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 131072,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "version": "Gemini 2.5 Computer Use Preview 10-2025",
+ "description": "Gemini 2.5 Computer Use Preview 10-2025",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens"
+ ]
+ }
+ },
{
"id": "gemini-2.5-flash",
"name": "Gemini 2.5 Flash",
"provider": "gemini",
"family": "gemini-flash",
- "created_at": "2025-03-20 00:00:00 +0530",
+ "created_at": "2025-03-20 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -5907,7 +19227,7 @@
"standard": {
"input_per_million": 0.3,
"output_per_million": 2.5,
- "cached_input_per_million": 0.075
+ "cache_read_input_per_million": 0.03
}
},
"audio_tokens": {
@@ -5917,6 +19237,14 @@
}
},
"metadata": {
+ "version": "001",
+ "description": "Stable version of Gemini 2.5 Flash, our mid-size multimodal model that supports up to 1 million tokens, released in June of 2025.",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens",
+ "createCachedContent",
+ "batchGenerateContent"
+ ],
"source": "models.dev",
"provider_id": "google",
"open_weights": false,
@@ -5926,7 +19254,7 @@
"cost": {
"input": 0.3,
"output": 2.5,
- "cache_read": 0.075,
+ "cache_read": 0.03,
"input_audio": 1
},
"limit": {
@@ -5941,7 +19269,7 @@
"name": "Gemini 2.5 Flash Image",
"provider": "gemini",
"family": "gemini-flash",
- "created_at": "2025-08-26 00:00:00 +0530",
+ "created_at": "2025-08-26 00:00:00 UTC",
"context_window": 32768,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -5957,18 +19285,27 @@
},
"capabilities": [
"reasoning",
- "vision"
+ "vision",
+ "function_calling",
+ "structured_output"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.3,
"output_per_million": 30,
- "cached_input_per_million": 0.075
+ "cache_read_input_per_million": 0.075
}
}
},
"metadata": {
+ "version": "2.0",
+ "description": "Gemini 2.5 Flash Preview Image",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens",
+ "batchGenerateContent"
+ ],
"source": "models.dev",
"provider_id": "google",
"open_weights": false,
@@ -5992,7 +19329,7 @@
"name": "Gemini 2.5 Flash Image (Preview)",
"provider": "gemini",
"family": "gemini-flash",
- "created_at": "2025-08-26 00:00:00 +0530",
+ "created_at": "2025-08-26 00:00:00 UTC",
"context_window": 32768,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -6015,7 +19352,7 @@
"standard": {
"input_per_million": 0.3,
"output_per_million": 30,
- "cached_input_per_million": 0.075
+ "cache_read_input_per_million": 0.075
}
}
},
@@ -6043,7 +19380,7 @@
"name": "Gemini 2.5 Flash Lite",
"provider": "gemini",
"family": "gemini-flash-lite",
- "created_at": "2025-06-17 00:00:00 +0530",
+ "created_at": "2025-06-17 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -6070,11 +19407,19 @@
"standard": {
"input_per_million": 0.1,
"output_per_million": 0.4,
- "cached_input_per_million": 0.025
+ "cache_read_input_per_million": 0.025
}
}
},
"metadata": {
+ "version": "001",
+ "description": "Stable version of Gemini 2.5 Flash-Lite, released in July of 2025",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens",
+ "createCachedContent",
+ "batchGenerateContent"
+ ],
"source": "models.dev",
"provider_id": "google",
"open_weights": false,
@@ -6098,7 +19443,7 @@
"name": "Gemini 2.5 Flash Lite Preview 06-17",
"provider": "gemini",
"family": "gemini-flash-lite",
- "created_at": "2025-06-17 00:00:00 +0530",
+ "created_at": "2025-06-17 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -6124,7 +19469,7 @@
"standard": {
"input_per_million": 0.1,
"output_per_million": 0.4,
- "cached_input_per_million": 0.025
+ "cache_read_input_per_million": 0.025
}
},
"audio_tokens": {
@@ -6158,7 +19503,7 @@
"name": "Gemini 2.5 Flash Lite Preview 09-25",
"provider": "gemini",
"family": "gemini-flash-lite",
- "created_at": "2025-09-25 00:00:00 +0530",
+ "created_at": "2025-09-25 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -6185,7 +19530,7 @@
"standard": {
"input_per_million": 0.1,
"output_per_million": 0.4,
- "cached_input_per_million": 0.025
+ "cache_read_input_per_million": 0.025
}
}
},
@@ -6208,12 +19553,117 @@
"knowledge": "2025-01"
}
},
+ {
+ "id": "gemini-2.5-flash-native-audio-latest",
+ "name": "Gemini 2.5 Flash Native Audio Latest",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 131072,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "version": "Gemini 2.5 Flash Native Audio Latest",
+ "description": "Latest release of Gemini 2.5 Flash Native Audio",
+ "supported_generation_methods": [
+ "countTokens",
+ "bidiGenerateContent"
+ ]
+ }
+ },
+ {
+ "id": "gemini-2.5-flash-native-audio-preview-09-2025",
+ "name": "Gemini 2.5 Flash Native Audio Preview 09-2025",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 131072,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "version": "gemini-2.5-flash-preview-native-audio-dialog-2025-05-19",
+ "description": "Gemini 2.5 Flash Native Audio Preview 09-2025",
+ "supported_generation_methods": [
+ "countTokens",
+ "bidiGenerateContent"
+ ]
+ }
+ },
+ {
+ "id": "gemini-2.5-flash-native-audio-preview-12-2025",
+ "name": "Gemini 2.5 Flash Native Audio Preview 12-2025",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 131072,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "version": "12-2025",
+ "description": "Gemini 2.5 Flash Native Audio Preview 12-2025",
+ "supported_generation_methods": [
+ "countTokens",
+ "bidiGenerateContent"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2025-04-17 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -6239,7 +19689,7 @@
"standard": {
"input_per_million": 0.15,
"output_per_million": 0.6,
- "cached_input_per_million": 0.0375
+ "cache_read_input_per_million": 0.0375
}
}
},
@@ -6267,7 +19717,7 @@
"name": "Gemini 2.5 Flash Preview 05-20",
"provider": "gemini",
"family": "gemini-flash",
- "created_at": "2025-05-20 00:00:00 +0530",
+ "created_at": "2025-05-20 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -6294,7 +19744,7 @@
"standard": {
"input_per_million": 0.15,
"output_per_million": 0.6,
- "cached_input_per_million": 0.0375
+ "cache_read_input_per_million": 0.0375
}
}
},
@@ -6322,7 +19772,7 @@
"name": "Gemini 2.5 Flash Preview 09-25",
"provider": "gemini",
"family": "gemini-flash",
- "created_at": "2025-09-25 00:00:00 +0530",
+ "created_at": "2025-09-25 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -6349,7 +19799,7 @@
"standard": {
"input_per_million": 0.3,
"output_per_million": 2.5,
- "cached_input_per_million": 0.075
+ "cache_read_input_per_million": 0.075
}
},
"audio_tokens": {
@@ -6383,7 +19833,7 @@
"name": "Gemini 2.5 Flash Preview TTS",
"provider": "gemini",
"family": "gemini-flash",
- "created_at": "2025-05-01 00:00:00 +0530",
+ "created_at": "2025-05-01 00:00:00 UTC",
"context_window": 8000,
"max_output_tokens": 16000,
"knowledge_cutoff": null,
@@ -6395,7 +19845,11 @@
"audio"
]
},
- "capabilities": [],
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
"pricing": {
"text_tokens": {
"standard": {
@@ -6405,6 +19859,12 @@
}
},
"metadata": {
+ "version": "gemini-2.5-flash-exp-tts-2025-05-19",
+ "description": "Gemini 2.5 Flash Preview TTS",
+ "supported_generation_methods": [
+ "countTokens",
+ "generateContent"
+ ],
"source": "models.dev",
"provider_id": "google",
"open_weights": false,
@@ -6427,7 +19887,7 @@
"name": "Gemini 2.5 Pro",
"provider": "gemini",
"family": "gemini-pro",
- "created_at": "2025-03-20 00:00:00 +0530",
+ "created_at": "2025-03-20 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -6454,11 +19914,19 @@
"standard": {
"input_per_million": 1.25,
"output_per_million": 10,
- "cached_input_per_million": 0.31
+ "cache_read_input_per_million": 0.125
}
}
},
"metadata": {
+ "version": "2.5",
+ "description": "Stable release (June 17th, 2025) of Gemini 2.5 Pro",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens",
+ "createCachedContent",
+ "batchGenerateContent"
+ ],
"source": "models.dev",
"provider_id": "google",
"open_weights": false,
@@ -6468,7 +19936,12 @@
"cost": {
"input": 1.25,
"output": 10,
- "cache_read": 0.31
+ "cache_read": 0.125,
+ "context_over_200k": {
+ "input": 2.5,
+ "output": 15,
+ "cache_read": 0.25
+ }
},
"limit": {
"context": 1048576,
@@ -6482,7 +19955,7 @@
"name": "Gemini 2.5 Pro Preview 05-06",
"provider": "gemini",
"family": "gemini-pro",
- "created_at": "2025-05-06 00:00:00 +0530",
+ "created_at": "2025-05-06 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -6509,7 +19982,7 @@
"standard": {
"input_per_million": 1.25,
"output_per_million": 10,
- "cached_input_per_million": 0.31
+ "cache_read_input_per_million": 0.31
}
}
},
@@ -6537,7 +20010,7 @@
"name": "Gemini 2.5 Pro Preview 06-05",
"provider": "gemini",
"family": "gemini-pro",
- "created_at": "2025-06-05 00:00:00 +0530",
+ "created_at": "2025-06-05 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -6564,7 +20037,7 @@
"standard": {
"input_per_million": 1.25,
"output_per_million": 10,
- "cached_input_per_million": 0.31
+ "cache_read_input_per_million": 0.31
}
}
},
@@ -6592,7 +20065,7 @@
"name": "Gemini 2.5 Pro Preview TTS",
"provider": "gemini",
"family": "gemini-flash",
- "created_at": "2025-05-01 00:00:00 +0530",
+ "created_at": "2025-05-01 00:00:00 UTC",
"context_window": 8000,
"max_output_tokens": 16000,
"knowledge_cutoff": null,
@@ -6604,7 +20077,11 @@
"audio"
]
},
- "capabilities": [],
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
"pricing": {
"text_tokens": {
"standard": {
@@ -6614,6 +20091,13 @@
}
},
"metadata": {
+ "version": "gemini-2.5-pro-preview-tts-2025-05-19",
+ "description": "Gemini 2.5 Pro Preview TTS",
+ "supported_generation_methods": [
+ "countTokens",
+ "generateContent",
+ "batchGenerateContent"
+ ],
"source": "models.dev",
"provider_id": "google",
"open_weights": false,
@@ -6636,7 +20120,7 @@
"name": "Gemini 3 Flash Preview",
"provider": "gemini",
"family": "gemini-flash",
- "created_at": "2025-12-17 00:00:00 +0530",
+ "created_at": "2025-12-17 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -6663,11 +20147,19 @@
"standard": {
"input_per_million": 0.5,
"output_per_million": 3,
- "cached_input_per_million": 0.05
+ "cache_read_input_per_million": 0.05
}
}
},
"metadata": {
+ "version": "3-flash-preview-12-2025",
+ "description": "Gemini 3 Flash Preview",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens",
+ "createCachedContent",
+ "batchGenerateContent"
+ ],
"source": "models.dev",
"provider_id": "google",
"open_weights": false,
@@ -6691,12 +20183,48 @@
"knowledge": "2025-01"
}
},
+ {
+ "id": "gemini-3-pro-image-preview",
+ "name": "Nano Banana Pro",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 131072,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "version": "3.0",
+ "description": "Gemini 3 Pro Image Preview",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens",
+ "batchGenerateContent"
+ ]
+ }
+ },
{
"id": "gemini-3-pro-preview",
"name": "Gemini 3 Pro Preview",
"provider": "gemini",
"family": "gemini-pro",
- "created_at": "2025-11-18 00:00:00 +0530",
+ "created_at": "2025-11-18 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 64000,
"knowledge_cutoff": null,
@@ -6723,11 +20251,19 @@
"standard": {
"input_per_million": 2,
"output_per_million": 12,
- "cached_input_per_million": 0.2
+ "cache_read_input_per_million": 0.2
}
}
},
"metadata": {
+ "version": "3-pro-preview-11-2025",
+ "description": "Gemini 3 Pro Preview",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens",
+ "createCachedContent",
+ "batchGenerateContent"
+ ],
"source": "models.dev",
"provider_id": "google",
"open_weights": false,
@@ -6756,7 +20292,7 @@
"name": "Gemini 3.1 Flash Image (Preview)",
"provider": "gemini",
"family": "gemini-flash",
- "created_at": "2026-02-26 00:00:00 +0530",
+ "created_at": "2026-02-26 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -6773,7 +20309,9 @@
},
"capabilities": [
"reasoning",
- "vision"
+ "vision",
+ "function_calling",
+ "structured_output"
],
"pricing": {
"text_tokens": {
@@ -6784,6 +20322,13 @@
}
},
"metadata": {
+ "version": "3.0",
+ "description": "Gemini 3.1 Flash Image Preview.",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens",
+ "batchGenerateContent"
+ ],
"source": "models.dev",
"provider_id": "google",
"open_weights": false,
@@ -6806,7 +20351,7 @@
"name": "Gemini 3.1 Flash Lite Preview",
"provider": "gemini",
"family": "gemini-flash-lite",
- "created_at": "2026-03-03 00:00:00 +0530",
+ "created_at": "2026-03-03 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -6833,11 +20378,20 @@
"standard": {
"input_per_million": 0.25,
"output_per_million": 1.5,
- "cached_input_per_million": 0.025
+ "cache_read_input_per_million": 0.025,
+ "cache_write_input_per_million": 1
}
}
},
"metadata": {
+ "version": "3.1-flash-lite-preview-03-2026",
+ "description": "Gemini 3.1 Flash Lite Preview",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens",
+ "createCachedContent",
+ "batchGenerateContent"
+ ],
"source": "models.dev",
"provider_id": "google",
"open_weights": false,
@@ -6857,12 +20411,82 @@
"knowledge": "2025-01"
}
},
+ {
+ "id": "gemini-3.1-flash-live-preview",
+ "name": "Gemini 3.1 Flash Live Preview",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 131072,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "version": "3.1-flash-live-03-2026",
+ "description": "Gemini 3.1 Flash Live Preview",
+ "supported_generation_methods": [
+ "bidiGenerateContent"
+ ]
+ }
+ },
+ {
+ "id": "gemini-3.1-flash-tts-preview",
+ "name": "Gemini 3.1 Flash TTS Preview",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 8192,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "version": "3.1-flash-tts-preview",
+ "description": "Gemini 3.1 Flash TTS Preview",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens",
+ "batchGenerateContent"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2026-02-19 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -6889,11 +20513,19 @@
"standard": {
"input_per_million": 2,
"output_per_million": 12,
- "cached_input_per_million": 0.2
+ "cache_read_input_per_million": 0.2
}
}
},
"metadata": {
+ "version": "3.1-pro-preview-01-2026",
+ "description": "Gemini 3.1 Pro Preview",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens",
+ "createCachedContent",
+ "batchGenerateContent"
+ ],
"source": "models.dev",
"provider_id": "google",
"open_weights": false,
@@ -6922,7 +20554,7 @@
"name": "Gemini 3.1 Pro Preview Custom Tools",
"provider": "gemini",
"family": "gemini-pro",
- "created_at": "2026-02-19 00:00:00 +0530",
+ "created_at": "2026-02-19 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -6949,11 +20581,19 @@
"standard": {
"input_per_million": 2,
"output_per_million": 12,
- "cached_input_per_million": 0.2
+ "cache_read_input_per_million": 0.2
}
}
},
"metadata": {
+ "version": "3.1-pro-preview-01-2026",
+ "description": "Gemini 3.1 Pro Preview optimized for custom tool usage",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens",
+ "createCachedContent",
+ "batchGenerateContent"
+ ],
"source": "models.dev",
"provider_id": "google",
"open_weights": false,
@@ -6982,7 +20622,7 @@
"name": "Gemini Embedding 001",
"provider": "gemini",
"family": "gemini",
- "created_at": "2025-05-20 00:00:00 +0530",
+ "created_at": "2025-05-20 00:00:00 UTC",
"context_window": 2048,
"max_output_tokens": 3072,
"knowledge_cutoff": null,
@@ -6991,7 +20631,7 @@
"text"
],
"output": [
- "text"
+ "embeddings"
]
},
"capabilities": [],
@@ -7003,6 +20643,14 @@
}
},
"metadata": {
+ "version": "001",
+ "description": "Obtain a distributed representation of a text.",
+ "supported_generation_methods": [
+ "embedContent",
+ "countTextTokens",
+ "countTokens",
+ "asyncBatchEmbedContent"
+ ],
"source": "models.dev",
"provider_id": "google",
"open_weights": false,
@@ -7020,12 +20668,72 @@
"knowledge": "2025-05"
}
},
+ {
+ "id": "gemini-embedding-2",
+ "name": "Gemini Embedding 2",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 8192,
+ "max_output_tokens": 1,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {},
+ "metadata": {
+ "version": "2",
+ "description": "Obtain a distributed representation of multimodal content.",
+ "supported_generation_methods": [
+ "embedContent",
+ "countTextTokens",
+ "countTokens",
+ "asyncBatchEmbedContent"
+ ]
+ }
+ },
+ {
+ "id": "gemini-embedding-2-preview",
+ "name": "Gemini Embedding 2 Preview",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 8192,
+ "max_output_tokens": 1,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {},
+ "metadata": {
+ "version": "2",
+ "description": "Obtain a distributed representation of multimodal content.",
+ "supported_generation_methods": [
+ "embedContent",
+ "countTextTokens",
+ "countTokens",
+ "asyncBatchEmbedContent"
+ ]
+ }
+ },
{
"id": "gemini-flash-latest",
"name": "Gemini Flash Latest",
"provider": "gemini",
"family": "gemini-flash",
- "created_at": "2025-09-25 00:00:00 +0530",
+ "created_at": "2025-09-25 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -7052,7 +20760,7 @@
"standard": {
"input_per_million": 0.3,
"output_per_million": 2.5,
- "cached_input_per_million": 0.075
+ "cache_read_input_per_million": 0.075
}
},
"audio_tokens": {
@@ -7062,6 +20770,14 @@
}
},
"metadata": {
+ "version": "Gemini Flash Latest",
+ "description": "Latest release of Gemini Flash",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens",
+ "createCachedContent",
+ "batchGenerateContent"
+ ],
"source": "models.dev",
"provider_id": "google",
"open_weights": false,
@@ -7086,7 +20802,7 @@
"name": "Gemini Flash-Lite Latest",
"provider": "gemini",
"family": "gemini-flash-lite",
- "created_at": "2025-09-25 00:00:00 +0530",
+ "created_at": "2025-09-25 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -7113,11 +20829,19 @@
"standard": {
"input_per_million": 0.1,
"output_per_million": 0.4,
- "cached_input_per_million": 0.025
+ "cache_read_input_per_million": 0.025
}
}
},
"metadata": {
+ "version": "Gemini Flash-Lite Latest",
+ "description": "Latest release of Gemini Flash-Lite",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens",
+ "createCachedContent",
+ "batchGenerateContent"
+ ],
"source": "models.dev",
"provider_id": "google",
"open_weights": false,
@@ -7141,7 +20865,7 @@
"name": "Gemini Live 2.5 Flash",
"provider": "gemini",
"family": "gemini-flash",
- "created_at": "2025-09-01 00:00:00 +0530",
+ "created_at": "2025-09-01 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 8000,
"knowledge_cutoff": null,
@@ -7201,7 +20925,7 @@
"name": "Gemini Live 2.5 Flash Preview Native Audio",
"provider": "gemini",
"family": "gemini-flash",
- "created_at": "2025-06-17 00:00:00 +0530",
+ "created_at": "2025-06-17 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -7255,12 +20979,121 @@
"knowledge": "2025-01"
}
},
+ {
+ "id": "gemini-pro-latest",
+ "name": "Gemini Pro Latest",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 1048576,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "version": "Gemini Pro Latest",
+ "description": "Latest release of Gemini Pro",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens",
+ "createCachedContent",
+ "batchGenerateContent"
+ ]
+ }
+ },
+ {
+ "id": "gemini-robotics-er-1.5-preview",
+ "name": "Gemini Robotics-ER 1.5 Preview",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 1048576,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "version": "1.5-preview",
+ "description": "Gemini Robotics-ER 1.5 Preview",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens"
+ ]
+ }
+ },
+ {
+ "id": "gemini-robotics-er-1.6-preview",
+ "name": "Gemini Robotics-ER 1.6 Preview",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 131072,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "version": "1.6-preview",
+ "description": "Gemini Robotics-ER 1.6 Preview",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens",
+ "createCachedContent",
+ "batchGenerateContent"
+ ]
+ }
+ },
{
"id": "gemma-3-12b-it",
"name": "Gemma 3 12B",
"provider": "gemini",
"family": "gemma",
- "created_at": "2025-03-13 00:00:00 +0530",
+ "created_at": "2025-03-13 00:00:00 UTC",
"context_window": 32768,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -7301,7 +21134,7 @@
"name": "Gemma 3 27B",
"provider": "gemini",
"family": "gemma",
- "created_at": "2025-03-12 00:00:00 +0530",
+ "created_at": "2025-03-12 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -7343,7 +21176,7 @@
"name": "Gemma 3 4B",
"provider": "gemini",
"family": "gemma",
- "created_at": "2025-03-13 00:00:00 +0530",
+ "created_at": "2025-03-13 00:00:00 UTC",
"context_window": 32768,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -7383,7 +21216,7 @@
"name": "Gemma 3n 2B",
"provider": "gemini",
"family": "gemma",
- "created_at": "2025-07-09 00:00:00 +0530",
+ "created_at": "2025-07-09 00:00:00 UTC",
"context_window": 8192,
"max_output_tokens": 2000,
"knowledge_cutoff": null,
@@ -7420,7 +21253,7 @@
"name": "Gemma 3n 4B",
"provider": "gemini",
"family": "gemma",
- "created_at": "2025-05-20 00:00:00 +0530",
+ "created_at": "2025-05-20 00:00:00 UTC",
"context_window": 8192,
"max_output_tokens": 2000,
"knowledge_cutoff": null,
@@ -7453,11 +21286,11 @@
}
},
{
- "id": "gemma-4-26b-it",
+ "id": "gemma-4-26b-a4b-it",
"name": "Gemma 4 26B",
"provider": "gemini",
"family": "gemma",
- "created_at": "2026-04-02 00:00:00 +0530",
+ "created_at": "2026-04-02 00:00:00 UTC",
"context_window": 256000,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -7476,8 +21309,21 @@
"reasoning",
"vision"
],
- "pricing": {},
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
"metadata": {
+ "version": "001",
+ "description": "Gemma 4 26B A4B IT",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens"
+ ],
"source": "models.dev",
"provider_id": "google",
"open_weights": true,
@@ -7495,7 +21341,7 @@
"name": "Gemma 4 31B",
"provider": "gemini",
"family": "gemma",
- "created_at": "2026-04-02 00:00:00 +0530",
+ "created_at": "2026-04-02 00:00:00 UTC",
"context_window": 256000,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -7514,8 +21360,21 @@
"reasoning",
"vision"
],
- "pricing": {},
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
"metadata": {
+ "version": "001",
+ "description": "Gemma 4 31B IT",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens"
+ ],
"source": "models.dev",
"provider_id": "google",
"open_weights": true,
@@ -7528,12 +21387,472 @@
}
}
},
+ {
+ "id": "imagen-4.0-fast-generate-001",
+ "name": "Imagen 4 Fast",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 480,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.03,
+ "output_per_million": 0.03
+ }
+ }
+ },
+ "metadata": {
+ "version": "001",
+ "description": "Vertex served Imagen 4.0 Fast model",
+ "supported_generation_methods": [
+ "predict"
+ ]
+ }
+ },
+ {
+ "id": "imagen-4.0-generate-001",
+ "name": "Imagen 4",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 480,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.03,
+ "output_per_million": 0.03
+ }
+ }
+ },
+ "metadata": {
+ "version": "001",
+ "description": "Vertex served Imagen 4.0 model",
+ "supported_generation_methods": [
+ "predict"
+ ]
+ }
+ },
+ {
+ "id": "imagen-4.0-ultra-generate-001",
+ "name": "Imagen 4 Ultra",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 480,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.03,
+ "output_per_million": 0.03
+ }
+ }
+ },
+ "metadata": {
+ "version": "001",
+ "description": "Vertex served Imagen 4.0 ultra model",
+ "supported_generation_methods": [
+ "predict"
+ ]
+ }
+ },
+ {
+ "id": "lyria-3-clip-preview",
+ "name": "Lyria 3 Clip Preview",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 1048576,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "version": "lyria-3-clip-preview",
+ "description": "Lyria 3 30s model Preview",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens"
+ ]
+ }
+ },
+ {
+ "id": "lyria-3-pro-preview",
+ "name": "Lyria 3 Pro Preview",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 1048576,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "version": "lyria-3-pro-preview",
+ "description": "Lyria 3 Pro Preview",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens"
+ ]
+ }
+ },
+ {
+ "id": "nano-banana-pro-preview",
+ "name": "Nano Banana Pro",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 131072,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "version": "3.0",
+ "description": "Gemini 3 Pro Image Preview",
+ "supported_generation_methods": [
+ "generateContent",
+ "countTokens",
+ "batchGenerateContent"
+ ]
+ }
+ },
+ {
+ "id": "veo-2.0-generate-001",
+ "name": "Veo 2",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 480,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "version": "2.0",
+ "description": "Vertex served Veo 2 model. Access to this model requires billing to be enabled on the associated Google Cloud Platform account. Please visit https://console.cloud.google.com/billing to enable it.",
+ "supported_generation_methods": [
+ "predictLongRunning"
+ ]
+ }
+ },
+ {
+ "id": "veo-3.0-fast-generate-001",
+ "name": "Veo 3 fast",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 480,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "version": "3.0",
+ "description": "Veo 3 fast",
+ "supported_generation_methods": [
+ "predictLongRunning"
+ ]
+ }
+ },
+ {
+ "id": "veo-3.0-generate-001",
+ "name": "Veo 3",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 480,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "version": "3.0",
+ "description": "Veo 3",
+ "supported_generation_methods": [
+ "predictLongRunning"
+ ]
+ }
+ },
+ {
+ "id": "veo-3.1-fast-generate-preview",
+ "name": "Veo 3.1 fast",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 480,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "version": "3.1",
+ "description": "Veo 3.1 fast",
+ "supported_generation_methods": [
+ "predictLongRunning"
+ ]
+ }
+ },
+ {
+ "id": "veo-3.1-generate-preview",
+ "name": "Veo 3.1",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 480,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "version": "3.1",
+ "description": "Veo 3.1",
+ "supported_generation_methods": [
+ "predictLongRunning"
+ ]
+ }
+ },
+ {
+ "id": "veo-3.1-lite-generate-preview",
+ "name": "Veo 3.1 lite",
+ "provider": "gemini",
+ "family": null,
+ "created_at": null,
+ "context_window": 480,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "version": "3.1",
+ "description": "Veo 3.1 lite",
+ "supported_generation_methods": [
+ "predictLongRunning"
+ ]
+ }
+ },
+ {
+ "id": "codestral-2508",
+ "name": "Codestral",
+ "provider": "mistral",
+ "family": "codestral",
+ "created_at": "2025-08-29 23:00:00 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "batch",
+ "predicted_outputs"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "codestral-embed",
+ "name": "Codestral",
+ "provider": "mistral",
+ "family": "codestral",
+ "created_at": "2025-05-20 23:00:00 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "embeddings"
+ ]
+ },
+ "capabilities": [
+ "predicted_outputs"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "codestral-embed-2505",
+ "name": "Codestral",
+ "provider": "mistral",
+ "family": "codestral",
+ "created_at": "2025-05-20 23:00:00 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "embeddings"
+ ]
+ },
+ "capabilities": [
+ "predicted_outputs"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
{
"id": "codestral-latest",
"name": "Codestral (latest)",
"provider": "mistral",
"family": "codestral",
- "created_at": "2024-05-29 00:00:00 +0530",
+ "created_at": "2024-05-29 00:00:00 UTC",
"context_window": 256000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -7546,7 +21865,11 @@
]
},
"capabilities": [
- "function_calling"
+ "function_calling",
+ "streaming",
+ "structured_output",
+ "batch",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -7557,6 +21880,8 @@
}
},
"metadata": {
+ "object": "model",
+ "owned_by": "mistralai",
"source": "models.dev",
"provider_id": "mistral",
"open_weights": true,
@@ -7579,7 +21904,7 @@
"name": "Devstral 2",
"provider": "mistral",
"family": "devstral",
- "created_at": "2025-12-09 00:00:00 +0530",
+ "created_at": "2025-12-09 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 262144,
"knowledge_cutoff": null,
@@ -7592,7 +21917,11 @@
]
},
"capabilities": [
- "function_calling"
+ "function_calling",
+ "streaming",
+ "structured_output",
+ "batch",
+ "fine_tuning"
],
"pricing": {
"text_tokens": {
@@ -7603,6 +21932,8 @@
}
},
"metadata": {
+ "object": "model",
+ "owned_by": "mistralai",
"source": "models.dev",
"provider_id": "mistral",
"open_weights": true,
@@ -7620,12 +21951,42 @@
"knowledge": "2025-12"
}
},
+ {
+ "id": "devstral-latest",
+ "name": "Devstral Latest",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "batch",
+ "fine_tuning"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
{
"id": "devstral-medium-2507",
"name": "Devstral Medium",
"provider": "mistral",
"family": "devstral",
- "created_at": "2025-07-10 00:00:00 +0530",
+ "created_at": "2025-07-10 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 128000,
"knowledge_cutoff": null,
@@ -7638,7 +21999,11 @@
]
},
"capabilities": [
- "function_calling"
+ "function_calling",
+ "streaming",
+ "structured_output",
+ "batch",
+ "fine_tuning"
],
"pricing": {
"text_tokens": {
@@ -7649,6 +22014,8 @@
}
},
"metadata": {
+ "object": "model",
+ "owned_by": "mistralai",
"source": "models.dev",
"provider_id": "mistral",
"open_weights": true,
@@ -7671,7 +22038,7 @@
"name": "Devstral 2 (latest)",
"provider": "mistral",
"family": "devstral",
- "created_at": "2025-12-02 00:00:00 +0530",
+ "created_at": "2025-12-02 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 262144,
"knowledge_cutoff": null,
@@ -7684,7 +22051,11 @@
]
},
"capabilities": [
- "function_calling"
+ "function_calling",
+ "streaming",
+ "structured_output",
+ "batch",
+ "fine_tuning"
],
"pricing": {
"text_tokens": {
@@ -7695,6 +22066,8 @@
}
},
"metadata": {
+ "object": "model",
+ "owned_by": "mistralai",
"source": "models.dev",
"provider_id": "mistral",
"open_weights": true,
@@ -7717,7 +22090,7 @@
"name": "Devstral Small 2505",
"provider": "mistral",
"family": "devstral",
- "created_at": "2025-05-07 00:00:00 +0530",
+ "created_at": "2025-05-07 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 128000,
"knowledge_cutoff": null,
@@ -7763,7 +22136,7 @@
"name": "Devstral Small",
"provider": "mistral",
"family": "devstral",
- "created_at": "2025-07-10 00:00:00 +0530",
+ "created_at": "2025-07-10 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 128000,
"knowledge_cutoff": null,
@@ -7776,7 +22149,11 @@
]
},
"capabilities": [
- "function_calling"
+ "function_calling",
+ "streaming",
+ "structured_output",
+ "batch",
+ "fine_tuning"
],
"pricing": {
"text_tokens": {
@@ -7787,6 +22164,8 @@
}
},
"metadata": {
+ "object": "model",
+ "owned_by": "mistralai",
"source": "models.dev",
"provider_id": "mistral",
"open_weights": true,
@@ -7809,7 +22188,7 @@
"name": "Devstral Small 2",
"provider": "mistral",
"family": "devstral",
- "created_at": "2025-12-09 00:00:00 +0530",
+ "created_at": "2025-12-09 00:00:00 UTC",
"context_window": 256000,
"max_output_tokens": 256000,
"knowledge_cutoff": null,
@@ -7845,12 +22224,71 @@
"knowledge": "2025-12"
}
},
+ {
+ "id": "labs-leanstral-2603",
+ "name": "Labs Leanstral 2603",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "batch"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "magistral-medium-2509",
+ "name": "Magistral Medium 2509",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "reasoning",
+ "batch"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
{
"id": "magistral-medium-latest",
"name": "Magistral Medium (latest)",
"provider": "mistral",
"family": "magistral-medium",
- "created_at": "2025-03-17 00:00:00 +0530",
+ "created_at": "2025-03-17 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
@@ -7864,7 +22302,10 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "structured_output",
+ "batch"
],
"pricing": {
"text_tokens": {
@@ -7875,6 +22316,8 @@
}
},
"metadata": {
+ "object": "model",
+ "owned_by": "mistralai",
"source": "models.dev",
"provider_id": "mistral",
"open_weights": true,
@@ -7897,7 +22340,7 @@
"name": "Magistral Small",
"provider": "mistral",
"family": "magistral-small",
- "created_at": "2025-03-17 00:00:00 +0530",
+ "created_at": "2025-03-17 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 128000,
"knowledge_cutoff": null,
@@ -7939,12 +22382,162 @@
"knowledge": "2025-06"
}
},
+ {
+ "id": "magistral-small-2509",
+ "name": "Magistral Small 2509",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "reasoning",
+ "batch"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "magistral-small-latest",
+ "name": "Magistral Small Latest",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "reasoning",
+ "batch"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "ministral-14b-2512",
+ "name": "Ministral 14b 2512",
+ "provider": "mistral",
+ "family": "ministral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "batch",
+ "distillation"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "ministral-14b-latest",
+ "name": "Ministral 14b Latest",
+ "provider": "mistral",
+ "family": "ministral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "batch",
+ "distillation"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "ministral-3b-2512",
+ "name": "Ministral 3B",
+ "provider": "mistral",
+ "family": "ministral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "batch",
+ "distillation"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
{
"id": "ministral-3b-latest",
"name": "Ministral 3B (latest)",
"provider": "mistral",
"family": "ministral",
- "created_at": "2024-10-01 00:00:00 +0530",
+ "created_at": "2024-10-01 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 128000,
"knowledge_cutoff": null,
@@ -7957,7 +22550,11 @@
]
},
"capabilities": [
- "function_calling"
+ "function_calling",
+ "streaming",
+ "structured_output",
+ "batch",
+ "distillation"
],
"pricing": {
"text_tokens": {
@@ -7968,6 +22565,8 @@
}
},
"metadata": {
+ "object": "model",
+ "owned_by": "mistralai",
"source": "models.dev",
"provider_id": "mistral",
"open_weights": true,
@@ -7985,12 +22584,42 @@
"knowledge": "2024-10"
}
},
+ {
+ "id": "ministral-8b-2512",
+ "name": "Ministral 8B",
+ "provider": "mistral",
+ "family": "ministral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "batch",
+ "distillation"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
{
"id": "ministral-8b-latest",
"name": "Ministral 8B (latest)",
"provider": "mistral",
"family": "ministral",
- "created_at": "2024-10-01 00:00:00 +0530",
+ "created_at": "2024-10-01 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 128000,
"knowledge_cutoff": null,
@@ -8003,7 +22632,11 @@
]
},
"capabilities": [
- "function_calling"
+ "function_calling",
+ "streaming",
+ "structured_output",
+ "batch",
+ "distillation"
],
"pricing": {
"text_tokens": {
@@ -8014,6 +22647,8 @@
}
},
"metadata": {
+ "object": "model",
+ "owned_by": "mistralai",
"source": "models.dev",
"provider_id": "mistral",
"open_weights": true,
@@ -8036,7 +22671,7 @@
"name": "Mistral Embed",
"provider": "mistral",
"family": "mistral-embed",
- "created_at": "2023-12-11 00:00:00 +0530",
+ "created_at": "2023-12-11 00:00:00 UTC",
"context_window": 8000,
"max_output_tokens": 3072,
"knowledge_cutoff": null,
@@ -8057,6 +22692,8 @@
}
},
"metadata": {
+ "object": "model",
+ "owned_by": "mistralai",
"source": "models.dev",
"provider_id": "mistral",
"open_weights": false,
@@ -8073,12 +22710,36 @@
}
}
},
+ {
+ "id": "mistral-embed-2312",
+ "name": "Mistral Embed",
+ "provider": "mistral",
+ "family": "mistral-embed",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "embeddings"
+ ]
+ },
+ "capabilities": [],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
{
"id": "mistral-large-2411",
"name": "Mistral Large 2.1",
"provider": "mistral",
"family": "mistral-large",
- "created_at": "2024-11-01 00:00:00 +0530",
+ "created_at": "2024-11-01 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
@@ -8091,7 +22752,11 @@
]
},
"capabilities": [
- "function_calling"
+ "function_calling",
+ "streaming",
+ "structured_output",
+ "batch",
+ "fine_tuning"
],
"pricing": {
"text_tokens": {
@@ -8102,6 +22767,8 @@
}
},
"metadata": {
+ "object": "model",
+ "owned_by": "mistralai",
"source": "models.dev",
"provider_id": "mistral",
"open_weights": true,
@@ -8124,7 +22791,7 @@
"name": "Mistral Large 3",
"provider": "mistral",
"family": "mistral-large",
- "created_at": "2024-11-01 00:00:00 +0530",
+ "created_at": "2024-11-01 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 262144,
"knowledge_cutoff": null,
@@ -8139,7 +22806,11 @@
},
"capabilities": [
"function_calling",
- "vision"
+ "vision",
+ "streaming",
+ "structured_output",
+ "batch",
+ "fine_tuning"
],
"pricing": {
"text_tokens": {
@@ -8150,6 +22821,8 @@
}
},
"metadata": {
+ "object": "model",
+ "owned_by": "mistralai",
"source": "models.dev",
"provider_id": "mistral",
"open_weights": true,
@@ -8172,7 +22845,7 @@
"name": "Mistral Large (latest)",
"provider": "mistral",
"family": "mistral-large",
- "created_at": "2024-11-01 00:00:00 +0530",
+ "created_at": "2024-11-01 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 262144,
"knowledge_cutoff": null,
@@ -8187,7 +22860,11 @@
},
"capabilities": [
"function_calling",
- "vision"
+ "vision",
+ "streaming",
+ "structured_output",
+ "batch",
+ "fine_tuning"
],
"pricing": {
"text_tokens": {
@@ -8198,6 +22875,8 @@
}
},
"metadata": {
+ "object": "model",
+ "owned_by": "mistralai",
"source": "models.dev",
"provider_id": "mistral",
"open_weights": true,
@@ -8215,12 +22894,75 @@
"knowledge": "2024-11"
}
},
+ {
+ "id": "mistral-large-pixtral-2411",
+ "name": "Mistral Large",
+ "provider": "mistral",
+ "family": "mistral-large",
+ "created_at": "2024-11-12 00:00:00 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "vision",
+ "batch",
+ "fine_tuning"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "mistral-medium",
+ "name": "Mistral Medium",
+ "provider": "mistral",
+ "family": "mistral-medium",
+ "created_at": "2025-05-05 23:00:00 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "vision",
+ "batch",
+ "fine_tuning"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
{
"id": "mistral-medium-2505",
"name": "Mistral Medium 3",
"provider": "mistral",
"family": "mistral-medium",
- "created_at": "2025-05-07 00:00:00 +0530",
+ "created_at": "2025-05-07 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -8235,7 +22977,11 @@
},
"capabilities": [
"function_calling",
- "vision"
+ "vision",
+ "streaming",
+ "structured_output",
+ "batch",
+ "fine_tuning"
],
"pricing": {
"text_tokens": {
@@ -8246,6 +22992,8 @@
}
},
"metadata": {
+ "object": "model",
+ "owned_by": "mistralai",
"source": "models.dev",
"provider_id": "mistral",
"open_weights": false,
@@ -8268,7 +23016,7 @@
"name": "Mistral Medium 3.1",
"provider": "mistral",
"family": "mistral-medium",
- "created_at": "2025-08-12 00:00:00 +0530",
+ "created_at": "2025-08-12 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 262144,
"knowledge_cutoff": null,
@@ -8283,7 +23031,11 @@
},
"capabilities": [
"function_calling",
- "vision"
+ "vision",
+ "streaming",
+ "structured_output",
+ "batch",
+ "fine_tuning"
],
"pricing": {
"text_tokens": {
@@ -8294,6 +23046,8 @@
}
},
"metadata": {
+ "object": "model",
+ "owned_by": "mistralai",
"source": "models.dev",
"provider_id": "mistral",
"open_weights": false,
@@ -8312,13 +23066,13 @@
}
},
{
- "id": "mistral-medium-latest",
- "name": "Mistral Medium (latest)",
+ "id": "mistral-medium-2604",
+ "name": "Mistral Medium 3.5",
"provider": "mistral",
"family": "mistral-medium",
- "created_at": "2025-05-07 00:00:00 +0530",
- "context_window": 128000,
- "max_output_tokens": 16384,
+ "created_at": "2026-04-29 00:00:00 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 262144,
"knowledge_cutoff": null,
"modalities": {
"input": [
@@ -8331,32 +23085,294 @@
},
"capabilities": [
"function_calling",
- "vision"
+ "structured_output",
+ "reasoning",
+ "vision",
+ "streaming",
+ "batch",
+ "fine_tuning"
],
"pricing": {
"text_tokens": {
"standard": {
- "input_per_million": 0.4,
- "output_per_million": 2
+ "input_per_million": 1.5,
+ "output_per_million": 7.5
}
}
},
"metadata": {
+ "object": "model",
+ "owned_by": "mistralai",
"source": "models.dev",
"provider_id": "mistral",
"open_weights": true,
- "attachment": false,
+ "attachment": true,
"temperature": true,
- "last_updated": "2025-05-10",
+ "last_updated": "2026-04-29",
"cost": {
- "input": 0.4,
- "output": 2
+ "input": 1.5,
+ "output": 7.5
},
"limit": {
- "context": 128000,
- "output": 16384
+ "context": 262144,
+ "output": 262144
+ }
+ }
+ },
+ {
+ "id": "mistral-medium-3",
+ "name": "Mistral Medium",
+ "provider": "mistral",
+ "family": "mistral-medium",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "vision",
+ "batch",
+ "fine_tuning"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "mistral-medium-3-5",
+ "name": "Mistral Medium",
+ "provider": "mistral",
+ "family": "mistral-medium",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "vision",
+ "batch",
+ "fine_tuning"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "mistral-medium-3.5",
+ "name": "Mistral Medium",
+ "provider": "mistral",
+ "family": "mistral-medium",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "vision",
+ "batch",
+ "fine_tuning"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "mistral-medium-c21211-r0-75",
+ "name": "Mistral Medium",
+ "provider": "mistral",
+ "family": "mistral-medium",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "vision",
+ "batch",
+ "fine_tuning"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "mistral-medium-latest",
+ "name": "Mistral Medium (latest)",
+ "provider": "mistral",
+ "family": "mistral-medium",
+ "created_at": "2026-04-29 00:00:00 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 262144,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "reasoning",
+ "vision",
+ "streaming",
+ "batch",
+ "fine_tuning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.5,
+ "output_per_million": 7.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai",
+ "source": "models.dev",
+ "provider_id": "mistral",
+ "open_weights": true,
+ "attachment": true,
+ "temperature": true,
+ "last_updated": "2026-04-29",
+ "cost": {
+ "input": 1.5,
+ "output": 7.5
},
- "knowledge": "2025-05"
+ "limit": {
+ "context": 262144,
+ "output": 262144
+ }
+ }
+ },
+ {
+ "id": "mistral-moderation-2411",
+ "name": "Mistral Moderation",
+ "provider": "mistral",
+ "family": "mistral-moderation",
+ "created_at": "2024-11-26 00:00:00 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "moderation"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "mistral-moderation-2603",
+ "name": "Mistral Moderation",
+ "provider": "mistral",
+ "family": "mistral-moderation",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "moderation"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "mistral-moderation-latest",
+ "name": "Mistral Moderation",
+ "provider": "mistral",
+ "family": "mistral-moderation",
+ "created_at": "2024-11-26 00:00:00 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "moderation"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
}
},
{
@@ -8364,7 +23380,7 @@
"name": "Mistral Nemo",
"provider": "mistral",
"family": "mistral-nemo",
- "created_at": "2024-07-01 00:00:00 +0530",
+ "created_at": "2024-07-01 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 128000,
"knowledge_cutoff": null,
@@ -8405,12 +23421,90 @@
"knowledge": "2024-07"
}
},
+ {
+ "id": "mistral-ocr-2505",
+ "name": "Mistral Ocr 2505",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": "2025-05-22 23:00:00 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "vision"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "mistral-ocr-2512",
+ "name": "Mistral Ocr 2512",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "vision"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "mistral-ocr-latest",
+ "name": "Mistral Ocr Latest",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": "2025-05-22 23:00:00 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "vision"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
{
"id": "mistral-small-2506",
"name": "Mistral Small 3.2",
"provider": "mistral",
"family": "mistral-small",
- "created_at": "2025-06-20 00:00:00 +0530",
+ "created_at": "2025-06-20 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
@@ -8425,7 +23519,11 @@
},
"capabilities": [
"function_calling",
- "vision"
+ "vision",
+ "streaming",
+ "structured_output",
+ "batch",
+ "fine_tuning"
],
"pricing": {
"text_tokens": {
@@ -8436,6 +23534,8 @@
}
},
"metadata": {
+ "object": "model",
+ "owned_by": "mistralai",
"source": "models.dev",
"provider_id": "mistral",
"open_weights": true,
@@ -8458,7 +23558,7 @@
"name": "Mistral Small 4",
"provider": "mistral",
"family": "mistral-small",
- "created_at": "2026-03-16 00:00:00 +0530",
+ "created_at": "2026-03-16 00:00:00 UTC",
"context_window": 256000,
"max_output_tokens": 256000,
"knowledge_cutoff": null,
@@ -8474,7 +23574,11 @@
"capabilities": [
"function_calling",
"reasoning",
- "vision"
+ "vision",
+ "streaming",
+ "structured_output",
+ "batch",
+ "fine_tuning"
],
"pricing": {
"text_tokens": {
@@ -8485,6 +23589,8 @@
}
},
"metadata": {
+ "object": "model",
+ "owned_by": "mistralai",
"source": "models.dev",
"provider_id": "mistral",
"open_weights": true,
@@ -8507,7 +23613,7 @@
"name": "Mistral Small (latest)",
"provider": "mistral",
"family": "mistral-small",
- "created_at": "2026-03-16 00:00:00 +0530",
+ "created_at": "2026-03-16 00:00:00 UTC",
"context_window": 256000,
"max_output_tokens": 256000,
"knowledge_cutoff": null,
@@ -8523,7 +23629,11 @@
"capabilities": [
"function_calling",
"reasoning",
- "vision"
+ "vision",
+ "streaming",
+ "structured_output",
+ "batch",
+ "fine_tuning"
],
"pricing": {
"text_tokens": {
@@ -8534,6 +23644,8 @@
}
},
"metadata": {
+ "object": "model",
+ "owned_by": "mistralai",
"source": "models.dev",
"provider_id": "mistral",
"open_weights": true,
@@ -8551,12 +23663,157 @@
"knowledge": "2025-06"
}
},
+ {
+ "id": "mistral-tiny-2407",
+ "name": "Mistral Tiny 2407",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": "2024-07-17 23:00:00 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "batch"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "mistral-tiny-latest",
+ "name": "Mistral Tiny Latest",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": "2024-07-17 23:00:00 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "batch"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "mistral-vibe-cli-fast",
+ "name": "Mistral Vibe Cli Fast",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "batch"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "mistral-vibe-cli-latest",
+ "name": "Mistral Vibe Cli Latest",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "batch"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "mistral-vibe-cli-with-tools",
+ "name": "Mistral Vibe Cli With Tools",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "batch"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
{
"id": "open-mistral-7b",
"name": "Mistral 7B",
"provider": "mistral",
"family": "mistral",
- "created_at": "2023-09-27 00:00:00 +0530",
+ "created_at": "2023-09-27 00:00:00 UTC",
"context_window": 8000,
"max_output_tokens": 8000,
"knowledge_cutoff": null,
@@ -8597,12 +23854,70 @@
"knowledge": "2023-12"
}
},
+ {
+ "id": "open-mistral-nemo",
+ "name": "Open Mistral Nemo",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": "2024-07-17 23:00:00 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "batch"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "open-mistral-nemo-2407",
+ "name": "Open Mistral Nemo 2407",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": "2024-07-17 23:00:00 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "batch"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
{
"id": "open-mixtral-8x22b",
"name": "Mixtral 8x22B",
"provider": "mistral",
"family": "mixtral",
- "created_at": "2024-04-17 00:00:00 +0530",
+ "created_at": "2024-04-17 00:00:00 UTC",
"context_window": 64000,
"max_output_tokens": 64000,
"knowledge_cutoff": null,
@@ -8648,7 +23963,7 @@
"name": "Mixtral 8x7B",
"provider": "mistral",
"family": "mixtral",
- "created_at": "2023-12-11 00:00:00 +0530",
+ "created_at": "2023-12-11 00:00:00 UTC",
"context_window": 32000,
"max_output_tokens": 32000,
"knowledge_cutoff": null,
@@ -8694,7 +24009,7 @@
"name": "Pixtral 12B",
"provider": "mistral",
"family": "pixtral",
- "created_at": "2024-09-01 00:00:00 +0530",
+ "created_at": "2024-09-01 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 128000,
"knowledge_cutoff": null,
@@ -8737,12 +24052,43 @@
"knowledge": "2024-09"
}
},
+ {
+ "id": "pixtral-large-2411",
+ "name": "Pixtral Large",
+ "provider": "mistral",
+ "family": "pixtral",
+ "created_at": "2024-11-12 00:00:00 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "vision",
+ "batch"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
{
"id": "pixtral-large-latest",
"name": "Pixtral Large (latest)",
"provider": "mistral",
"family": "pixtral",
- "created_at": "2024-11-01 00:00:00 +0530",
+ "created_at": "2024-11-01 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 128000,
"knowledge_cutoff": null,
@@ -8757,7 +24103,10 @@
},
"capabilities": [
"function_calling",
- "vision"
+ "vision",
+ "streaming",
+ "structured_output",
+ "batch"
],
"pricing": {
"text_tokens": {
@@ -8768,6 +24117,8 @@
}
},
"metadata": {
+ "object": "model",
+ "owned_by": "mistralai",
"source": "models.dev",
"provider_id": "mistral",
"open_weights": true,
@@ -8786,13 +24137,13 @@
}
},
{
- "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,
+ "id": "voxtral-mini-2507",
+ "name": "Voxtral Mini 2507",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
"knowledge_cutoff": null,
"modalities": {
"input": [
@@ -8805,6 +24156,286 @@
"capabilities": [
"streaming"
],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "voxtral-mini-2602",
+ "name": "Voxtral Mini 2602",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "voxtral-mini-latest",
+ "name": "Voxtral Mini Latest",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "voxtral-mini-realtime-2602",
+ "name": "Voxtral Mini Realtime 2602",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "voxtral-mini-realtime-latest",
+ "name": "Voxtral Mini Realtime Latest",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "voxtral-mini-transcribe-2507",
+ "name": "Voxtral Mini Transcribe 2507",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "transcription"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "voxtral-mini-transcribe-realtime-2602",
+ "name": "Voxtral Mini Transcribe Realtime 2602",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "transcription"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "voxtral-mini-tts-2603",
+ "name": "Voxtral Mini Tts 2603",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "voxtral-mini-tts-latest",
+ "name": "Voxtral Mini Tts Latest",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "voxtral-small-2507",
+ "name": "Voxtral Small 2507",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "voxtral-small-latest",
+ "name": "Voxtral Small Latest",
+ "provider": "mistral",
+ "family": "mistral",
+ "created_at": null,
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "mistralai"
+ }
+ },
+ {
+ "id": "babbage-002",
+ "name": "babbage-002",
+ "provider": "openai",
+ "family": null,
+ "created_at": "2023-08-21 16:16:55 UTC",
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -8818,12 +24449,39 @@
"owned_by": "system"
}
},
+ {
+ "id": "chat-latest",
+ "name": "chat-latest",
+ "provider": "openai",
+ "family": null,
+ "created_at": "2026-05-02 06:50:02 UTC",
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "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",
+ "created_at": "2025-12-16 00:00:00 UTC",
"context_window": 0,
"max_output_tokens": 0,
"knowledge_cutoff": null,
@@ -8838,10 +24496,16 @@
]
},
"capabilities": [
- "vision",
- "streaming"
+ "vision"
],
- "pricing": {},
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
"metadata": {
"object": "model",
"owned_by": "system",
@@ -8858,75 +24522,20 @@
}
}
},
- {
- "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",
+ "name": "computer-use-preview",
"provider": "openai",
- "family": "other",
- "created_at": "2024-12-20 06:17:57 +0530",
+ "family": null,
+ "created_at": "2024-12-20 00:47:57 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -8942,24 +24551,18 @@
},
{
"id": "computer-use-preview-2025-03-11",
- "name": "Computer Use Preview 20250311",
+ "name": "computer-use-preview-2025-03-11",
"provider": "openai",
- "family": "other",
- "created_at": "2025-03-08 01:20:21 +0530",
+ "family": null,
+ "created_at": "2025-03-07 19:50:21 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -8975,25 +24578,18 @@
},
{
"id": "dall-e-2",
- "name": "DALL-E-2",
+ "name": "dall-e-2",
"provider": "openai",
- "family": "dall_e",
- "created_at": "2023-11-01 05:52:57 +0530",
+ "family": null,
+ "created_at": "2023-11-01 00:22:57 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text",
- "image"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -9009,25 +24605,18 @@
},
{
"id": "dall-e-3",
- "name": "DALL-E-3",
+ "name": "dall-e-3",
"provider": "openai",
- "family": "dall_e",
- "created_at": "2023-11-01 02:16:29 +0530",
+ "family": null,
+ "created_at": "2023-10-31 20:46:29 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text",
- "image"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -9043,24 +24632,18 @@
},
{
"id": "davinci-002",
- "name": "Davinci 002",
+ "name": "davinci-002",
"provider": "openai",
- "family": "davinci",
- "created_at": "2023-08-21 21:41:41 +0530",
+ "family": null,
+ "created_at": "2023-08-21 16:11:41 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -9079,7 +24662,7 @@
"name": "GPT-3.5-turbo",
"provider": "openai",
"family": "gpt",
- "created_at": "2023-03-01 00:00:00 +0530",
+ "created_at": "2023-03-01 00:00:00 UTC",
"context_window": 16385,
"max_output_tokens": 4096,
"knowledge_cutoff": "2021-09-01",
@@ -9091,15 +24674,13 @@
"text"
]
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.5,
"output_per_million": 1.5,
- "cached_input_per_million": 1.25
+ "cache_read_input_per_million": 1.25
}
}
},
@@ -9126,24 +24707,18 @@
},
{
"id": "gpt-3.5-turbo-0125",
- "name": "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",
+ "family": null,
+ "created_at": "2024-01-23 22:19:18 UTC",
"context_window": 16385,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -9159,24 +24734,18 @@
},
{
"id": "gpt-3.5-turbo-1106",
- "name": "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",
+ "family": null,
+ "created_at": "2023-11-02 21:15:48 UTC",
"context_window": 16385,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -9192,24 +24761,18 @@
},
{
"id": "gpt-3.5-turbo-16k",
- "name": "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",
+ "family": null,
+ "created_at": "2023-05-10 22:35:02 UTC",
"context_window": 16385,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -9225,24 +24788,18 @@
},
{
"id": "gpt-3.5-turbo-instruct",
- "name": "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",
+ "family": null,
+ "created_at": "2023-08-24 18:23:47 UTC",
"context_window": 16385,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -9258,24 +24815,18 @@
},
{
"id": "gpt-3.5-turbo-instruct-0914",
- "name": "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",
+ "family": null,
+ "created_at": "2023-09-07 21:34:32 UTC",
"context_window": 16385,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -9294,7 +24845,7 @@
"name": "GPT-4",
"provider": "openai",
"family": "gpt",
- "created_at": "2023-11-06 00:00:00 +0530",
+ "created_at": "2023-11-06 00:00:00 UTC",
"context_window": 8192,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -9308,7 +24859,7 @@
},
"capabilities": [
"function_calling",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
@@ -9340,24 +24891,18 @@
},
{
"id": "gpt-4-0613",
- "name": "GPT-4 0613",
+ "name": "gpt-4-0613",
"provider": "openai",
- "family": "other",
- "created_at": "2023-06-12 22:24:56 +0530",
+ "family": null,
+ "created_at": "2023-06-12 16:54:56 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -9376,7 +24921,7 @@
"name": "GPT-4 Turbo",
"provider": "openai",
"family": "gpt",
- "created_at": "2023-11-06 00:00:00 +0530",
+ "created_at": "2023-11-06 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -9391,8 +24936,7 @@
},
"capabilities": [
"function_calling",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
@@ -9424,26 +24968,20 @@
},
{
"id": "gpt-4-turbo-2024-04-09",
- "name": "GPT-4 Turbo 20240409",
+ "name": "gpt-4-turbo-2024-04-09",
"provider": "openai",
- "family": "gpt4_turbo",
- "created_at": "2024-04-09 00:11:17 +0530",
+ "family": null,
+ "created_at": "2024-04-08 18:41:17 UTC",
"context_window": 128000,
- "max_output_tokens": 4096,
+ "max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "image",
- "pdf"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
- "function_calling"
+ "function_calling",
+ "vision"
],
"pricing": {
"text_tokens": {
@@ -9463,7 +25001,7 @@
"name": "GPT-4.1",
"provider": "openai",
"family": "gpt",
- "created_at": "2025-04-14 00:00:00 +0530",
+ "created_at": "2025-04-14 00:00:00 UTC",
"context_window": 1047576,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -9480,15 +25018,14 @@
"capabilities": [
"function_calling",
"structured_output",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 2,
"output_per_million": 8,
- "cached_input_per_million": 0.5
+ "cache_read_input_per_million": 0.5
}
}
},
@@ -9515,34 +25052,28 @@
},
{
"id": "gpt-4.1-2025-04-14",
- "name": "GPT-4.1 20250414",
+ "name": "gpt-4.1-2025-04-14",
"provider": "openai",
- "family": "gpt41",
- "created_at": "2025-04-11 01:39:06 +0530",
+ "family": null,
+ "created_at": "2025-04-10 20:09:06 UTC",
"context_window": 1047576,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "image",
- "pdf"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"function_calling",
- "structured_output"
+ "structured_output",
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 2.0,
"output_per_million": 8.0,
- "cached_input_per_million": 0.5
+ "cache_read_input_per_million": 0.5
}
}
},
@@ -9556,7 +25087,7 @@
"name": "GPT-4.1 mini",
"provider": "openai",
"family": "gpt-mini",
- "created_at": "2025-04-14 00:00:00 +0530",
+ "created_at": "2025-04-14 00:00:00 UTC",
"context_window": 1047576,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -9573,15 +25104,14 @@
"capabilities": [
"function_calling",
"structured_output",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.4,
"output_per_million": 1.6,
- "cached_input_per_million": 0.1
+ "cache_read_input_per_million": 0.1
}
}
},
@@ -9608,34 +25138,28 @@
},
{
"id": "gpt-4.1-mini-2025-04-14",
- "name": "GPT-4.1 Mini 20250414",
+ "name": "gpt-4.1-mini-2025-04-14",
"provider": "openai",
- "family": "gpt41_mini",
- "created_at": "2025-04-11 02:09:07 +0530",
+ "family": null,
+ "created_at": "2025-04-10 20:39:07 UTC",
"context_window": 1047576,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "image",
- "pdf"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"function_calling",
- "structured_output"
+ "structured_output",
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.4,
"output_per_million": 1.6,
- "cached_input_per_million": 0.1
+ "cache_read_input_per_million": 0.1
}
}
},
@@ -9649,7 +25173,7 @@
"name": "GPT-4.1 nano",
"provider": "openai",
"family": "gpt-nano",
- "created_at": "2025-04-14 00:00:00 +0530",
+ "created_at": "2025-04-14 00:00:00 UTC",
"context_window": 1047576,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -9665,15 +25189,14 @@
"capabilities": [
"function_calling",
"structured_output",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.1,
"output_per_million": 0.4,
- "cached_input_per_million": 0.03
+ "cache_read_input_per_million": 0.03
}
}
},
@@ -9700,27 +25223,21 @@
},
{
"id": "gpt-4.1-nano-2025-04-14",
- "name": "GPT-4.1 Nano 20250414",
+ "name": "gpt-4.1-nano-2025-04-14",
"provider": "openai",
- "family": "gpt41_nano",
- "created_at": "2025-04-11 03:07:05 +0530",
+ "family": null,
+ "created_at": "2025-04-10 21:37:05 UTC",
"context_window": 1047576,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "image",
- "pdf"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"function_calling",
- "structured_output"
+ "structured_output",
+ "vision"
],
"pricing": {
"text_tokens": {
@@ -9740,7 +25257,7 @@
"name": "GPT-4o",
"provider": "openai",
"family": "gpt",
- "created_at": "2024-05-13 00:00:00 +0530",
+ "created_at": "2024-05-13 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
@@ -9757,15 +25274,14 @@
"capabilities": [
"function_calling",
"structured_output",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 2.5,
"output_per_million": 10,
- "cached_input_per_million": 1.25
+ "cache_read_input_per_million": 1.25
}
}
},
@@ -9795,7 +25311,7 @@
"name": "GPT-4o (2024-05-13)",
"provider": "openai",
"family": "gpt",
- "created_at": "2024-05-13 00:00:00 +0530",
+ "created_at": "2024-05-13 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -9811,8 +25327,7 @@
"capabilities": [
"function_calling",
"structured_output",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
@@ -9847,7 +25362,7 @@
"name": "GPT-4o (2024-08-06)",
"provider": "openai",
"family": "gpt",
- "created_at": "2024-08-06 00:00:00 +0530",
+ "created_at": "2024-08-06 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
@@ -9863,15 +25378,14 @@
"capabilities": [
"function_calling",
"structured_output",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 2.5,
"output_per_million": 10,
- "cached_input_per_million": 1.25
+ "cache_read_input_per_million": 1.25
}
}
},
@@ -9901,7 +25415,7 @@
"name": "GPT-4o (2024-11-20)",
"provider": "openai",
"family": "gpt",
- "created_at": "2024-11-20 00:00:00 +0530",
+ "created_at": "2024-11-20 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
@@ -9917,15 +25431,14 @@
"capabilities": [
"function_calling",
"structured_output",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 2.5,
"output_per_million": 10,
- "cached_input_per_million": 1.25
+ "cache_read_input_per_million": 1.25
}
}
},
@@ -9952,28 +25465,18 @@
},
{
"id": "gpt-4o-audio-preview",
- "name": "GPT-4o-Audio Preview",
+ "name": "gpt-4o-audio-preview",
"provider": "openai",
- "family": "gpt4o_audio",
- "created_at": "2024-09-27 23:37:23 +0530",
+ "family": null,
+ "created_at": "2024-09-27 18:07:23 UTC",
"context_window": 128000,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text",
- "audio"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming",
- "speech_generation",
- "transcription"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -9989,28 +25492,18 @@
},
{
"id": "gpt-4o-audio-preview-2024-12-17",
- "name": "GPT-4o-Audio Preview 20241217",
+ "name": "gpt-4o-audio-preview-2024-12-17",
"provider": "openai",
- "family": "gpt4o_audio",
- "created_at": "2024-12-13 01:40:39 +0530",
+ "family": null,
+ "created_at": "2024-12-12 20:10:39 UTC",
"context_window": 128000,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text",
- "audio"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming",
- "speech_generation",
- "transcription"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -10026,28 +25519,18 @@
},
{
"id": "gpt-4o-audio-preview-2025-06-03",
- "name": "GPT-4o-Audio Preview 20250603",
+ "name": "gpt-4o-audio-preview-2025-06-03",
"provider": "openai",
- "family": "gpt4o_audio",
- "created_at": "2025-06-03 05:24:58 +0530",
+ "family": null,
+ "created_at": "2025-06-02 23:54:58 UTC",
"context_window": 128000,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text",
- "audio"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming",
- "speech_generation",
- "transcription"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -10066,7 +25549,7 @@
"name": "GPT-4o mini",
"provider": "openai",
"family": "gpt-mini",
- "created_at": "2024-07-18 00:00:00 +0530",
+ "created_at": "2024-07-18 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
@@ -10083,15 +25566,14 @@
"capabilities": [
"function_calling",
"structured_output",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.15,
"output_per_million": 0.6,
- "cached_input_per_million": 0.08
+ "cache_read_input_per_million": 0.08
}
}
},
@@ -10118,27 +25600,21 @@
},
{
"id": "gpt-4o-mini-2024-07-18",
- "name": "GPT-4o-Mini 20240718",
+ "name": "gpt-4o-mini-2024-07-18",
"provider": "openai",
- "family": "gpt4o_mini",
- "created_at": "2024-07-17 05:01:57 +0530",
+ "family": null,
+ "created_at": "2024-07-16 23:31:57 UTC",
"context_window": 128000,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "image",
- "pdf"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"function_calling",
- "structured_output"
+ "structured_output",
+ "vision"
],
"pricing": {
"text_tokens": {
@@ -10155,28 +25631,18 @@
},
{
"id": "gpt-4o-mini-audio-preview",
- "name": "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",
+ "family": null,
+ "created_at": "2024-12-16 22:17:04 UTC",
"context_window": 128000,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text",
- "audio"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming",
- "speech_generation",
- "transcription"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -10192,28 +25658,18 @@
},
{
"id": "gpt-4o-mini-audio-preview-2024-12-17",
- "name": "GPT-4o-Mini Audio Preview 20241217",
+ "name": "gpt-4o-mini-audio-preview-2024-12-17",
"provider": "openai",
- "family": "gpt4o_mini_audio",
- "created_at": "2024-12-14 00:22:00 +0530",
+ "family": null,
+ "created_at": "2024-12-13 18:52:00 UTC",
"context_window": 128000,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text",
- "audio"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming",
- "speech_generation",
- "transcription"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -10229,24 +25685,18 @@
},
{
"id": "gpt-4o-mini-realtime-preview",
- "name": "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",
+ "family": null,
+ "created_at": "2024-12-16 22:16:20 UTC",
"context_window": 128000,
- "max_output_tokens": 4096,
+ "max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -10262,24 +25712,18 @@
},
{
"id": "gpt-4o-mini-realtime-preview-2024-12-17",
- "name": "GPT-4o-Mini Realtime Preview 20241217",
+ "name": "gpt-4o-mini-realtime-preview-2024-12-17",
"provider": "openai",
- "family": "gpt4o_mini_realtime",
- "created_at": "2024-12-13 23:26:41 +0530",
+ "family": null,
+ "created_at": "2024-12-13 17:56:41 UTC",
"context_window": 128000,
- "max_output_tokens": 4096,
+ "max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -10295,24 +25739,18 @@
},
{
"id": "gpt-4o-mini-search-preview",
- "name": "GPT-4o-Mini Search Preview",
+ "name": "gpt-4o-mini-search-preview",
"provider": "openai",
- "family": "other",
- "created_at": "2025-03-08 05:16:01 +0530",
+ "family": null,
+ "created_at": "2025-03-07 23:46:01 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -10328,24 +25766,18 @@
},
{
"id": "gpt-4o-mini-search-preview-2025-03-11",
- "name": "GPT-4o-Mini Search Preview 20250311",
+ "name": "gpt-4o-mini-search-preview-2025-03-11",
"provider": "openai",
- "family": "other",
- "created_at": "2025-03-08 05:10:58 +0530",
+ "family": null,
+ "created_at": "2025-03-07 23:40:58 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -10361,25 +25793,18 @@
},
{
"id": "gpt-4o-mini-transcribe",
- "name": "GPT-4o-Mini Transcribe",
+ "name": "gpt-4o-mini-transcribe",
"provider": "openai",
- "family": "gpt4o_mini_transcribe",
- "created_at": "2025-03-16 01:26:36 +0530",
+ "family": null,
+ "created_at": "2025-03-15 19:56:36 UTC",
"context_window": 16000,
"max_output_tokens": 2000,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -10395,25 +25820,18 @@
},
{
"id": "gpt-4o-mini-transcribe-2025-03-20",
- "name": "GPT-4o-Mini Transcribe 20250320",
+ "name": "gpt-4o-mini-transcribe-2025-03-20",
"provider": "openai",
- "family": "gpt4o_mini_transcribe",
- "created_at": "2025-12-13 12:52:25 +0530",
+ "family": null,
+ "created_at": "2025-12-13 07:22:25 UTC",
"context_window": 16000,
"max_output_tokens": 2000,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -10429,25 +25847,18 @@
},
{
"id": "gpt-4o-mini-transcribe-2025-12-15",
- "name": "GPT-4o-Mini Transcribe 20251215",
+ "name": "gpt-4o-mini-transcribe-2025-12-15",
"provider": "openai",
- "family": "gpt4o_mini_transcribe",
- "created_at": "2025-12-13 12:50:07 +0530",
+ "family": null,
+ "created_at": "2025-12-13 07:20:07 UTC",
"context_window": 16000,
"max_output_tokens": 2000,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -10463,26 +25874,18 @@
},
{
"id": "gpt-4o-mini-tts",
- "name": "GPT-4o-Mini Tts",
+ "name": "gpt-4o-mini-tts",
"provider": "openai",
- "family": "gpt4o_mini_tts",
- "created_at": "2025-03-19 22:35:59 +0530",
+ "family": null,
+ "created_at": "2025-03-19 17:05:59 UTC",
"context_window": null,
"max_output_tokens": null,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text",
- "audio"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -10498,26 +25901,18 @@
},
{
"id": "gpt-4o-mini-tts-2025-03-20",
- "name": "GPT-4o-Mini Tts 20250320",
+ "name": "gpt-4o-mini-tts-2025-03-20",
"provider": "openai",
- "family": "gpt4o_mini_tts",
- "created_at": "2025-12-13 12:55:31 +0530",
+ "family": null,
+ "created_at": "2025-12-13 07:25:31 UTC",
"context_window": null,
"max_output_tokens": null,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text",
- "audio"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -10533,26 +25928,18 @@
},
{
"id": "gpt-4o-mini-tts-2025-12-15",
- "name": "GPT-4o-Mini Tts 20251215",
+ "name": "gpt-4o-mini-tts-2025-12-15",
"provider": "openai",
- "family": "gpt4o_mini_tts",
- "created_at": "2025-12-13 12:57:17 +0530",
+ "family": null,
+ "created_at": "2025-12-13 07:27:17 UTC",
"context_window": null,
"max_output_tokens": null,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text",
- "audio"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -10568,24 +25955,18 @@
},
{
"id": "gpt-4o-realtime-preview",
- "name": "GPT-4o-Realtime Preview",
+ "name": "gpt-4o-realtime-preview",
"provider": "openai",
- "family": "gpt4o_realtime",
- "created_at": "2024-09-30 07:03:18 +0530",
+ "family": null,
+ "created_at": "2024-09-30 01:33:18 UTC",
"context_window": 128000,
- "max_output_tokens": 4096,
+ "max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -10601,24 +25982,18 @@
},
{
"id": "gpt-4o-realtime-preview-2024-12-17",
- "name": "GPT-4o-Realtime Preview 20241217",
+ "name": "gpt-4o-realtime-preview-2024-12-17",
"provider": "openai",
- "family": "gpt4o_realtime",
- "created_at": "2024-12-12 01:00:30 +0530",
+ "family": null,
+ "created_at": "2024-12-11 19:30:30 UTC",
"context_window": 128000,
- "max_output_tokens": 4096,
+ "max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -10634,24 +26009,18 @@
},
{
"id": "gpt-4o-realtime-preview-2025-06-03",
- "name": "GPT-4o-Realtime Preview 20250603",
+ "name": "gpt-4o-realtime-preview-2025-06-03",
"provider": "openai",
- "family": "gpt4o_realtime",
- "created_at": "2025-06-03 05:13:58 +0530",
+ "family": null,
+ "created_at": "2025-06-02 23:43:58 UTC",
"context_window": 128000,
- "max_output_tokens": 4096,
+ "max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -10667,25 +26036,19 @@
},
{
"id": "gpt-4o-search-preview",
- "name": "GPT-4o Search Preview",
+ "name": "gpt-4o-search-preview",
"provider": "openai",
- "family": "gpt4o_search",
- "created_at": "2026-02-24 09:28:54 +0530",
+ "family": null,
+ "created_at": "2026-02-24 03:58:54 UTC",
"context_window": 128000,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "image",
- "pdf"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
@@ -10702,25 +26065,19 @@
},
{
"id": "gpt-4o-search-preview-2025-03-11",
- "name": "GPT-4o Search Preview 20250311",
+ "name": "gpt-4o-search-preview-2025-03-11",
"provider": "openai",
- "family": "gpt4o_search",
- "created_at": "2026-02-24 09:30:21 +0530",
+ "family": null,
+ "created_at": "2026-02-24 04:00:21 UTC",
"context_window": 128000,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "image",
- "pdf"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
@@ -10737,25 +26094,18 @@
},
{
"id": "gpt-4o-transcribe",
- "name": "GPT-4o-Transcribe",
+ "name": "gpt-4o-transcribe",
"provider": "openai",
- "family": "gpt4o_transcribe",
- "created_at": "2025-03-16 01:24:23 +0530",
+ "family": null,
+ "created_at": "2025-03-15 19:54:23 UTC",
"context_window": 128000,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -10771,25 +26121,18 @@
},
{
"id": "gpt-4o-transcribe-diarize",
- "name": "GPT-4o-Transcribe Diarize",
+ "name": "gpt-4o-transcribe-diarize",
"provider": "openai",
- "family": "gpt4o_transcribe",
- "created_at": "2025-06-25 02:31:27 +0530",
+ "family": null,
+ "created_at": "2025-06-24 21:01:27 UTC",
"context_window": 128000,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -10808,7 +26151,7 @@
"name": "GPT-5",
"provider": "openai",
"family": "gpt",
- "created_at": "2025-08-07 00:00:00 +0530",
+ "created_at": "2025-08-07 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2024-09-30",
@@ -10825,15 +26168,14 @@
"function_calling",
"structured_output",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.25,
"output_per_million": 10,
- "cached_input_per_million": 0.125
+ "cache_read_input_per_million": 0.125
}
}
},
@@ -10861,27 +26203,21 @@
},
{
"id": "gpt-5-2025-08-07",
- "name": "GPT-5 20250807",
+ "name": "gpt-5-2025-08-07",
"provider": "openai",
- "family": "gpt5",
- "created_at": "2025-08-02 00:39:20 +0530",
+ "family": null,
+ "created_at": "2025-08-01 19:09:20 UTC",
"context_window": 128000,
"max_output_tokens": 400000,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "image",
- "pdf"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"function_calling",
"structured_output",
+ "vision",
"reasoning"
],
"pricing": {
@@ -10889,7 +26225,7 @@
"standard": {
"input_per_million": 1.25,
"output_per_million": 10.0,
- "cached_input_per_million": 0.125
+ "cache_read_input_per_million": 0.125
}
}
},
@@ -10903,7 +26239,7 @@
"name": "GPT-5 Chat (latest)",
"provider": "openai",
"family": "gpt-codex",
- "created_at": "2025-08-07 00:00:00 +0530",
+ "created_at": "2025-08-07 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2024-09-30",
@@ -10920,7 +26256,6 @@
"structured_output",
"reasoning",
"vision",
- "streaming",
"function_calling"
],
"pricing": {
@@ -10957,7 +26292,7 @@
"name": "GPT-5-Codex",
"provider": "openai",
"family": "gpt-codex",
- "created_at": "2025-09-15 00:00:00 +0530",
+ "created_at": "2025-09-15 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2024-09-30",
@@ -10974,15 +26309,14 @@
"function_calling",
"structured_output",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.25,
"output_per_million": 10,
- "cached_input_per_million": 0.125
+ "cache_read_input_per_million": 0.125
}
}
},
@@ -11013,7 +26347,7 @@
"name": "GPT-5 Mini",
"provider": "openai",
"family": "gpt-mini",
- "created_at": "2025-08-07 00:00:00 +0530",
+ "created_at": "2025-08-07 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2024-05-30",
@@ -11030,15 +26364,14 @@
"function_calling",
"structured_output",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.25,
"output_per_million": 2,
- "cached_input_per_million": 0.025
+ "cache_read_input_per_million": 0.025
}
}
},
@@ -11066,35 +26399,29 @@
},
{
"id": "gpt-5-mini-2025-08-07",
- "name": "GPT-5 Mini 20250807",
+ "name": "gpt-5-mini-2025-08-07",
"provider": "openai",
- "family": "gpt5",
- "created_at": "2025-08-06 02:01:07 +0530",
+ "family": null,
+ "created_at": "2025-08-05 20:31:07 UTC",
"context_window": 128000,
"max_output_tokens": 400000,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "image",
- "pdf"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"function_calling",
"structured_output",
+ "vision",
"reasoning"
],
"pricing": {
"text_tokens": {
"standard": {
- "input_per_million": 1.25,
- "output_per_million": 10.0,
- "cached_input_per_million": 0.125
+ "input_per_million": 0.25,
+ "output_per_million": 2.0,
+ "cache_read_input_per_million": 0.025
}
}
},
@@ -11108,7 +26435,7 @@
"name": "GPT-5 Nano",
"provider": "openai",
"family": "gpt-nano",
- "created_at": "2025-08-07 00:00:00 +0530",
+ "created_at": "2025-08-07 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2024-05-30",
@@ -11125,15 +26452,14 @@
"function_calling",
"structured_output",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.05,
"output_per_million": 0.4,
- "cached_input_per_million": 0.005
+ "cache_read_input_per_million": 0.005
}
}
},
@@ -11161,35 +26487,29 @@
},
{
"id": "gpt-5-nano-2025-08-07",
- "name": "GPT-5 Nano 20250807",
+ "name": "gpt-5-nano-2025-08-07",
"provider": "openai",
- "family": "gpt5",
- "created_at": "2025-08-06 02:08:23 +0530",
+ "family": null,
+ "created_at": "2025-08-05 20:38:23 UTC",
"context_window": 128000,
"max_output_tokens": 400000,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "image",
- "pdf"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"function_calling",
"structured_output",
+ "vision",
"reasoning"
],
"pricing": {
"text_tokens": {
"standard": {
- "input_per_million": 1.25,
- "output_per_million": 10.0,
- "cached_input_per_million": 0.125
+ "input_per_million": 0.05,
+ "output_per_million": 0.4,
+ "cache_read_input_per_million": 0.005
}
}
},
@@ -11203,7 +26523,7 @@
"name": "GPT-5 Pro",
"provider": "openai",
"family": "gpt-pro",
- "created_at": "2025-10-06 00:00:00 +0530",
+ "created_at": "2025-10-06 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 272000,
"knowledge_cutoff": "2024-09-30",
@@ -11220,8 +26540,7 @@
"function_calling",
"structured_output",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
@@ -11254,27 +26573,21 @@
},
{
"id": "gpt-5-pro-2025-10-06",
- "name": "GPT-5 Pro 20251006",
+ "name": "gpt-5-pro-2025-10-06",
"provider": "openai",
- "family": "gpt5",
- "created_at": "2025-10-03 11:05:07 +0530",
+ "family": null,
+ "created_at": "2025-10-03 05:35:07 UTC",
"context_window": 128000,
"max_output_tokens": 400000,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "image",
- "pdf"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"function_calling",
"structured_output",
+ "vision",
"reasoning"
],
"pricing": {
@@ -11282,7 +26595,7 @@
"standard": {
"input_per_million": 1.25,
"output_per_million": 10.0,
- "cached_input_per_million": 0.125
+ "cache_read_input_per_million": 0.125
}
}
},
@@ -11293,27 +26606,21 @@
},
{
"id": "gpt-5-search-api",
- "name": "GPT-5 Search Api",
+ "name": "gpt-5-search-api",
"provider": "openai",
- "family": "gpt5",
- "created_at": "2025-10-03 23:33:49 +0530",
+ "family": null,
+ "created_at": "2025-10-03 18:03:49 UTC",
"context_window": 128000,
"max_output_tokens": 400000,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "image",
- "pdf"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"function_calling",
"structured_output",
+ "vision",
"reasoning"
],
"pricing": {
@@ -11321,7 +26628,7 @@
"standard": {
"input_per_million": 1.25,
"output_per_million": 10.0,
- "cached_input_per_million": 0.125
+ "cache_read_input_per_million": 0.125
}
}
},
@@ -11332,27 +26639,21 @@
},
{
"id": "gpt-5-search-api-2025-10-14",
- "name": "GPT-5 Search Api 20251014",
+ "name": "gpt-5-search-api-2025-10-14",
"provider": "openai",
- "family": "gpt5",
- "created_at": "2025-10-10 02:36:00 +0530",
+ "family": null,
+ "created_at": "2025-10-09 21:06:00 UTC",
"context_window": 128000,
"max_output_tokens": 400000,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "image",
- "pdf"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"function_calling",
"structured_output",
+ "vision",
"reasoning"
],
"pricing": {
@@ -11360,7 +26661,7 @@
"standard": {
"input_per_million": 1.25,
"output_per_million": 10.0,
- "cached_input_per_million": 0.125
+ "cache_read_input_per_million": 0.125
}
}
},
@@ -11374,7 +26675,7 @@
"name": "GPT-5.1",
"provider": "openai",
"family": "gpt",
- "created_at": "2025-11-13 00:00:00 +0530",
+ "created_at": "2025-11-13 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2024-09-30",
@@ -11391,15 +26692,14 @@
"function_calling",
"structured_output",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.25,
"output_per_million": 10,
- "cached_input_per_million": 0.13
+ "cache_read_input_per_million": 0.13
}
}
},
@@ -11427,27 +26727,21 @@
},
{
"id": "gpt-5.1-2025-11-13",
- "name": "GPT-5.1 20251113",
+ "name": "gpt-5.1-2025-11-13",
"provider": "openai",
- "family": "gpt5",
- "created_at": "2025-11-11 00:15:53 +0530",
+ "family": null,
+ "created_at": "2025-11-10 18:45:53 UTC",
"context_window": 128000,
"max_output_tokens": 400000,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "image",
- "pdf"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"function_calling",
"structured_output",
+ "vision",
"reasoning"
],
"pricing": {
@@ -11455,7 +26749,7 @@
"standard": {
"input_per_million": 1.25,
"output_per_million": 10.0,
- "cached_input_per_million": 0.125
+ "cache_read_input_per_million": 0.125
}
}
},
@@ -11469,7 +26763,7 @@
"name": "GPT-5.1 Chat",
"provider": "openai",
"family": "gpt-codex",
- "created_at": "2025-11-13 00:00:00 +0530",
+ "created_at": "2025-11-13 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 16384,
"knowledge_cutoff": "2024-09-30",
@@ -11486,15 +26780,14 @@
"function_calling",
"structured_output",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.25,
"output_per_million": 10,
- "cached_input_per_million": 0.125
+ "cache_read_input_per_million": 0.125
}
}
},
@@ -11524,7 +26817,7 @@
"name": "GPT-5.1 Codex",
"provider": "openai",
"family": "gpt-codex",
- "created_at": "2025-11-13 00:00:00 +0530",
+ "created_at": "2025-11-13 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2024-09-30",
@@ -11541,15 +26834,14 @@
"function_calling",
"structured_output",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.25,
"output_per_million": 10,
- "cached_input_per_million": 0.125
+ "cache_read_input_per_million": 0.125
}
}
},
@@ -11580,7 +26872,7 @@
"name": "GPT-5.1 Codex Max",
"provider": "openai",
"family": "gpt-codex",
- "created_at": "2025-11-13 00:00:00 +0530",
+ "created_at": "2025-11-13 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2024-09-30",
@@ -11597,15 +26889,14 @@
"function_calling",
"structured_output",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.25,
"output_per_million": 10,
- "cached_input_per_million": 0.125
+ "cache_read_input_per_million": 0.125
}
}
},
@@ -11636,7 +26927,7 @@
"name": "GPT-5.1 Codex mini",
"provider": "openai",
"family": "gpt-codex",
- "created_at": "2025-11-13 00:00:00 +0530",
+ "created_at": "2025-11-13 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2024-09-30",
@@ -11653,15 +26944,14 @@
"function_calling",
"structured_output",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.25,
"output_per_million": 2,
- "cached_input_per_million": 0.025
+ "cache_read_input_per_million": 0.025
}
}
},
@@ -11692,7 +26982,7 @@
"name": "GPT-5.2",
"provider": "openai",
"family": "gpt",
- "created_at": "2025-12-11 00:00:00 +0530",
+ "created_at": "2025-12-11 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2025-08-31",
@@ -11709,15 +26999,14 @@
"function_calling",
"structured_output",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.75,
"output_per_million": 14,
- "cached_input_per_million": 0.175
+ "cache_read_input_per_million": 0.175
}
}
},
@@ -11745,27 +27034,21 @@
},
{
"id": "gpt-5.2-2025-12-11",
- "name": "GPT-5.2 20251211",
+ "name": "gpt-5.2-2025-12-11",
"provider": "openai",
- "family": "gpt5",
- "created_at": "2025-12-10 02:13:48 +0530",
+ "family": null,
+ "created_at": "2025-12-09 20:43:48 UTC",
"context_window": 128000,
"max_output_tokens": 400000,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "image",
- "pdf"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"function_calling",
"structured_output",
+ "vision",
"reasoning"
],
"pricing": {
@@ -11773,7 +27056,7 @@
"standard": {
"input_per_million": 1.25,
"output_per_million": 10.0,
- "cached_input_per_million": 0.125
+ "cache_read_input_per_million": 0.125
}
}
},
@@ -11787,7 +27070,7 @@
"name": "GPT-5.2 Chat",
"provider": "openai",
"family": "gpt-codex",
- "created_at": "2025-12-11 00:00:00 +0530",
+ "created_at": "2025-12-11 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 16384,
"knowledge_cutoff": "2025-08-31",
@@ -11804,15 +27087,14 @@
"function_calling",
"structured_output",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.75,
"output_per_million": 14,
- "cached_input_per_million": 0.175
+ "cache_read_input_per_million": 0.175
}
}
},
@@ -11842,7 +27124,7 @@
"name": "GPT-5.2 Codex",
"provider": "openai",
"family": "gpt-codex",
- "created_at": "2025-12-11 00:00:00 +0530",
+ "created_at": "2025-12-11 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2025-08-31",
@@ -11860,15 +27142,14 @@
"function_calling",
"structured_output",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.75,
"output_per_million": 14,
- "cached_input_per_million": 0.175
+ "cache_read_input_per_million": 0.175
}
}
},
@@ -11899,7 +27180,7 @@
"name": "GPT-5.2 Pro",
"provider": "openai",
"family": "gpt-pro",
- "created_at": "2025-12-11 00:00:00 +0530",
+ "created_at": "2025-12-11 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2025-08-31",
@@ -11916,7 +27197,6 @@
"function_calling",
"reasoning",
"vision",
- "streaming",
"structured_output"
],
"pricing": {
@@ -11950,27 +27230,21 @@
},
{
"id": "gpt-5.2-pro-2025-12-11",
- "name": "GPT-5.2 Pro 20251211",
+ "name": "gpt-5.2-pro-2025-12-11",
"provider": "openai",
- "family": "gpt5",
- "created_at": "2025-12-10 10:49:19 +0530",
+ "family": null,
+ "created_at": "2025-12-10 05:19:19 UTC",
"context_window": 128000,
"max_output_tokens": 400000,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "image",
- "pdf"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"function_calling",
"structured_output",
+ "vision",
"reasoning"
],
"pricing": {
@@ -11978,7 +27252,7 @@
"standard": {
"input_per_million": 1.25,
"output_per_million": 10.0,
- "cached_input_per_million": 0.125
+ "cache_read_input_per_million": 0.125
}
}
},
@@ -11992,7 +27266,7 @@
"name": "GPT-5.3 Chat (latest)",
"provider": "openai",
"family": "gpt",
- "created_at": "2026-03-03 00:00:00 +0530",
+ "created_at": "2026-03-03 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 16384,
"knowledge_cutoff": "2025-08-31",
@@ -12009,7 +27283,6 @@
"function_calling",
"structured_output",
"vision",
- "streaming",
"reasoning"
],
"pricing": {
@@ -12017,7 +27290,7 @@
"standard": {
"input_per_million": 1.75,
"output_per_million": 14,
- "cached_input_per_million": 0.175
+ "cache_read_input_per_million": 0.175
}
}
},
@@ -12047,7 +27320,7 @@
"name": "GPT-5.3 Codex",
"provider": "openai",
"family": "gpt-codex",
- "created_at": "2026-02-05 00:00:00 +0530",
+ "created_at": "2026-02-05 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2025-08-31",
@@ -12065,15 +27338,14 @@
"function_calling",
"structured_output",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.75,
"output_per_million": 14,
- "cached_input_per_million": 0.175
+ "cache_read_input_per_million": 0.175
}
}
},
@@ -12104,7 +27376,7 @@
"name": "GPT-5.3 Codex Spark",
"provider": "openai",
"family": "gpt-codex-spark",
- "created_at": "2026-02-05 00:00:00 +0530",
+ "created_at": "2026-02-05 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 32000,
"knowledge_cutoff": "2025-08-31",
@@ -12129,7 +27401,7 @@
"standard": {
"input_per_million": 1.75,
"output_per_million": 14,
- "cached_input_per_million": 0.175
+ "cache_read_input_per_million": 0.175
}
}
},
@@ -12158,7 +27430,7 @@
"name": "GPT-5.4",
"provider": "openai",
"family": "gpt",
- "created_at": "2026-03-05 00:00:00 +0530",
+ "created_at": "2026-03-05 00:00:00 UTC",
"context_window": 1050000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2025-08-31",
@@ -12176,15 +27448,14 @@
"function_calling",
"structured_output",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 2.5,
"output_per_million": 15,
- "cached_input_per_million": 0.25
+ "cache_read_input_per_million": 0.25
}
}
},
@@ -12217,27 +27488,21 @@
},
{
"id": "gpt-5.4-2026-03-05",
- "name": "GPT-5.4 20260305",
+ "name": "gpt-5.4-2026-03-05",
"provider": "openai",
- "family": "gpt5",
- "created_at": "2026-03-05 01:24:22 +0530",
+ "family": null,
+ "created_at": "2026-03-04 19:54:22 UTC",
"context_window": 128000,
"max_output_tokens": 400000,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "image",
- "pdf"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"function_calling",
"structured_output",
+ "vision",
"reasoning"
],
"pricing": {
@@ -12245,7 +27510,7 @@
"standard": {
"input_per_million": 1.25,
"output_per_million": 10.0,
- "cached_input_per_million": 0.125
+ "cache_read_input_per_million": 0.125
}
}
},
@@ -12259,7 +27524,7 @@
"name": "GPT-5.4 mini",
"provider": "openai",
"family": "gpt-mini",
- "created_at": "2026-03-17 00:00:00 +0530",
+ "created_at": "2026-03-17 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2025-08-31",
@@ -12276,15 +27541,14 @@
"function_calling",
"structured_output",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.75,
"output_per_million": 4.5,
- "cached_input_per_million": 0.075
+ "cache_read_input_per_million": 0.075
}
}
},
@@ -12312,35 +27576,29 @@
},
{
"id": "gpt-5.4-mini-2026-03-17",
- "name": "GPT-5.4 Mini 20260317",
+ "name": "gpt-5.4-mini-2026-03-17",
"provider": "openai",
- "family": "gpt5",
- "created_at": "2026-03-14 06:47:56 +0530",
+ "family": null,
+ "created_at": "2026-03-14 01:17:56 UTC",
"context_window": 128000,
"max_output_tokens": 400000,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "image",
- "pdf"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"function_calling",
"structured_output",
+ "vision",
"reasoning"
],
"pricing": {
"text_tokens": {
"standard": {
- "input_per_million": 1.25,
- "output_per_million": 10.0,
- "cached_input_per_million": 0.125
+ "input_per_million": 0.25,
+ "output_per_million": 2.0,
+ "cache_read_input_per_million": 0.025
}
}
},
@@ -12354,7 +27612,7 @@
"name": "GPT-5.4 nano",
"provider": "openai",
"family": "gpt-nano",
- "created_at": "2026-03-17 00:00:00 +0530",
+ "created_at": "2026-03-17 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2025-08-31",
@@ -12371,15 +27629,14 @@
"function_calling",
"structured_output",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.2,
"output_per_million": 1.25,
- "cached_input_per_million": 0.02
+ "cache_read_input_per_million": 0.02
}
}
},
@@ -12407,35 +27664,29 @@
},
{
"id": "gpt-5.4-nano-2026-03-17",
- "name": "GPT-5.4 Nano 20260317",
+ "name": "gpt-5.4-nano-2026-03-17",
"provider": "openai",
- "family": "gpt5",
- "created_at": "2026-03-14 06:43:57 +0530",
+ "family": null,
+ "created_at": "2026-03-14 01:13:57 UTC",
"context_window": 128000,
"max_output_tokens": 400000,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "image",
- "pdf"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"function_calling",
"structured_output",
+ "vision",
"reasoning"
],
"pricing": {
"text_tokens": {
"standard": {
- "input_per_million": 1.25,
- "output_per_million": 10.0,
- "cached_input_per_million": 0.125
+ "input_per_million": 0.05,
+ "output_per_million": 0.4,
+ "cache_read_input_per_million": 0.005
}
}
},
@@ -12449,7 +27700,7 @@
"name": "GPT-5.4 Pro",
"provider": "openai",
"family": "gpt-pro",
- "created_at": "2026-03-05 00:00:00 +0530",
+ "created_at": "2026-03-05 00:00:00 UTC",
"context_window": 1050000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2025-08-31",
@@ -12466,7 +27717,6 @@
"function_calling",
"reasoning",
"vision",
- "streaming",
"structured_output"
],
"pricing": {
@@ -12504,13 +27754,46 @@
},
{
"id": "gpt-5.4-pro-2026-03-05",
- "name": "GPT-5.4 Pro 20260305",
+ "name": "gpt-5.4-pro-2026-03-05",
"provider": "openai",
- "family": "gpt5",
- "created_at": "2026-03-05 02:57:37 +0530",
+ "family": null,
+ "created_at": "2026-03-04 21:27:37 UTC",
"context_window": 128000,
"max_output_tokens": 400000,
"knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": "system"
+ }
+ },
+ {
+ "id": "gpt-5.5",
+ "name": "GPT-5.5",
+ "provider": "openai",
+ "family": "gpt",
+ "created_at": "2026-04-23 00:00:00 UTC",
+ "context_window": 1050000,
+ "max_output_tokens": 128000,
+ "knowledge_cutoff": "2025-12-01",
"modalities": {
"input": [
"text",
@@ -12522,9 +27805,64 @@
]
},
"capabilities": [
- "streaming",
"function_calling",
"structured_output",
+ "reasoning",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 5,
+ "output_per_million": 30,
+ "cache_read_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": "2026-04-23",
+ "cost": {
+ "input": 5,
+ "output": 30,
+ "cache_read": 0.5,
+ "context_over_200k": {
+ "input": 10,
+ "output": 45,
+ "cache_read": 1
+ }
+ },
+ "limit": {
+ "context": 1050000,
+ "input": 922000,
+ "output": 128000
+ },
+ "knowledge": "2025-12-01"
+ }
+ },
+ {
+ "id": "gpt-5.5-2026-04-23",
+ "name": "gpt-5.5-2026-04-23",
+ "provider": "openai",
+ "family": null,
+ "created_at": "2026-04-22 06:27:21 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
"reasoning"
],
"pricing": {
@@ -12532,7 +27870,98 @@
"standard": {
"input_per_million": 1.25,
"output_per_million": 10.0,
- "cached_input_per_million": 0.125
+ "cache_read_input_per_million": 0.125
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": "system"
+ }
+ },
+ {
+ "id": "gpt-5.5-pro",
+ "name": "GPT-5.5 Pro",
+ "provider": "openai",
+ "family": "gpt-pro",
+ "created_at": "2026-04-23 00:00:00 UTC",
+ "context_window": 1050000,
+ "max_output_tokens": 128000,
+ "knowledge_cutoff": "2025-12-01",
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "pdf"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "reasoning",
+ "vision"
+ ],
+ "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-04-23",
+ "cost": {
+ "input": 30,
+ "output": 180,
+ "context_over_200k": {
+ "input": 60,
+ "output": 270
+ }
+ },
+ "limit": {
+ "context": 1050000,
+ "input": 922000,
+ "output": 128000
+ },
+ "knowledge": "2025-12-01"
+ }
+ },
+ {
+ "id": "gpt-5.5-pro-2026-04-23",
+ "name": "gpt-5.5-pro-2026-04-23",
+ "provider": "openai",
+ "family": null,
+ "created_at": "2026-04-22 21:47:50 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 400000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125
}
}
},
@@ -12543,26 +27972,18 @@
},
{
"id": "gpt-audio",
- "name": "GPT-Audio",
+ "name": "gpt-audio",
"provider": "openai",
- "family": "other",
- "created_at": "2025-08-28 05:30:49 +0530",
+ "family": null,
+ "created_at": "2025-08-28 00:00:49 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text",
- "audio"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -12578,26 +27999,18 @@
},
{
"id": "gpt-audio-1.5",
- "name": "GPT-Audio 1.5",
+ "name": "gpt-audio-1.5",
"provider": "openai",
- "family": "other",
- "created_at": "2026-02-20 06:58:05 +0530",
+ "family": null,
+ "created_at": "2026-02-20 01:28:05 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text",
- "audio"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -12613,26 +28026,18 @@
},
{
"id": "gpt-audio-2025-08-28",
- "name": "GPT-Audio 20250828",
+ "name": "gpt-audio-2025-08-28",
"provider": "openai",
- "family": "other",
- "created_at": "2025-08-27 06:25:46 +0530",
+ "family": null,
+ "created_at": "2025-08-27 00:55:46 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text",
- "audio"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -12648,26 +28053,18 @@
},
{
"id": "gpt-audio-mini",
- "name": "GPT-Audio Mini",
+ "name": "gpt-audio-mini",
"provider": "openai",
- "family": "other",
- "created_at": "2025-10-03 22:50:27 +0530",
+ "family": null,
+ "created_at": "2025-10-03 17:20:27 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text",
- "audio"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -12683,26 +28080,18 @@
},
{
"id": "gpt-audio-mini-2025-10-06",
- "name": "GPT-Audio Mini 20251006",
+ "name": "gpt-audio-mini-2025-10-06",
"provider": "openai",
- "family": "other",
- "created_at": "2025-10-03 22:52:17 +0530",
+ "family": null,
+ "created_at": "2025-10-03 17:22:17 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text",
- "audio"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -12718,26 +28107,18 @@
},
{
"id": "gpt-audio-mini-2025-12-15",
- "name": "GPT-Audio Mini 20251215",
+ "name": "gpt-audio-mini-2025-12-15",
"provider": "openai",
- "family": "other",
- "created_at": "2025-12-15 06:23:28 +0530",
+ "family": null,
+ "created_at": "2025-12-15 00:53:28 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text",
- "audio"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -12756,7 +28137,7 @@
"name": "gpt-image-1",
"provider": "openai",
"family": "gpt-image",
- "created_at": "2025-04-24 00:00:00 +0530",
+ "created_at": "2025-04-24 00:00:00 UTC",
"context_window": 0,
"max_output_tokens": 0,
"knowledge_cutoff": null,
@@ -12770,10 +28151,23 @@
]
},
"capabilities": [
- "vision",
- "streaming"
+ "vision"
],
- "pricing": {},
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 5.0,
+ "cache_read_input_per_million": 1.25
+ }
+ },
+ "images": {
+ "standard": {
+ "input_per_million": 10.0,
+ "output_per_million": 40.0,
+ "cache_read_input_per_million": 2.5
+ }
+ }
+ },
"metadata": {
"object": "model",
"owned_by": "system",
@@ -12795,7 +28189,7 @@
"name": "gpt-image-1-mini",
"provider": "openai",
"family": "gpt-image",
- "created_at": "2025-09-26 00:00:00 +0530",
+ "created_at": "2025-09-26 00:00:00 UTC",
"context_window": 0,
"max_output_tokens": 0,
"knowledge_cutoff": null,
@@ -12810,10 +28204,23 @@
]
},
"capabilities": [
- "vision",
- "streaming"
+ "vision"
],
- "pricing": {},
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.0,
+ "cache_read_input_per_million": 0.2
+ }
+ },
+ "images": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 8.0,
+ "cache_read_input_per_million": 0.25
+ }
+ }
+ },
"metadata": {
"object": "model",
"owned_by": "system",
@@ -12835,7 +28242,7 @@
"name": "gpt-image-1.5",
"provider": "openai",
"family": "gpt-image",
- "created_at": "2025-11-25 00:00:00 +0530",
+ "created_at": "2025-11-25 00:00:00 UTC",
"context_window": 0,
"max_output_tokens": 0,
"knowledge_cutoff": null,
@@ -12850,10 +28257,23 @@
]
},
"capabilities": [
- "vision",
- "streaming"
+ "vision"
],
- "pricing": {},
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 5.0,
+ "cache_read_input_per_million": 1.25
+ }
+ },
+ "images": {
+ "standard": {
+ "input_per_million": 8.0,
+ "output_per_million": 32.0,
+ "cache_read_input_per_million": 2.0
+ }
+ }
+ },
"metadata": {
"object": "model",
"owned_by": "system",
@@ -12871,25 +28291,73 @@
}
},
{
- "id": "gpt-realtime",
- "name": "GPT-Realtime",
+ "id": "gpt-image-2",
+ "name": "gpt-image-2",
"provider": "openai",
- "family": "other",
- "created_at": "2025-08-27 10:45:01 +0530",
+ "family": null,
+ "created_at": "2026-04-17 04:23:15 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": "system"
+ }
+ },
+ {
+ "id": "gpt-image-2-2026-04-21",
+ "name": "gpt-image-2-2026-04-21",
+ "provider": "openai",
+ "family": null,
+ "created_at": "2026-04-17 04:26:34 UTC",
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "object": "model",
+ "owned_by": "system"
+ }
+ },
+ {
+ "id": "gpt-realtime",
+ "name": "gpt-realtime",
+ "provider": "openai",
+ "family": null,
+ "created_at": "2025-08-27 05:15:01 UTC",
+ "context_window": 4096,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -12905,24 +28373,18 @@
},
{
"id": "gpt-realtime-1.5",
- "name": "GPT-Realtime 1.5",
+ "name": "gpt-realtime-1.5",
"provider": "openai",
- "family": "other",
- "created_at": "2026-02-19 06:07:49 +0530",
+ "family": null,
+ "created_at": "2026-02-19 00:37:49 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -12938,24 +28400,18 @@
},
{
"id": "gpt-realtime-2025-08-28",
- "name": "GPT-Realtime 20250828",
+ "name": "gpt-realtime-2025-08-28",
"provider": "openai",
- "family": "other",
- "created_at": "2025-08-27 10:46:13 +0530",
+ "family": null,
+ "created_at": "2025-08-27 05:16:13 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -12971,24 +28427,18 @@
},
{
"id": "gpt-realtime-mini",
- "name": "GPT-Realtime Mini",
+ "name": "gpt-realtime-mini",
"provider": "openai",
- "family": "other",
- "created_at": "2025-10-04 00:15:33 +0530",
+ "family": null,
+ "created_at": "2025-10-03 18:45:33 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -13004,24 +28454,18 @@
},
{
"id": "gpt-realtime-mini-2025-10-06",
- "name": "GPT-Realtime Mini 20251006",
+ "name": "gpt-realtime-mini-2025-10-06",
"provider": "openai",
- "family": "other",
- "created_at": "2025-10-04 00:16:15 +0530",
+ "family": null,
+ "created_at": "2025-10-03 18:46:15 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -13037,24 +28481,18 @@
},
{
"id": "gpt-realtime-mini-2025-12-15",
- "name": "GPT-Realtime Mini 20251215",
+ "name": "gpt-realtime-mini-2025-12-15",
"provider": "openai",
- "family": "other",
- "created_at": "2025-12-13 13:16:47 +0530",
+ "family": null,
+ "created_at": "2025-12-13 07:46:47 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -13073,7 +28511,7 @@
"name": "o1",
"provider": "openai",
"family": "o",
- "created_at": "2024-12-05 00:00:00 +0530",
+ "created_at": "2024-12-05 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 100000,
"knowledge_cutoff": null,
@@ -13091,15 +28529,14 @@
"function_calling",
"structured_output",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 15,
"output_per_million": 60,
- "cached_input_per_million": 7.5
+ "cache_read_input_per_million": 7.5
}
}
},
@@ -13126,27 +28563,21 @@
},
{
"id": "o1-2024-12-17",
- "name": "O1-20241217",
+ "name": "o1-2024-12-17",
"provider": "openai",
- "family": "o1",
- "created_at": "2024-12-16 10:59:36 +0530",
+ "family": null,
+ "created_at": "2024-12-16 05:29:36 UTC",
"context_window": 200000,
"max_output_tokens": 100000,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "image",
- "pdf"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"function_calling",
"structured_output",
+ "vision",
"reasoning"
],
"pricing": {
@@ -13167,7 +28598,7 @@
"name": "o1-mini",
"provider": "openai",
"family": "o-mini",
- "created_at": "2024-09-12 00:00:00 +0530",
+ "created_at": "2024-09-12 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -13188,7 +28619,7 @@
"standard": {
"input_per_million": 1.1,
"output_per_million": 4.4,
- "cached_input_per_million": 0.55
+ "cache_read_input_per_million": 0.55
}
}
},
@@ -13216,7 +28647,7 @@
"name": "o1-preview",
"provider": "openai",
"family": "o",
- "created_at": "2024-09-12 00:00:00 +0530",
+ "created_at": "2024-09-12 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -13236,7 +28667,7 @@
"standard": {
"input_per_million": 15,
"output_per_million": 60,
- "cached_input_per_million": 7.5
+ "cache_read_input_per_million": 7.5
}
}
},
@@ -13264,7 +28695,7 @@
"name": "o1-pro",
"provider": "openai",
"family": "o-pro",
- "created_at": "2025-03-19 00:00:00 +0530",
+ "created_at": "2025-03-19 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 100000,
"knowledge_cutoff": null,
@@ -13281,8 +28712,7 @@
"function_calling",
"structured_output",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
@@ -13314,27 +28744,21 @@
},
{
"id": "o1-pro-2025-03-19",
- "name": "O1-Pro 20250319",
+ "name": "o1-pro-2025-03-19",
"provider": "openai",
- "family": "o1_pro",
- "created_at": "2025-03-18 04:15:04 +0530",
+ "family": null,
+ "created_at": "2025-03-17 22:45:04 UTC",
"context_window": 200000,
"max_output_tokens": 100000,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "image",
- "pdf"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"function_calling",
"structured_output",
+ "vision",
"reasoning"
],
"pricing": {
@@ -13355,7 +28779,7 @@
"name": "o3",
"provider": "openai",
"family": "o",
- "created_at": "2025-04-16 00:00:00 +0530",
+ "created_at": "2025-04-16 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 100000,
"knowledge_cutoff": null,
@@ -13373,15 +28797,14 @@
"function_calling",
"structured_output",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 2,
"output_per_million": 8,
- "cached_input_per_million": 0.5
+ "cache_read_input_per_million": 0.5
}
}
},
@@ -13408,23 +28831,18 @@
},
{
"id": "o3-2025-04-16",
- "name": "O3-20250416",
+ "name": "o3-2025-04-16",
"provider": "openai",
- "family": "other",
- "created_at": "2025-04-08 22:58:21 +0530",
+ "family": null,
+ "created_at": "2025-04-08 17:28:21 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"reasoning"
],
"pricing": {
@@ -13445,7 +28863,7 @@
"name": "o3-deep-research",
"provider": "openai",
"family": "o",
- "created_at": "2024-06-26 00:00:00 +0530",
+ "created_at": "2024-06-26 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 100000,
"knowledge_cutoff": null,
@@ -13461,15 +28879,14 @@
"capabilities": [
"function_calling",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 10,
"output_per_million": 40,
- "cached_input_per_million": 2.5
+ "cache_read_input_per_million": 2.5
}
}
},
@@ -13496,23 +28913,18 @@
},
{
"id": "o3-deep-research-2025-06-26",
- "name": "O3-Deep Research 20250626",
+ "name": "o3-deep-research-2025-06-26",
"provider": "openai",
- "family": "other",
- "created_at": "2025-06-25 20:56:59 +0530",
+ "family": null,
+ "created_at": "2025-06-25 15:26:59 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"reasoning"
],
"pricing": {
@@ -13533,7 +28945,7 @@
"name": "o3-mini",
"provider": "openai",
"family": "o-mini",
- "created_at": "2024-12-20 00:00:00 +0530",
+ "created_at": "2024-12-20 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 100000,
"knowledge_cutoff": null,
@@ -13548,15 +28960,14 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning",
- "streaming"
+ "reasoning"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.1,
"output_per_million": 4.4,
- "cached_input_per_million": 0.55
+ "cache_read_input_per_million": 0.55
}
}
},
@@ -13583,23 +28994,18 @@
},
{
"id": "o3-mini-2025-01-31",
- "name": "O3-Mini 20250131",
+ "name": "o3-mini-2025-01-31",
"provider": "openai",
- "family": "o3_mini",
- "created_at": "2025-01-28 02:06:40 +0530",
+ "family": null,
+ "created_at": "2025-01-27 20:36:40 UTC",
"context_window": 200000,
"max_output_tokens": 100000,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"function_calling",
"structured_output",
"reasoning"
@@ -13622,7 +29028,7 @@
"name": "o3-pro",
"provider": "openai",
"family": "o-pro",
- "created_at": "2025-06-10 00:00:00 +0530",
+ "created_at": "2025-06-10 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 100000,
"knowledge_cutoff": null,
@@ -13639,8 +29045,7 @@
"function_calling",
"structured_output",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
@@ -13672,23 +29077,18 @@
},
{
"id": "o3-pro-2025-06-10",
- "name": "O3-Pro 20250610",
+ "name": "o3-pro-2025-06-10",
"provider": "openai",
- "family": "other",
- "created_at": "2025-06-06 05:09:21 +0530",
+ "family": null,
+ "created_at": "2025-06-05 23:39:21 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"reasoning"
],
"pricing": {
@@ -13709,7 +29109,7 @@
"name": "o4-mini",
"provider": "openai",
"family": "o-mini",
- "created_at": "2025-04-16 00:00:00 +0530",
+ "created_at": "2025-04-16 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 100000,
"knowledge_cutoff": null,
@@ -13726,15 +29126,14 @@
"function_calling",
"structured_output",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.1,
"output_per_million": 4.4,
- "cached_input_per_million": 0.28
+ "cache_read_input_per_million": 0.28
}
}
},
@@ -13761,23 +29160,18 @@
},
{
"id": "o4-mini-2025-04-16",
- "name": "O4 Mini 20250416",
+ "name": "o4-mini-2025-04-16",
"provider": "openai",
- "family": "other",
- "created_at": "2025-04-08 23:01:46 +0530",
+ "family": null,
+ "created_at": "2025-04-08 17:31:46 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"reasoning"
],
"pricing": {
@@ -13798,7 +29192,7 @@
"name": "o4-mini-deep-research",
"provider": "openai",
"family": "o-mini",
- "created_at": "2024-06-26 00:00:00 +0530",
+ "created_at": "2024-06-26 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 100000,
"knowledge_cutoff": null,
@@ -13814,15 +29208,14 @@
"capabilities": [
"function_calling",
"reasoning",
- "vision",
- "streaming"
+ "vision"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 2,
"output_per_million": 8,
- "cached_input_per_million": 0.5
+ "cache_read_input_per_million": 0.5
}
}
},
@@ -13849,23 +29242,18 @@
},
{
"id": "o4-mini-deep-research-2025-06-26",
- "name": "O4 Mini Deep Research 20250626",
+ "name": "o4-mini-deep-research-2025-06-26",
"provider": "openai",
- "family": "other",
- "created_at": "2025-06-25 21:12:01 +0530",
+ "family": null,
+ "created_at": "2025-06-25 15:42:01 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
"capabilities": [
- "streaming",
"reasoning"
],
"pricing": {
@@ -13883,25 +29271,20 @@
},
{
"id": "omni-moderation-2024-09-26",
- "name": "Omni Moderation 20240926",
+ "name": "omni-moderation-2024-09-26",
"provider": "openai",
- "family": "moderation",
- "created_at": "2024-11-28 00:37:46 +0530",
+ "family": null,
+ "created_at": "2024-11-27 19:07:46 UTC",
"context_window": null,
"max_output_tokens": null,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "image",
- "pdf"
- ],
- "output": [
- "text",
- "moderation"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [],
+ "capabilities": [
+ "vision"
+ ],
"pricing": {},
"metadata": {
"object": "model",
@@ -13910,25 +29293,20 @@
},
{
"id": "omni-moderation-latest",
- "name": "Omni Moderation Latest",
+ "name": "omni-moderation-latest",
"provider": "openai",
- "family": "moderation",
- "created_at": "2024-11-15 22:17:45 +0530",
+ "family": null,
+ "created_at": "2024-11-15 16:47:45 UTC",
"context_window": null,
"max_output_tokens": null,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "image",
- "pdf"
- ],
- "output": [
- "text",
- "moderation"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [],
+ "capabilities": [
+ "vision"
+ ],
"pricing": {},
"metadata": {
"object": "model",
@@ -13937,24 +29315,18 @@
},
{
"id": "sora-2",
- "name": "Sora 2",
+ "name": "sora-2",
"provider": "openai",
- "family": "other",
- "created_at": "2025-10-06 05:26:55 +0530",
+ "family": null,
+ "created_at": "2025-10-05 23:56:55 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -13970,24 +29342,18 @@
},
{
"id": "sora-2-pro",
- "name": "Sora 2 Pro",
+ "name": "sora-2-pro",
"provider": "openai",
- "family": "other",
- "created_at": "2025-10-06 05:27:43 +0530",
+ "family": null,
+ "created_at": "2025-10-05 23:57:43 UTC",
"context_window": 4096,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -14006,7 +29372,7 @@
"name": "text-embedding-3-large",
"provider": "openai",
"family": "text-embedding",
- "created_at": "2024-01-25 00:00:00 +0530",
+ "created_at": "2024-01-25 00:00:00 UTC",
"context_window": 8191,
"max_output_tokens": 3072,
"knowledge_cutoff": null,
@@ -14015,12 +29381,10 @@
"text"
],
"output": [
- "text"
+ "embeddings"
]
},
- "capabilities": [
- "batch"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -14053,7 +29417,7 @@
"name": "text-embedding-3-small",
"provider": "openai",
"family": "text-embedding",
- "created_at": "2024-01-25 00:00:00 +0530",
+ "created_at": "2024-01-25 00:00:00 UTC",
"context_window": 8191,
"max_output_tokens": 1536,
"knowledge_cutoff": null,
@@ -14062,12 +29426,10 @@
"text"
],
"output": [
- "text"
+ "embeddings"
]
},
- "capabilities": [
- "batch"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -14100,7 +29462,7 @@
"name": "text-embedding-ada-002",
"provider": "openai",
"family": "text-embedding",
- "created_at": "2022-12-15 00:00:00 +0530",
+ "created_at": "2022-12-15 00:00:00 UTC",
"context_window": 8192,
"max_output_tokens": 1536,
"knowledge_cutoff": null,
@@ -14109,12 +29471,10 @@
"text"
],
"output": [
- "text"
+ "embeddings"
]
},
- "capabilities": [
- "batch"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -14144,26 +29504,18 @@
},
{
"id": "tts-1",
- "name": "TTS-1",
+ "name": "tts-1",
"provider": "openai",
- "family": "tts1",
- "created_at": "2023-04-20 03:19:11 +0530",
+ "family": null,
+ "created_at": "2023-04-19 21:49:11 UTC",
"context_window": null,
"max_output_tokens": null,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text",
- "audio"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -14179,26 +29531,18 @@
},
{
"id": "tts-1-1106",
- "name": "TTS-1 1106",
+ "name": "tts-1-1106",
"provider": "openai",
- "family": "tts1",
- "created_at": "2023-11-04 04:44:01 +0530",
+ "family": null,
+ "created_at": "2023-11-03 23:14:01 UTC",
"context_window": null,
"max_output_tokens": null,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text",
- "audio"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -14214,26 +29558,18 @@
},
{
"id": "tts-1-hd",
- "name": "TTS-1 HD",
+ "name": "tts-1-hd",
"provider": "openai",
- "family": "tts1_hd",
- "created_at": "2023-11-04 02:43:35 +0530",
+ "family": null,
+ "created_at": "2023-11-03 21:13:35 UTC",
"context_window": null,
"max_output_tokens": null,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text",
- "audio"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -14249,26 +29585,18 @@
},
{
"id": "tts-1-hd-1106",
- "name": "TTS-1 HD 1106",
+ "name": "tts-1-hd-1106",
"provider": "openai",
- "family": "tts1_hd",
- "created_at": "2023-11-04 04:48:53 +0530",
+ "family": null,
+ "created_at": "2023-11-03 23:18:53 UTC",
"context_window": null,
"max_output_tokens": null,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text",
- "audio"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -14284,25 +29612,18 @@
},
{
"id": "whisper-1",
- "name": "Whisper 1",
+ "name": "whisper-1",
"provider": "openai",
- "family": "whisper",
- "created_at": "2023-02-28 02:43:04 +0530",
+ "family": null,
+ "created_at": "2023-02-27 21:13:04 UTC",
"context_window": null,
"max_output_tokens": null,
"knowledge_cutoff": null,
"modalities": {
- "input": [
- "text",
- "audio"
- ],
- "output": [
- "text"
- ]
+ "input": [],
+ "output": []
},
- "capabilities": [
- "streaming"
- ],
+ "capabilities": [],
"pricing": {
"text_tokens": {
"standard": {
@@ -14316,12 +29637,1068 @@
"owned_by": "openai-internal"
}
},
+ {
+ "id": "ai21/jamba-large-1.7",
+ "name": "AI21: Jamba Large 1.7",
+ "provider": "openrouter",
+ "family": "ai21",
+ "created_at": "2025-08-08 16:03:40 UTC",
+ "context_window": 256000,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.0,
+ "output_per_million": 8.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "Jamba Large 1.7 is the latest model in the Jamba open family, offering improvements in grounding, instruction-following, and overall efficiency. Built on a hybrid SSM-Transformer architecture with a 256K context...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 256000,
+ "max_completion_tokens": 4096,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "response_format",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "aion-labs/aion-1.0",
+ "name": "AionLabs: Aion-1.0",
+ "provider": "openrouter",
+ "family": "aion-labs",
+ "created_at": "2025-02-04 19:32:37 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 4.0,
+ "output_per_million": 8.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "Aion-1.0 is a multi-model system designed for high performance across various tasks, including reasoning and coding. It is built on DeepSeek-R1, augmented with additional models and techniques such as Tree...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "temperature",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "aion-labs/aion-1.0-mini",
+ "name": "AionLabs: Aion-1.0-Mini",
+ "provider": "openrouter",
+ "family": "aion-labs",
+ "created_at": "2025-02-04 19:25:07 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.7,
+ "output_per_million": 1.4
+ }
+ }
+ },
+ "metadata": {
+ "description": "Aion-1.0-Mini 32B parameter model is a distilled version of the DeepSeek-R1 model, designed for strong performance in reasoning domains such as mathematics, coding, and logic. It is a modified variant...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "temperature",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "aion-labs/aion-2.0",
+ "name": "AionLabs: Aion-2.0",
+ "provider": "openrouter",
+ "family": "aion-labs",
+ "created_at": "2026-02-23 21:15:06 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.7999999999999999,
+ "output_per_million": 1.5999999999999999,
+ "cache_read_input_per_million": 0.19999999999999998
+ }
+ }
+ },
+ "metadata": {
+ "description": "Aion-2.0 is a variant of DeepSeek V3.2 optimized for immersive roleplaying and storytelling. It is particularly strong at introducing tension, crises, and conflict into stories, making narratives feel more engaging....",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "temperature",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "aion-labs/aion-rp-llama-3.1-8b",
+ "name": "AionLabs: Aion-RP 1.0 (8B)",
+ "provider": "openrouter",
+ "family": "aion-labs",
+ "created_at": "2025-02-04 19:18:38 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.7999999999999999,
+ "output_per_million": 1.5999999999999999
+ }
+ }
+ },
+ "metadata": {
+ "description": "Aion-RP-Llama-3.1-8B ranks the highest in the character evaluation portion of the RPBench-Auto benchmark, a roleplaying-specific variant of Arena-Hard-Auto, where LLMs evaluate each other’s responses. It is a fine-tuned base model...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 32768,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "temperature",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "alfredpros/codellama-7b-instruct-solidity",
+ "name": "AlfredPros: CodeLLaMa 7B Instruct Solidity",
+ "provider": "openrouter",
+ "family": "alfredpros",
+ "created_at": "2025-04-14 14:44:34 UTC",
+ "context_window": 4096,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.7999999999999999,
+ "output_per_million": 1.2
+ }
+ }
+ },
+ "metadata": {
+ "description": "A finetuned 7 billion parameters Code LLaMA - Instruct model to generate Solidity smart contract using 4-bit QLoRA finetuning provided by PEFT library.",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": "alpaca"
+ },
+ "top_provider": {
+ "context_length": 4096,
+ "max_completion_tokens": 4096,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "seed",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "alibaba/tongyi-deepresearch-30b-a3b",
+ "name": "Tongyi DeepResearch 30B A3B",
+ "provider": "openrouter",
+ "family": "alibaba",
+ "created_at": "2025-09-18 15:53:24 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 131072,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.09,
+ "output_per_million": 0.44999999999999996,
+ "cache_read_input_per_million": 0.09
+ }
+ }
+ },
+ "metadata": {
+ "description": "Tongyi DeepResearch is an agentic large language model developed by Tongyi Lab, with 30 billion total parameters activating only 3 billion per token. It's optimized for long-horizon, deep information-seeking tasks...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 131072,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "allenai/olmo-3-32b-think",
+ "name": "AllenAI: Olmo 3 32B Think",
+ "provider": "openrouter",
+ "family": "allenai",
+ "created_at": "2025-11-21 20:51:16 UTC",
+ "context_window": 65536,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.15,
+ "output_per_million": 0.5
+ }
+ }
+ },
+ "metadata": {
+ "description": "Olmo 3 32B Think is a large-scale, 32-billion-parameter model purpose-built for deep reasoning, complex logic chains and advanced instruction-following scenarios. Its capacity enables strong performance on demanding evaluation tasks and...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 65536,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "allenai/olmo-3.1-32b-instruct",
+ "name": "AllenAI: Olmo 3.1 32B Instruct",
+ "provider": "openrouter",
+ "family": "allenai",
+ "created_at": "2026-01-06 19:42:34 UTC",
+ "context_window": 65536,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.19999999999999998,
+ "output_per_million": 0.6
+ }
+ }
+ },
+ "metadata": {
+ "description": "Olmo 3.1 32B Instruct is a large-scale, 32-billion-parameter instruction-tuned language model engineered for high-performance conversational AI, multi-turn dialogue, and practical instruction following. As part of the Olmo 3.1 family, this...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 65536,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "alpindale/goliath-120b",
+ "name": "Goliath 120B",
+ "provider": "openrouter",
+ "family": "alpindale",
+ "created_at": "2023-11-10 00:00:00 UTC",
+ "context_window": 6144,
+ "max_output_tokens": 1024,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 3.75,
+ "output_per_million": 7.5
+ }
+ }
+ },
+ "metadata": {
+ "description": "A large LLM created by combining two fine-tuned Llama 70B models into one 120B model. Combines Xwin and Euryale. Credits to - [@chargoddard](https://huggingface.co/chargoddard) for developing the framework used to merge...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama2",
+ "instruct_type": "airoboros"
+ },
+ "top_provider": {
+ "context_length": 6144,
+ "max_completion_tokens": 1024,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "temperature",
+ "top_a",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "amazon/nova-2-lite-v1",
+ "name": "Amazon: Nova 2 Lite",
+ "provider": "openrouter",
+ "family": "amazon",
+ "created_at": "2025-12-02 17:31:12 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 65535,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "video",
+ "file"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.3,
+ "output_per_million": 2.5
+ }
+ }
+ },
+ "metadata": {
+ "description": "Nova 2 Lite is a fast, cost-effective reasoning model for everyday workloads that can process text, images, and videos to generate text. Nova 2 Lite demonstrates standout capabilities in processing...",
+ "architecture": {
+ "modality": "text+image+file+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "video",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Nova",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1000000,
+ "max_completion_tokens": 65535,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "amazon/nova-lite-v1",
+ "name": "Amazon: Nova Lite 1.0",
+ "provider": "openrouter",
+ "family": "amazon",
+ "created_at": "2024-12-05 22:22:43 UTC",
+ "context_window": 300000,
+ "max_output_tokens": 5120,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.06,
+ "output_per_million": 0.24
+ }
+ }
+ },
+ "metadata": {
+ "description": "Amazon Nova Lite 1.0 is a very low-cost multimodal model from Amazon that focused on fast processing of image, video, and text inputs to generate text output. Amazon Nova Lite...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Nova",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 300000,
+ "max_completion_tokens": 5120,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "stop",
+ "temperature",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "amazon/nova-micro-v1",
+ "name": "Amazon: Nova Micro 1.0",
+ "provider": "openrouter",
+ "family": "amazon",
+ "created_at": "2024-12-05 22:20:37 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 5120,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.035,
+ "output_per_million": 0.14
+ }
+ }
+ },
+ "metadata": {
+ "description": "Amazon Nova Micro 1.0 is a text-only model that delivers the lowest latency responses in the Amazon Nova family of models at a very low cost. With a context length...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Nova",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 5120,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "stop",
+ "temperature",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "amazon/nova-premier-v1",
+ "name": "Amazon: Nova Premier 1.0",
+ "provider": "openrouter",
+ "family": "amazon",
+ "created_at": "2025-10-31 22:38:52 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 32000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 12.5,
+ "cache_read_input_per_million": 0.625
+ }
+ }
+ },
+ "metadata": {
+ "description": "Amazon Nova Premier is the most capable of Amazon’s multimodal models for complex reasoning tasks and for use as the best teacher for distilling custom models.",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Nova",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1000000,
+ "max_completion_tokens": 32000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "stop",
+ "temperature",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "amazon/nova-pro-v1",
+ "name": "Amazon: Nova Pro 1.0",
+ "provider": "openrouter",
+ "family": "amazon",
+ "created_at": "2024-12-05 22:05:03 UTC",
+ "context_window": 300000,
+ "max_output_tokens": 5120,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.7999999999999999,
+ "output_per_million": 3.1999999999999997
+ }
+ }
+ },
+ "metadata": {
+ "description": "Amazon Nova Pro 1.0 is a capable multimodal model from Amazon focused on providing a combination of accuracy, speed, and cost for a wide range of tasks. As of December...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Nova",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 300000,
+ "max_completion_tokens": 5120,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "stop",
+ "temperature",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "anthracite-org/magnum-v4-72b",
+ "name": "Magnum v4 72B",
+ "provider": "openrouter",
+ "family": "anthracite-org",
+ "created_at": "2024-10-22 00:00:00 UTC",
+ "context_window": 16384,
+ "max_output_tokens": 2048,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 3.0,
+ "output_per_million": 5.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "This is a series of models designed to replicate the prose quality of the Claude 3 models, specifically Sonnet(https://openrouter.ai/anthropic/claude-3.5-sonnet) and Opus(https://openrouter.ai/anthropic/claude-3-opus).\n\nThe model is fine-tuned on top of [Qwen2.5 72B](https://openrouter.ai/qwen/qwen-2.5-72b-instruct).",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen",
+ "instruct_type": "chatml"
+ },
+ "top_provider": {
+ "context_length": 16384,
+ "max_completion_tokens": 2048,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "temperature",
+ "top_a",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "anthropic/claude-3-haiku",
+ "name": "Anthropic: Claude 3 Haiku",
+ "provider": "openrouter",
+ "family": "anthropic",
+ "created_at": "2024-03-13 00:00:00 UTC",
+ "context_window": 200000,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.25,
+ "output_per_million": 1.25,
+ "cache_read_input_per_million": 0.03
+ }
+ }
+ },
+ "metadata": {
+ "description": "Claude 3 Haiku is Anthropic's fastest and most compact model for\nnear-instant responsiveness. Quick and accurate targeted performance.\n\nSee the launch announcement and benchmark results [here](https://www.anthropic.com/news/claude-3-haiku)\n\n#multimodal",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Claude",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 200000,
+ "max_completion_tokens": 4096,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2024-10-22 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 8192,
"knowledge_cutoff": "2024-07-31",
@@ -14337,18 +30714,48 @@
},
"capabilities": [
"function_calling",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.8,
"output_per_million": 4,
- "cached_input_per_million": 0.08
+ "cache_read_input_per_million": 0.08,
+ "cache_write_input_per_million": 1
}
}
},
"metadata": {
+ "description": "Claude 3.5 Haiku features offers enhanced capabilities in speed, coding accuracy, and tool use. Engineered to excel in real-time applications, it delivers quick response times that are essential for dynamic...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Claude",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 200000,
+ "max_completion_tokens": 8192,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -14373,7 +30780,7 @@
"name": "Claude Sonnet 3.7",
"provider": "openrouter",
"family": "claude-sonnet",
- "created_at": "2025-02-19 00:00:00 +0530",
+ "created_at": "2025-02-19 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 128000,
"knowledge_cutoff": null,
@@ -14390,18 +30797,50 @@
"capabilities": [
"function_calling",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 15,
"output_per_million": 75,
- "cached_input_per_million": 1.5
+ "cache_read_input_per_million": 1.5,
+ "cache_write_input_per_million": 18.75
}
}
},
"metadata": {
+ "description": "Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities. It introduces a hybrid reasoning approach, allowing users to choose between rapid responses and...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Claude",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 200000,
+ "max_completion_tokens": 64000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -14421,12 +30860,77 @@
"knowledge": "2024-01"
}
},
+ {
+ "id": "anthropic/claude-3.7-sonnet:thinking",
+ "name": "Anthropic: Claude 3.7 Sonnet (thinking)",
+ "provider": "openrouter",
+ "family": "anthropic",
+ "created_at": "2025-02-24 18:35:10 UTC",
+ "context_window": 200000,
+ "max_output_tokens": 64000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 3.0,
+ "output_per_million": 15.0,
+ "cache_read_input_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "description": "Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities. It introduces a hybrid reasoning approach, allowing users to choose between rapid responses and...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Claude",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 200000,
+ "max_completion_tokens": 64000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2025-10-15 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2025-02-28",
@@ -14444,18 +30948,52 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1,
"output_per_million": 5,
- "cached_input_per_million": 0.1
+ "cache_read_input_per_million": 0.1,
+ "cache_write_input_per_million": 1.25
}
}
},
"metadata": {
+ "description": "Claude Haiku 4.5 is Anthropic’s fastest and most efficient model, delivering near-frontier intelligence at a fraction of the cost and latency of larger Claude models. Matching Claude Sonnet 4’s performance...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Claude",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 200000,
+ "max_completion_tokens": 64000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -14480,7 +31018,7 @@
"name": "Claude Opus 4",
"provider": "openrouter",
"family": "claude-opus",
- "created_at": "2025-05-22 00:00:00 +0530",
+ "created_at": "2025-05-22 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 32000,
"knowledge_cutoff": "2025-03-31",
@@ -14497,18 +31035,51 @@
"capabilities": [
"function_calling",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 15,
"output_per_million": 75,
- "cached_input_per_million": 1.5
+ "cache_read_input_per_million": 1.5,
+ "cache_write_input_per_million": 18.75
}
}
},
"metadata": {
+ "description": "Claude Opus 4 is benchmarked as the world’s best coding model, at time of release, bringing sustained performance on complex, long-running tasks and agent workflows. It sets new benchmarks in...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Claude",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 200000,
+ "max_completion_tokens": 32000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -14533,7 +31104,7 @@
"name": "Claude Opus 4.1",
"provider": "openrouter",
"family": "claude-opus",
- "created_at": "2025-08-05 00:00:00 +0530",
+ "created_at": "2025-08-05 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 32000,
"knowledge_cutoff": "2025-03-31",
@@ -14551,18 +31122,53 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 15,
"output_per_million": 75,
- "cached_input_per_million": 1.5
+ "cache_read_input_per_million": 1.5,
+ "cache_write_input_per_million": 18.75
}
}
},
"metadata": {
+ "description": "Claude Opus 4.1 is an updated version of Anthropic’s flagship model, offering improved performance in coding, reasoning, and agentic tasks. It achieves 74.5% on SWE-bench Verified and shows notable gains...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Claude",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 200000,
+ "max_completion_tokens": 32000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -14587,7 +31193,7 @@
"name": "Claude Opus 4.5",
"provider": "openrouter",
"family": "claude-opus",
- "created_at": "2025-11-24 00:00:00 +0530",
+ "created_at": "2025-11-24 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 32000,
"knowledge_cutoff": "2025-05-30",
@@ -14605,18 +31211,53 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 5,
"output_per_million": 25,
- "cached_input_per_million": 0.5
+ "cache_read_input_per_million": 0.5,
+ "cache_write_input_per_million": 6.25
}
}
},
"metadata": {
+ "description": "Claude Opus 4.5 is Anthropic’s frontier reasoning model optimized for complex software engineering, agentic workflows, and long-horizon computer use. It offers strong multimodal capabilities, competitive performance across real-world coding and...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "file",
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Claude",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 200000,
+ "max_completion_tokens": 64000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "verbosity"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -14641,10 +31282,10 @@
"name": "Claude Opus 4.6",
"provider": "openrouter",
"family": "claude-opus",
- "created_at": "2026-02-05 00:00:00 +0530",
+ "created_at": "2026-02-05 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 128000,
- "knowledge_cutoff": "2025-05-30",
+ "knowledge_cutoff": "2025-05-31",
"modalities": {
"input": [
"text",
@@ -14659,18 +31300,54 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 5,
"output_per_million": 25,
- "cached_input_per_million": 0.5
+ "cache_read_input_per_million": 0.5,
+ "cache_write_input_per_million": 6.25
}
}
},
"metadata": {
+ "description": "Opus 4.6 is Anthropic’s strongest model for coding and long-running professional tasks. It is built for agents that operate across entire workflows rather than single prompts, making it especially effective...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Claude",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1000000,
+ "max_completion_tokens": 128000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_completion_tokens",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p",
+ "verbosity"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -14693,7 +31370,166 @@
"context": 1000000,
"output": 128000
},
- "knowledge": "2025-05-30"
+ "knowledge": "2025-05-31"
+ }
+ },
+ {
+ "id": "anthropic/claude-opus-4.6-fast",
+ "name": "Anthropic: Claude Opus 4.6 (Fast)",
+ "provider": "openrouter",
+ "family": "anthropic",
+ "created_at": "2026-04-07 20:07:52 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 128000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 30.0,
+ "output_per_million": 150.0,
+ "cache_read_input_per_million": 3.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "Fast-mode variant of [Opus 4.6](/anthropic/claude-opus-4.6) - identical capabilities with higher output speed at premium 6x pricing.\n\nLearn more in Anthropic's docs: https://platform.claude.com/docs/en/build-with-claude/fast-mode",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Claude",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1000000,
+ "max_completion_tokens": 128000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p",
+ "verbosity"
+ ]
+ }
+ },
+ {
+ "id": "anthropic/claude-opus-4.7",
+ "name": "Claude Opus 4.7",
+ "provider": "openrouter",
+ "family": "claude-opus",
+ "created_at": "2026-04-16 00:00:00 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 128000,
+ "knowledge_cutoff": "2026-01-31",
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "pdf"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "reasoning",
+ "vision",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 5,
+ "output_per_million": 25,
+ "cache_read_input_per_million": 0.5,
+ "cache_write_input_per_million": 6.25
+ }
+ }
+ },
+ "metadata": {
+ "description": "Opus 4.7 is the next generation of Anthropic's Opus family, built for long-running, asynchronous agents. Building on the coding and agentic strengths of Opus 4.6, it delivers stronger performance on...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Claude",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1000000,
+ "max_completion_tokens": 128000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "stop",
+ "structured_outputs",
+ "tool_choice",
+ "tools",
+ "verbosity"
+ ],
+ "source": "models.dev",
+ "provider_id": "openrouter",
+ "open_weights": false,
+ "attachment": true,
+ "temperature": false,
+ "last_updated": "2026-04-16",
+ "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": "2026-01-31"
}
},
{
@@ -14701,7 +31537,7 @@
"name": "Claude Sonnet 4",
"provider": "openrouter",
"family": "claude-sonnet",
- "created_at": "2025-05-22 00:00:00 +0530",
+ "created_at": "2025-05-22 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2025-03-31",
@@ -14718,18 +31554,51 @@
"capabilities": [
"function_calling",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
"metadata": {
+ "description": "Claude Sonnet 4 significantly enhances the capabilities of its predecessor, Sonnet 3.7, excelling in both coding and reasoning tasks with improved precision and controllability. Achieving state-of-the-art performance on SWE-bench (72.7%),...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Claude",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1000000,
+ "max_completion_tokens": 64000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -14760,7 +31629,7 @@
"name": "Claude Sonnet 4.5",
"provider": "openrouter",
"family": "claude-sonnet",
- "created_at": "2025-09-29 00:00:00 +0530",
+ "created_at": "2025-09-29 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 64000,
"knowledge_cutoff": "2025-07-31",
@@ -14778,18 +31647,53 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
"metadata": {
+ "description": "Claude Sonnet 4.5 is Anthropic’s most advanced Sonnet model to date, optimized for real-world agents and coding workflows. It delivers state-of-the-art performance on coding benchmarks such as SWE-bench Verified, with...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Claude",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1000000,
+ "max_completion_tokens": 64000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -14820,10 +31724,10 @@
"name": "Claude Sonnet 4.6",
"provider": "openrouter",
"family": "claude-sonnet",
- "created_at": "2026-02-17 00:00:00 +0530",
+ "created_at": "2026-02-17 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 128000,
- "knowledge_cutoff": null,
+ "knowledge_cutoff": "2025-08-31",
"modalities": {
"input": [
"text",
@@ -14837,18 +31741,54 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.3
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
"metadata": {
+ "description": "Sonnet 4.6 is Anthropic's most capable Sonnet-class model yet, with frontier performance across coding, agents, and professional work. It excels at iterative development, complex codebase navigation, end-to-end project management with...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Claude",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1000000,
+ "max_completion_tokens": 128000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_completion_tokens",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p",
+ "verbosity"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -14870,7 +31810,256 @@
"limit": {
"context": 1000000,
"output": 128000
+ },
+ "knowledge": "2025-08-31"
+ }
+ },
+ {
+ "id": "arcee-ai/coder-large",
+ "name": "Arcee AI: Coder Large",
+ "provider": "openrouter",
+ "family": "arcee-ai",
+ "created_at": "2025-05-05 20:57:43 UTC",
+ "context_window": 32768,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 0.7999999999999999
+ }
}
+ },
+ "metadata": {
+ "description": "Coder‑Large is a 32 B‑parameter offspring of Qwen 2.5‑Instruct that has been further trained on permissively‑licensed GitHub, CodeSearchNet and synthetic bug‑fix corpora. It supports a 32k context window, enabling multi‑file...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 32768,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "arcee-ai/maestro-reasoning",
+ "name": "Arcee AI: Maestro Reasoning",
+ "provider": "openrouter",
+ "family": "arcee-ai",
+ "created_at": "2025-05-05 21:41:09 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 32000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.8999999999999999,
+ "output_per_million": 3.3000000000000003
+ }
+ }
+ },
+ "metadata": {
+ "description": "Maestro Reasoning is Arcee's flagship analysis model: a 32 B‑parameter derivative of Qwen 2.5‑32 B tuned with DPO and chain‑of‑thought RL for step‑by‑step logic. Compared to the earlier 7 B...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 32000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "arcee-ai/spotlight",
+ "name": "Arcee AI: Spotlight",
+ "provider": "openrouter",
+ "family": "arcee-ai",
+ "created_at": "2025-05-05 21:45:52 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 65537,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "image",
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.18,
+ "output_per_million": 0.18
+ }
+ }
+ },
+ "metadata": {
+ "description": "Spotlight is a 7‑billion‑parameter vision‑language model derived from Qwen 2.5‑VL and fine‑tuned by Arcee AI for tight image‑text grounding tasks. It offers a 32 k‑token context window, enabling rich multimodal...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 65537,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "arcee-ai/trinity-large-preview",
+ "name": "Arcee AI: Trinity Large Preview",
+ "provider": "openrouter",
+ "family": "arcee-ai",
+ "created_at": "2026-01-27 22:24:30 UTC",
+ "context_window": 131000,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.15,
+ "output_per_million": 0.44999999999999996
+ }
+ }
+ },
+ "metadata": {
+ "description": "Trinity-Large-Preview is a frontier-scale open-weight language model from Arcee, built as a 400B-parameter sparse Mixture-of-Experts with 13B active parameters per token using 4-of-256 expert routing. It excels in creative writing,...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131000,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "response_format",
+ "structured_outputs",
+ "temperature",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
}
},
{
@@ -14878,7 +32067,7 @@
"name": "Trinity Large Preview",
"provider": "openrouter",
"family": "trinity",
- "created_at": "2026-01-28 00:00:00 +0530",
+ "created_at": "2026-01-28 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -14918,7 +32107,7 @@
"name": "Trinity Large Thinking",
"provider": "openrouter",
"family": "trinity",
- "created_at": "2026-04-01 00:00:00 +0530",
+ "created_at": "2026-04-01 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 80000,
"knowledge_cutoff": null,
@@ -14932,7 +32121,10 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "structured_output",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -14943,6 +32135,42 @@
}
},
"metadata": {
+ "description": "Trinity Large Thinking is a powerful open source reasoning model from the team at Arcee AI. It shows strong performance in PinchBench, agentic workloads, and reasoning tasks. Launch video: https://youtu.be/Gc82AXLa0Rg?si=4RLn6WBz33qT--B7",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 262144,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -14959,12 +32187,563 @@
}
}
},
+ {
+ "id": "arcee-ai/trinity-mini",
+ "name": "Arcee AI: Trinity Mini",
+ "provider": "openrouter",
+ "family": "arcee-ai",
+ "created_at": "2025-12-01 15:08:40 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 131072,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.045,
+ "output_per_million": 0.15
+ }
+ }
+ },
+ "metadata": {
+ "description": "Trinity Mini is a 26B-parameter (3B active) sparse mixture-of-experts language model featuring 128 experts with 8 active per token. Engineered for efficient reasoning over long contexts (131k) with robust function...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 131072,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_completion_tokens",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "arcee-ai/virtuoso-large",
+ "name": "Arcee AI: Virtuoso Large",
+ "provider": "openrouter",
+ "family": "arcee-ai",
+ "created_at": "2025-05-05 21:01:25 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 64000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.75,
+ "output_per_million": 1.2
+ }
+ }
+ },
+ "metadata": {
+ "description": "Virtuoso‑Large is Arcee's top‑tier general‑purpose LLM at 72 B parameters, tuned to tackle cross‑domain reasoning, creative writing and enterprise QA. Unlike many 70 B peers, it retains the 128 k...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 64000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "baidu/cobuddy:free",
+ "name": "Baidu Qianfan: CoBuddy (free)",
+ "provider": "openrouter",
+ "family": "baidu",
+ "created_at": "2026-05-06 02:44:40 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "description": "CoBuddy is a code generation model from Baidu, optimized for coding tasks and AI Agent workflows. It features high inference throughput and low end-to-end latency, with native support for tool...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "stop",
+ "tools"
+ ]
+ }
+ },
+ {
+ "id": "baidu/ernie-4.5-21b-a3b",
+ "name": "Baidu: ERNIE 4.5 21B A3B",
+ "provider": "openrouter",
+ "family": "baidu",
+ "created_at": "2025-08-12 21:29:27 UTC",
+ "context_window": 120000,
+ "max_output_tokens": 8000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.07,
+ "output_per_million": 0.28
+ }
+ }
+ },
+ "metadata": {
+ "description": "A sophisticated text-based Mixture-of-Experts (MoE) model featuring 21B total parameters with 3B activated per token, delivering exceptional multimodal understanding and generation through heterogeneous MoE structures and modality-isolated routing. Supporting an...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 120000,
+ "max_completion_tokens": 8000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "baidu/ernie-4.5-21b-a3b-thinking",
+ "name": "Baidu: ERNIE 4.5 21B A3B Thinking",
+ "provider": "openrouter",
+ "family": "baidu",
+ "created_at": "2025-10-09 22:28:07 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.07,
+ "output_per_million": 0.28
+ }
+ }
+ },
+ "metadata": {
+ "description": "ERNIE-4.5-21B-A3B-Thinking is Baidu's upgraded lightweight MoE model, refined to boost reasoning depth and quality for top-tier performance in logical puzzles, math, science, coding, text generation, and expert-level academic benchmarks.",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "seed",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "baidu/ernie-4.5-300b-a47b",
+ "name": "Baidu: ERNIE 4.5 300B A47B ",
+ "provider": "openrouter",
+ "family": "baidu",
+ "created_at": "2025-06-30 16:15:39 UTC",
+ "context_window": 123000,
+ "max_output_tokens": 12000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.28,
+ "output_per_million": 1.1
+ }
+ }
+ },
+ "metadata": {
+ "description": "ERNIE-4.5-300B-A47B is a 300B parameter Mixture-of-Experts (MoE) language model developed by Baidu as part of the ERNIE 4.5 series. It activates 47B parameters per token and supports text generation in...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 123000,
+ "max_completion_tokens": 12000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "seed",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "baidu/ernie-4.5-vl-28b-a3b",
+ "name": "Baidu: ERNIE 4.5 VL 28B A3B",
+ "provider": "openrouter",
+ "family": "baidu",
+ "created_at": "2025-08-12 21:07:16 UTC",
+ "context_window": 30000,
+ "max_output_tokens": 8000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.14,
+ "output_per_million": 0.56
+ }
+ }
+ },
+ "metadata": {
+ "description": "A powerful multimodal Mixture-of-Experts chat model featuring 28B total parameters with 3B activated per token, delivering exceptional text and vision understanding through its innovative heterogeneous MoE structure with modality-isolated routing....",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 30000,
+ "max_completion_tokens": 8000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "baidu/ernie-4.5-vl-424b-a47b",
+ "name": "Baidu: ERNIE 4.5 VL 424B A47B ",
+ "provider": "openrouter",
+ "family": "baidu",
+ "created_at": "2025-06-30 16:28:23 UTC",
+ "context_window": 123000,
+ "max_output_tokens": 16000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "image",
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.42,
+ "output_per_million": 1.25
+ }
+ }
+ },
+ "metadata": {
+ "description": "ERNIE-4.5-VL-424B-A47B is a multimodal Mixture-of-Experts (MoE) model from Baidu’s ERNIE 4.5 series, featuring 424B total parameters with 47B active per token. It is trained jointly on text and image data...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 123000,
+ "max_completion_tokens": 16000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "seed",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "baidu/qianfan-ocr-fast:free",
+ "name": "Baidu: Qianfan-OCR-Fast (free)",
+ "provider": "openrouter",
+ "family": "baidu",
+ "created_at": "2026-04-20 17:51:12 UTC",
+ "context_window": 65536,
+ "max_output_tokens": 28672,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "image",
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {},
+ "metadata": {
+ "description": "Qianfan-OCR-Fast is a domain-specific multimodal large model purpose-built for OCR. By leveraging specialized OCR training data while preserving versatile multimodal intelligence, it provides a powerful performance upgrade over Qianfan-OCR.",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 65536,
+ "max_completion_tokens": 28672,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "seed",
+ "stop",
+ "temperature",
+ "top_p"
+ ]
+ }
+ },
{
"id": "black-forest-labs/flux.2-flex",
"name": "FLUX.2 Flex",
"provider": "openrouter",
"family": "flux",
- "created_at": "2025-11-25 00:00:00 +0530",
+ "created_at": "2025-11-25 00:00:00 UTC",
"context_window": 67344,
"max_output_tokens": 67344,
"knowledge_cutoff": null,
@@ -15004,7 +32783,7 @@
"name": "FLUX.2 Klein 4B",
"provider": "openrouter",
"family": "flux",
- "created_at": "2026-01-14 00:00:00 +0530",
+ "created_at": "2026-01-14 00:00:00 UTC",
"context_window": 40960,
"max_output_tokens": 40960,
"knowledge_cutoff": null,
@@ -15044,7 +32823,7 @@
"name": "FLUX.2 Max",
"provider": "openrouter",
"family": "flux",
- "created_at": "2025-12-16 00:00:00 +0530",
+ "created_at": "2025-12-16 00:00:00 UTC",
"context_window": 46864,
"max_output_tokens": 46864,
"knowledge_cutoff": null,
@@ -15084,7 +32863,7 @@
"name": "FLUX.2 Pro",
"provider": "openrouter",
"family": "flux",
- "created_at": "2025-11-25 00:00:00 +0530",
+ "created_at": "2025-11-25 00:00:00 UTC",
"context_window": 46864,
"max_output_tokens": 46864,
"knowledge_cutoff": null,
@@ -15119,12 +32898,284 @@
"knowledge": "2025-06"
}
},
+ {
+ "id": "bytedance-seed/seed-1.6",
+ "name": "ByteDance Seed: Seed 1.6",
+ "provider": "openrouter",
+ "family": "bytedance-seed",
+ "created_at": "2025-12-23 15:49:57 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "image",
+ "text",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.25,
+ "output_per_million": 2.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "Seed 1.6 is a general-purpose model released by the ByteDance Seed team. It incorporates multimodal capabilities and adaptive deep thinking with a 256K context window.",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "bytedance-seed/seed-1.6-flash",
+ "name": "ByteDance Seed: Seed 1.6 Flash",
+ "provider": "openrouter",
+ "family": "bytedance-seed",
+ "created_at": "2025-12-23 15:50:11 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "image",
+ "text",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "description": "Seed 1.6 Flash is an ultra-fast multimodal deep thinking model by ByteDance Seed, supporting both text and visual understanding. It features a 256k context window and can generate outputs of...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "bytedance-seed/seed-2.0-lite",
+ "name": "ByteDance Seed: Seed-2.0-Lite",
+ "provider": "openrouter",
+ "family": "bytedance-seed",
+ "created_at": "2026-03-10 15:40:31 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 131072,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.25,
+ "output_per_million": 2.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "Seed-2.0-Lite is a versatile, cost‑efficient enterprise workhorse that delivers strong multimodal and agent capabilities while offering noticeably lower latency, making it a practical default choice for most production workloads across...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 131072,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "bytedance-seed/seed-2.0-mini",
+ "name": "ByteDance Seed: Seed-2.0-Mini",
+ "provider": "openrouter",
+ "family": "bytedance-seed",
+ "created_at": "2026-02-26 18:38:27 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 131072,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.09999999999999999,
+ "output_per_million": 0.39999999999999997
+ }
+ }
+ },
+ "metadata": {
+ "description": "Seed-2.0-mini targets latency-sensitive, high-concurrency, and cost-sensitive scenarios, emphasizing fast response and flexible inference deployment. It delivers performance comparable to ByteDance-Seed-1.6, supports 256k context, four reasoning effort modes (minimal/low/medium/high), multimodal understanding,...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 131072,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
{
"id": "bytedance-seed/seedream-4.5",
"name": "Seedream 4.5",
"provider": "openrouter",
"family": "seed",
- "created_at": "2025-12-23 00:00:00 +0530",
+ "created_at": "2025-12-23 00:00:00 UTC",
"context_window": 4096,
"max_output_tokens": 4096,
"knowledge_cutoff": null,
@@ -15159,12 +33210,77 @@
"knowledge": "2025-06"
}
},
+ {
+ "id": "bytedance/ui-tars-1.5-7b",
+ "name": "ByteDance: UI-TARS 7B ",
+ "provider": "openrouter",
+ "family": "bytedance",
+ "created_at": "2025-07-22 17:24:16 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 2048,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "image",
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.09999999999999999,
+ "output_per_million": 0.19999999999999998,
+ "cache_read_input_per_million": 0.09999999999999999
+ }
+ }
+ },
+ "metadata": {
+ "description": "UI-TARS-1.5 is a multimodal vision-language agent optimized for GUI-based environments, including desktop interfaces, web browsers, mobile systems, and games. Built by ByteDance, it builds upon the UI-TARS framework with reinforcement...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 2048,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "seed",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
{
"id": "cognitivecomputations/dolphin-mistral-24b-venice-edition:free",
"name": "Uncensored (free)",
"provider": "openrouter",
"family": "mistral",
- "created_at": "2025-07-09 00:00:00 +0530",
+ "created_at": "2025-07-09 00:00:00 UTC",
"context_window": 32768,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -15177,10 +33293,40 @@
]
},
"capabilities": [
- "structured_output"
+ "structured_output",
+ "streaming"
],
"pricing": {},
"metadata": {
+ "description": "Venice Uncensored Dolphin Mistral 24B Venice Edition is a fine-tuned variant of Mistral-Small-24B-Instruct-2501, developed by dphn.ai in collaboration with Venice.ai. This model is designed as an “uncensored” instruct-tuned LLM, preserving...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 32768,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -15198,12 +33344,402 @@
"knowledge": "2025-06"
}
},
+ {
+ "id": "cohere/command-a",
+ "name": "Cohere: Command A",
+ "provider": "openrouter",
+ "family": "cohere",
+ "created_at": "2025-03-13 19:32:22 UTC",
+ "context_window": 256000,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "Command A is an open-weights 111B parameter model with a 256k context window focused on delivering great performance across agentic, multilingual, and coding use cases. Compared to other leading proprietary...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 256000,
+ "max_completion_tokens": 8192,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "cohere/command-r-08-2024",
+ "name": "Cohere: Command R (08-2024)",
+ "provider": "openrouter",
+ "family": "cohere",
+ "created_at": "2024-08-30 00:00:00 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 4000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.15,
+ "output_per_million": 0.6
+ }
+ }
+ },
+ "metadata": {
+ "description": "command-r-08-2024 is an update of the [Command R](/models/cohere/command-r) with improved performance for multilingual retrieval-augmented generation (RAG) and tool use. More broadly, it is better at math, code and reasoning and...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Cohere",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 4000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "cohere/command-r-plus-08-2024",
+ "name": "Cohere: Command R+ (08-2024)",
+ "provider": "openrouter",
+ "family": "cohere",
+ "created_at": "2024-08-30 00:00:00 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 4000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "command-r-plus-08-2024 is an update of the [Command R+](/models/cohere/command-r-plus) with roughly 50% higher throughput and 25% lower latencies as compared to the previous Command R+ version, while keeping the hardware footprint...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Cohere",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 4000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "cohere/command-r7b-12-2024",
+ "name": "Cohere: Command R7B (12-2024)",
+ "provider": "openrouter",
+ "family": "cohere",
+ "created_at": "2024-12-14 06:35:52 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 4000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.0375,
+ "output_per_million": 0.15
+ }
+ }
+ },
+ "metadata": {
+ "description": "Command R7B (12-2024) is a small, fast update of the Command R+ model, delivered in December 2024. It excels at RAG, tool use, agents, and similar tasks requiring complex reasoning...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Cohere",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 4000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "deepcogito/cogito-v2.1-671b",
+ "name": "Deep Cogito: Cogito v2.1 671B",
+ "provider": "openrouter",
+ "family": "deepcogito",
+ "created_at": "2025-11-13 22:00:33 UTC",
+ "context_window": 128000,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 1.25
+ }
+ }
+ },
+ "metadata": {
+ "description": "Cogito v2.1 671B MoE represents one of the strongest open models globally, matching performance of frontier closed and open models. This model is trained using self play with reinforcement learning...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "deepseek/deepseek-chat",
+ "name": "DeepSeek: DeepSeek V3",
+ "provider": "openrouter",
+ "family": "deepseek",
+ "created_at": "2024-12-26 19:28:40 UTC",
+ "context_window": 163840,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.32,
+ "output_per_million": 0.8899999999999999
+ }
+ }
+ },
+ "metadata": {
+ "description": "DeepSeek-V3 is the latest model from the DeepSeek team, building upon the instruction following and coding abilities of the previous versions. Pre-trained on nearly 15 trillion tokens, the reported evaluations...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "DeepSeek",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 163840,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
{
"id": "deepseek/deepseek-chat-v3-0324",
"name": "DeepSeek V3 0324",
"provider": "openrouter",
"family": "deepseek",
- "created_at": "2025-03-24 00:00:00 +0530",
+ "created_at": "2025-03-24 00:00:00 UTC",
"context_window": 16384,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -15216,10 +33752,56 @@
]
},
"capabilities": [
- "structured_output"
+ "structured_output",
+ "streaming",
+ "function_calling",
+ "predicted_outputs"
],
- "pricing": {},
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.19999999999999998,
+ "output_per_million": 0.77,
+ "cache_read_input_per_million": 0.135
+ }
+ }
+ },
"metadata": {
+ "description": "DeepSeek V3, a 685B-parameter, mixture-of-experts model, is the latest iteration of the flagship chat model family from the DeepSeek team. It succeeds the [DeepSeek V3](/deepseek/deepseek-chat-v3) model and performs really well...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "DeepSeek",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 163840,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -15242,7 +33824,7 @@
"name": "DeepSeek-V3.1",
"provider": "openrouter",
"family": "deepseek",
- "created_at": "2025-08-21 00:00:00 +0530",
+ "created_at": "2025-08-21 00:00:00 UTC",
"context_window": 163840,
"max_output_tokens": 163840,
"knowledge_cutoff": null,
@@ -15257,7 +33839,9 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -15268,6 +33852,45 @@
}
},
"metadata": {
+ "description": "DeepSeek-V3.1 is a large hybrid reasoning model (671B parameters, 37B active) that supports both thinking and non-thinking modes via prompt templates. It extends the DeepSeek-V3 base with a two-phase long-context...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "DeepSeek",
+ "instruct_type": "deepseek-v3.1"
+ },
+ "top_provider": {
+ "context_length": 32768,
+ "max_completion_tokens": 7168,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -15290,7 +33913,7 @@
"name": "DeepSeek: R1",
"provider": "openrouter",
"family": "deepseek-thinking",
- "created_at": "2025-01-20 00:00:00 +0530",
+ "created_at": "2025-01-20 00:00:00 UTC",
"context_window": 64000,
"max_output_tokens": 16000,
"knowledge_cutoff": null,
@@ -15304,7 +33927,8 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -15315,6 +33939,40 @@
}
},
"metadata": {
+ "description": "DeepSeek R1 is here: Performance on par with [OpenAI o1](/openai/o1), but open-sourced and with fully open reasoning tokens. It's 671B parameters in size, with 37B active in an inference pass....",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "DeepSeek",
+ "instruct_type": "deepseek-r1"
+ },
+ "top_provider": {
+ "context_length": 64000,
+ "max_completion_tokens": 16000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_completion_tokens",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -15332,12 +33990,84 @@
"knowledge": "2024-07"
}
},
+ {
+ "id": "deepseek/deepseek-r1-0528",
+ "name": "DeepSeek: R1 0528",
+ "provider": "openrouter",
+ "family": "deepseek",
+ "created_at": "2025-05-28 17:59:30 UTC",
+ "context_window": 163840,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 2.1500000000000004,
+ "cache_read_input_per_million": 0.35
+ }
+ }
+ },
+ "metadata": {
+ "description": "May 28th update to the [original DeepSeek R1](/deepseek/deepseek-r1) Performance on par with [OpenAI o1](/openai/o1), but open-sourced and with fully open reasoning tokens. It's 671B parameters in size, with 37B active...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "DeepSeek",
+ "instruct_type": "deepseek-r1"
+ },
+ "top_provider": {
+ "context_length": 163840,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2025-01-23 00:00:00 UTC",
"context_window": 8192,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -15351,10 +34081,53 @@
},
"capabilities": [
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "predicted_outputs"
],
- "pricing": {},
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.7,
+ "output_per_million": 0.7999999999999999
+ }
+ }
+ },
"metadata": {
+ "description": "DeepSeek R1 Distill Llama 70B is a distilled large language model based on [Llama-3.3-70B-Instruct](/meta-llama/llama-3.3-70b-instruct), using outputs from [DeepSeek R1](/deepseek/deepseek-r1). The model combines advanced distillation techniques to achieve high performance across...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": "deepseek-r1"
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -15372,12 +34145,78 @@
"knowledge": "2024-10"
}
},
+ {
+ "id": "deepseek/deepseek-r1-distill-qwen-32b",
+ "name": "DeepSeek: R1 Distill Qwen 32B",
+ "provider": "openrouter",
+ "family": "deepseek",
+ "created_at": "2025-01-29 23:53:50 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.29,
+ "output_per_million": 0.29
+ }
+ }
+ },
+ "metadata": {
+ "description": "DeepSeek R1 Distill Qwen 32B is a distilled large language model based on [Qwen 2.5 32B](https://huggingface.co/Qwen/Qwen2.5-32B), using outputs from [DeepSeek R1](/deepseek/deepseek-r1). It outperforms OpenAI's o1-mini across various benchmarks, achieving new...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen",
+ "instruct_type": "deepseek-r1"
+ },
+ "top_provider": {
+ "context_length": 32768,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
{
"id": "deepseek/deepseek-v3.1-terminus",
"name": "DeepSeek V3.1 Terminus",
"provider": "openrouter",
"family": "deepseek",
- "created_at": "2025-09-22 00:00:00 +0530",
+ "created_at": "2025-09-22 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -15392,7 +34231,9 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -15403,6 +34244,43 @@
}
},
"metadata": {
+ "description": "DeepSeek-V3.1 Terminus is an update to [DeepSeek V3.1](/deepseek/deepseek-chat-v3.1) that maintains the model's original capabilities while addressing issues reported by users, including language consistency and agent capabilities, further optimizing the model's...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "DeepSeek",
+ "instruct_type": "deepseek-v3.1"
+ },
+ "top_provider": {
+ "context_length": 163840,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -15425,7 +34303,7 @@
"name": "DeepSeek V3.1 Terminus (exacto)",
"provider": "openrouter",
"family": "deepseek",
- "created_at": "2025-09-22 00:00:00 +0530",
+ "created_at": "2025-09-22 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -15473,7 +34351,7 @@
"name": "DeepSeek V3.2",
"provider": "openrouter",
"family": "deepseek",
- "created_at": "2025-12-01 00:00:00 +0530",
+ "created_at": "2025-12-01 00:00:00 UTC",
"context_window": 163840,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -15488,7 +34366,9 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -15499,6 +34379,43 @@
}
},
"metadata": {
+ "description": "DeepSeek-V3.2 is a large language model designed to harmonize high computational efficiency with strong reasoning and agentic tool-use performance. It introduces DeepSeek Sparse Attention (DSA), a fine-grained sparse attention mechanism...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "DeepSeek",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -15516,12 +34433,83 @@
"knowledge": "2024-07"
}
},
+ {
+ "id": "deepseek/deepseek-v3.2-exp",
+ "name": "DeepSeek: DeepSeek V3.2 Exp",
+ "provider": "openrouter",
+ "family": "deepseek",
+ "created_at": "2025-09-29 12:54:41 UTC",
+ "context_window": 163840,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.27,
+ "output_per_million": 0.41
+ }
+ }
+ },
+ "metadata": {
+ "description": "DeepSeek-V3.2-Exp is an experimental large language model released by DeepSeek as an intermediate step between V3.1 and future architectures. It introduces DeepSeek Sparse Attention (DSA), a fine-grained sparse attention mechanism...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "DeepSeek",
+ "instruct_type": "deepseek-v3.1"
+ },
+ "top_provider": {
+ "context_length": 163840,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
{
"id": "deepseek/deepseek-v3.2-speciale",
"name": "DeepSeek V3.2 Speciale",
"provider": "openrouter",
"family": "deepseek",
- "created_at": "2025-12-01 00:00:00 +0530",
+ "created_at": "2025-12-01 00:00:00 UTC",
"context_window": 163840,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -15536,7 +34524,9 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -15547,6 +34537,41 @@
}
},
"metadata": {
+ "description": "DeepSeek-V3.2-Speciale is a high-compute variant of DeepSeek-V3.2 optimized for maximum reasoning and agentic performance. It builds on DeepSeek Sparse Attention (DSA) for efficient long-context processing, then scales post-training reinforcement learning...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "DeepSeek",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 163840,
+ "max_completion_tokens": 163840,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -15564,12 +34589,268 @@
"knowledge": "2024-07"
}
},
+ {
+ "id": "deepseek/deepseek-v4-flash",
+ "name": "DeepSeek V4 Flash",
+ "provider": "openrouter",
+ "family": "deepseek-flash",
+ "created_at": "2026-04-24 00:00:00 UTC",
+ "context_window": 1048576,
+ "max_output_tokens": 393216,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "reasoning",
+ "streaming",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.14,
+ "output_per_million": 0.28,
+ "cache_read_input_per_million": 0.028
+ }
+ }
+ },
+ "metadata": {
+ "description": "DeepSeek V4 Flash is an efficiency-optimized Mixture-of-Experts model from DeepSeek with 284B total parameters and 13B activated parameters, supporting a 1M-token context window. It is designed for fast inference and...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "DeepSeek",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 384000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ],
+ "source": "models.dev",
+ "provider_id": "openrouter",
+ "open_weights": true,
+ "attachment": false,
+ "temperature": true,
+ "last_updated": "2026-04-24",
+ "interleaved": {
+ "field": "reasoning_content"
+ },
+ "cost": {
+ "input": 0.14,
+ "output": 0.28,
+ "cache_read": 0.028
+ },
+ "limit": {
+ "context": 1048576,
+ "output": 393216
+ },
+ "knowledge": "2025-05"
+ }
+ },
+ {
+ "id": "deepseek/deepseek-v4-pro",
+ "name": "DeepSeek V4 Pro",
+ "provider": "openrouter",
+ "family": "deepseek-thinking",
+ "created_at": "2026-04-24 00:00:00 UTC",
+ "context_window": 1048576,
+ "max_output_tokens": 393216,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "reasoning",
+ "streaming",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.74,
+ "output_per_million": 3.48,
+ "cache_read_input_per_million": 0.145
+ }
+ }
+ },
+ "metadata": {
+ "description": "DeepSeek V4 Pro is a large-scale Mixture-of-Experts model from DeepSeek with 1.6T total parameters and 49B activated parameters, supporting a 1M-token context window. It is designed for advanced reasoning, coding,...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "DeepSeek",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 384000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ],
+ "source": "models.dev",
+ "provider_id": "openrouter",
+ "open_weights": true,
+ "attachment": false,
+ "temperature": true,
+ "last_updated": "2026-04-24",
+ "interleaved": {
+ "field": "reasoning_content"
+ },
+ "cost": {
+ "input": 1.74,
+ "output": 3.48,
+ "cache_read": 0.145
+ },
+ "limit": {
+ "context": 1048576,
+ "output": 393216
+ },
+ "knowledge": "2025-05"
+ }
+ },
+ {
+ "id": "essentialai/rnj-1-instruct",
+ "name": "EssentialAI: Rnj 1 Instruct",
+ "provider": "openrouter",
+ "family": "essentialai",
+ "created_at": "2025-12-07 08:07:27 UTC",
+ "context_window": 32768,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.15,
+ "output_per_million": 0.15
+ }
+ }
+ },
+ "metadata": {
+ "description": "Rnj-1 is an 8B-parameter, dense, open-weight model family developed by Essential AI and trained from scratch with a focus on programming, math, and scientific reasoning. The model demonstrates strong performance...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 32768,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2024-12-11 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -15588,18 +34869,52 @@
"capabilities": [
"function_calling",
"structured_output",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.1,
"output_per_million": 0.4,
- "cached_input_per_million": 0.025
+ "cache_read_input_per_million": 0.025
}
}
},
"metadata": {
+ "description": "Gemini Flash 2.0 offers a significantly faster time to first token (TTFT) compared to [Gemini Flash 1.5](/google/gemini-flash-1.5), while maintaining quality on par with larger models like [Gemini Pro 1.5](/google/gemini-pro-1.5). It...",
+ "architecture": {
+ "modality": "text+image+file+audio+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file",
+ "audio",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Gemini",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 8192,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -15618,12 +34933,83 @@
"knowledge": "2024-06"
}
},
+ {
+ "id": "google/gemini-2.0-flash-lite-001",
+ "name": "Google: Gemini 2.0 Flash Lite",
+ "provider": "openrouter",
+ "family": "google",
+ "created_at": "2025-02-25 17:56:52 UTC",
+ "context_window": 1048576,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "file",
+ "audio",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3,
+ "reasoning_output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "description": "Gemini 2.0 Flash Lite offers a significantly faster time to first token (TTFT) compared to [Gemini Flash 1.5](/google/gemini-flash-1.5), while maintaining quality on par with larger models like [Gemini Pro 1.5](/google/gemini-pro-1.5),...",
+ "architecture": {
+ "modality": "text+image+file+audio+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file",
+ "audio",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Gemini",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 8192,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2025-07-17 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -15643,18 +35029,54 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.3,
"output_per_million": 2.5,
- "cached_input_per_million": 0.0375
+ "cache_read_input_per_million": 0.0375
}
}
},
"metadata": {
+ "description": "Gemini 2.5 Flash is Google's state-of-the-art workhorse model, specifically designed for advanced reasoning, coding, mathematics, and scientific tasks. It includes built-in \"thinking\" capabilities, enabling it to provide responses with greater...",
+ "architecture": {
+ "modality": "text+image+file+audio+video->text",
+ "input_modalities": [
+ "file",
+ "image",
+ "text",
+ "audio",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Gemini",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 65535,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -15673,12 +35095,77 @@
"knowledge": "2025-01"
}
},
+ {
+ "id": "google/gemini-2.5-flash-image",
+ "name": "Google: Nano Banana (Gemini 2.5 Flash Image)",
+ "provider": "openrouter",
+ "family": "google",
+ "created_at": "2025-10-07 20:53:51 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "image",
+ "text"
+ ],
+ "output": [
+ "image",
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.3,
+ "output_per_million": 2.5,
+ "cache_read_input_per_million": 0.03,
+ "reasoning_output_per_million": 2.5
+ }
+ }
+ },
+ "metadata": {
+ "description": "Gemini 2.5 Flash Image, a.k.a. \"Nano Banana,\" is now generally available. It is a state of the art image generation model with contextual understanding. It is capable of image generation,...",
+ "architecture": {
+ "modality": "text+image->text+image",
+ "input_modalities": [
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "image",
+ "text"
+ ],
+ "tokenizer": "Gemini",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 32768,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2025-06-17 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -15698,18 +35185,54 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.1,
"output_per_million": 0.4,
- "cached_input_per_million": 0.025
+ "cache_read_input_per_million": 0.025
}
}
},
"metadata": {
+ "description": "Gemini 2.5 Flash-Lite is a lightweight reasoning model in the Gemini 2.5 family, optimized for ultra-low latency and cost efficiency. It offers improved throughput, faster token generation, and better performance...",
+ "architecture": {
+ "modality": "text+image+file+audio+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file",
+ "audio",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Gemini",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 65535,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -15733,7 +35256,7 @@
"name": "Gemini 2.5 Flash Lite Preview 09-25",
"provider": "openrouter",
"family": "gemini-flash-lite",
- "created_at": "2025-09-25 00:00:00 +0530",
+ "created_at": "2025-09-25 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -15753,18 +35276,54 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.1,
"output_per_million": 0.4,
- "cached_input_per_million": 0.025
+ "cache_read_input_per_million": 0.025
}
}
},
"metadata": {
+ "description": "Gemini 2.5 Flash-Lite is a lightweight reasoning model in the Gemini 2.5 family, optimized for ultra-low latency and cost efficiency. It offers improved throughput, faster token generation, and better performance...",
+ "architecture": {
+ "modality": "text+image+file+audio+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file",
+ "audio",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Gemini",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 65535,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -15788,7 +35347,7 @@
"name": "Gemini 2.5 Flash Preview 09-25",
"provider": "openrouter",
"family": "gemini-flash",
- "created_at": "2025-09-25 00:00:00 +0530",
+ "created_at": "2025-09-25 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -15815,7 +35374,7 @@
"standard": {
"input_per_million": 0.3,
"output_per_million": 2.5,
- "cached_input_per_million": 0.031
+ "cache_read_input_per_million": 0.031
}
}
},
@@ -15843,7 +35402,7 @@
"name": "Gemini 2.5 Pro",
"provider": "openrouter",
"family": "gemini-pro",
- "created_at": "2025-03-20 00:00:00 +0530",
+ "created_at": "2025-03-20 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -15863,18 +35422,54 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.25,
"output_per_million": 10,
- "cached_input_per_million": 0.31
+ "cache_read_input_per_million": 0.125
}
}
},
"metadata": {
+ "description": "Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...",
+ "architecture": {
+ "modality": "text+image+file+audio+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file",
+ "audio",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Gemini",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -15884,7 +35479,12 @@
"cost": {
"input": 1.25,
"output": 10,
- "cache_read": 0.31
+ "cache_read": 0.125,
+ "context_over_200k": {
+ "input": 2.5,
+ "output": 15,
+ "cache_read": 0.25
+ }
},
"limit": {
"context": 1048576,
@@ -15893,12 +35493,84 @@
"knowledge": "2025-01"
}
},
+ {
+ "id": "google/gemini-2.5-pro-preview",
+ "name": "Google: Gemini 2.5 Pro Preview 06-05",
+ "provider": "openrouter",
+ "family": "google",
+ "created_at": "2025-06-05 15:27:37 UTC",
+ "context_window": 1048576,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "file",
+ "image",
+ "text",
+ "audio"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 0.125,
+ "reasoning_output_per_million": 10.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...",
+ "architecture": {
+ "modality": "text+image+file+audio->text",
+ "input_modalities": [
+ "file",
+ "image",
+ "text",
+ "audio"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Gemini",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2025-05-06 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -15918,18 +35590,54 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.25,
"output_per_million": 10,
- "cached_input_per_million": 0.31
+ "cache_read_input_per_million": 0.31
}
}
},
"metadata": {
+ "description": "Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...",
+ "architecture": {
+ "modality": "text+image+file+audio+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file",
+ "audio",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Gemini",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 65535,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -15953,7 +35661,7 @@
"name": "Gemini 2.5 Pro Preview 06-05",
"provider": "openrouter",
"family": "gemini-pro",
- "created_at": "2025-06-05 00:00:00 +0530",
+ "created_at": "2025-06-05 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -15980,7 +35688,7 @@
"standard": {
"input_per_million": 1.25,
"output_per_million": 10,
- "cached_input_per_million": 0.31
+ "cache_read_input_per_million": 0.31
}
}
},
@@ -16008,7 +35716,7 @@
"name": "Gemini 3 Flash Preview",
"provider": "openrouter",
"family": "gemini-flash",
- "created_at": "2025-12-17 00:00:00 +0530",
+ "created_at": "2025-12-17 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -16028,18 +35736,54 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.5,
"output_per_million": 3,
- "cached_input_per_million": 0.05
+ "cache_read_input_per_million": 0.05
}
}
},
"metadata": {
+ "description": "Gemini 3 Flash Preview is a high speed, high value thinking model designed for agentic workflows, multi turn chat, and coding assistance. It delivers near Pro level reasoning and tool...",
+ "architecture": {
+ "modality": "text+image+file+audio+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file",
+ "audio",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Gemini",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -16061,12 +35805,79 @@
"knowledge": "2025-01"
}
},
+ {
+ "id": "google/gemini-3-pro-image-preview",
+ "name": "Google: Nano Banana Pro (Gemini 3 Pro Image Preview)",
+ "provider": "openrouter",
+ "family": "google",
+ "created_at": "2025-11-20 15:49:57 UTC",
+ "context_window": 65536,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "image",
+ "text"
+ ],
+ "output": [
+ "image",
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.0,
+ "output_per_million": 12.0,
+ "cache_read_input_per_million": 0.19999999999999998,
+ "reasoning_output_per_million": 12.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "Nano Banana Pro is Google’s most advanced image-generation and editing model, built on Gemini 3 Pro. It extends the original Nano Banana with significantly improved multimodal reasoning, real-world grounding, and...",
+ "architecture": {
+ "modality": "text+image->text+image",
+ "input_modalities": [
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "image",
+ "text"
+ ],
+ "tokenizer": "Gemini",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 65536,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2025-11-18 00:00:00 UTC",
"context_window": 1050000,
"max_output_tokens": 66000,
"knowledge_cutoff": null,
@@ -16117,12 +35928,94 @@
"knowledge": "2025-01"
}
},
+ {
+ "id": "google/gemini-3.1-flash-image-preview",
+ "name": "Gemini 3.1 Flash Image Preview (Nano Banana 2)",
+ "provider": "openrouter",
+ "family": "gemini-flash",
+ "created_at": "2026-02-26 00:00:00 UTC",
+ "context_window": 65536,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text",
+ "image"
+ ]
+ },
+ "capabilities": [
+ "structured_output",
+ "reasoning",
+ "vision",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 3
+ }
+ }
+ },
+ "metadata": {
+ "description": "Gemini 3.1 Flash Image Preview, a.k.a. \"Nano Banana 2,\" is Google’s latest state of the art image generation and editing model, delivering Pro-level visual quality at Flash speed. It combines...",
+ "architecture": {
+ "modality": "text+image->text+image",
+ "input_modalities": [
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "image",
+ "text"
+ ],
+ "tokenizer": "Gemini",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 65536,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_p"
+ ],
+ "source": "models.dev",
+ "provider_id": "openrouter",
+ "open_weights": false,
+ "attachment": true,
+ "temperature": true,
+ "last_updated": "2026-02-26",
+ "cost": {
+ "input": 0.5,
+ "output": 3
+ },
+ "limit": {
+ "context": 65536,
+ "output": 65536
+ },
+ "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",
+ "created_at": "2026-03-03 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -16142,14 +36035,16 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.25,
"output_per_million": 1.5,
- "cached_input_per_million": 0.025,
+ "cache_read_input_per_million": 0.025,
+ "cache_write_input_per_million": 0.083,
"reasoning_output_per_million": 1.5
}
},
@@ -16161,6 +36056,41 @@
}
},
"metadata": {
+ "description": "Gemini 3.1 Flash Lite Preview is Google's high-efficiency model optimized for high-volume use cases. It outperforms Gemini 2.5 Flash Lite on overall quality and approaches Gemini 2.5 Flash performance across...",
+ "architecture": {
+ "modality": "text+image+file+audio+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "video",
+ "file",
+ "audio"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Gemini",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -16187,7 +36117,7 @@
"name": "Gemini 3.1 Pro Preview",
"provider": "openrouter",
"family": "gemini-pro",
- "created_at": "2026-02-19 00:00:00 +0530",
+ "created_at": "2026-02-19 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -16207,7 +36137,8 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -16219,6 +36150,41 @@
}
},
"metadata": {
+ "description": "Gemini 3.1 Pro Preview is Google’s frontier reasoning model, delivering enhanced software engineering performance, improved agentic reliability, and more efficient token usage across complex workflows. Building on the multimodal foundation...",
+ "architecture": {
+ "modality": "text+image+file+audio+video->text",
+ "input_modalities": [
+ "audio",
+ "file",
+ "image",
+ "text",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Gemini",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -16250,7 +36216,7 @@
"name": "Gemini 3.1 Pro Preview Custom Tools",
"provider": "openrouter",
"family": "gemini-pro",
- "created_at": "2026-02-19 00:00:00 +0530",
+ "created_at": "2026-02-19 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -16270,7 +36236,8 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -16282,6 +36249,41 @@
}
},
"metadata": {
+ "description": "Gemini 3.1 Pro Preview Custom Tools is a variant of Gemini 3.1 Pro that improves tool selection behavior by preventing overuse of a general bash tool when more efficient third-party...",
+ "architecture": {
+ "modality": "text+image+file+audio+video->text",
+ "input_modalities": [
+ "text",
+ "audio",
+ "image",
+ "video",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Gemini",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -16308,12 +36310,74 @@
"knowledge": "2025-01"
}
},
+ {
+ "id": "google/gemma-2-27b-it",
+ "name": "Google: Gemma 2 27B",
+ "provider": "openrouter",
+ "family": "google",
+ "created_at": "2024-07-13 00:00:00 UTC",
+ "context_window": 8192,
+ "max_output_tokens": 2048,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.65,
+ "output_per_million": 0.65
+ }
+ }
+ },
+ "metadata": {
+ "description": "Gemma 2 27B by Google is an open model built from the same research and technology used to create the [Gemini models](/models?q=gemini). Gemma models are well-suited for a variety of...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Gemini",
+ "instruct_type": "gemma"
+ },
+ "top_provider": {
+ "context_length": 8192,
+ "max_completion_tokens": 2048,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_p"
+ ]
+ }
+ },
{
"id": "google/gemma-2-9b-it",
"name": "Gemma 2 9B",
"provider": "openrouter",
"family": "gemma",
- "created_at": "2024-06-28 00:00:00 +0530",
+ "created_at": "2024-06-28 00:00:00 UTC",
"context_window": 8192,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -16357,7 +36421,7 @@
"name": "Gemma 3 12B",
"provider": "openrouter",
"family": "gemma",
- "created_at": "2025-03-13 00:00:00 +0530",
+ "created_at": "2025-03-13 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -16372,7 +36436,10 @@
},
"capabilities": [
"structured_output",
- "vision"
+ "vision",
+ "streaming",
+ "function_calling",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -16383,6 +36450,42 @@
}
},
"metadata": {
+ "description": "Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Gemini",
+ "instruct_type": "gemma"
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -16405,7 +36508,7 @@
"name": "Gemma 3 12B (free)",
"provider": "openrouter",
"family": "gemma",
- "created_at": "2025-03-13 00:00:00 +0530",
+ "created_at": "2025-03-13 00:00:00 UTC",
"context_window": 32768,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -16445,7 +36548,7 @@
"name": "Gemma 3 27B",
"provider": "openrouter",
"family": "gemma",
- "created_at": "2025-03-12 00:00:00 +0530",
+ "created_at": "2025-03-12 00:00:00 UTC",
"context_window": 96000,
"max_output_tokens": 96000,
"knowledge_cutoff": null,
@@ -16461,7 +36564,9 @@
"capabilities": [
"function_calling",
"structured_output",
- "vision"
+ "vision",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -16472,6 +36577,42 @@
}
},
"metadata": {
+ "description": "Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Gemini",
+ "instruct_type": "gemma"
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -16494,7 +36635,7 @@
"name": "Gemma 3 27B (free)",
"provider": "openrouter",
"family": "gemma",
- "created_at": "2025-03-12 00:00:00 +0530",
+ "created_at": "2025-03-12 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -16535,7 +36676,7 @@
"name": "Gemma 3 4B",
"provider": "openrouter",
"family": "gemma",
- "created_at": "2025-03-13 00:00:00 +0530",
+ "created_at": "2025-03-13 00:00:00 UTC",
"context_window": 96000,
"max_output_tokens": 96000,
"knowledge_cutoff": null,
@@ -16549,7 +36690,10 @@
]
},
"capabilities": [
- "vision"
+ "vision",
+ "streaming",
+ "structured_output",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -16560,6 +36704,40 @@
}
},
"metadata": {
+ "description": "Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Gemini",
+ "instruct_type": "gemma"
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -16582,7 +36760,7 @@
"name": "Gemma 3 4B (free)",
"provider": "openrouter",
"family": "gemma",
- "created_at": "2025-03-13 00:00:00 +0530",
+ "created_at": "2025-03-13 00:00:00 UTC",
"context_window": 32768,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -16622,7 +36800,7 @@
"name": "Gemma 3n 2B (free)",
"provider": "openrouter",
"family": "gemma",
- "created_at": "2025-07-09 00:00:00 +0530",
+ "created_at": "2025-07-09 00:00:00 UTC",
"context_window": 8192,
"max_output_tokens": 2000,
"knowledge_cutoff": null,
@@ -16659,7 +36837,7 @@
"name": "Gemma 3n 4B",
"provider": "openrouter",
"family": "gemma",
- "created_at": "2025-05-20 00:00:00 +0530",
+ "created_at": "2025-05-20 00:00:00 UTC",
"context_window": 32768,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -16671,7 +36849,10 @@
"text"
]
},
- "capabilities": [],
+ "capabilities": [
+ "streaming",
+ "predicted_outputs"
+ ],
"pricing": {
"text_tokens": {
"standard": {
@@ -16681,6 +36862,36 @@
}
},
"metadata": {
+ "description": "Gemma 3n E4B-it is optimized for efficient execution on mobile and low-resource devices, such as phones, laptops, and tablets. It supports multimodal inputs—including text, visual data, and audio—enabling diverse tasks...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 32768,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -16703,7 +36914,7 @@
"name": "Gemma 3n 4B (free)",
"provider": "openrouter",
"family": "gemma",
- "created_at": "2025-05-20 00:00:00 +0530",
+ "created_at": "2025-05-20 00:00:00 UTC",
"context_window": 8192,
"max_output_tokens": 2000,
"knowledge_cutoff": null,
@@ -16740,7 +36951,7 @@
"name": "Gemma 4 26B A4B",
"provider": "openrouter",
"family": "gemma",
- "created_at": "2026-04-03 00:00:00 +0530",
+ "created_at": "2026-04-03 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 262144,
"knowledge_cutoff": null,
@@ -16758,7 +36969,9 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -16769,6 +36982,47 @@
}
},
"metadata": {
+ "description": "Gemma 4 26B A4B IT is an instruction-tuned Mixture-of-Experts (MoE) model from Google DeepMind. Despite 25.2B total parameters, only 3.8B activate per token during inference — delivering near-31B quality at...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Gemma",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -16791,7 +37045,7 @@
"name": "Gemma 4 26B A4B (free)",
"provider": "openrouter",
"family": "gemma",
- "created_at": "2026-04-03 00:00:00 +0530",
+ "created_at": "2026-04-03 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -16809,10 +37063,42 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {},
"metadata": {
+ "description": "Gemma 4 26B A4B IT is an instruction-tuned Mixture-of-Experts (MoE) model from Google DeepMind. Despite 25.2B total parameters, only 3.8B activate per token during inference — delivering near-31B quality at...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Gemma",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -16835,7 +37121,7 @@
"name": "Gemma 4 31B",
"provider": "openrouter",
"family": "gemma",
- "created_at": "2026-04-02 00:00:00 +0530",
+ "created_at": "2026-04-02 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 262144,
"knowledge_cutoff": null,
@@ -16853,7 +37139,9 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -16864,6 +37152,47 @@
}
},
"metadata": {
+ "description": "Gemma 4 31B Instruct is Google DeepMind's 30.7B dense multimodal model supporting text and image input with text output. Features a 256K token context window, configurable thinking/reasoning mode, native function...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Gemma",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -16886,7 +37215,7 @@
"name": "Gemma 4 31B (free)",
"provider": "openrouter",
"family": "gemma",
- "created_at": "2026-04-02 00:00:00 +0530",
+ "created_at": "2026-04-02 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -16904,10 +37233,42 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {},
"metadata": {
+ "description": "Gemma 4 31B Instruct is Google DeepMind's 30.7B dense multimodal model supporting text and image input with text output. Features a 256K token context window, configurable thinking/reasoning mode, native function...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Gemma",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -16925,12 +37286,315 @@
"knowledge": "2025-01"
}
},
+ {
+ "id": "google/lyria-3-clip-preview",
+ "name": "Google: Lyria 3 Clip Preview",
+ "provider": "openrouter",
+ "family": "google",
+ "created_at": "2026-03-30 21:47:35 UTC",
+ "context_window": 1048576,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text",
+ "audio"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output"
+ ],
+ "pricing": {},
+ "metadata": {
+ "description": "30 second duration clips are priced at $0.04 per clip. Lyria 3 is Google's family of music generation models, available through the Gemini API. With Lyria 3, you can generate...",
+ "architecture": {
+ "modality": "text+image->text+audio",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text",
+ "audio"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "response_format",
+ "seed",
+ "temperature",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "google/lyria-3-pro-preview",
+ "name": "Google: Lyria 3 Pro Preview",
+ "provider": "openrouter",
+ "family": "google",
+ "created_at": "2026-03-30 21:48:06 UTC",
+ "context_window": 1048576,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text",
+ "audio"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output"
+ ],
+ "pricing": {},
+ "metadata": {
+ "description": "Full-length songs are priced at $0.08 per song. Lyria 3 is Google's family of music generation models, available through the Gemini API. With Lyria 3, you can generate high-quality, 48kHz...",
+ "architecture": {
+ "modality": "text+image->text+audio",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text",
+ "audio"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "response_format",
+ "seed",
+ "temperature",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "gryphe/mythomax-l2-13b",
+ "name": "MythoMax 13B",
+ "provider": "openrouter",
+ "family": "gryphe",
+ "created_at": "2023-07-02 00:00:00 UTC",
+ "context_window": 4096,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.06,
+ "output_per_million": 0.06
+ }
+ }
+ },
+ "metadata": {
+ "description": "One of the highest performing and most popular fine-tunes of Llama 2 13B, with rich descriptions and roleplay. #merge",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama2",
+ "instruct_type": "alpaca"
+ },
+ "top_provider": {
+ "context_length": 4096,
+ "max_completion_tokens": 4096,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_a",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "ibm-granite/granite-4.0-h-micro",
+ "name": "IBM: Granite 4.0 Micro",
+ "provider": "openrouter",
+ "family": "ibm-granite",
+ "created_at": "2025-10-20 02:34:55 UTC",
+ "context_window": 131000,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.017,
+ "output_per_million": 0.11
+ }
+ }
+ },
+ "metadata": {
+ "description": "Granite-4.0-H-Micro is a 3B parameter from the Granite 4 family of models. These models are the latest in a series of models released by IBM. They are fine-tuned for long...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131000,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "seed",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "ibm-granite/granite-4.1-8b",
+ "name": "IBM: Granite 4.1 8B",
+ "provider": "openrouter",
+ "family": "ibm-granite",
+ "created_at": "2026-04-30 19:24:31 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 131072,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.049999999999999996,
+ "output_per_million": 0.09999999999999999,
+ "cache_read_input_per_million": 0.049999999999999996
+ }
+ }
+ },
+ "metadata": {
+ "description": "Granite 4.1 8B is a dense, decoder-only 8-billion-parameter language model from IBM, part of the Granite 4.1 family. It supports a 131K-token context window and is designed for enterprise tasks...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 131072,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
{
"id": "inception/mercury-2",
"name": "Mercury 2",
"provider": "openrouter",
"family": "mercury",
- "created_at": "2026-03-04 00:00:00 +0530",
+ "created_at": "2026-03-04 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 50000,
"knowledge_cutoff": null,
@@ -16945,18 +37609,48 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.25,
"output_per_million": 0.75,
- "cached_input_per_million": 0.025
+ "cache_read_input_per_million": 0.025
}
}
},
"metadata": {
+ "description": "Mercury 2 is an extremely fast reasoning LLM, and the first reasoning diffusion LLM (dLLM). Instead of generating tokens sequentially, Mercury 2 produces and refines multiple tokens in parallel, achieving...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 50000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -16979,7 +37673,7 @@
"name": "Mercury Edit 2",
"provider": "openrouter",
"family": null,
- "created_at": "2026-03-30 00:00:00 +0530",
+ "created_at": "2026-03-30 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -16999,7 +37693,7 @@
"standard": {
"input_per_million": 0.25,
"output_per_million": 0.75,
- "cached_input_per_million": 0.025
+ "cache_read_input_per_million": 0.025
}
}
},
@@ -17021,12 +37715,380 @@
}
}
},
+ {
+ "id": "inclusionai/ling-2.6-1t:free",
+ "name": "inclusionAI: Ling-2.6-1T (free)",
+ "provider": "openrouter",
+ "family": "inclusionai",
+ "created_at": "2026-04-23 12:43:58 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {},
+ "metadata": {
+ "description": "Ling-2.6-1T is an instant (instruct) model from inclusionAI and the company’s trillion-parameter flagship, designed for real-world agents that require fast execution and high efficiency at scale. It uses a “fast...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "inclusionai/ling-2.6-flash",
+ "name": "inclusionAI: Ling-2.6-flash",
+ "provider": "openrouter",
+ "family": "inclusionai",
+ "created_at": "2026-04-21 18:24:46 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.08,
+ "output_per_million": 0.24,
+ "cache_read_input_per_million": 0.016
+ }
+ }
+ },
+ "metadata": {
+ "description": "Ling-2.6-flash is an instant (instruct) model from inclusionAI with 104B total parameters and 7.4B active parameters, designed for real-world agents that require fast responses, strong execution, and high token efficiency....",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "inflection/inflection-3-pi",
+ "name": "Inflection: Inflection 3 Pi",
+ "provider": "openrouter",
+ "family": "inflection",
+ "created_at": "2024-10-11 00:00:00 UTC",
+ "context_window": 8000,
+ "max_output_tokens": 1024,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "Inflection 3 Pi powers Inflection's [Pi](https://pi.ai) chatbot, including backstory, emotional intelligence, productivity, and safety. It has access to recent news, and excels in scenarios like customer support and roleplay. Pi...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 8000,
+ "max_completion_tokens": 1024,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "stop",
+ "temperature",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "inflection/inflection-3-productivity",
+ "name": "Inflection: Inflection 3 Productivity",
+ "provider": "openrouter",
+ "family": "inflection",
+ "created_at": "2024-10-11 00:00:00 UTC",
+ "context_window": 8000,
+ "max_output_tokens": 1024,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "Inflection 3 Productivity is optimized for following instructions. It is better for tasks requiring JSON output or precise adherence to provided guidelines. It has access to recent news. For emotional...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 8000,
+ "max_completion_tokens": 1024,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "stop",
+ "temperature",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "kwaipilot/kat-coder-pro-v2",
+ "name": "Kwaipilot: KAT-Coder-Pro V2",
+ "provider": "openrouter",
+ "family": "kwaipilot",
+ "created_at": "2026-03-27 22:08:30 UTC",
+ "context_window": 256000,
+ "max_output_tokens": 80000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.3,
+ "output_per_million": 1.2,
+ "cache_read_input_per_million": 0.06
+ }
+ }
+ },
+ "metadata": {
+ "description": "KAT-Coder-Pro V2 is the latest high-performance model in KwaiKAT’s KAT-Coder series, designed for complex enterprise-grade software engineering and SaaS integration. It builds on the agentic coding strengths of earlier versions,...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 256000,
+ "max_completion_tokens": 80000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "liquid/lfm-2-24b-a2b",
+ "name": "LiquidAI: LFM2-24B-A2B",
+ "provider": "openrouter",
+ "family": "liquid",
+ "created_at": "2026-02-25 19:45:11 UTC",
+ "context_window": 32768,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.03,
+ "output_per_million": 0.12
+ }
+ }
+ },
+ "metadata": {
+ "description": "LFM2-24B-A2B is the largest model in the LFM2 family of hybrid architectures designed for efficient on-device deployment. Built as a 24B parameter Mixture-of-Experts model with only 2B active parameters per...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 32768,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2026-01-20 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -17038,9 +38100,41 @@
"text"
]
},
- "capabilities": [],
+ "capabilities": [
+ "streaming"
+ ],
"pricing": {},
"metadata": {
+ "description": "LFM2.5-1.2B-Instruct is a compact, high-performance instruction-tuned model built for fast on-device AI. It delivers strong chat quality in a 1.2B parameter footprint, with efficient edge inference and broad runtime support.",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 32768,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "seed",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -17063,7 +38157,7 @@
"name": "LFM2.5-1.2B-Thinking (free)",
"provider": "openrouter",
"family": "liquid",
- "created_at": "2026-01-20 00:00:00 +0530",
+ "created_at": "2026-01-20 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -17076,10 +38170,43 @@
]
},
"capabilities": [
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {},
"metadata": {
+ "description": "LFM2.5-1.2B-Thinking is a lightweight reasoning-focused model optimized for agentic tasks, data extraction, and RAG—while still running comfortably on edge devices. It supports long context (up to 32K tokens) and is...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 32768,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "seed",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -17097,12 +38224,348 @@
"knowledge": "2025-06"
}
},
+ {
+ "id": "mancer/weaver",
+ "name": "Mancer: Weaver (alpha)",
+ "provider": "openrouter",
+ "family": "mancer",
+ "created_at": "2023-08-02 00:00:00 UTC",
+ "context_window": 8000,
+ "max_output_tokens": 2000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.75,
+ "output_per_million": 1.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "An attempt to recreate Claude-style verbosity, but don't expect the same level of coherence or memory. Meant for use in roleplay/narrative situations.",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama2",
+ "instruct_type": "alpaca"
+ },
+ "top_provider": {
+ "context_length": 8000,
+ "max_completion_tokens": 2000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "temperature",
+ "top_a",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "meta-llama/llama-3-70b-instruct",
+ "name": "Meta: Llama 3 70B Instruct",
+ "provider": "openrouter",
+ "family": "meta-llama",
+ "created_at": "2024-04-18 00:00:00 UTC",
+ "context_window": 8192,
+ "max_output_tokens": 8000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.51,
+ "output_per_million": 0.74
+ }
+ }
+ },
+ "metadata": {
+ "description": "Meta's latest class of model (Llama 3) launched with a variety of sizes & flavors. This 70B instruct-tuned version was optimized for high quality dialogue usecases. It has demonstrated strong...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": "llama3"
+ },
+ "top_provider": {
+ "context_length": 8192,
+ "max_completion_tokens": 8000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "seed",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "meta-llama/llama-3-8b-instruct",
+ "name": "Meta: Llama 3 8B Instruct",
+ "provider": "openrouter",
+ "family": "meta-llama",
+ "created_at": "2024-04-18 00:00:00 UTC",
+ "context_window": 8192,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.03,
+ "output_per_million": 0.04
+ }
+ }
+ },
+ "metadata": {
+ "description": "Meta's latest class of model (Llama 3) launched with a variety of sizes & flavors. This 8B instruct-tuned version was optimized for high quality dialogue usecases. It has demonstrated strong...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": "llama3"
+ },
+ "top_provider": {
+ "context_length": 8192,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "meta-llama/llama-3.1-70b-instruct",
+ "name": "Meta: Llama 3.1 70B Instruct",
+ "provider": "openrouter",
+ "family": "meta-llama",
+ "created_at": "2024-07-23 00:00:00 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.39999999999999997,
+ "output_per_million": 0.39999999999999997
+ }
+ }
+ },
+ "metadata": {
+ "description": "Meta's latest class of model (Llama 3.1) launched with a variety of sizes & flavors. This 70B instruct-tuned version is optimized for high quality dialogue usecases. It has demonstrated strong...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": "llama3"
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "meta-llama/llama-3.1-8b-instruct",
+ "name": "Meta: Llama 3.1 8B Instruct",
+ "provider": "openrouter",
+ "family": "meta-llama",
+ "created_at": "2024-07-23 00:00:00 UTC",
+ "context_window": 16384,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.02,
+ "output_per_million": 0.049999999999999996
+ }
+ }
+ },
+ "metadata": {
+ "description": "Meta's latest class of model (Llama 3.1) launched with a variety of sizes & flavors. This 8B instruct-tuned version is fast and efficient. It has demonstrated strong performance compared to...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": "llama3"
+ },
+ "top_provider": {
+ "context_length": 16384,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2024-09-25 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -17116,10 +38579,53 @@
]
},
"capabilities": [
- "vision"
+ "vision",
+ "streaming",
+ "structured_output",
+ "predicted_outputs"
],
- "pricing": {},
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.245,
+ "output_per_million": 0.245
+ }
+ }
+ },
"metadata": {
+ "description": "Llama 3.2 11B Vision is a multimodal model with 11 billion parameters, designed to handle tasks combining visual and textual data. It excels in tasks such as image captioning and...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": "llama3"
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -17137,12 +38643,130 @@
"knowledge": "2023-12"
}
},
+ {
+ "id": "meta-llama/llama-3.2-1b-instruct",
+ "name": "Meta: Llama 3.2 1B Instruct",
+ "provider": "openrouter",
+ "family": "meta-llama",
+ "created_at": "2024-09-25 00:00:00 UTC",
+ "context_window": 60000,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.027,
+ "output_per_million": 0.19999999999999998
+ }
+ }
+ },
+ "metadata": {
+ "description": "Llama 3.2 1B is a 1-billion-parameter language model focused on efficiently performing natural language tasks, such as summarization, dialogue, and multilingual text analysis. Its smaller size allows it to operate...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": "llama3"
+ },
+ "top_provider": {
+ "context_length": 60000,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "seed",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "meta-llama/llama-3.2-3b-instruct",
+ "name": "Meta: Llama 3.2 3B Instruct",
+ "provider": "openrouter",
+ "family": "meta-llama",
+ "created_at": "2024-09-25 00:00:00 UTC",
+ "context_window": 80000,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.051,
+ "output_per_million": 0.33999999999999997
+ }
+ }
+ },
+ "metadata": {
+ "description": "Llama 3.2 3B is a 3-billion-parameter multilingual large language model, optimized for advanced natural language processing tasks like dialogue generation, reasoning, and summarization. Designed with the latest transformer architecture, it...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": "llama3"
+ },
+ "top_provider": {
+ "context_length": 80000,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "seed",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2024-09-25 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -17156,10 +38780,38 @@
]
},
"capabilities": [
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {},
"metadata": {
+ "description": "Llama 3.2 3B is a 3-billion-parameter multilingual large language model, optimized for advanced natural language processing tasks like dialogue generation, reasoning, and summarization. Designed with the latest transformer architecture, it...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": "llama3"
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -17177,12 +38829,81 @@
"knowledge": "2023-12"
}
},
+ {
+ "id": "meta-llama/llama-3.3-70b-instruct",
+ "name": "Meta: Llama 3.3 70B Instruct",
+ "provider": "openrouter",
+ "family": "meta-llama",
+ "created_at": "2024-12-06 17:28:57 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.09999999999999999,
+ "output_per_million": 0.32
+ }
+ }
+ },
+ "metadata": {
+ "description": "The Meta Llama 3.3 multilingual large language model (LLM) is a pretrained and instruction tuned generative model in 70B (text in/text out). The Llama 3.3 instruction tuned text only model...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": "llama3"
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2024-12-06 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -17196,10 +38917,40 @@
},
"capabilities": [
"function_calling",
- "structured_output"
+ "structured_output",
+ "streaming"
],
"pricing": {},
"metadata": {
+ "description": "The Meta Llama 3.3 multilingual large language model (LLM) is a pretrained and instruction tuned generative model in 70B (text in/text out). The Llama 3.3 instruction tuned text only model...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": "llama3"
+ },
+ "top_provider": {
+ "context_length": 65536,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -17217,12 +38968,469 @@
"knowledge": "2024-12"
}
},
+ {
+ "id": "meta-llama/llama-4-maverick",
+ "name": "Meta: Llama 4 Maverick",
+ "provider": "openrouter",
+ "family": "meta-llama",
+ "created_at": "2025-04-05 19:37:02 UTC",
+ "context_window": 1048576,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.15,
+ "output_per_million": 0.6
+ }
+ }
+ },
+ "metadata": {
+ "description": "Llama 4 Maverick 17B Instruct (128E) is a high-capacity multimodal language model from Meta, built on a mixture-of-experts (MoE) architecture with 128 experts and 17 billion active parameters per forward...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama4",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "meta-llama/llama-4-scout",
+ "name": "Meta: Llama 4 Scout",
+ "provider": "openrouter",
+ "family": "meta-llama",
+ "created_at": "2025-04-05 19:31:59 UTC",
+ "context_window": 327680,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.08,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "description": "Llama 4 Scout 17B Instruct (16E) is a mixture-of-experts (MoE) language model developed by Meta, activating 17 billion parameters out of a total of 109B. It supports native multimodal input...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama4",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 327680,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "meta-llama/llama-guard-3-8b",
+ "name": "Llama Guard 3 8B",
+ "provider": "openrouter",
+ "family": "meta-llama",
+ "created_at": "2025-02-12 23:01:58 UTC",
+ "context_window": 131072,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.48,
+ "output_per_million": 0.03
+ }
+ }
+ },
+ "metadata": {
+ "description": "Llama Guard 3 is a Llama-3.1-8B pretrained model, fine-tuned for content safety classification. Similar to previous versions, it can be used to classify content in both LLM inputs (prompt classification)...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": "none"
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "seed",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "meta-llama/llama-guard-4-12b",
+ "name": "Meta: Llama Guard 4 12B",
+ "provider": "openrouter",
+ "family": "meta-llama",
+ "created_at": "2025-04-30 01:06:33 UTC",
+ "context_window": 163840,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "image",
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.18,
+ "output_per_million": 0.18
+ }
+ }
+ },
+ "metadata": {
+ "description": "Llama Guard 4 is a Llama 4 Scout-derived multimodal pretrained model, fine-tuned for content safety classification. Similar to previous versions, it can be used to classify content in both LLM...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 163840,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "microsoft/phi-4",
+ "name": "Microsoft: Phi 4",
+ "provider": "openrouter",
+ "family": "microsoft",
+ "created_at": "2025-01-10 06:17:52 UTC",
+ "context_window": 16384,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.065,
+ "output_per_million": 0.14
+ }
+ }
+ },
+ "metadata": {
+ "description": "[Microsoft Research](/microsoft) Phi-4 is designed to perform well in complex reasoning tasks and can operate efficiently in situations with limited memory or where quick responses are needed. At 14 billion...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 16384,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "microsoft/phi-4-mini-instruct",
+ "name": "Microsoft: Phi 4 Mini Instruct",
+ "provider": "openrouter",
+ "family": "microsoft",
+ "created_at": "2025-10-17 18:34:09 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 128000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.08,
+ "output_per_million": 0.35,
+ "cache_read_input_per_million": 0.08
+ }
+ }
+ },
+ "metadata": {
+ "description": "Phi-4-mini-instruct is a lightweight open model built upon synthetic data and filtered publicly available websites - with a focus on high-quality, reasoning dense data. The model belongs to the Phi-4...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 128000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "microsoft/wizardlm-2-8x22b",
+ "name": "WizardLM-2 8x22B",
+ "provider": "openrouter",
+ "family": "microsoft",
+ "created_at": "2024-04-16 00:00:00 UTC",
+ "context_window": 65535,
+ "max_output_tokens": 8000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.62,
+ "output_per_million": 0.62
+ }
+ }
+ },
+ "metadata": {
+ "description": "WizardLM-2 8x22B is Microsoft AI's most advanced Wizard model. It demonstrates highly competitive performance compared to leading proprietary models, and it consistently outperforms all existing state-of-the-art opensource models. It is...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": "vicuna"
+ },
+ "top_provider": {
+ "context_length": 65535,
+ "max_completion_tokens": 8000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "seed",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
{
"id": "minimax/minimax-01",
"name": "MiniMax-01",
"provider": "openrouter",
"family": "minimax",
- "created_at": "2025-01-15 00:00:00 +0530",
+ "created_at": "2025-01-15 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 1000000,
"knowledge_cutoff": null,
@@ -17238,7 +39446,8 @@
"capabilities": [
"function_calling",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -17249,6 +39458,30 @@
}
},
"metadata": {
+ "description": "MiniMax-01 is a combines MiniMax-Text-01 for text generation and MiniMax-VL-01 for image understanding. It has 456 billion parameters, with 45.9 billion parameters activated per inference, and can handle a context...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1000192,
+ "max_completion_tokens": 1000192,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "temperature",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -17270,7 +39503,7 @@
"name": "MiniMax M1",
"provider": "openrouter",
"family": "minimax",
- "created_at": "2025-06-17 00:00:00 +0530",
+ "created_at": "2025-06-17 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 40000,
"knowledge_cutoff": null,
@@ -17284,7 +39517,8 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -17295,6 +39529,39 @@
}
},
"metadata": {
+ "description": "MiniMax-M1 is a large-scale, open-weight reasoning model designed for extended context and high-efficiency inference. It leverages a hybrid Mixture-of-Experts (MoE) architecture paired with a custom \"lightning attention\" mechanism, allowing it...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1000000,
+ "max_completion_tokens": 40000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -17316,7 +39583,7 @@
"name": "MiniMax M2",
"provider": "openrouter",
"family": "minimax",
- "created_at": "2025-10-23 00:00:00 +0530",
+ "created_at": "2025-10-23 00:00:00 UTC",
"context_window": 196600,
"max_output_tokens": 118000,
"knowledge_cutoff": null,
@@ -17331,18 +39598,58 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.28,
"output_per_million": 1.15,
- "cached_input_per_million": 0.28
+ "cache_read_input_per_million": 0.28,
+ "cache_write_input_per_million": 1.15
}
}
},
"metadata": {
+ "description": "MiniMax-M2 is a compact, high-efficiency large language model optimized for end-to-end coding and agentic workflows. With 10 billion activated parameters (230 billion total), it delivers near-frontier intelligence across general reasoning,...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 196608,
+ "max_completion_tokens": 196608,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -17364,12 +39671,67 @@
}
}
},
+ {
+ "id": "minimax/minimax-m2-her",
+ "name": "MiniMax: MiniMax M2-her",
+ "provider": "openrouter",
+ "family": "minimax",
+ "created_at": "2026-01-23 14:07:19 UTC",
+ "context_window": 65536,
+ "max_output_tokens": 2048,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.3,
+ "output_per_million": 1.2,
+ "cache_read_input_per_million": 0.03
+ }
+ }
+ },
+ "metadata": {
+ "description": "MiniMax M2-her is a dialogue-first large language model built for immersive roleplay, character-driven chat, and expressive multi-turn conversations. Designed to stay consistent in tone and personality, it supports rich message...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 65536,
+ "max_completion_tokens": 2048,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "temperature",
+ "top_p"
+ ]
+ }
+ },
{
"id": "minimax/minimax-m2.1",
"name": "MiniMax M2.1",
"provider": "openrouter",
"family": "minimax",
- "created_at": "2025-12-23 00:00:00 +0530",
+ "created_at": "2025-12-23 00:00:00 UTC",
"context_window": 204800,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -17384,7 +39746,9 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -17395,6 +39759,43 @@
}
},
"metadata": {
+ "description": "MiniMax-M2.1 is a lightweight, state-of-the-art large language model optimized for coding, agentic workflows, and modern application development. With only 10 billion activated parameters, it delivers a major jump in real-world...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 196608,
+ "max_completion_tokens": 196608,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -17419,7 +39820,7 @@
"name": "MiniMax M2.5",
"provider": "openrouter",
"family": "minimax",
- "created_at": "2026-02-12 00:00:00 +0530",
+ "created_at": "2026-02-12 00:00:00 UTC",
"context_window": 204800,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -17434,18 +39835,61 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.3,
"output_per_million": 1.2,
- "cached_input_per_million": 0.03
+ "cache_read_input_per_million": 0.03
}
}
},
"metadata": {
+ "description": "MiniMax-M2.5 is a SOTA large language model designed for real-world productivity. Trained in a diverse range of complex real-world digital working environments, M2.5 builds upon the coding expertise of M2.1...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 196608,
+ "max_completion_tokens": 131072,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "parallel_tool_calls",
+ "presence_penalty",
+ "reasoning",
+ "reasoning_effort",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -17471,7 +39915,7 @@
"name": "MiniMax M2.5 (free)",
"provider": "openrouter",
"family": "minimax",
- "created_at": "2026-02-12 00:00:00 +0530",
+ "created_at": "2026-02-12 00:00:00 UTC",
"context_window": 204800,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -17486,10 +39930,39 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {},
"metadata": {
+ "description": "MiniMax-M2.5 is a SOTA large language model designed for real-world productivity. Trained in a diverse range of complex real-world digital working environments, M2.5 builds upon the coding expertise of M2.1...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 196608,
+ "max_completion_tokens": 8192,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "temperature",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -17514,7 +39987,7 @@
"name": "MiniMax M2.7",
"provider": "openrouter",
"family": "minimax",
- "created_at": "2026-03-18 00:00:00 +0530",
+ "created_at": "2026-03-18 00:00:00 UTC",
"context_window": 204800,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -17528,18 +40001,61 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "structured_output",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.3,
"output_per_million": 1.2,
- "cached_input_per_million": 0.06
+ "cache_read_input_per_million": 0.06,
+ "cache_write_input_per_million": 0.375
}
}
},
"metadata": {
+ "description": "MiniMax-M2.7 is a next-generation large language model designed for autonomous, real-world productivity and continuous improvement. Built to actively participate in its own evolution, M2.7 integrates advanced agentic capabilities through multi-agent...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 196608,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -17563,7 +40079,7 @@
"name": "Codestral 2508",
"provider": "openrouter",
"family": "codestral",
- "created_at": "2025-08-01 00:00:00 +0530",
+ "created_at": "2025-08-01 00:00:00 UTC",
"context_window": 256000,
"max_output_tokens": 256000,
"knowledge_cutoff": null,
@@ -17577,7 +40093,8 @@
},
"capabilities": [
"function_calling",
- "structured_output"
+ "structured_output",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -17588,6 +40105,37 @@
}
},
"metadata": {
+ "description": "Mistral's cutting-edge language model for coding released end of July 2025. Codestral specializes in low-latency, high-frequency tasks such as fill-in-the-middle (FIM), code correction and test generation.\n\n[Blog Post](https://mistral.ai/news/codestral-25-08)",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 256000,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -17610,7 +40158,7 @@
"name": "Devstral 2 2512",
"provider": "openrouter",
"family": "devstral",
- "created_at": "2025-09-12 00:00:00 +0530",
+ "created_at": "2025-09-12 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 262144,
"knowledge_cutoff": null,
@@ -17624,7 +40172,8 @@
},
"capabilities": [
"function_calling",
- "structured_output"
+ "structured_output",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -17635,6 +40184,37 @@
}
},
"metadata": {
+ "description": "Devstral 2 is a state-of-the-art open-source model by Mistral AI specializing in agentic coding. It is a 123B-parameter dense transformer model supporting a 256K context window. Devstral 2 supports exploring...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -17652,12 +40232,77 @@
"knowledge": "2025-12"
}
},
+ {
+ "id": "mistralai/devstral-medium",
+ "name": "Mistral: Devstral Medium",
+ "provider": "openrouter",
+ "family": "mistralai",
+ "created_at": "2025-07-10 15:28:41 UTC",
+ "context_window": 131072,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.39999999999999997,
+ "output_per_million": 2.0,
+ "cache_read_input_per_million": 0.04
+ }
+ }
+ },
+ "metadata": {
+ "description": "Devstral Medium is a high-performance code generation and agentic reasoning model developed jointly by Mistral AI and All Hands AI. Positioned as a step up from Devstral Small, it achieves...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
{
"id": "mistralai/devstral-medium-2507",
"name": "Devstral Medium",
"provider": "openrouter",
"family": "devstral",
- "created_at": "2025-07-10 00:00:00 +0530",
+ "created_at": "2025-07-10 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -17699,12 +40344,77 @@
"knowledge": "2025-05"
}
},
+ {
+ "id": "mistralai/devstral-small",
+ "name": "Mistral: Devstral Small 1.1",
+ "provider": "openrouter",
+ "family": "mistralai",
+ "created_at": "2025-07-10 15:19:11 UTC",
+ "context_window": 131072,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.09999999999999999,
+ "output_per_million": 0.3,
+ "cache_read_input_per_million": 0.01
+ }
+ }
+ },
+ "metadata": {
+ "description": "Devstral Small 1.1 is a 24B parameter open-weight language model for software engineering agents, developed by Mistral AI in collaboration with All Hands AI. Finetuned from Mistral Small 3.1 and...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
{
"id": "mistralai/devstral-small-2505",
"name": "Devstral Small",
"provider": "openrouter",
"family": "devstral",
- "created_at": "2025-05-07 00:00:00 +0530",
+ "created_at": "2025-05-07 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 128000,
"knowledge_cutoff": null,
@@ -17750,7 +40460,7 @@
"name": "Devstral Small 1.1",
"provider": "openrouter",
"family": "devstral",
- "created_at": "2025-07-10 00:00:00 +0530",
+ "created_at": "2025-07-10 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -17792,12 +40502,543 @@
"knowledge": "2025-05"
}
},
+ {
+ "id": "mistralai/ministral-14b-2512",
+ "name": "Mistral: Ministral 3 14B 2512",
+ "provider": "openrouter",
+ "family": "mistralai",
+ "created_at": "2025-12-02 13:22:15 UTC",
+ "context_window": 262144,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.19999999999999998,
+ "output_per_million": 0.19999999999999998,
+ "cache_read_input_per_million": 0.02
+ }
+ }
+ },
+ "metadata": {
+ "description": "The largest model in the Ministral 3 family, Ministral 3 14B offers frontier capabilities and performance comparable to its larger Mistral Small 3.2 24B counterpart. A powerful and efficient language...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "mistralai/ministral-3b-2512",
+ "name": "Mistral: Ministral 3 3B 2512",
+ "provider": "openrouter",
+ "family": "mistralai",
+ "created_at": "2025-12-02 13:19:20 UTC",
+ "context_window": 131072,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.09999999999999999,
+ "output_per_million": 0.09999999999999999,
+ "cache_read_input_per_million": 0.01
+ }
+ }
+ },
+ "metadata": {
+ "description": "The smallest model in the Ministral 3 family, Ministral 3 3B is a powerful, efficient tiny language model with vision capabilities.",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "mistralai/ministral-8b-2512",
+ "name": "Mistral: Ministral 3 8B 2512",
+ "provider": "openrouter",
+ "family": "mistralai",
+ "created_at": "2025-12-02 13:20:54 UTC",
+ "context_window": 262144,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.15,
+ "output_per_million": 0.15,
+ "cache_read_input_per_million": 0.015
+ }
+ }
+ },
+ "metadata": {
+ "description": "A balanced model in the Ministral 3 family, Ministral 3 8B is a powerful, efficient tiny language model with vision capabilities.",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "mistralai/mistral-7b-instruct-v0.1",
+ "name": "Mistral: Mistral 7B Instruct v0.1",
+ "provider": "openrouter",
+ "family": "mistralai",
+ "created_at": "2023-09-28 00:00:00 UTC",
+ "context_window": 2824,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.11,
+ "output_per_million": 0.19
+ }
+ }
+ },
+ "metadata": {
+ "description": "A 7.3B parameter model that outperforms Llama 2 13B on all benchmarks, with optimizations for speed and context length.",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": "mistral"
+ },
+ "top_provider": {
+ "context_length": 2824,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "seed",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "mistralai/mistral-large",
+ "name": "Mistral Large",
+ "provider": "openrouter",
+ "family": "mistralai",
+ "created_at": "2024-02-26 00:00:00 UTC",
+ "context_window": 128000,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.0,
+ "output_per_million": 6.0,
+ "cache_read_input_per_million": 0.19999999999999998
+ }
+ }
+ },
+ "metadata": {
+ "description": "This is Mistral AI's flagship model, Mistral Large 2 (version `mistral-large-2407`). It's a proprietary weights-available model and excels at reasoning, code, JSON, chat, and more. Read the launch announcement [here](https://mistral.ai/news/mistral-large-2407/)....",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "mistralai/mistral-large-2407",
+ "name": "Mistral Large 2407",
+ "provider": "openrouter",
+ "family": "mistralai",
+ "created_at": "2024-11-19 01:06:55 UTC",
+ "context_window": 131072,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.0,
+ "output_per_million": 6.0,
+ "cache_read_input_per_million": 0.19999999999999998
+ }
+ }
+ },
+ "metadata": {
+ "description": "This is Mistral AI's flagship model, Mistral Large 2 (version mistral-large-2407). It's a proprietary weights-available model and excels at reasoning, code, JSON, chat, and more. Read the launch announcement [here](https://mistral.ai/news/mistral-large-2407/)....",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "mistralai/mistral-large-2411",
+ "name": "Mistral Large 2411",
+ "provider": "openrouter",
+ "family": "mistralai",
+ "created_at": "2024-11-19 01:11:25 UTC",
+ "context_window": 131072,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.0,
+ "output_per_million": 6.0,
+ "cache_read_input_per_million": 0.19999999999999998
+ }
+ }
+ },
+ "metadata": {
+ "description": "Mistral Large 2 2411 is an update of [Mistral Large 2](/mistralai/mistral-large) released together with [Pixtral Large 2411](/mistralai/pixtral-large-2411) It provides a significant upgrade on the previous [Mistral Large 24.07](/mistralai/mistral-large-2407), with notable...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "mistralai/mistral-large-2512",
+ "name": "Mistral: Mistral Large 3 2512",
+ "provider": "openrouter",
+ "family": "mistralai",
+ "created_at": "2025-12-01 21:27:52 UTC",
+ "context_window": 262144,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5,
+ "cache_read_input_per_million": 0.049999999999999996
+ }
+ }
+ },
+ "metadata": {
+ "description": "Mistral Large 3 2512 is Mistral’s most capable model to date, featuring a sparse mixture-of-experts architecture with 41B active parameters (675B total), and released under the Apache 2.0 license.",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
{
"id": "mistralai/mistral-medium-3",
"name": "Mistral Medium 3",
"provider": "openrouter",
"family": "mistral-medium",
- "created_at": "2025-05-07 00:00:00 +0530",
+ "created_at": "2025-05-07 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -17813,7 +41054,8 @@
"capabilities": [
"function_calling",
"structured_output",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -17824,6 +41066,38 @@
}
},
"metadata": {
+ "description": "Mistral Medium 3 is a high-performance enterprise-grade language model designed to deliver frontier-level capabilities at significantly reduced operational cost. It balances state-of-the-art reasoning and multimodal performance with 8× lower cost...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -17841,12 +41115,80 @@
"knowledge": "2025-05"
}
},
+ {
+ "id": "mistralai/mistral-medium-3-5",
+ "name": "Mistral: Mistral Medium 3.5",
+ "provider": "openrouter",
+ "family": "mistralai",
+ "created_at": "2026-04-30 17:33:59 UTC",
+ "context_window": 262144,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.5,
+ "output_per_million": 7.5
+ }
+ }
+ },
+ "metadata": {
+ "description": "Mistral Medium 3.5 is a dense 128B instruction-following model from Mistral AI. It supports text and image inputs with text output, and is designed for agentic workflows, coding, and complex...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2025-08-12 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 262144,
"knowledge_cutoff": null,
@@ -17862,7 +41204,8 @@
"capabilities": [
"function_calling",
"structured_output",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -17873,6 +41216,38 @@
}
},
"metadata": {
+ "description": "Mistral Medium 3.1 is an updated version of Mistral Medium 3, which is a high-performance enterprise-grade language model designed to deliver frontier-level capabilities at significantly reduced operational cost. It balances...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -17890,12 +41265,214 @@
"knowledge": "2025-05"
}
},
+ {
+ "id": "mistralai/mistral-nemo",
+ "name": "Mistral: Mistral Nemo",
+ "provider": "openrouter",
+ "family": "mistralai",
+ "created_at": "2024-07-19 00:00:00 UTC",
+ "context_window": 131072,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.02,
+ "output_per_million": 0.03
+ }
+ }
+ },
+ "metadata": {
+ "description": "A 12B parameter model with a 128k token context length built by Mistral in collaboration with NVIDIA. The model is multilingual, supporting English, French, German, Spanish, Italian, Portuguese, Chinese, Japanese,...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": "mistral"
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "mistralai/mistral-saba",
+ "name": "Mistral: Saba",
+ "provider": "openrouter",
+ "family": "mistralai",
+ "created_at": "2025-02-17 14:40:39 UTC",
+ "context_window": 32768,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.19999999999999998,
+ "output_per_million": 0.6,
+ "cache_read_input_per_million": 0.02
+ }
+ }
+ },
+ "metadata": {
+ "description": "Mistral Saba is a 24B-parameter language model specifically designed for the Middle East and South Asia, delivering accurate and contextually relevant responses while maintaining efficient performance. Trained on curated regional...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 32768,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "mistralai/mistral-small-24b-instruct-2501",
+ "name": "Mistral: Mistral Small 3",
+ "provider": "openrouter",
+ "family": "mistralai",
+ "created_at": "2025-01-30 16:43:29 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.049999999999999996,
+ "output_per_million": 0.08
+ }
+ }
+ },
+ "metadata": {
+ "description": "Mistral Small 3 is a 24B-parameter language model optimized for low-latency performance across common AI tasks. Released under the Apache 2.0 license, it features both pre-trained and instruction-tuned versions designed...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 32768,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
{
"id": "mistralai/mistral-small-2603",
"name": "Mistral Small 4",
"provider": "openrouter",
"family": "mistral-small",
- "created_at": "2026-03-16 00:00:00 +0530",
+ "created_at": "2026-03-16 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 262144,
"knowledge_cutoff": null,
@@ -17911,7 +41488,9 @@
"capabilities": [
"function_calling",
"reasoning",
- "vision"
+ "vision",
+ "streaming",
+ "structured_output"
],
"pricing": {
"text_tokens": {
@@ -17922,6 +41501,41 @@
}
},
"metadata": {
+ "description": "Mistral Small 4 is the next major release in the Mistral Small family, unifying the capabilities of several flagship Mistral models into a single system. It combines strong reasoning from...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -17944,7 +41558,7 @@
"name": "Mistral Small 3.1 24B Instruct",
"provider": "openrouter",
"family": "mistral-small",
- "created_at": "2025-03-17 00:00:00 +0530",
+ "created_at": "2025-03-17 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -17960,10 +41574,47 @@
"capabilities": [
"function_calling",
"structured_output",
- "vision"
+ "vision",
+ "streaming"
],
- "pricing": {},
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.35,
+ "output_per_million": 0.56
+ }
+ }
+ },
"metadata": {
+ "description": "Mistral Small 3.1 24B Instruct is an upgraded variant of Mistral Small 3 (2501), featuring 24 billion parameters with advanced multimodal capabilities. It provides state-of-the-art performance in text-based reasoning and...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "seed",
+ "temperature",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -17986,7 +41637,7 @@
"name": "Mistral Small 3.2 24B Instruct",
"provider": "openrouter",
"family": "mistral-small",
- "created_at": "2025-06-20 00:00:00 +0530",
+ "created_at": "2025-06-20 00:00:00 UTC",
"context_window": 96000,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -18002,10 +41653,55 @@
"capabilities": [
"function_calling",
"structured_output",
- "vision"
+ "vision",
+ "streaming",
+ "predicted_outputs"
],
- "pricing": {},
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.19999999999999998
+ }
+ }
+ },
"metadata": {
+ "description": "Mistral-Small-3.2-24B-Instruct-2506 is an updated 24B parameter model from Mistral optimized for instruction following, repetition reduction, and improved function calling. Compared to the 3.1 release, version 3.2 significantly improves accuracy on...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -18023,12 +41719,280 @@
"knowledge": "2024-10"
}
},
+ {
+ "id": "mistralai/mixtral-8x22b-instruct",
+ "name": "Mistral: Mixtral 8x22B Instruct",
+ "provider": "openrouter",
+ "family": "mistralai",
+ "created_at": "2024-04-17 00:00:00 UTC",
+ "context_window": 65536,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.0,
+ "output_per_million": 6.0,
+ "cache_read_input_per_million": 0.19999999999999998
+ }
+ }
+ },
+ "metadata": {
+ "description": "Mistral's official instruct fine-tuned version of [Mixtral 8x22B](/models/mistralai/mixtral-8x22b). It uses 39B active parameters out of 141B, offering unparalleled cost efficiency for its size. Its strengths include: - strong math, coding,...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": "mistral"
+ },
+ "top_provider": {
+ "context_length": 65536,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "mistralai/mixtral-8x7b-instruct",
+ "name": "Mistral: Mixtral 8x7B Instruct",
+ "provider": "openrouter",
+ "family": "mistralai",
+ "created_at": "2023-12-10 00:00:00 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.54,
+ "output_per_million": 0.54
+ }
+ }
+ },
+ "metadata": {
+ "description": "Mixtral 8x7B Instruct is a pretrained generative Sparse Mixture of Experts, by Mistral AI, for chat and instruction use. Incorporates 8 experts (feed-forward networks) for a total of 47 billion...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": "mistral"
+ },
+ "top_provider": {
+ "context_length": 32768,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "mistralai/pixtral-large-2411",
+ "name": "Mistral: Pixtral Large 2411",
+ "provider": "openrouter",
+ "family": "mistralai",
+ "created_at": "2024-11-19 00:49:48 UTC",
+ "context_window": 131072,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.0,
+ "output_per_million": 6.0,
+ "cache_read_input_per_million": 0.19999999999999998
+ }
+ }
+ },
+ "metadata": {
+ "description": "Pixtral Large is a 124B parameter, open-weight, multimodal model built on top of [Mistral Large 2](/mistralai/mistral-large-2411). The model is able to understand documents, charts and natural images. The model is...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "mistralai/voxtral-small-24b-2507",
+ "name": "Mistral: Voxtral Small 24B 2507",
+ "provider": "openrouter",
+ "family": "mistralai",
+ "created_at": "2025-10-30 14:39:04 UTC",
+ "context_window": 32000,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "audio"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.09999999999999999,
+ "output_per_million": 0.3,
+ "cache_read_input_per_million": 0.01
+ }
+ }
+ },
+ "metadata": {
+ "description": "Voxtral Small is an enhancement of Mistral Small 3, incorporating state-of-the-art audio input capabilities while retaining best-in-class text performance. It excels at speech transcription, translation and audio understanding. Input audio...",
+ "architecture": {
+ "modality": "text+audio->text",
+ "input_modalities": [
+ "text",
+ "audio"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 32000,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
{
"id": "moonshotai/kimi-k2",
"name": "Kimi K2",
"provider": "openrouter",
"family": "kimi",
- "created_at": "2025-07-11 00:00:00 +0530",
+ "created_at": "2025-07-11 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -18041,7 +42005,8 @@
]
},
"capabilities": [
- "function_calling"
+ "function_calling",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -18052,6 +42017,37 @@
}
},
"metadata": {
+ "description": "Kimi K2 Instruct is a large-scale Mixture-of-Experts (MoE) language model developed by Moonshot AI, featuring 1 trillion total parameters with 32 billion active per forward pass. It is optimized for...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -18074,7 +42070,7 @@
"name": "Kimi K2 Instruct 0905",
"provider": "openrouter",
"family": "kimi",
- "created_at": "2025-09-05 00:00:00 +0530",
+ "created_at": "2025-09-05 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
@@ -18088,7 +42084,9 @@
},
"capabilities": [
"function_calling",
- "structured_output"
+ "structured_output",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -18099,6 +42097,41 @@
}
},
"metadata": {
+ "description": "Kimi K2 0905 is the September update of [Kimi K2 0711](moonshotai/kimi-k2). It is a large-scale Mixture-of-Experts (MoE) language model developed by Moonshot AI, featuring 1 trillion total parameters with 32...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 262144,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -18121,7 +42154,7 @@
"name": "Kimi K2 Instruct 0905 (exacto)",
"provider": "openrouter",
"family": "kimi",
- "created_at": "2025-09-05 00:00:00 +0530",
+ "created_at": "2025-09-05 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
@@ -18168,7 +42201,7 @@
"name": "Kimi K2 Thinking",
"provider": "openrouter",
"family": "kimi-thinking",
- "created_at": "2025-11-06 00:00:00 +0530",
+ "created_at": "2025-11-06 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 262144,
"knowledge_cutoff": null,
@@ -18183,18 +42216,57 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.6,
"output_per_million": 2.5,
- "cached_input_per_million": 0.15
+ "cache_read_input_per_million": 0.15
}
}
},
"metadata": {
+ "description": "Kimi K2 Thinking is Moonshot AI’s most advanced open reasoning model to date, extending the K2 series into agentic, long-horizon reasoning. Built on the trillion-parameter Mixture-of-Experts (MoE) architecture introduced in...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 262144,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -18221,7 +42293,7 @@
"name": "Kimi K2.5",
"provider": "openrouter",
"family": "kimi",
- "created_at": "2026-01-27 00:00:00 +0530",
+ "created_at": "2026-01-27 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 262144,
"knowledge_cutoff": null,
@@ -18239,18 +42311,61 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.6,
"output_per_million": 3,
- "cached_input_per_million": 0.1
+ "cache_read_input_per_million": 0.1
}
}
},
"metadata": {
+ "description": "Kimi K2.5 is Moonshot AI's native multimodal model, delivering state-of-the-art visual coding capability and a self-directed agent swarm paradigm. Built on Kimi K2 with continued pretraining over approximately 15T mixed...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 65535,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "parallel_tool_calls",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -18272,12 +42387,409 @@
"knowledge": "2025-01"
}
},
+ {
+ "id": "moonshotai/kimi-k2.6",
+ "name": "Kimi K2.6",
+ "provider": "openrouter",
+ "family": "kimi",
+ "created_at": "2026-04-20 00:00:00 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 262144,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "reasoning",
+ "vision",
+ "streaming",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.95,
+ "output_per_million": 4,
+ "cache_read_input_per_million": 0.16
+ }
+ }
+ },
+ "metadata": {
+ "description": "Kimi K2.6 is Moonshot AI's next-generation multimodal model, designed for long-horizon coding, coding-driven UI/UX generation, and multi-agent orchestration. It handles complex end-to-end coding tasks across Python, Rust, and Go, and...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "parallel_tool_calls",
+ "presence_penalty",
+ "reasoning",
+ "reasoning_effort",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ],
+ "source": "models.dev",
+ "provider_id": "openrouter",
+ "open_weights": true,
+ "attachment": true,
+ "temperature": true,
+ "last_updated": "2026-04-20",
+ "interleaved": {
+ "field": "reasoning_details"
+ },
+ "cost": {
+ "input": 0.95,
+ "output": 4,
+ "cache_read": 0.16
+ },
+ "limit": {
+ "context": 262144,
+ "output": 262144
+ }
+ }
+ },
+ {
+ "id": "morph/morph-v3-fast",
+ "name": "Morph: Morph V3 Fast",
+ "provider": "openrouter",
+ "family": "morph",
+ "created_at": "2025-07-07 17:40:02 UTC",
+ "context_window": 81920,
+ "max_output_tokens": 38000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.7999999999999999,
+ "output_per_million": 1.2
+ }
+ }
+ },
+ "metadata": {
+ "description": "Morph's fastest apply model for code edits. ~10,500 tokens/sec with 96% accuracy for rapid code transformations. The model requires the prompt to be in the following format: {instruction} {initial_code} {edit_snippet}...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 81920,
+ "max_completion_tokens": 38000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "stop",
+ "temperature"
+ ]
+ }
+ },
+ {
+ "id": "morph/morph-v3-large",
+ "name": "Morph: Morph V3 Large",
+ "provider": "openrouter",
+ "family": "morph",
+ "created_at": "2025-07-07 17:54:18 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 131072,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.8999999999999999,
+ "output_per_million": 1.9
+ }
+ }
+ },
+ "metadata": {
+ "description": "Morph's high-accuracy apply model for complex code edits. ~4,500 tokens/sec with 98% accuracy for precise code transformations. The model requires the prompt to be in the following format: {instruction} {initial_code}...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 131072,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "stop",
+ "temperature"
+ ]
+ }
+ },
+ {
+ "id": "nex-agi/deepseek-v3.1-nex-n1",
+ "name": "Nex AGI: DeepSeek V3.1 Nex N1",
+ "provider": "openrouter",
+ "family": "nex-agi",
+ "created_at": "2025-12-08 14:33:13 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 163840,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.135,
+ "output_per_million": 0.5
+ }
+ }
+ },
+ "metadata": {
+ "description": "DeepSeek V3.1 Nex-N1 is the flagship release of the Nex-N1 series — a post-trained model designed to highlight agent autonomy, tool use, and real-world productivity. Nex-N1 demonstrates competitive performance across...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "DeepSeek",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 163840,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "response_format",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "nousresearch/hermes-2-pro-llama-3-8b",
+ "name": "NousResearch: Hermes 2 Pro - Llama-3 8B",
+ "provider": "openrouter",
+ "family": "nousresearch",
+ "created_at": "2024-05-27 00:00:00 UTC",
+ "context_window": 8192,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.14,
+ "output_per_million": 0.14
+ }
+ }
+ },
+ "metadata": {
+ "description": "Hermes 2 Pro is an upgraded, retrained version of Nous Hermes 2, consisting of an updated and cleaned version of the OpenHermes 2.5 Dataset, as well as a newly introduced...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": "chatml"
+ },
+ "top_provider": {
+ "context_length": 8192,
+ "max_completion_tokens": 8192,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "nousresearch/hermes-3-llama-3.1-405b",
+ "name": "Nous: Hermes 3 405B Instruct",
+ "provider": "openrouter",
+ "family": "nousresearch",
+ "created_at": "2024-08-16 00:00:00 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.0,
+ "output_per_million": 1.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "Hermes 3 is a generalist language model with many improvements over Hermes 2, including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": "chatml"
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2024-08-16 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -18290,10 +42802,38 @@
]
},
"capabilities": [
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {},
"metadata": {
+ "description": "Hermes 3 is a generalist language model with many improvements over Hermes 2, including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": "chatml"
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -18311,12 +42851,78 @@
"knowledge": "2023-12"
}
},
+ {
+ "id": "nousresearch/hermes-3-llama-3.1-70b",
+ "name": "Nous: Hermes 3 70B Instruct",
+ "provider": "openrouter",
+ "family": "nousresearch",
+ "created_at": "2024-08-18 00:00:00 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.3,
+ "output_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "description": "Hermes 3 is a generalist language model with many improvements over [Hermes 2](/models/nousresearch/nous-hermes-2-mistral-7b-dpo), including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": "chatml"
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
{
"id": "nousresearch/hermes-4-405b",
"name": "Hermes 4 405B",
"provider": "openrouter",
"family": "hermes",
- "created_at": "2025-08-25 00:00:00 +0530",
+ "created_at": "2025-08-25 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -18330,7 +42936,9 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "structured_output"
],
"pricing": {
"text_tokens": {
@@ -18341,6 +42949,36 @@
}
},
"metadata": {
+ "description": "Hermes 4 is a large-scale reasoning model built on Meta-Llama-3.1-405B and released by Nous Research. It introduces a hybrid reasoning mode, where the model can choose to deliberate internally with...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "temperature",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -18363,7 +43001,7 @@
"name": "Hermes 4 70B",
"provider": "openrouter",
"family": "hermes",
- "created_at": "2025-08-25 00:00:00 +0530",
+ "created_at": "2025-08-25 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -18378,7 +43016,8 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -18389,6 +43028,36 @@
}
},
"metadata": {
+ "description": "Hermes 4 70B is a hybrid reasoning model from Nous Research, built on Meta-Llama-3.1-70B. It introduces the same hybrid mode as the larger 405B release, allowing the model to either...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "temperature",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -18406,12 +43075,220 @@
"knowledge": "2023-12"
}
},
+ {
+ "id": "nvidia/llama-3.1-nemotron-70b-instruct",
+ "name": "NVIDIA: Llama 3.1 Nemotron 70B Instruct",
+ "provider": "openrouter",
+ "family": "nvidia",
+ "created_at": "2024-10-15 00:00:00 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.2,
+ "output_per_million": 1.2
+ }
+ }
+ },
+ "metadata": {
+ "description": "NVIDIA's Llama 3.1 Nemotron 70B is a language model designed for generating precise and useful responses. Leveraging [Llama 3.1 70B](/models/meta-llama/llama-3.1-70b-instruct) architecture and Reinforcement Learning from Human Feedback (RLHF), it excels...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": "llama3"
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "nvidia/llama-3.3-nemotron-super-49b-v1.5",
+ "name": "NVIDIA: Llama 3.3 Nemotron Super 49B V1.5",
+ "provider": "openrouter",
+ "family": "nvidia",
+ "created_at": "2025-10-10 13:03:15 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.09999999999999999,
+ "output_per_million": 0.39999999999999997
+ }
+ }
+ },
+ "metadata": {
+ "description": "Llama-3.3-Nemotron-Super-49B-v1.5 is a 49B-parameter, English-centric reasoning/chat model derived from Meta’s Llama-3.3-70B-Instruct with a 128K context. It’s post-trained for agentic workflows (RAG, tool calling) via SFT across math, code, science, and...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "nvidia/nemotron-3-nano-30b-a3b",
+ "name": "NVIDIA: Nemotron 3 Nano 30B A3B",
+ "provider": "openrouter",
+ "family": "nvidia",
+ "created_at": "2025-12-14 16:54:35 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 228000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.049999999999999996,
+ "output_per_million": 0.19999999999999998
+ }
+ }
+ },
+ "metadata": {
+ "description": "NVIDIA Nemotron 3 Nano 30B A3B is a small language MoE model with highest compute efficiency and accuracy for developers to build specialized agentic AI systems. The model is fully...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 228000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2025-12-14 00:00:00 UTC",
"context_window": 256000,
"max_output_tokens": 256000,
"knowledge_cutoff": null,
@@ -18426,10 +43303,39 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {},
"metadata": {
+ "description": "NVIDIA Nemotron 3 Nano 30B A3B is a small language MoE model with highest compute efficiency and accuracy for developers to build specialized agentic AI systems. The model is fully...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 256000,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "seed",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -18447,12 +43353,88 @@
"knowledge": "2025-11"
}
},
+ {
+ "id": "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free",
+ "name": "Nemotron 3 Nano Omni (free)",
+ "provider": "openrouter",
+ "family": "nemotron",
+ "created_at": "2026-04-28 00:00:00 UTC",
+ "context_window": 256000,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "video",
+ "audio"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "reasoning",
+ "vision",
+ "streaming"
+ ],
+ "pricing": {},
+ "metadata": {
+ "description": "NVIDIA Nemotron™ 3 Nano Omni is a 30B-A3B open multimodal model designed to function as a perception and context sub-agent in enterprise agent systems. It accepts text, image, video, and...",
+ "architecture": {
+ "modality": "text+image+audio+video->text",
+ "input_modalities": [
+ "text",
+ "audio",
+ "image",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 256000,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "seed",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
+ "source": "models.dev",
+ "provider_id": "openrouter",
+ "open_weights": true,
+ "attachment": true,
+ "temperature": true,
+ "last_updated": "2026-04-28",
+ "cost": {
+ "input": 0,
+ "output": 0
+ },
+ "limit": {
+ "context": 256000,
+ "output": 65536
+ }
+ }
+ },
{
"id": "nvidia/nemotron-3-super-120b-a12b",
"name": "Nemotron 3 Super",
"provider": "openrouter",
"family": "nemotron",
- "created_at": "2026-03-11 00:00:00 +0530",
+ "created_at": "2026-03-11 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 262144,
"knowledge_cutoff": null,
@@ -18466,7 +43448,10 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "structured_output",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -18477,6 +43462,44 @@
}
},
"metadata": {
+ "description": "NVIDIA Nemotron 3 Super is a 120B-parameter open hybrid MoE model, activating just 12B parameters for maximum compute efficiency and accuracy in complex multi-agent applications. Built on a hybrid Mamba-Transformer...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -18499,7 +43522,7 @@
"name": "Nemotron 3 Super (free)",
"provider": "openrouter",
"family": "nemotron",
- "created_at": "2026-03-11 00:00:00 +0530",
+ "created_at": "2026-03-11 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 262144,
"knowledge_cutoff": null,
@@ -18513,10 +43536,42 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "structured_output"
],
"pricing": {},
"metadata": {
+ "description": "NVIDIA Nemotron 3 Super is a 120B-parameter open hybrid MoE model, activating just 12B parameters for maximum compute efficiency and accuracy in complex multi-agent applications. Built on a hybrid Mamba-Transformer...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 262144,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -18534,12 +43589,83 @@
"knowledge": "2024-04"
}
},
+ {
+ "id": "nvidia/nemotron-nano-12b-v2-vl",
+ "name": "NVIDIA: Nemotron Nano 12B 2 VL",
+ "provider": "openrouter",
+ "family": "nvidia",
+ "created_at": "2025-10-28 18:19:25 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "image",
+ "text",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.19999999999999998,
+ "output_per_million": 0.6
+ }
+ }
+ },
+ "metadata": {
+ "description": "NVIDIA Nemotron Nano 2 VL is a 12-billion-parameter open multimodal reasoning model designed for video understanding and document intelligence. It introduces a hybrid Transformer-Mamba architecture, combining transformer-level accuracy with Mamba’s...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2025-10-28 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 128000,
"knowledge_cutoff": null,
@@ -18555,10 +43681,41 @@
"capabilities": [
"function_calling",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {},
"metadata": {
+ "description": "NVIDIA Nemotron Nano 2 VL is a 12-billion-parameter open multimodal reasoning model designed for video understanding and document intelligence. It introduces a hybrid Transformer-Mamba architecture, combining transformer-level accuracy with Mamba’s...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 128000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "seed",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -18581,7 +43738,7 @@
"name": "nvidia-nemotron-nano-9b-v2",
"provider": "openrouter",
"family": "nemotron",
- "created_at": "2025-08-18 00:00:00 +0530",
+ "created_at": "2025-08-18 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -18595,7 +43752,10 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "structured_output",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -18606,6 +43766,42 @@
}
},
"metadata": {
+ "description": "NVIDIA-Nemotron-Nano-9B-v2 is a large language model (LLM) trained from scratch by NVIDIA, and designed as a unified model for both reasoning and non-reasoning tasks. It responds to user queries and...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -18628,7 +43824,7 @@
"name": "Nemotron Nano 9B V2 (free)",
"provider": "openrouter",
"family": "nemotron",
- "created_at": "2025-09-05 00:00:00 +0530",
+ "created_at": "2025-09-05 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 128000,
"knowledge_cutoff": null,
@@ -18643,10 +43839,41 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {},
"metadata": {
+ "description": "NVIDIA-Nemotron-Nano-9B-v2 is a large language model (LLM) trained from scratch by NVIDIA, and designed as a unified model for both reasoning and non-reasoning tasks. It responds to user queries and...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -18664,12 +43891,616 @@
"knowledge": "2024-09"
}
},
+ {
+ "id": "openai/gpt-3.5-turbo",
+ "name": "OpenAI: GPT-3.5 Turbo",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2023-05-28 00:00:00 UTC",
+ "context_window": 16385,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "description": "GPT-3.5 Turbo is OpenAI's fastest model. It can understand and generate natural language or code, and is optimized for chat and traditional completion tasks.\n\nTraining data up to Sep 2021.",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 16385,
+ "max_completion_tokens": 4096,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "openai/gpt-3.5-turbo-0613",
+ "name": "OpenAI: GPT-3.5 Turbo (older v0613)",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2024-01-25 00:00:00 UTC",
+ "context_window": 4095,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.0,
+ "output_per_million": 2.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "GPT-3.5 Turbo is OpenAI's fastest model. It can understand and generate natural language or code, and is optimized for chat and traditional completion tasks.\n\nTraining data up to Sep 2021.",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 4095,
+ "max_completion_tokens": 4096,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_completion_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "openai/gpt-3.5-turbo-16k",
+ "name": "OpenAI: GPT-3.5 Turbo 16k",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2023-08-28 00:00:00 UTC",
+ "context_window": 16385,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 3.0,
+ "output_per_million": 4.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "This model offers four times the context length of gpt-3.5-turbo, allowing it to support approximately 20 pages of text in a single request at a higher cost. Training data: up...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 16385,
+ "max_completion_tokens": 4096,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_completion_tokens",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "openai/gpt-3.5-turbo-instruct",
+ "name": "OpenAI: GPT-3.5 Turbo Instruct",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2023-09-28 00:00:00 UTC",
+ "context_window": 4095,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.5,
+ "output_per_million": 2.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "This model is a variant of GPT-3.5 Turbo tuned for instructional prompts and omitting chat-related optimizations. Training data: up to Sep 2021.",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": "chatml"
+ },
+ "top_provider": {
+ "context_length": 4095,
+ "max_completion_tokens": 4096,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "openai/gpt-4",
+ "name": "OpenAI: GPT-4",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2023-05-28 00:00:00 UTC",
+ "context_window": 8191,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 30.0,
+ "output_per_million": 60.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "OpenAI's flagship model, GPT-4 is a large-scale multimodal language model capable of solving difficult problems with greater accuracy than previous models due to its broader general knowledge and advanced reasoning...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 8191,
+ "max_completion_tokens": 4096,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_completion_tokens",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "openai/gpt-4-0314",
+ "name": "OpenAI: GPT-4 (older v0314)",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2023-05-28 00:00:00 UTC",
+ "context_window": 8191,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 30.0,
+ "output_per_million": 60.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "GPT-4-0314 is the first version of GPT-4 released, with a context length of 8,192 tokens, and was supported until June 14. Training data: up to Sep 2021.",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 8191,
+ "max_completion_tokens": 4096,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "openai/gpt-4-1106-preview",
+ "name": "OpenAI: GPT-4 Turbo (older v1106)",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2023-11-06 00:00:00 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 10.0,
+ "output_per_million": 30.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "The latest GPT-4 Turbo model with vision capabilities. Vision requests can now use JSON mode and function calling.\n\nTraining data: up to April 2023.",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 4096,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "openai/gpt-4-turbo",
+ "name": "OpenAI: GPT-4 Turbo",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2024-04-09 00:00:00 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 10.0,
+ "output_per_million": 30.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "The latest GPT-4 Turbo model with vision capabilities. Vision requests can now use JSON mode and function calling.\n\nTraining data: up to December 2023.",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 4096,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "openai/gpt-4-turbo-preview",
+ "name": "OpenAI: GPT-4 Turbo Preview",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2024-01-25 00:00:00 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 10.0,
+ "output_per_million": 30.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "The preview GPT-4 model with improved instruction following, JSON mode, reproducible outputs, parallel function calling, and more. Training data: up to Dec 2023. **Note:** heavily rate limited by OpenAI while...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 4096,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
{
"id": "openai/gpt-4.1",
"name": "GPT-4.1",
"provider": "openrouter",
"family": "gpt",
- "created_at": "2025-04-14 00:00:00 +0530",
+ "created_at": "2025-04-14 00:00:00 UTC",
"context_window": 1047576,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -18685,18 +44516,50 @@
"capabilities": [
"function_calling",
"structured_output",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 2,
"output_per_million": 8,
- "cached_input_per_million": 0.5
+ "cache_read_input_per_million": 0.5
}
}
},
"metadata": {
+ "description": "GPT-4.1 is a flagship large language model optimized for advanced instruction following, real-world software engineering, and long-context reasoning. It supports a 1 million token context window and outperforms GPT-4o and...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1047576,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_completion_tokens",
+ "max_tokens",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -18720,7 +44583,7 @@
"name": "GPT-4.1 Mini",
"provider": "openrouter",
"family": "gpt-mini",
- "created_at": "2025-04-14 00:00:00 +0530",
+ "created_at": "2025-04-14 00:00:00 UTC",
"context_window": 1047576,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -18736,18 +44599,50 @@
"capabilities": [
"function_calling",
"structured_output",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.4,
"output_per_million": 1.6,
- "cached_input_per_million": 0.1
+ "cache_read_input_per_million": 0.1
}
}
},
"metadata": {
+ "description": "GPT-4.1 Mini is a mid-sized model delivering performance competitive with GPT-4o at substantially lower latency and cost. It retains a 1 million token context window and scores 45.1% on hard...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1047576,
+ "max_completion_tokens": 32768,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_completion_tokens",
+ "max_tokens",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -18766,12 +44661,443 @@
"knowledge": "2024-04"
}
},
+ {
+ "id": "openai/gpt-4.1-nano",
+ "name": "OpenAI: GPT-4.1 Nano",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2025-04-14 17:22:49 UTC",
+ "context_window": 1047576,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "image",
+ "text",
+ "file"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.09999999999999999,
+ "output_per_million": 0.39999999999999997,
+ "cache_read_input_per_million": 0.024999999999999998
+ }
+ }
+ },
+ "metadata": {
+ "description": "For tasks that demand low latency, GPT‑4.1 nano is the fastest and cheapest model in the GPT-4.1 series. It delivers exceptional performance at a small size with its 1 million...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1047576,
+ "max_completion_tokens": 32768,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_completion_tokens",
+ "max_tokens",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "openai/gpt-4o",
+ "name": "OpenAI: GPT-4o",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2024-05-13 00:00:00 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "GPT-4o (\"o\" for \"omni\") is OpenAI's latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of [GPT-4 Turbo](/models/openai/gpt-4-turbo) while being twice as...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_completion_tokens",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p",
+ "web_search_options"
+ ]
+ }
+ },
+ {
+ "id": "openai/gpt-4o-2024-05-13",
+ "name": "OpenAI: GPT-4o (2024-05-13)",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2024-05-13 00:00:00 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 5.0,
+ "output_per_million": 15.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "GPT-4o (\"o\" for \"omni\") is OpenAI's latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of [GPT-4 Turbo](/models/openai/gpt-4-turbo) while being twice as...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 4096,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_completion_tokens",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p",
+ "web_search_options"
+ ]
+ }
+ },
+ {
+ "id": "openai/gpt-4o-2024-08-06",
+ "name": "OpenAI: GPT-4o (2024-08-06)",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2024-08-06 00:00:00 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 1.25
+ }
+ }
+ },
+ "metadata": {
+ "description": "The 2024-08-06 version of GPT-4o offers improved performance in structured outputs, with the ability to supply a JSON schema in the respone_format. Read more [here](https://openai.com/index/introducing-structured-outputs-in-the-api/). GPT-4o (\"o\" for \"omni\") is...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_completion_tokens",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p",
+ "web_search_options"
+ ]
+ }
+ },
+ {
+ "id": "openai/gpt-4o-2024-11-20",
+ "name": "OpenAI: GPT-4o (2024-11-20)",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2024-11-20 18:33:14 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10.0,
+ "cache_read_input_per_million": 1.25
+ }
+ }
+ },
+ "metadata": {
+ "description": "The 2024-11-20 version of GPT-4o offers a leveled-up creative writing ability with more natural, engaging, and tailored writing to improve relevance & readability. It’s also better at working with uploaded...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 16384,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p",
+ "web_search_options"
+ ]
+ }
+ },
+ {
+ "id": "openai/gpt-4o-audio-preview",
+ "name": "OpenAI: GPT-4o Audio",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2025-08-15 04:44:21 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "audio",
+ "text"
+ ],
+ "output": [
+ "text",
+ "audio"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "The gpt-4o-audio-preview model adds support for audio inputs as prompts. This enhancement allows the model to detect nuances within audio recordings and add depth to generated user experiences. Audio outputs...",
+ "architecture": {
+ "modality": "text+audio->text+audio",
+ "input_modalities": [
+ "audio",
+ "text"
+ ],
+ "output_modalities": [
+ "text",
+ "audio"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 16384,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
{
"id": "openai/gpt-4o-mini",
"name": "GPT-4o-mini",
"provider": "openrouter",
"family": "gpt-mini",
- "created_at": "2024-07-18 00:00:00 +0530",
+ "created_at": "2024-07-18 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
@@ -18787,18 +45113,57 @@
"capabilities": [
"function_calling",
"structured_output",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.15,
"output_per_million": 0.6,
- "cached_input_per_million": 0.08
+ "cache_read_input_per_million": 0.08
}
}
},
"metadata": {
+ "description": "GPT-4o mini is OpenAI's newest model after [GPT-4 Omni](/models/openai/gpt-4o), supporting both text and image inputs with text outputs. As their most advanced small model, it is many multiples more affordable...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_completion_tokens",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p",
+ "web_search_options"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -18817,12 +45182,197 @@
"knowledge": "2024-10"
}
},
+ {
+ "id": "openai/gpt-4o-mini-2024-07-18",
+ "name": "OpenAI: GPT-4o-mini (2024-07-18)",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2024-07-18 00:00:00 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.15,
+ "output_per_million": 0.6,
+ "cache_read_input_per_million": 0.075
+ }
+ }
+ },
+ "metadata": {
+ "description": "GPT-4o mini is OpenAI's newest model after [GPT-4 Omni](/models/openai/gpt-4o), supporting both text and image inputs with text outputs. As their most advanced small model, it is many multiples more affordable...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 16384,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p",
+ "web_search_options"
+ ]
+ }
+ },
+ {
+ "id": "openai/gpt-4o-mini-search-preview",
+ "name": "OpenAI: GPT-4o-mini Search Preview",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2025-03-12 22:22:02 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.15,
+ "output_per_million": 0.6
+ }
+ }
+ },
+ "metadata": {
+ "description": "GPT-4o mini Search Preview is a specialized model for web search in Chat Completions. It is trained to understand and execute web search queries.",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 16384,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "response_format",
+ "structured_outputs",
+ "web_search_options"
+ ]
+ }
+ },
+ {
+ "id": "openai/gpt-4o-search-preview",
+ "name": "OpenAI: GPT-4o Search Preview",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2025-03-12 22:19:09 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "GPT-4o Search Previewis a specialized model for web search in Chat Completions. It is trained to understand and execute web search queries.",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 16384,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "response_format",
+ "structured_outputs",
+ "web_search_options"
+ ]
+ }
+ },
{
"id": "openai/gpt-5",
"name": "GPT-5",
"provider": "openrouter",
"family": "gpt",
- "created_at": "2025-08-07 00:00:00 +0530",
+ "created_at": "2025-08-07 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2024-10-01",
@@ -18839,7 +45389,8 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -18850,6 +45401,37 @@
}
},
"metadata": {
+ "description": "GPT-5 is OpenAI’s most advanced model, offering major improvements in reasoning, code quality, and user experience. It is optimized for complex tasks that require step-by-step reasoning, instruction following, and accuracy...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 400000,
+ "max_completion_tokens": 128000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_completion_tokens",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -18872,7 +45454,7 @@
"name": "GPT-5 Chat (latest)",
"provider": "openrouter",
"family": "gpt-codex",
- "created_at": "2025-08-07 00:00:00 +0530",
+ "created_at": "2025-08-07 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2024-09-30",
@@ -18888,7 +45470,8 @@
"capabilities": [
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -18899,6 +45482,32 @@
}
},
"metadata": {
+ "description": "GPT-5 Chat is designed for advanced, natural, multimodal, and context-aware conversations for enterprise applications.",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "file",
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 16384,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "response_format",
+ "seed",
+ "structured_outputs"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -18921,7 +45530,7 @@
"name": "GPT-5 Codex",
"provider": "openrouter",
"family": "gpt-codex",
- "created_at": "2025-09-15 00:00:00 +0530",
+ "created_at": "2025-09-15 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2024-10-01",
@@ -18938,18 +45547,48 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.25,
"output_per_million": 10,
- "cached_input_per_million": 0.125
+ "cache_read_input_per_million": 0.125
}
}
},
"metadata": {
+ "description": "GPT-5-Codex is a specialized version of GPT-5 optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 400000,
+ "max_completion_tokens": 128000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -18973,7 +45612,7 @@
"name": "GPT-5 Image",
"provider": "openrouter",
"family": "gpt",
- "created_at": "2025-10-14 00:00:00 +0530",
+ "created_at": "2025-10-14 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2024-10-01",
@@ -18992,18 +45631,56 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 5,
"output_per_million": 10,
- "cached_input_per_million": 1.25
+ "cache_read_input_per_million": 1.25
}
}
},
"metadata": {
+ "description": "[GPT-5](https://openrouter.ai/openai/gpt-5) Image combines OpenAI's GPT-5 model with state-of-the-art image generation capabilities. It offers major improvements in reasoning, code quality, and user experience while incorporating GPT Image 1's superior instruction following,...",
+ "architecture": {
+ "modality": "text+image+file->text+image",
+ "input_modalities": [
+ "image",
+ "text",
+ "file"
+ ],
+ "output_modalities": [
+ "image",
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 400000,
+ "max_completion_tokens": 128000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_logprobs",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -19022,12 +45699,85 @@
"knowledge": "2024-10-01"
}
},
+ {
+ "id": "openai/gpt-5-image-mini",
+ "name": "OpenAI: GPT-5 Image Mini",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2025-10-16 14:23:03 UTC",
+ "context_window": 400000,
+ "max_output_tokens": 128000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "file",
+ "image",
+ "text"
+ ],
+ "output": [
+ "image",
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 2.0,
+ "cache_read_input_per_million": 0.25
+ }
+ }
+ },
+ "metadata": {
+ "description": "GPT-5 Image Mini combines OpenAI's advanced language capabilities, powered by [GPT-5 Mini](https://openrouter.ai/openai/gpt-5-mini), with GPT Image 1 Mini for efficient image generation. This natively multimodal model features superior instruction following, text...",
+ "architecture": {
+ "modality": "text+image+file->text+image",
+ "input_modalities": [
+ "file",
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "image",
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 400000,
+ "max_completion_tokens": 128000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
{
"id": "openai/gpt-5-mini",
"name": "GPT-5 Mini",
"provider": "openrouter",
"family": "gpt-mini",
- "created_at": "2025-08-07 00:00:00 +0530",
+ "created_at": "2025-08-07 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2024-10-01",
@@ -19044,7 +45794,8 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -19055,6 +45806,37 @@
}
},
"metadata": {
+ "description": "GPT-5 Mini is a compact version of GPT-5, designed to handle lighter-weight reasoning tasks. It provides the same instruction-following and safety-tuning benefits as GPT-5, but with reduced latency and cost....",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 400000,
+ "max_completion_tokens": 128000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_completion_tokens",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -19077,7 +45859,7 @@
"name": "GPT-5 Nano",
"provider": "openrouter",
"family": "gpt-nano",
- "created_at": "2025-08-07 00:00:00 +0530",
+ "created_at": "2025-08-07 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2024-10-01",
@@ -19094,7 +45876,8 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -19105,6 +45888,37 @@
}
},
"metadata": {
+ "description": "GPT-5-Nano is the smallest and fastest variant in the GPT-5 system, optimized for developer tools, rapid interactions, and ultra-low latency environments. While limited in reasoning depth compared to its larger...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 400000,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_completion_tokens",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -19127,7 +45941,7 @@
"name": "GPT-5 Pro",
"provider": "openrouter",
"family": "gpt-pro",
- "created_at": "2025-10-06 00:00:00 +0530",
+ "created_at": "2025-10-06 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 272000,
"knowledge_cutoff": "2024-09-30",
@@ -19144,7 +45958,8 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -19155,6 +45970,36 @@
}
},
"metadata": {
+ "description": "GPT-5 Pro is OpenAI’s most advanced model, offering major improvements in reasoning, code quality, and user experience. It is optimized for complex tasks that require step-by-step reasoning, instruction following, and...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 400000,
+ "max_completion_tokens": 128000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -19177,7 +46022,7 @@
"name": "GPT-5.1",
"provider": "openrouter",
"family": "gpt",
- "created_at": "2025-11-13 00:00:00 +0530",
+ "created_at": "2025-11-13 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2024-09-30",
@@ -19194,18 +46039,50 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.25,
"output_per_million": 10,
- "cached_input_per_million": 0.125
+ "cache_read_input_per_million": 0.125
}
}
},
"metadata": {
+ "description": "GPT-5.1 is the latest frontier-grade model in the GPT-5 series, offering stronger general-purpose reasoning, improved instruction adherence, and a more natural conversational style compared to GPT-5. It uses adaptive reasoning...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 400000,
+ "max_completion_tokens": 128000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_completion_tokens",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -19229,7 +46106,7 @@
"name": "GPT-5.1 Chat",
"provider": "openrouter",
"family": "gpt-codex",
- "created_at": "2025-11-13 00:00:00 +0530",
+ "created_at": "2025-11-13 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 16384,
"knowledge_cutoff": "2024-09-30",
@@ -19246,18 +46123,48 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.25,
"output_per_million": 10,
- "cached_input_per_million": 0.125
+ "cache_read_input_per_million": 0.125
}
}
},
"metadata": {
+ "description": "GPT-5.1 Chat (AKA Instant is the fast, lightweight member of the 5.1 family, optimized for low-latency chat while retaining strong general intelligence. It uses adaptive reasoning to selectively “think” on...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "file",
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 16384,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_completion_tokens",
+ "max_tokens",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -19281,7 +46188,7 @@
"name": "GPT-5.1-Codex",
"provider": "openrouter",
"family": "gpt-codex",
- "created_at": "2025-11-13 00:00:00 +0530",
+ "created_at": "2025-11-13 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2024-09-30",
@@ -19298,18 +46205,49 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.25,
"output_per_million": 10,
- "cached_input_per_million": 0.125
+ "cache_read_input_per_million": 0.125
}
}
},
"metadata": {
+ "description": "GPT-5.1-Codex is a specialized version of GPT-5.1 optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 400000,
+ "max_completion_tokens": 128000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_completion_tokens",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -19333,7 +46271,7 @@
"name": "GPT-5.1-Codex-Max",
"provider": "openrouter",
"family": "gpt-codex",
- "created_at": "2025-11-13 00:00:00 +0530",
+ "created_at": "2025-11-13 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2024-09-30",
@@ -19350,18 +46288,49 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.1,
"output_per_million": 9,
- "cached_input_per_million": 0.11
+ "cache_read_input_per_million": 0.11
}
}
},
"metadata": {
+ "description": "GPT-5.1-Codex-Max is OpenAI’s latest agentic coding model, designed for long-running, high-context software development tasks. It is based on an updated version of the 5.1 reasoning stack and trained on agentic...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 400000,
+ "max_completion_tokens": 128000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_completion_tokens",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -19385,7 +46354,7 @@
"name": "GPT-5.1-Codex-Mini",
"provider": "openrouter",
"family": "gpt-codex",
- "created_at": "2025-11-13 00:00:00 +0530",
+ "created_at": "2025-11-13 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 100000,
"knowledge_cutoff": "2024-09-30",
@@ -19402,18 +46371,49 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.25,
"output_per_million": 2,
- "cached_input_per_million": 0.025
+ "cache_read_input_per_million": 0.025
}
}
},
"metadata": {
+ "description": "GPT-5.1-Codex-Mini is a smaller and faster version of GPT-5.1-Codex",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 400000,
+ "max_completion_tokens": 128000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_completion_tokens",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -19437,7 +46437,7 @@
"name": "GPT-5.2",
"provider": "openrouter",
"family": "gpt",
- "created_at": "2025-12-11 00:00:00 +0530",
+ "created_at": "2025-12-11 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2025-08-31",
@@ -19454,18 +46454,50 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.75,
"output_per_million": 14,
- "cached_input_per_million": 0.175
+ "cache_read_input_per_million": 0.175
}
}
},
"metadata": {
+ "description": "GPT-5.2 is the latest frontier-grade model in the GPT-5 series, offering stronger agentic and long context perfomance compared to GPT-5.1. It uses adaptive reasoning to allocate computation dynamically, responding quickly...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "file",
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 400000,
+ "max_completion_tokens": 128000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_completion_tokens",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -19489,7 +46521,7 @@
"name": "GPT-5.2 Chat",
"provider": "openrouter",
"family": "gpt-codex",
- "created_at": "2025-12-11 00:00:00 +0530",
+ "created_at": "2025-12-11 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 16384,
"knowledge_cutoff": "2025-08-31",
@@ -19506,18 +46538,48 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.75,
"output_per_million": 14,
- "cached_input_per_million": 0.175
+ "cache_read_input_per_million": 0.175
}
}
},
"metadata": {
+ "description": "GPT-5.2 Chat (AKA Instant) is the fast, lightweight member of the 5.2 family, optimized for low-latency chat while retaining strong general intelligence. It uses adaptive reasoning to selectively “think” on...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "file",
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 32000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_completion_tokens",
+ "max_tokens",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -19541,7 +46603,7 @@
"name": "GPT-5.2-Codex",
"provider": "openrouter",
"family": "gpt-codex",
- "created_at": "2026-01-14 00:00:00 +0530",
+ "created_at": "2026-01-14 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2025-08-31",
@@ -19558,18 +46620,49 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.75,
"output_per_million": 14,
- "cached_input_per_million": 0.175
+ "cache_read_input_per_million": 0.175
}
}
},
"metadata": {
+ "description": "GPT-5.2-Codex is an upgraded version of GPT-5.1-Codex optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 400000,
+ "max_completion_tokens": 128000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_completion_tokens",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -19593,7 +46686,7 @@
"name": "GPT-5.2 Pro",
"provider": "openrouter",
"family": "gpt-pro",
- "created_at": "2025-12-11 00:00:00 +0530",
+ "created_at": "2025-12-11 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2025-08-31",
@@ -19610,7 +46703,8 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -19621,6 +46715,36 @@
}
},
"metadata": {
+ "description": "GPT-5.2 Pro is OpenAI’s most advanced model, offering major improvements in agentic coding and long context performance over GPT-5 Pro. It is optimized for complex tasks that require step-by-step reasoning,...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 400000,
+ "max_completion_tokens": 128000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -19638,12 +46762,77 @@
"knowledge": "2025-08-31"
}
},
+ {
+ "id": "openai/gpt-5.3-chat",
+ "name": "OpenAI: GPT-5.3 Chat",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2026-03-03 18:54:21 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.75,
+ "output_per_million": 14.0,
+ "cache_read_input_per_million": 0.175
+ }
+ }
+ },
+ "metadata": {
+ "description": "GPT-5.3 Chat is an update to ChatGPT's most-used model that makes everyday conversations smoother, more useful, and more directly helpful. It delivers more accurate answers with better contextualization and significantly...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 16384,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_completion_tokens",
+ "max_tokens",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2026-02-24 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2025-08-31",
@@ -19661,18 +46850,50 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.75,
"output_per_million": 14,
- "cached_input_per_million": 0.175
+ "cache_read_input_per_million": 0.175
}
}
},
"metadata": {
+ "description": "GPT-5.3-Codex is OpenAI’s most advanced agentic coding model, combining the frontier software engineering performance of GPT-5.2-Codex with the broader reasoning and professional knowledge capabilities of GPT-5.2. It achieves state-of-the-art results...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 400000,
+ "max_completion_tokens": 128000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_completion_tokens",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -19696,7 +46917,7 @@
"name": "GPT-5.4",
"provider": "openrouter",
"family": "gpt",
- "created_at": "2026-03-05 00:00:00 +0530",
+ "created_at": "2026-03-05 00:00:00 UTC",
"context_window": 1050000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2025-08-31",
@@ -19714,18 +46935,50 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 2.5,
"output_per_million": 15,
- "cached_input_per_million": 0.25
+ "cache_read_input_per_million": 0.25
}
}
},
"metadata": {
+ "description": "GPT-5.4 is OpenAI’s latest frontier model, unifying the Codex and GPT lines into a single system. It features a 1M+ token context window (922K input, 128K output) with support for...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1050000,
+ "max_completion_tokens": 128000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_completion_tokens",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -19750,12 +47003,83 @@
"knowledge": "2025-08-31"
}
},
+ {
+ "id": "openai/gpt-5.4-image-2",
+ "name": "OpenAI: GPT-5.4 Image 2",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2026-04-21 18:52:08 UTC",
+ "context_window": 272000,
+ "max_output_tokens": 128000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "image",
+ "text",
+ "file"
+ ],
+ "output": [
+ "image",
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 8.0,
+ "output_per_million": 15.0,
+ "cache_read_input_per_million": 2.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "[GPT-5.4](https://openrouter.ai/openai/gpt-5.4) Image 2 combines OpenAI's GPT-5.4 model with state-of-the-art image generation capabilities from GPT Image 2. It enables rich multimodal workflows, allowing users to seamlessly move between reasoning, coding, and...",
+ "architecture": {
+ "modality": "text+image+file->text+image",
+ "input_modalities": [
+ "image",
+ "text",
+ "file"
+ ],
+ "output_modalities": [
+ "image",
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 272000,
+ "max_completion_tokens": 128000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "top_logprobs"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2026-03-17 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2025-08-31",
@@ -19773,18 +47097,50 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
- "input_per_million": 0.00000075,
- "output_per_million": 0.0000045,
- "cached_input_per_million": 0.000000075
+ "input_per_million": 0.75,
+ "output_per_million": 4.5,
+ "cache_read_input_per_million": 0.075
}
}
},
"metadata": {
+ "description": "GPT-5.4 mini brings the core capabilities of GPT-5.4 to a faster, more efficient model optimized for high-throughput workloads. It supports text and image inputs with strong performance across reasoning, coding,...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "file",
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 400000,
+ "max_completion_tokens": 128000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_completion_tokens",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -19792,9 +47148,9 @@
"temperature": true,
"last_updated": "2026-03-17",
"cost": {
- "input": 0.00000075,
- "output": 0.0000045,
- "cache_read": 0.000000075
+ "input": 0.75,
+ "output": 4.5,
+ "cache_read": 0.075
},
"limit": {
"context": 400000,
@@ -19808,7 +47164,7 @@
"name": "GPT-5.4 Nano",
"provider": "openrouter",
"family": "gpt-nano",
- "created_at": "2026-03-17 00:00:00 +0530",
+ "created_at": "2026-03-17 00:00:00 UTC",
"context_window": 400000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2025-08-31",
@@ -19825,18 +47181,50 @@
"capabilities": [
"function_calling",
"structured_output",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
- "input_per_million": 0.0000002,
- "output_per_million": 0.00000125,
- "cached_input_per_million": 0.00000002
+ "input_per_million": 0.2,
+ "output_per_million": 1.25,
+ "cache_read_input_per_million": 0.02
}
}
},
"metadata": {
+ "description": "GPT-5.4 nano is the most lightweight and cost-efficient variant of the GPT-5.4 family, optimized for speed-critical and high-volume tasks. It supports text and image inputs and is designed for low-latency...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "file",
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 400000,
+ "max_completion_tokens": 128000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_completion_tokens",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -19844,9 +47232,9 @@
"temperature": true,
"last_updated": "2026-03-17",
"cost": {
- "input": 0.0000002,
- "output": 0.00000125,
- "cache_read": 0.00000002
+ "input": 0.2,
+ "output": 1.25,
+ "cache_read": 0.02
},
"limit": {
"context": 400000,
@@ -19860,7 +47248,7 @@
"name": "GPT-5.4 Pro",
"provider": "openrouter",
"family": "gpt-pro",
- "created_at": "2026-03-05 00:00:00 +0530",
+ "created_at": "2026-03-05 00:00:00 UTC",
"context_window": 1050000,
"max_output_tokens": 128000,
"knowledge_cutoff": "2025-08-31",
@@ -19877,18 +47265,51 @@
"capabilities": [
"function_calling",
"reasoning",
- "vision"
+ "vision",
+ "streaming",
+ "structured_output"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 30,
"output_per_million": 180,
- "cached_input_per_million": 30
+ "cache_read_input_per_million": 30
}
}
},
"metadata": {
+ "description": "GPT-5.4 Pro is OpenAI's most advanced model, building on GPT-5.4's unified architecture with enhanced reasoning capabilities for complex, high-stakes tasks. It features a 1M+ token context window (922K input, 128K...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1050000,
+ "max_completion_tokens": 128000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_completion_tokens",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -19908,12 +47329,402 @@
"knowledge": "2025-08-31"
}
},
+ {
+ "id": "openai/gpt-5.5",
+ "name": "GPT-5.5",
+ "provider": "openrouter",
+ "family": "gpt",
+ "created_at": "2026-04-23 00:00:00 UTC",
+ "context_window": 1050000,
+ "max_output_tokens": 128000,
+ "knowledge_cutoff": "2025-12-01",
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "pdf"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "reasoning",
+ "vision",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 5,
+ "output_per_million": 30,
+ "cache_read_input_per_million": 0.5
+ }
+ }
+ },
+ "metadata": {
+ "description": "GPT-5.5 is OpenAI’s frontier model designed for complex professional workloads, building on GPT-5.4 with stronger reasoning, higher reliability, and improved token efficiency on hard tasks. It features a 1M+ token...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "file",
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1050000,
+ "max_completion_tokens": 128000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_completion_tokens",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ],
+ "source": "models.dev",
+ "provider_id": "openrouter",
+ "open_weights": false,
+ "attachment": true,
+ "temperature": false,
+ "last_updated": "2026-04-23",
+ "cost": {
+ "input": 5,
+ "output": 30,
+ "cache_read": 0.5,
+ "context_over_200k": {
+ "input": 10,
+ "output": 45,
+ "cache_read": 1
+ }
+ },
+ "limit": {
+ "context": 1050000,
+ "input": 922000,
+ "output": 128000
+ },
+ "knowledge": "2025-12-01"
+ }
+ },
+ {
+ "id": "openai/gpt-5.5-pro",
+ "name": "GPT-5.5 Pro",
+ "provider": "openrouter",
+ "family": "gpt-pro",
+ "created_at": "2026-04-23 00:00:00 UTC",
+ "context_window": 1050000,
+ "max_output_tokens": 128000,
+ "knowledge_cutoff": "2025-12-01",
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "pdf"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "reasoning",
+ "vision",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 30,
+ "output_per_million": 180
+ }
+ }
+ },
+ "metadata": {
+ "description": "GPT-5.5 Pro is OpenAI’s high-capability model optimized for deep reasoning and accuracy on complex, high-stakes workloads. It features a 1M+ token context window (922K input, 128K output) with support for...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "file",
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1050000,
+ "max_completion_tokens": 128000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ],
+ "source": "models.dev",
+ "provider_id": "openrouter",
+ "open_weights": false,
+ "attachment": true,
+ "temperature": false,
+ "last_updated": "2026-04-23",
+ "cost": {
+ "input": 30,
+ "output": 180,
+ "context_over_200k": {
+ "input": 60,
+ "output": 270
+ }
+ },
+ "limit": {
+ "context": 1050000,
+ "input": 922000,
+ "output": 128000
+ },
+ "knowledge": "2025-12-01"
+ }
+ },
+ {
+ "id": "openai/gpt-audio",
+ "name": "OpenAI: GPT Audio",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2026-01-19 22:42:49 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "audio"
+ ],
+ "output": [
+ "text",
+ "audio"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.5,
+ "output_per_million": 10.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "The gpt-audio model is OpenAI's first generally available audio model. The new snapshot features an upgraded decoder for more natural sounding voices and maintains better voice consistency. Audio is priced...",
+ "architecture": {
+ "modality": "text+audio->text+audio",
+ "input_modalities": [
+ "text",
+ "audio"
+ ],
+ "output_modalities": [
+ "text",
+ "audio"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 16384,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "openai/gpt-audio-mini",
+ "name": "OpenAI: GPT Audio Mini",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2026-01-19 21:50:19 UTC",
+ "context_window": 128000,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "audio"
+ ],
+ "output": [
+ "text",
+ "audio"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.6,
+ "output_per_million": 2.4
+ }
+ }
+ },
+ "metadata": {
+ "description": "A cost-efficient version of GPT Audio. The new snapshot features an upgraded decoder for more natural sounding voices and maintains better voice consistency. Input is priced at $0.60 per million...",
+ "architecture": {
+ "modality": "text+audio->text+audio",
+ "input_modalities": [
+ "text",
+ "audio"
+ ],
+ "output_modalities": [
+ "text",
+ "audio"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": 16384,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "openai/gpt-chat-latest",
+ "name": "OpenAI: GPT Chat Latest",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2026-05-05 16:56:52 UTC",
+ "context_window": 400000,
+ "max_output_tokens": 128000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 5.0,
+ "output_per_million": 30.0,
+ "cache_read_input_per_million": 0.5
+ }
+ }
+ },
+ "metadata": {
+ "description": "GPT Chat Latest points to OpenAI's stable API alias `chat-latest` that always resolves to the latest Instant chat model used in ChatGPT. As OpenAI rolls out new Instant model updates...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 400000,
+ "max_completion_tokens": 128000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "tool_choice",
+ "tools",
+ "top_logprobs"
+ ]
+ }
+ },
{
"id": "openai/gpt-oss-120b",
"name": "GPT OSS 120B",
"provider": "openrouter",
"family": "gpt-oss",
- "created_at": "2025-08-05 00:00:00 +0530",
+ "created_at": "2025-08-05 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -19928,7 +47739,9 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -19939,6 +47752,45 @@
}
},
"metadata": {
+ "description": "gpt-oss-120b is an open-weight, 117B-parameter Mixture-of-Experts (MoE) language model from OpenAI designed for high-reasoning, agentic, and general-purpose production use cases. It activates 5.1B parameters per forward pass and is optimized...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -19960,7 +47812,7 @@
"name": "GPT OSS 120B (exacto)",
"provider": "openrouter",
"family": "gpt-oss",
- "created_at": "2025-08-05 00:00:00 +0530",
+ "created_at": "2025-08-05 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -20007,7 +47859,7 @@
"name": "gpt-oss-120b (free)",
"provider": "openrouter",
"family": "gpt-oss",
- "created_at": "2025-08-05 00:00:00 +0530",
+ "created_at": "2025-08-05 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -20021,10 +47873,39 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {},
"metadata": {
+ "description": "gpt-oss-120b is an open-weight, 117B-parameter Mixture-of-Experts (MoE) language model from OpenAI designed for high-reasoning, agentic, and general-purpose production use cases. It activates 5.1B parameters per forward pass and is optimized...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 131072,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -20046,7 +47927,7 @@
"name": "GPT OSS 20B",
"provider": "openrouter",
"family": "gpt-oss",
- "created_at": "2025-08-05 00:00:00 +0530",
+ "created_at": "2025-08-05 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -20061,7 +47942,9 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -20072,6 +47955,45 @@
}
},
"metadata": {
+ "description": "gpt-oss-20b is an open-weight 21B parameter model released by OpenAI under the Apache 2.0 license. It uses a Mixture-of-Experts (MoE) architecture with 3.6B active parameters per forward pass, optimized for...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 131072,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -20093,7 +48015,7 @@
"name": "gpt-oss-20b (free)",
"provider": "openrouter",
"family": "gpt-oss",
- "created_at": "2025-08-05 00:00:00 +0530",
+ "created_at": "2025-08-05 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -20107,10 +48029,39 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {},
"metadata": {
+ "description": "gpt-oss-20b is an open-weight 21B parameter model released by OpenAI under the Apache 2.0 license. It uses a Mixture-of-Experts (MoE) architecture with 3.6B active parameters per forward pass, optimized for...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 8192,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -20132,7 +48083,7 @@
"name": "GPT OSS Safeguard 20B",
"provider": "openrouter",
"family": "gpt-oss",
- "created_at": "2025-10-29 00:00:00 +0530",
+ "created_at": "2025-10-29 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -20146,7 +48097,9 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "structured_output"
],
"pricing": {
"text_tokens": {
@@ -20157,6 +48110,36 @@
}
},
"metadata": {
+ "description": "gpt-oss-safeguard-20b is a safety reasoning model from OpenAI built upon gpt-oss-20b. This open-weight, 21B-parameter Mixture-of-Experts (MoE) model offers lower latency for safety tasks like content classification, LLM filtering, and trust...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -20173,12 +48156,473 @@
}
}
},
+ {
+ "id": "openai/o1",
+ "name": "OpenAI: o1",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2024-12-17 18:26:39 UTC",
+ "context_window": 200000,
+ "max_output_tokens": 100000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 15.0,
+ "output_per_million": 60.0,
+ "cache_read_input_per_million": 7.5
+ }
+ }
+ },
+ "metadata": {
+ "description": "The latest and strongest model family from OpenAI, o1 is designed to spend more time thinking before responding. The o1 model series is trained with large-scale reinforcement learning to reason...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 200000,
+ "max_completion_tokens": 100000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ]
+ }
+ },
+ {
+ "id": "openai/o1-pro",
+ "name": "OpenAI: o1-pro",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2025-03-19 22:26:51 UTC",
+ "context_window": 200000,
+ "max_output_tokens": 100000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 150.0,
+ "output_per_million": 600.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "The o1 series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o1-pro model uses more compute to think harder and provide...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 200000,
+ "max_completion_tokens": 100000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs"
+ ]
+ }
+ },
+ {
+ "id": "openai/o3",
+ "name": "OpenAI: o3",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2025-04-16 17:10:57 UTC",
+ "context_window": 200000,
+ "max_output_tokens": 100000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "image",
+ "text",
+ "file"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.0,
+ "output_per_million": 8.0,
+ "cache_read_input_per_million": 0.5
+ }
+ }
+ },
+ "metadata": {
+ "description": "o3 is a well-rounded and powerful model across domains. It sets a new standard for math, science, coding, and visual reasoning tasks. It also excels at technical writing and instruction-following....",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 200000,
+ "max_completion_tokens": 100000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ]
+ }
+ },
+ {
+ "id": "openai/o3-deep-research",
+ "name": "OpenAI: o3 Deep Research",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2025-10-10 20:54:21 UTC",
+ "context_window": 200000,
+ "max_output_tokens": 100000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "image",
+ "text",
+ "file"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 10.0,
+ "output_per_million": 40.0,
+ "cache_read_input_per_million": 2.5
+ }
+ }
+ },
+ "metadata": {
+ "description": "o3-deep-research is OpenAI's advanced model for deep research, designed to tackle complex, multi-step research tasks.\n\nNote: This model always uses the 'web_search' tool which adds additional cost.",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 200000,
+ "max_completion_tokens": 100000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "openai/o3-mini",
+ "name": "OpenAI: o3 Mini",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2025-01-31 19:28:41 UTC",
+ "context_window": 200000,
+ "max_output_tokens": 100000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "file"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.1,
+ "output_per_million": 4.4,
+ "cache_read_input_per_million": 0.55
+ }
+ }
+ },
+ "metadata": {
+ "description": "OpenAI o3-mini is a cost-efficient language model optimized for STEM reasoning tasks, particularly excelling in science, mathematics, and coding. This model supports the `reasoning_effort` parameter, which can be set to...",
+ "architecture": {
+ "modality": "text+file->text",
+ "input_modalities": [
+ "text",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 200000,
+ "max_completion_tokens": 100000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ]
+ }
+ },
+ {
+ "id": "openai/o3-mini-high",
+ "name": "OpenAI: o3 Mini High",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2025-02-12 15:03:31 UTC",
+ "context_window": 200000,
+ "max_output_tokens": 100000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "file"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.1,
+ "output_per_million": 4.4,
+ "cache_read_input_per_million": 0.55
+ }
+ }
+ },
+ "metadata": {
+ "description": "OpenAI o3-mini-high is the same model as [o3-mini](/openai/o3-mini) with reasoning_effort set to high. o3-mini is a cost-efficient language model optimized for STEM reasoning tasks, particularly excelling in science, mathematics, and...",
+ "architecture": {
+ "modality": "text+file->text",
+ "input_modalities": [
+ "text",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 200000,
+ "max_completion_tokens": 100000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ]
+ }
+ },
+ {
+ "id": "openai/o3-pro",
+ "name": "OpenAI: o3 Pro",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2025-06-10 23:32:32 UTC",
+ "context_window": 200000,
+ "max_output_tokens": 100000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "file",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 20.0,
+ "output_per_million": 80.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "The o-series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o3-pro model uses more compute to think harder and provide consistently...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "file",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 200000,
+ "max_completion_tokens": 100000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ]
+ }
+ },
{
"id": "openai/o4-mini",
"name": "o4 Mini",
"provider": "openrouter",
"family": "o-mini",
- "created_at": "2025-04-16 00:00:00 +0530",
+ "created_at": "2025-04-16 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 100000,
"knowledge_cutoff": null,
@@ -20195,18 +48639,49 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.1,
"output_per_million": 4.4,
- "cached_input_per_million": 0.28
+ "cache_read_input_per_million": 0.28
}
}
},
"metadata": {
+ "description": "OpenAI o4-mini is a compact reasoning model in the o-series, optimized for fast, cost-efficient performance while retaining strong multimodal and agentic capabilities. It supports tool use and demonstrates competitive reasoning...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 200000,
+ "max_completion_tokens": 100000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -20225,12 +48700,273 @@
"knowledge": "2024-06"
}
},
+ {
+ "id": "openai/o4-mini-deep-research",
+ "name": "OpenAI: o4 Mini Deep Research",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2025-10-10 20:54:02 UTC",
+ "context_window": 200000,
+ "max_output_tokens": 100000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "file",
+ "image",
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.0,
+ "output_per_million": 8.0,
+ "cache_read_input_per_million": 0.5
+ }
+ }
+ },
+ "metadata": {
+ "description": "o4-mini-deep-research is OpenAI's faster, more affordable deep research model—ideal for tackling complex, multi-step research tasks.\n\nNote: This model always uses the 'web_search' tool which adds additional cost.",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "file",
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 200000,
+ "max_completion_tokens": 100000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "openai/o4-mini-high",
+ "name": "OpenAI: o4 Mini High",
+ "provider": "openrouter",
+ "family": "openai",
+ "created_at": "2025-04-16 17:23:32 UTC",
+ "context_window": 200000,
+ "max_output_tokens": 100000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "image",
+ "text",
+ "file"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.1,
+ "output_per_million": 4.4,
+ "cache_read_input_per_million": 0.275
+ }
+ }
+ },
+ "metadata": {
+ "description": "OpenAI o4-mini-high is the same model as [o4-mini](/openai/o4-mini) with reasoning_effort set to high. OpenAI o4-mini is a compact reasoning model in the o-series, optimized for fast, cost-efficient performance while retaining...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "GPT",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 200000,
+ "max_completion_tokens": 100000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ]
+ }
+ },
+ {
+ "id": "openrouter/auto",
+ "name": "Auto Router",
+ "provider": "openrouter",
+ "family": "openrouter",
+ "created_at": "2023-11-08 00:00:00 UTC",
+ "context_window": 2000000,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "audio",
+ "file",
+ "video"
+ ],
+ "output": [
+ "text",
+ "image"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {},
+ "metadata": {
+ "description": "\"Your prompt will be processed by a meta-model and routed to one of dozens of models (see below), optimizing for the best possible output. To see which model was used,...",
+ "architecture": {
+ "modality": "text+image+file+audio+video->text+image",
+ "input_modalities": [
+ "text",
+ "image",
+ "audio",
+ "file",
+ "video"
+ ],
+ "output_modalities": [
+ "text",
+ "image"
+ ],
+ "tokenizer": "Router",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": null,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_completion_tokens",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p",
+ "web_search_options"
+ ]
+ }
+ },
+ {
+ "id": "openrouter/bodybuilder",
+ "name": "Body Builder (beta)",
+ "provider": "openrouter",
+ "family": "openrouter",
+ "created_at": "2025-12-05 03:00:53 UTC",
+ "context_window": 128000,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {},
+ "metadata": {
+ "description": "Transform your natural language requests into structured OpenRouter API request objects. Describe what you want to accomplish with AI models, and Body Builder will construct the appropriate API calls. Example:...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Router",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": null,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": []
+ }
+ },
{
"id": "openrouter/elephant-alpha",
"name": "Elephant (free)",
"provider": "openrouter",
"family": "elephant",
- "created_at": "2026-04-13 00:00:00 +0530",
+ "created_at": "2026-04-13 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -20269,8 +49005,8 @@
"id": "openrouter/free",
"name": "Free Models Router",
"provider": "openrouter",
- "family": null,
- "created_at": "2026-02-01 00:00:00 +0530",
+ "family": "openrouter",
+ "created_at": "2026-02-01 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 8000,
"knowledge_cutoff": null,
@@ -20287,10 +49023,48 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {},
"metadata": {
+ "description": "The simplest way to get free inference. openrouter/free is a router that selects free models at random from the models available on OpenRouter. The router smartly filters for models that...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Router",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": null,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -20308,12 +49082,592 @@
}
}
},
+ {
+ "id": "openrouter/owl-alpha",
+ "name": "Owl Alpha",
+ "provider": "openrouter",
+ "family": "openrouter",
+ "created_at": "2026-04-28 00:00:00 UTC",
+ "context_window": 1048756,
+ "max_output_tokens": 262144,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "reasoning",
+ "streaming",
+ "predicted_outputs"
+ ],
+ "pricing": {},
+ "metadata": {
+ "description": "Owl Alpha is a high-performance foundation model designed for agentic workloads. Natively supports tool use, and long-context tasks, with strong performance in code generation, automated workflows, and complex instruction execution....",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1048756,
+ "max_completion_tokens": 262144,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
+ "source": "models.dev",
+ "provider_id": "openrouter",
+ "open_weights": false,
+ "attachment": false,
+ "temperature": true,
+ "last_updated": "2026-04-30",
+ "status": "alpha",
+ "cost": {
+ "input": 0,
+ "output": 0
+ },
+ "limit": {
+ "context": 1048756,
+ "output": 262144
+ }
+ }
+ },
+ {
+ "id": "openrouter/pareto-code",
+ "name": "Pareto Code Router",
+ "provider": "openrouter",
+ "family": "openrouter",
+ "created_at": "2026-04-21 00:00:00 UTC",
+ "context_window": 200000,
+ "max_output_tokens": 200000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "reasoning",
+ "streaming"
+ ],
+ "pricing": {},
+ "metadata": {
+ "description": "The Pareto Router is a way to have OpenRouter always pick a strong coding model for your needs without committing to a specific one. You express a single `min_coding_score` preference...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Router",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": null,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [],
+ "source": "models.dev",
+ "provider_id": "openrouter",
+ "open_weights": false,
+ "attachment": true,
+ "temperature": true,
+ "last_updated": "2026-04-21",
+ "limit": {
+ "context": 200000,
+ "output": 200000
+ }
+ }
+ },
+ {
+ "id": "perplexity/sonar",
+ "name": "Perplexity: Sonar",
+ "provider": "openrouter",
+ "family": "perplexity",
+ "created_at": "2025-01-27 21:36:48 UTC",
+ "context_window": 127072,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.0,
+ "output_per_million": 1.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "Sonar is lightweight, affordable, fast, and simple to use — now featuring citations and the ability to customize sources. It is designed for companies seeking to integrate lightweight question-and-answer features...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 127072,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "temperature",
+ "top_k",
+ "top_p",
+ "web_search_options"
+ ]
+ }
+ },
+ {
+ "id": "perplexity/sonar-deep-research",
+ "name": "Perplexity: Sonar Deep Research",
+ "provider": "openrouter",
+ "family": "perplexity",
+ "created_at": "2025-03-07 01:34:06 UTC",
+ "context_window": 128000,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.0,
+ "output_per_million": 8.0,
+ "reasoning_output_per_million": 3.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "Sonar Deep Research is a research-focused model designed for multi-step retrieval, synthesis, and reasoning across complex topics. It autonomously searches, reads, and evaluates sources, refining its approach as it gathers...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": "deepseek-r1"
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "temperature",
+ "top_k",
+ "top_p",
+ "web_search_options"
+ ]
+ }
+ },
+ {
+ "id": "perplexity/sonar-pro",
+ "name": "Perplexity: Sonar Pro",
+ "provider": "openrouter",
+ "family": "perplexity",
+ "created_at": "2025-03-07 01:53:43 UTC",
+ "context_window": 200000,
+ "max_output_tokens": 8000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 3.0,
+ "output_per_million": 15.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "Note: Sonar Pro pricing includes Perplexity search pricing. See [details here](https://docs.perplexity.ai/guides/pricing#detailed-pricing-breakdown-for-sonar-reasoning-pro-and-sonar-pro) For enterprises seeking more advanced capabilities, the Sonar Pro API can handle in-depth, multi-step queries with added extensibility, like...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 200000,
+ "max_completion_tokens": 8000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "temperature",
+ "top_k",
+ "top_p",
+ "web_search_options"
+ ]
+ }
+ },
+ {
+ "id": "perplexity/sonar-pro-search",
+ "name": "Perplexity: Sonar Pro Search",
+ "provider": "openrouter",
+ "family": "perplexity",
+ "created_at": "2025-10-30 19:59:26 UTC",
+ "context_window": 200000,
+ "max_output_tokens": 8000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 3.0,
+ "output_per_million": 15.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "Exclusively available on the OpenRouter API, Sonar Pro's new Pro Search mode is Perplexity's most advanced agentic search system. It is designed for deeper reasoning and analysis. Pricing is based...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 200000,
+ "max_completion_tokens": 8000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "structured_outputs",
+ "temperature",
+ "top_k",
+ "top_p",
+ "web_search_options"
+ ]
+ }
+ },
+ {
+ "id": "perplexity/sonar-reasoning-pro",
+ "name": "Perplexity: Sonar Reasoning Pro",
+ "provider": "openrouter",
+ "family": "perplexity",
+ "created_at": "2025-03-07 02:08:28 UTC",
+ "context_window": 128000,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.0,
+ "output_per_million": 8.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "Note: Sonar Pro pricing includes Perplexity search pricing. See [details here](https://docs.perplexity.ai/guides/pricing#detailed-pricing-breakdown-for-sonar-reasoning-pro-and-sonar-pro) Sonar Reasoning Pro is a premier reasoning model powered by DeepSeek R1 with Chain of Thought (CoT). Designed for...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": "deepseek-r1"
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "temperature",
+ "top_k",
+ "top_p",
+ "web_search_options"
+ ]
+ }
+ },
+ {
+ "id": "poolside/laguna-m.1:free",
+ "name": "Laguna M.1",
+ "provider": "openrouter",
+ "family": "poolside",
+ "created_at": "2026-04-28 00:00:00 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "reasoning",
+ "streaming"
+ ],
+ "pricing": {},
+ "metadata": {
+ "description": "Laguna M.1 is the flagship coding agent model from [Poolside](https://poolside.ai), optimized for complex software engineering tasks. Designed for agentic coding workflows, it supports tool calling and reasoning, with a 128K...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 8192,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "temperature",
+ "tool_choice",
+ "tools"
+ ],
+ "source": "models.dev",
+ "provider_id": "openrouter",
+ "open_weights": false,
+ "attachment": false,
+ "temperature": true,
+ "last_updated": "2026-04-28",
+ "interleaved": {
+ "field": "reasoning_content"
+ },
+ "cost": {
+ "input": 0,
+ "output": 0,
+ "cache_read": 0,
+ "cache_write": 0
+ },
+ "limit": {
+ "context": 131072,
+ "output": 8192
+ }
+ }
+ },
+ {
+ "id": "poolside/laguna-xs.2:free",
+ "name": "Laguna XS.2",
+ "provider": "openrouter",
+ "family": "poolside",
+ "created_at": "2026-04-28 00:00:00 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "reasoning",
+ "streaming"
+ ],
+ "pricing": {},
+ "metadata": {
+ "description": "Laguna XS.2 is the second-generation model in the XS size class from [Poolside](https://poolside.ai), their efficient coding agent series. It combines tool calling and reasoning capabilities with a compact footprint, offering...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 8192,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "temperature",
+ "tool_choice",
+ "tools"
+ ],
+ "source": "models.dev",
+ "provider_id": "openrouter",
+ "open_weights": true,
+ "attachment": false,
+ "temperature": true,
+ "last_updated": "2026-04-28",
+ "interleaved": {
+ "field": "reasoning_content"
+ },
+ "cost": {
+ "input": 0,
+ "output": 0,
+ "cache_read": 0,
+ "cache_write": 0
+ },
+ "limit": {
+ "context": 131072,
+ "output": 8192
+ }
+ }
+ },
{
"id": "prime-intellect/intellect-3",
"name": "Intellect 3",
"provider": "openrouter",
"family": "glm",
- "created_at": "2025-01-15 00:00:00 +0530",
+ "created_at": "2025-01-15 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -20328,7 +49682,8 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -20339,6 +49694,39 @@
}
},
"metadata": {
+ "description": "INTELLECT-3 is a 106B-parameter Mixture-of-Experts model (12B active) post-trained from GLM-4.5-Air-Base using supervised fine-tuning (SFT) followed by large-scale reinforcement learning (RL). It offers state-of-the-art performance for its size across math,...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 131072,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -20356,12 +49744,149 @@
"knowledge": "2024-10"
}
},
+ {
+ "id": "qwen/qwen-2.5-72b-instruct",
+ "name": "Qwen2.5 72B Instruct",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2024-09-19 00:00:00 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.36,
+ "output_per_million": 0.39999999999999997
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen2.5 72B is the latest series of Qwen large language models. Qwen2.5 brings the following improvements upon Qwen2: - Significantly more knowledge and has greatly improved capabilities in coding and...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen",
+ "instruct_type": "chatml"
+ },
+ "top_provider": {
+ "context_length": 32768,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "qwen/qwen-2.5-7b-instruct",
+ "name": "Qwen: Qwen2.5 7B Instruct",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2024-10-16 00:00:00 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.04,
+ "output_per_million": 0.09999999999999999
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen2.5 7B is the latest series of Qwen large language models. Qwen2.5 brings the following improvements upon Qwen2: - Significantly more knowledge and has greatly improved capabilities in coding and...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen",
+ "instruct_type": "chatml"
+ },
+ "top_provider": {
+ "context_length": 32768,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2024-11-11 00:00:00 UTC",
"context_window": 32768,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -20374,10 +49899,46 @@
]
},
"capabilities": [
- "structured_output"
+ "structured_output",
+ "streaming"
],
- "pricing": {},
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.66,
+ "output_per_million": 1.0
+ }
+ }
+ },
"metadata": {
+ "description": "Qwen2.5-Coder is the latest series of Code-Specific Qwen large language models (formerly known as CodeQwen). Qwen2.5-Coder brings the following improvements upon CodeQwen1.5: - Significantly improvements in **code generation**, **code reasoning**...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen",
+ "instruct_type": "chatml"
+ },
+ "top_provider": {
+ "context_length": 32768,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "seed",
+ "temperature",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -20395,12 +49956,498 @@
"knowledge": "2024-10"
}
},
+ {
+ "id": "qwen/qwen-3.6-27b",
+ "name": "Qwen3.6 27B",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2026-04-22 00:00:00 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 81920,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.195,
+ "output_per_million": 1.56
+ }
+ }
+ },
+ "metadata": {
+ "source": "models.dev",
+ "provider_id": "openrouter",
+ "open_weights": true,
+ "attachment": true,
+ "temperature": true,
+ "last_updated": "2026-04-22",
+ "cost": {
+ "input": 0.195,
+ "output": 1.56
+ },
+ "limit": {
+ "context": 262144,
+ "output": 81920
+ },
+ "knowledge": "2025-04"
+ }
+ },
+ {
+ "id": "qwen/qwen-max",
+ "name": "Qwen: Qwen-Max ",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2025-02-01 09:31:29 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.04,
+ "output_per_million": 4.16,
+ "cache_read_input_per_million": 0.20800000000000002
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen-Max, based on Qwen2.5, provides the best inference performance among [Qwen models](/qwen), especially for complex multi-step tasks. It's a large-scale MoE model that has been pretrained on over 20 trillion...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 32768,
+ "max_completion_tokens": 8192,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "qwen/qwen-plus",
+ "name": "Qwen: Qwen-Plus",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2025-02-01 11:37:20 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.26,
+ "output_per_million": 0.78,
+ "cache_read_input_per_million": 0.052000000000000005
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen-Plus, based on the Qwen2.5 foundation model, is a 131K context model with a balanced performance, speed, and cost combination.",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1000000,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "qwen/qwen-plus-2025-07-28",
+ "name": "Qwen: Qwen Plus 0728",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2025-09-08 16:06:39 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.26,
+ "output_per_million": 0.78
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen Plus 0728, based on the Qwen3 foundation model, is a 1 million context hybrid reasoning model with a balanced performance, speed, and cost combination.",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1000000,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "qwen/qwen-plus-2025-07-28:thinking",
+ "name": "Qwen: Qwen Plus 0728 (thinking)",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2025-09-08 16:06:39 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.26,
+ "output_per_million": 0.78
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen Plus 0728, based on the Qwen3 foundation model, is a 1 million context hybrid reasoning model with a balanced performance, speed, and cost combination.",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1000000,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "qwen/qwen-turbo",
+ "name": "Qwen: Qwen-Turbo",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2025-02-01 11:56:14 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.0325,
+ "output_per_million": 0.13,
+ "cache_read_input_per_million": 0.006500000000000001
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen-Turbo, based on Qwen2.5, is a 1M context model that provides fast speed and low cost, suitable for simple tasks.",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 8192,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "qwen/qwen-vl-max",
+ "name": "Qwen: Qwen VL Max",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2025-02-01 18:25:04 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.52,
+ "output_per_million": 2.08
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen VL Max is a visual understanding model with 7500 tokens context length. It excels in delivering optimal performance for a broader spectrum of complex tasks.\n",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "qwen/qwen-vl-plus",
+ "name": "Qwen: Qwen VL Plus",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2025-02-05 04:54:15 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.1365,
+ "output_per_million": 0.40950000000000003,
+ "cache_read_input_per_million": 0.027299999999999998
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen's Enhanced Large Visual Language Model. Significantly upgraded for detailed recognition capabilities and text recognition abilities, supporting ultra-high pixel resolutions up to millions of pixels and extreme aspect ratios for...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 8192,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "temperature",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2025-02-01 00:00:00 UTC",
"context_window": 32768,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -20415,10 +50462,52 @@
},
"capabilities": [
"structured_output",
- "vision"
+ "vision",
+ "streaming",
+ "predicted_outputs"
],
- "pricing": {},
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.25,
+ "output_per_million": 0.75
+ }
+ }
+ },
"metadata": {
+ "description": "Qwen2.5-VL is proficient in recognizing common objects such as flowers, birds, fish, and insects. It is also highly capable of analyzing texts, charts, icons, graphics, and layouts within images.",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 32000,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -20436,12 +50525,148 @@
"knowledge": "2024-10"
}
},
+ {
+ "id": "qwen/qwen3-14b",
+ "name": "Qwen: Qwen3 14B",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2025-04-28 21:41:18 UTC",
+ "context_window": 40960,
+ "max_output_tokens": 40960,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.06,
+ "output_per_million": 0.24
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen3-14B is a dense 14.8B parameter causal language model from the Qwen3 series, designed for both complex reasoning and efficient dialogue. It supports seamless switching between a \"thinking\" mode for...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": "qwen3"
+ },
+ "top_provider": {
+ "context_length": 40960,
+ "max_completion_tokens": 40960,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "qwen/qwen3-235b-a22b",
+ "name": "Qwen: Qwen3 235B A22B",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2025-04-28 21:29:17 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.45499999999999996,
+ "output_per_million": 1.8199999999999998
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen3-235B-A22B is a 235B parameter mixture-of-experts (MoE) model developed by Qwen, activating 22B parameters per forward pass. It supports seamless switching between a \"thinking\" mode for complex reasoning, math, and...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": "qwen3"
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 8192,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "response_format",
+ "seed",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2025-04-28 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -20483,12 +50708,83 @@
"knowledge": "2025-04"
}
},
+ {
+ "id": "qwen/qwen3-235b-a22b-2507",
+ "name": "Qwen: Qwen3 235B A22B Instruct 2507",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2025-07-21 17:39:15 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.071,
+ "output_per_million": 0.09999999999999999
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen3-235B-A22B-Instruct-2507 is a multilingual, instruction-tuned mixture-of-experts language model based on the Qwen3-235B architecture, with 22B active parameters per forward pass. It is optimized for general-purpose text generation, including instruction following,...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2025-07-25 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 81920,
"knowledge_cutoff": null,
@@ -20503,7 +50799,9 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -20514,6 +50812,43 @@
}
},
"metadata": {
+ "description": "Qwen3-235B-A22B-Thinking-2507 is a high-performance, open-weight Mixture-of-Experts (MoE) language model optimized for complex reasoning tasks. It activates 22B of its 235B parameters per forward pass and natively supports up to 262,144...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": "qwen3"
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -20531,12 +50866,85 @@
"knowledge": "2025-04"
}
},
+ {
+ "id": "qwen/qwen3-30b-a3b",
+ "name": "Qwen: Qwen3 30B A3B",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2025-04-28 22:16:44 UTC",
+ "context_window": 40960,
+ "max_output_tokens": 20000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.09,
+ "output_per_million": 0.44999999999999996
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen3, the latest generation in the Qwen large language model series, features both dense and mixture-of-experts (MoE) architectures to excel in reasoning, multilingual support, and advanced agent tasks. Its unique...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": "qwen3"
+ },
+ "top_provider": {
+ "context_length": 40960,
+ "max_completion_tokens": 20000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2025-07-29 00:00:00 UTC",
"context_window": 262000,
"max_output_tokens": 262000,
"knowledge_cutoff": null,
@@ -20550,7 +50958,9 @@
},
"capabilities": [
"function_calling",
- "structured_output"
+ "structured_output",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -20561,6 +50971,41 @@
}
},
"metadata": {
+ "description": "Qwen3-30B-A3B-Instruct-2507 is a 30.5B-parameter mixture-of-experts language model from Qwen, with 3.3B active parameters per inference. It operates in non-thinking mode and is designed for high-quality instruction following, multilingual understanding, and...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 262144,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -20583,7 +51028,7 @@
"name": "Qwen3 30B A3B Thinking 2507",
"provider": "openrouter",
"family": "qwen",
- "created_at": "2025-07-29 00:00:00 +0530",
+ "created_at": "2025-07-29 00:00:00 UTC",
"context_window": 262000,
"max_output_tokens": 262000,
"knowledge_cutoff": null,
@@ -20598,7 +51043,9 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -20609,6 +51056,43 @@
}
},
"metadata": {
+ "description": "Qwen3-30B-A3B-Thinking-2507 is a 30B parameter Mixture-of-Experts reasoning model optimized for complex tasks requiring extended multi-step thinking. The model is designed specifically for “thinking mode,” where internal reasoning traces are separated...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 131072,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -20626,12 +51110,156 @@
"knowledge": "2025-04"
}
},
+ {
+ "id": "qwen/qwen3-32b",
+ "name": "Qwen: Qwen3 32B",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2025-04-28 21:32:25 UTC",
+ "context_window": 40960,
+ "max_output_tokens": 40960,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.08,
+ "output_per_million": 0.24,
+ "cache_read_input_per_million": 0.04
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen3-32B is a dense 32.8B parameter causal language model from the Qwen3 series, optimized for both complex reasoning and efficient dialogue. It supports seamless switching between a \"thinking\" mode for...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": "qwen3"
+ },
+ "top_provider": {
+ "context_length": 40960,
+ "max_completion_tokens": 40960,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "qwen/qwen3-8b",
+ "name": "Qwen: Qwen3 8B",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2025-04-28 21:43:52 UTC",
+ "context_window": 40960,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.049999999999999996,
+ "output_per_million": 0.39999999999999997,
+ "cache_read_input_per_million": 0.049999999999999996
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen3-8B is a dense 8.2B parameter causal language model from the Qwen3 series, designed for both reasoning-heavy tasks and efficient dialogue. It supports seamless switching between \"thinking\" mode for math,...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": "qwen3"
+ },
+ "top_provider": {
+ "context_length": 40960,
+ "max_completion_tokens": 8192,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
{
"id": "qwen/qwen3-coder",
"name": "Qwen3 Coder",
"provider": "openrouter",
"family": "qwen",
- "created_at": "2025-07-23 00:00:00 +0530",
+ "created_at": "2025-07-23 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 66536,
"knowledge_cutoff": null,
@@ -20645,7 +51273,9 @@
},
"capabilities": [
"function_calling",
- "structured_output"
+ "structured_output",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -20656,6 +51286,41 @@
}
},
"metadata": {
+ "description": "Qwen3-Coder-480B-A35B-Instruct is a Mixture-of-Experts (MoE) code generation model developed by the Qwen team. It is optimized for agentic coding tasks such as function calling, tool use, and long-context reasoning over...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -20678,7 +51343,7 @@
"name": "Qwen3 Coder 30B A3B Instruct",
"provider": "openrouter",
"family": "qwen",
- "created_at": "2025-07-31 00:00:00 +0530",
+ "created_at": "2025-07-31 00:00:00 UTC",
"context_window": 160000,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -20692,7 +51357,8 @@
},
"capabilities": [
"function_calling",
- "structured_output"
+ "structured_output",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -20703,6 +51369,39 @@
}
},
"metadata": {
+ "description": "Qwen3-Coder-30B-A3B-Instruct is a 30.5B parameter Mixture-of-Experts (MoE) model with 128 experts (8 active per forward pass), designed for advanced code generation, repository-scale understanding, and agentic tool use. Built on the...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 160000,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -20725,7 +51424,7 @@
"name": "Qwen3 Coder Flash",
"provider": "openrouter",
"family": "qwen",
- "created_at": "2025-07-23 00:00:00 +0530",
+ "created_at": "2025-07-23 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 66536,
"knowledge_cutoff": null,
@@ -20738,7 +51437,9 @@
]
},
"capabilities": [
- "function_calling"
+ "function_calling",
+ "streaming",
+ "structured_output"
],
"pricing": {
"text_tokens": {
@@ -20749,6 +51450,34 @@
}
},
"metadata": {
+ "description": "Qwen3 Coder Flash is Alibaba's fast and cost efficient version of their proprietary Qwen3 Coder Plus. It is a powerful coding agent model specializing in autonomous programming via tool calling...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1000000,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -20766,12 +51495,145 @@
"knowledge": "2025-04"
}
},
+ {
+ "id": "qwen/qwen3-coder-next",
+ "name": "Qwen: Qwen3 Coder Next",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2026-02-04 00:15:01 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 262144,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.11,
+ "output_per_million": 0.7999999999999999,
+ "cache_read_input_per_million": 0.07
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen3-Coder-Next is an open-weight causal language model optimized for coding agents and local development workflows. It uses a sparse MoE design with 80B total parameters and only 3B activated per...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 262144,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "qwen/qwen3-coder-plus",
+ "name": "Qwen: Qwen3 Coder Plus",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2025-09-23 21:25:07 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.65,
+ "output_per_million": 3.25,
+ "cache_read_input_per_million": 0.13
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen3 Coder Plus is Alibaba's proprietary version of the Open Source Qwen3 Coder 480B A35B. It is a powerful coding agent model specializing in autonomous programming via tool calling and...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1000000,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
{
"id": "qwen/qwen3-coder:exacto",
"name": "Qwen3 Coder (exacto)",
"provider": "openrouter",
"family": "qwen",
- "created_at": "2025-07-23 00:00:00 +0530",
+ "created_at": "2025-07-23 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -20813,12 +51675,66 @@
"knowledge": "2025-04"
}
},
+ {
+ "id": "qwen/qwen3-coder:free",
+ "name": "Qwen: Qwen3 Coder 480B A35B (free)",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2025-07-23 00:29:06 UTC",
+ "context_window": 262000,
+ "max_output_tokens": 262000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "description": "Qwen3-Coder-480B-A35B-Instruct is a Mixture-of-Experts (MoE) code generation model developed by the Qwen team. It is optimized for agentic coding tasks such as function calling, tool use, and long-context reasoning over...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262000,
+ "max_completion_tokens": 262000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
{
"id": "qwen/qwen3-max",
"name": "Qwen3 Max",
"provider": "openrouter",
"family": "qwen",
- "created_at": "2025-09-05 00:00:00 +0530",
+ "created_at": "2025-09-05 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -20832,7 +51748,9 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "structured_output"
],
"pricing": {
"text_tokens": {
@@ -20843,6 +51761,34 @@
}
},
"metadata": {
+ "description": "Qwen3-Max is an updated release built on the Qwen3 series, offering major improvements in reasoning, instruction following, multilingual support, and long-tail knowledge coverage compared to the January 2025 version. It...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -20860,13 +51806,13 @@
}
},
{
- "id": "qwen/qwen3-next-80b-a3b-instruct",
- "name": "Qwen3 Next 80B A3B Instruct",
+ "id": "qwen/qwen3-max-thinking",
+ "name": "Qwen: Qwen3 Max Thinking",
"provider": "openrouter",
"family": "qwen",
- "created_at": "2025-09-11 00:00:00 +0530",
+ "created_at": "2026-02-09 21:18:21 UTC",
"context_window": 262144,
- "max_output_tokens": 262144,
+ "max_output_tokens": 32768,
"knowledge_cutoff": null,
"modalities": {
"input": [
@@ -20877,41 +51823,58 @@
]
},
"capabilities": [
+ "streaming",
"function_calling",
"structured_output"
],
"pricing": {
"text_tokens": {
"standard": {
- "input_per_million": 0.14,
- "output_per_million": 1.4
+ "input_per_million": 0.78,
+ "output_per_million": 3.9
}
}
},
"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
+ "description": "Qwen3-Max-Thinking is the flagship reasoning model in the Qwen3 series, designed for high-stakes cognitive tasks that require deep, multi-step reasoning. By significantly scaling model capacity and reinforcement learning compute, it...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen",
+ "instruct_type": null
},
- "limit": {
- "context": 262144,
- "output": 262144
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
},
- "knowledge": "2025-04"
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
}
},
{
- "id": "qwen/qwen3-next-80b-a3b-thinking",
- "name": "Qwen3 Next 80B A3B Thinking",
+ "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",
+ "created_at": "2025-09-11 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 262144,
"knowledge_cutoff": null,
@@ -20926,7 +51889,8 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -20937,6 +51901,41 @@
}
},
"metadata": {
+ "description": "Qwen3-Next-80B-A3B-Instruct is an instruction-tuned chat model in the Qwen3-Next series optimized for fast, stable responses without “thinking” traces. It targets complex tasks across reasoning, code generation, knowledge QA, and multilingual...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -20954,12 +51953,870 @@
"knowledge": "2025-04"
}
},
+ {
+ "id": "qwen/qwen3-next-80b-a3b-instruct:free",
+ "name": "Qwen: Qwen3 Next 80B A3B Instruct (free)",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2025-09-11 17:36:53 UTC",
+ "context_window": 262144,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {},
+ "metadata": {
+ "description": "Qwen3-Next-80B-A3B-Instruct is an instruction-tuned chat model in the Qwen3-Next series optimized for fast, stable responses without “thinking” traces. It targets complex tasks across reasoning, code generation, knowledge QA, and multilingual...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "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 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 262144,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "structured_output",
+ "reasoning",
+ "streaming",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.14,
+ "output_per_million": 1.4
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen3-Next-80B-A3B-Thinking is a reasoning-first chat model in the Qwen3-Next line that outputs structured “thinking” traces by default. It’s designed for hard multi-step problems; math proofs, code synthesis/debugging, logic, and agentic...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
+ "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-vl-235b-a22b-instruct",
+ "name": "Qwen: Qwen3 VL 235B A22B Instruct",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2025-09-23 23:04:47 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.19999999999999998,
+ "output_per_million": 0.88,
+ "cache_read_input_per_million": 0.11
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen3-VL-235B-A22B Instruct is an open-weight multimodal model that unifies strong text generation with visual understanding across images and video. The Instruct model targets general vision-language use (VQA, document parsing, chart/table...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "qwen/qwen3-vl-235b-a22b-thinking",
+ "name": "Qwen: Qwen3 VL 235B A22B Thinking",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2025-09-23 23:04:50 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.26,
+ "output_per_million": 2.6
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen3-VL-235B-A22B Thinking is a multimodal model that unifies strong text generation with visual understanding across images and video. The Thinking model is optimized for multimodal reasoning in STEM and math....",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "qwen/qwen3-vl-30b-a3b-instruct",
+ "name": "Qwen: Qwen3 VL 30B A3B Instruct",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2025-10-06 23:47:56 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.13,
+ "output_per_million": 0.52
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen3-VL-30B-A3B-Instruct is a multimodal model that unifies strong text generation with visual understanding for images and videos. Its Instruct variant optimizes instruction-following for general multimodal tasks. It excels in perception...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "qwen/qwen3-vl-30b-a3b-thinking",
+ "name": "Qwen: Qwen3 VL 30B A3B Thinking",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2025-10-06 23:47:59 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.13,
+ "output_per_million": 1.56
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen3-VL-30B-A3B-Thinking is a multimodal model that unifies strong text generation with visual understanding for images and videos. Its Thinking variant enhances reasoning in STEM, math, and complex tasks. It excels...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "qwen/qwen3-vl-32b-instruct",
+ "name": "Qwen: Qwen3 VL 32B Instruct",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2025-10-23 14:55:32 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.10400000000000001,
+ "output_per_million": 0.41600000000000004
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen3-VL-32B-Instruct is a large-scale multimodal vision-language model designed for high-precision understanding and reasoning across text, images, and video. With 32 billion parameters, it combines deep visual perception with advanced text...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "qwen/qwen3-vl-8b-instruct",
+ "name": "Qwen: Qwen3 VL 8B Instruct",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2025-10-14 17:35:08 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "image",
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.08,
+ "output_per_million": 0.5
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen3-VL-8B-Instruct is a multimodal vision-language model from the Qwen3-VL series, built for high-fidelity understanding and reasoning across text, images, and video. It features improved multimodal fusion with Interleaved-MRoPE for long-horizon...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "qwen/qwen3-vl-8b-thinking",
+ "name": "Qwen: Qwen3 VL 8B Thinking",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2025-10-14 17:42:26 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "image",
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.117,
+ "output_per_million": 1.365
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen3-VL-8B-Thinking is the reasoning-optimized variant of the Qwen3-VL-8B multimodal model, designed for advanced visual and textual reasoning across complex scenes, documents, and temporal sequences. It integrates enhanced multimodal alignment and...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "qwen/qwen3.5-122b-a10b",
+ "name": "Qwen: Qwen3.5-122B-A10B",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2026-02-25 21:09:49 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.26,
+ "output_per_million": 2.08
+ }
+ }
+ },
+ "metadata": {
+ "description": "The Qwen3.5 122B-A10B native vision-language model is built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. In terms of...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "qwen/qwen3.5-27b",
+ "name": "Qwen: Qwen3.5-27B",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2026-02-25 21:10:10 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.195,
+ "output_per_million": 1.56
+ }
+ }
+ },
+ "metadata": {
+ "description": "The Qwen3.5 27B native vision-language Dense model incorporates a linear attention mechanism, delivering fast response times while balancing inference speed and performance. Its overall capabilities are comparable to those of...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "qwen/qwen3.5-35b-a3b",
+ "name": "Qwen: Qwen3.5-35B-A3B",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2026-02-25 21:10:22 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 262144,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.15,
+ "output_per_million": 1.0,
+ "cache_read_input_per_million": 0.049999999999999996
+ }
+ }
+ },
+ "metadata": {
+ "description": "The Qwen3.5 Series 35B-A3B is a native vision-language model designed with a hybrid architecture that integrates linear attention mechanisms and a sparse mixture-of-experts model, achieving higher inference efficiency. Its overall...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 262144,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
{
"id": "qwen/qwen3.5-397b-a17b",
"name": "Qwen3.5 397B A17B",
"provider": "openrouter",
"family": "qwen",
- "created_at": "2026-02-16 00:00:00 +0530",
+ "created_at": "2026-02-16 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -20977,7 +52834,9 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -20988,6 +52847,47 @@
}
},
"metadata": {
+ "description": "The Qwen3.5 series 397B-A17B native vision-language model is built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. It delivers...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -21005,12 +52905,88 @@
"knowledge": "2025-04"
}
},
+ {
+ "id": "qwen/qwen3.5-9b",
+ "name": "Qwen: Qwen3.5-9B",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2026-03-10 14:19:56 UTC",
+ "context_window": 262144,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.09999999999999999,
+ "output_per_million": 0.15
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen3.5-9B is a multimodal foundation model from the Qwen3.5 family, designed to deliver strong reasoning, coding, and visual understanding in an efficient 9B-parameter architecture. It uses a unified vision-language design...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2026-02-25 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -21028,7 +53004,8 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -21039,6 +53016,39 @@
}
},
"metadata": {
+ "description": "The Qwen3.5 native vision-language Flash models are built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. Compared to the...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1000000,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -21060,7 +53070,7 @@
"name": "Qwen3.5 Plus 2026-02-15",
"provider": "openrouter",
"family": "qwen",
- "created_at": "2026-02-16 00:00:00 +0530",
+ "created_at": "2026-02-16 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -21078,7 +53088,8 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -21089,6 +53100,39 @@
}
},
"metadata": {
+ "description": "The Qwen3.5 native vision-language series Plus models are built on a hybrid architecture that integrates linear attention mechanisms with sparse mixture-of-experts models, achieving higher inference efficiency. In a variety of...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1000000,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -21106,12 +53150,367 @@
"knowledge": "2025-04"
}
},
+ {
+ "id": "qwen/qwen3.5-plus-20260420",
+ "name": "Qwen: Qwen3.5 Plus 2026-04-20",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2026-04-27 03:42:48 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.39999999999999997,
+ "output_per_million": 2.4
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen3.5 Plus (April 2026) is a large-scale multimodal language model from Alibaba. It accepts text, image, and video input and produces text output, with a 1M token context window. This...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1000000,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "qwen/qwen3.6-27b",
+ "name": "Qwen: Qwen3.6 27B",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2026-04-27 01:57:44 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 81920,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.32,
+ "output_per_million": 3.1999999999999997
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen3.6 27B is a dense 27-billion-parameter language model from the Qwen Team at Alibaba, released in April 2026. It features hybrid multimodal capabilities — accepting text, image, and video inputs...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 81920,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "qwen/qwen3.6-35b-a3b",
+ "name": "Qwen: Qwen3.6 35B A3B",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2026-04-27 03:24:15 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 262144,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.15,
+ "output_per_million": 1.0,
+ "cache_read_input_per_million": 0.049999999999999996
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen3.6-35B-A3B is an open-weight multimodal model from Alibaba Cloud with 35 billion total parameters and 3 billion active parameters per token. It uses a hybrid sparse mixture-of-experts architecture combining Gated...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 262144,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "qwen/qwen3.6-flash",
+ "name": "Qwen: Qwen3.6 Flash",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2026-04-27 03:42:42 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.25,
+ "output_per_million": 1.5
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen3.6 Flash is a fast, efficient language model from Alibaba's Qwen 3.6 series. It supports text, image, and video input with a 1M token context window. Tiered pricing kicks in...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1000000,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "qwen/qwen3.6-max-preview",
+ "name": "Qwen: Qwen3.6 Max Preview",
+ "provider": "openrouter",
+ "family": "qwen",
+ "created_at": "2026-04-27 03:24:02 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.04,
+ "output_per_million": 6.24
+ }
+ }
+ },
+ "metadata": {
+ "description": "Qwen3.6-Max-Preview is a proprietary frontier model from Alibaba Cloud built on a sparse mixture-of-experts architecture with approximately 1 trillion total parameters. It is optimized for agentic coding, tool use, and...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
{
"id": "qwen/qwen3.6-plus",
"name": "Qwen3.6 Plus",
"provider": "openrouter",
"family": "qwen",
- "created_at": "2026-04-02 00:00:00 +0530",
+ "created_at": "2026-04-02 00:00:00 UTC",
"context_window": 1000000,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -21129,7 +53528,8 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -21140,6 +53540,39 @@
}
},
"metadata": {
+ "description": "Qwen 3.6 Plus builds on a hybrid architecture that combines efficient linear attention with sparse mixture-of-experts routing, enabling strong scalability and high-performance inference. Compared to the 3.5 series, it delivers...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1000000,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -21157,12 +53590,582 @@
"knowledge": "2025-04"
}
},
+ {
+ "id": "rekaai/reka-edge",
+ "name": "Reka Edge",
+ "provider": "openrouter",
+ "family": "rekaai",
+ "created_at": "2026-03-20 17:16:05 UTC",
+ "context_window": 16384,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "image",
+ "text",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.09999999999999999,
+ "output_per_million": 0.09999999999999999
+ }
+ }
+ },
+ "metadata": {
+ "description": "Reka Edge is an extremely efficient 7B multimodal vision-language model that accepts image/video+text inputs and generates text outputs. This model is optimized specifically to deliver industry-leading performance in image understanding,...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 16384,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "rekaai/reka-flash-3",
+ "name": "Reka Flash 3",
+ "provider": "openrouter",
+ "family": "rekaai",
+ "created_at": "2025-03-12 20:53:33 UTC",
+ "context_window": 65536,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.09999999999999999,
+ "output_per_million": 0.19999999999999998
+ }
+ }
+ },
+ "metadata": {
+ "description": "Reka Flash 3 is a general-purpose, instruction-tuned large language model with 21 billion parameters, developed by Reka. It excels at general chat, coding tasks, instruction-following, and function calling. Featuring a...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 65536,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "seed",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "relace/relace-apply-3",
+ "name": "Relace: Relace Apply 3",
+ "provider": "openrouter",
+ "family": "relace",
+ "created_at": "2025-09-26 12:59:32 UTC",
+ "context_window": 256000,
+ "max_output_tokens": 128000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.85,
+ "output_per_million": 1.25
+ }
+ }
+ },
+ "metadata": {
+ "description": "Relace Apply 3 is a specialized code-patching LLM that merges AI-suggested edits straight into your source files. It can apply updates from GPT-4o, Claude, and others into your files at...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 256000,
+ "max_completion_tokens": 128000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "seed",
+ "stop"
+ ]
+ }
+ },
+ {
+ "id": "relace/relace-search",
+ "name": "Relace: Relace Search",
+ "provider": "openrouter",
+ "family": "relace",
+ "created_at": "2025-12-08 17:06:00 UTC",
+ "context_window": 256000,
+ "max_output_tokens": 128000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.0,
+ "output_per_million": 3.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "The relace-search model uses 4-12 `view_file` and `grep` tools in parallel to explore a codebase and return relevant files to the user request. In contrast to RAG, relace-search performs agentic...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 256000,
+ "max_completion_tokens": 128000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "sao10k/l3-euryale-70b",
+ "name": "Sao10k: Llama 3 Euryale 70B v2.1",
+ "provider": "openrouter",
+ "family": "sao10k",
+ "created_at": "2024-06-18 00:00:00 UTC",
+ "context_window": 8192,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.48,
+ "output_per_million": 1.48
+ }
+ }
+ },
+ "metadata": {
+ "description": "Euryale 70B v2.1 is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). - Better prompt adherence. - Better anatomy / spatial awareness. - Adapts much better to unique and custom...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": "llama3"
+ },
+ "top_provider": {
+ "context_length": 8192,
+ "max_completion_tokens": 8192,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "sao10k/l3-lunaris-8b",
+ "name": "Sao10K: Llama 3 8B Lunaris",
+ "provider": "openrouter",
+ "family": "sao10k",
+ "created_at": "2024-08-13 00:00:00 UTC",
+ "context_window": 8192,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.04,
+ "output_per_million": 0.049999999999999996
+ }
+ }
+ },
+ "metadata": {
+ "description": "Lunaris 8B is a versatile generalist and roleplaying model based on Llama 3. It's a strategic merge of multiple models, designed to balance creativity with improved logic and general knowledge....",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": "llama3"
+ },
+ "top_provider": {
+ "context_length": 8192,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "sao10k/l3.1-70b-hanami-x1",
+ "name": "Sao10K: Llama 3.1 70B Hanami x1",
+ "provider": "openrouter",
+ "family": "sao10k",
+ "created_at": "2025-01-08 02:20:54 UTC",
+ "context_window": 16000,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 3.0,
+ "output_per_million": 3.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "This is [Sao10K](/sao10k)'s experiment over [Euryale v2.2](/sao10k/l3.1-euryale-70b).",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 16000,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "seed",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "sao10k/l3.1-euryale-70b",
+ "name": "Sao10K: Llama 3.1 Euryale 70B v2.2",
+ "provider": "openrouter",
+ "family": "sao10k",
+ "created_at": "2024-08-28 00:00:00 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.85,
+ "output_per_million": 0.85
+ }
+ }
+ },
+ "metadata": {
+ "description": "Euryale L3.1 70B v2.2 is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). It is the successor of [Euryale L3 70B v2.1](/models/sao10k/l3-euryale-70b).",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": "llama3"
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "sao10k/l3.3-euryale-70b",
+ "name": "Sao10K: Llama 3.3 Euryale 70B",
+ "provider": "openrouter",
+ "family": "sao10k",
+ "created_at": "2024-12-18 15:32:08 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.65,
+ "output_per_million": 0.75
+ }
+ }
+ },
+ "metadata": {
+ "description": "Euryale L3.3 70B is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). It is the successor of [Euryale L3 70B v2.2](/models/sao10k/l3-euryale-70b).",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama3",
+ "instruct_type": "llama3"
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
{
"id": "sourceful/riverflow-v2-fast-preview",
"name": "Riverflow V2 Fast Preview",
"provider": "openrouter",
"family": "sourceful",
- "created_at": "2025-12-08 00:00:00 +0530",
+ "created_at": "2025-12-08 00:00:00 UTC",
"context_window": 8192,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -21202,7 +54205,7 @@
"name": "Riverflow V2 Max Preview",
"provider": "openrouter",
"family": "sourceful",
- "created_at": "2025-12-08 00:00:00 +0530",
+ "created_at": "2025-12-08 00:00:00 UTC",
"context_window": 8192,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -21242,7 +54245,7 @@
"name": "Riverflow V2 Standard Preview",
"provider": "openrouter",
"family": "sourceful",
- "created_at": "2025-12-08 00:00:00 +0530",
+ "created_at": "2025-12-08 00:00:00 UTC",
"context_window": 8192,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -21282,7 +54285,7 @@
"name": "Step 3.5 Flash",
"provider": "openrouter",
"family": "step",
- "created_at": "2026-01-29 00:00:00 +0530",
+ "created_at": "2026-01-29 00:00:00 UTC",
"context_window": 256000,
"max_output_tokens": 256000,
"knowledge_cutoff": null,
@@ -21296,18 +54299,57 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "structured_output",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.1,
"output_per_million": 0.3,
- "cached_input_per_million": 0.02
+ "cache_read_input_per_million": 0.02
}
}
},
"metadata": {
+ "description": "Step 3.5 Flash is StepFun's most capable open-source foundation model. Built on a sparse Mixture of Experts (MoE) architecture, it selectively activates only 11B of its 196B parameters per token....",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -21326,12 +54368,708 @@
"knowledge": "2025-01"
}
},
+ {
+ "id": "switchpoint/router",
+ "name": "Switchpoint Router",
+ "provider": "openrouter",
+ "family": "switchpoint",
+ "created_at": "2025-07-11 22:28:19 UTC",
+ "context_window": 131072,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.85,
+ "output_per_million": 3.4
+ }
+ }
+ },
+ "metadata": {
+ "description": "Switchpoint AI's router instantly analyzes your request and directs it to the optimal AI from an ever-evolving library. As the world of LLMs advances, our router gets smarter, ensuring you...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "seed",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "tencent/hunyuan-a13b-instruct",
+ "name": "Tencent: Hunyuan A13B Instruct",
+ "provider": "openrouter",
+ "family": "tencent",
+ "created_at": "2025-07-08 15:14:24 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 131072,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.14,
+ "output_per_million": 0.5700000000000001
+ }
+ }
+ },
+ "metadata": {
+ "description": "Hunyuan-A13B is a 13B active parameter Mixture-of-Experts (MoE) language model developed by Tencent, with a total parameter count of 80B and support for reasoning via Chain-of-Thought. It offers competitive benchmark...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 131072,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "structured_outputs",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "tencent/hy3-preview:free",
+ "name": "Tencent: Hy3 preview (free)",
+ "provider": "openrouter",
+ "family": "tencent",
+ "created_at": "2026-04-22 17:15:50 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 262144,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "description": "Hy3 preview is a high-efficiency Mixture-of-Experts model from Tencent designed for agentic workflows and production use. It supports configurable reasoning levels across disabled, low, and high modes, allowing it to...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 262144,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "thedrummer/cydonia-24b-v4.1",
+ "name": "TheDrummer: Cydonia 24B V4.1",
+ "provider": "openrouter",
+ "family": "thedrummer",
+ "created_at": "2025-09-27 00:11:18 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 131072,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.3,
+ "output_per_million": 0.5,
+ "cache_read_input_per_million": 0.15
+ }
+ }
+ },
+ "metadata": {
+ "description": "Uncensored and creative writing model based on Mistral Small 3.2 24B with good recall, prompt adherence, and intelligence.",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 131072,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "seed",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "thedrummer/rocinante-12b",
+ "name": "TheDrummer: Rocinante 12B",
+ "provider": "openrouter",
+ "family": "thedrummer",
+ "created_at": "2024-09-30 00:00:00 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.16999999999999998,
+ "output_per_million": 0.43
+ }
+ }
+ },
+ "metadata": {
+ "description": "Rocinante 12B is designed for engaging storytelling and rich prose. Early testers have reported: - Expanded vocabulary with unique and expressive word choices - Enhanced creativity for vivid narratives -...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Qwen",
+ "instruct_type": "chatml"
+ },
+ "top_provider": {
+ "context_length": 32768,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "thedrummer/skyfall-36b-v2",
+ "name": "TheDrummer: Skyfall 36B V2",
+ "provider": "openrouter",
+ "family": "thedrummer",
+ "created_at": "2025-03-10 19:56:06 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.55,
+ "output_per_million": 0.7999999999999999,
+ "cache_read_input_per_million": 0.25
+ }
+ }
+ },
+ "metadata": {
+ "description": "Skyfall 36B v2 is an enhanced iteration of Mistral Small 2501, specifically fine-tuned for improved creativity, nuanced writing, role-playing, and coherent storytelling.",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 32768,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "seed",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "thedrummer/unslopnemo-12b",
+ "name": "TheDrummer: UnslopNemo 12B",
+ "provider": "openrouter",
+ "family": "thedrummer",
+ "created_at": "2024-11-08 22:04:08 UTC",
+ "context_window": 32768,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.39999999999999997,
+ "output_per_million": 0.39999999999999997
+ }
+ }
+ },
+ "metadata": {
+ "description": "UnslopNemo v4.1 is the latest addition from the creator of Rocinante, designed for adventure writing and role-play scenarios.",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Mistral",
+ "instruct_type": "mistral"
+ },
+ "top_provider": {
+ "context_length": 32768,
+ "max_completion_tokens": 32768,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "tngtech/deepseek-r1t2-chimera",
+ "name": "TNG: DeepSeek R1T2 Chimera",
+ "provider": "openrouter",
+ "family": "tngtech",
+ "created_at": "2025-07-08 15:03:05 UTC",
+ "context_window": 163840,
+ "max_output_tokens": 163840,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.3,
+ "output_per_million": 1.1,
+ "cache_read_input_per_million": 0.15
+ }
+ }
+ },
+ "metadata": {
+ "description": "DeepSeek-TNG-R1T2-Chimera is the second-generation Chimera model from TNG Tech. It is a 671 B-parameter mixture-of-experts text-generation model assembled from DeepSeek-AI’s R1-0528, R1, and V3-0324 checkpoints with an Assembly-of-Experts merge. The...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "DeepSeek",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 163840,
+ "max_completion_tokens": 163840,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "undi95/remm-slerp-l2-13b",
+ "name": "ReMM SLERP 13B",
+ "provider": "openrouter",
+ "family": "undi95",
+ "created_at": "2023-07-22 00:00:00 UTC",
+ "context_window": 6144,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.44999999999999996,
+ "output_per_million": 0.65
+ }
+ }
+ },
+ "metadata": {
+ "description": "A recreation trial of the original MythoMax-L2-B13 but with updated models. #merge",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Llama2",
+ "instruct_type": "alpaca"
+ },
+ "top_provider": {
+ "context_length": 6144,
+ "max_completion_tokens": 4096,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "top_a",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "upstage/solar-pro-3",
+ "name": "Upstage: Solar Pro 3",
+ "provider": "openrouter",
+ "family": "upstage",
+ "created_at": "2026-01-27 02:33:20 UTC",
+ "context_window": 128000,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.15,
+ "output_per_million": 0.6,
+ "cache_read_input_per_million": 0.015
+ }
+ }
+ },
+ "metadata": {
+ "description": "Solar Pro 3 is Upstage's powerful Mixture-of-Experts (MoE) language model. With 102B total parameters and 12B active parameters per forward pass, it delivers exceptional performance while maintaining computational efficiency. Optimized...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools"
+ ]
+ }
+ },
+ {
+ "id": "writer/palmyra-x5",
+ "name": "Writer: Palmyra X5",
+ "provider": "openrouter",
+ "family": "writer",
+ "created_at": "2026-01-21 13:57:03 UTC",
+ "context_window": 1040000,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.6,
+ "output_per_million": 6.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "Palmyra X5 is Writer's most advanced model, purpose-built for building and scaling AI agents across the enterprise. It delivers industry-leading speed and efficiency on context windows up to 1 million...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1040000,
+ "max_completion_tokens": 8192,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "stop",
+ "temperature",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
{
"id": "x-ai/grok-3",
"name": "Grok 3",
"provider": "openrouter",
"family": "grok",
- "created_at": "2025-02-17 00:00:00 +0530",
+ "created_at": "2025-02-17 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -21345,18 +55083,53 @@
},
"capabilities": [
"function_calling",
- "structured_output"
+ "structured_output",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.75
+ "cache_read_input_per_million": 0.75,
+ "cache_write_input_per_million": 15
}
}
},
"metadata": {
+ "description": "Grok 3 is the latest model from xAI. It's their flagship model that excels at enterprise use cases like data extraction, coding, and text summarization. Possesses deep domain knowledge in...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Grok",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -21381,7 +55154,7 @@
"name": "Grok 3 Beta",
"provider": "openrouter",
"family": "grok",
- "created_at": "2025-02-17 00:00:00 +0530",
+ "created_at": "2025-02-17 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -21394,18 +55167,53 @@
]
},
"capabilities": [
- "function_calling"
+ "function_calling",
+ "streaming",
+ "structured_output"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.75
+ "cache_read_input_per_million": 0.75,
+ "cache_write_input_per_million": 15
}
}
},
"metadata": {
+ "description": "Grok 3 is the latest model from xAI. It's their flagship model that excels at enterprise use cases like data extraction, coding, and text summarization. Possesses deep domain knowledge in...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Grok",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -21430,7 +55238,7 @@
"name": "Grok 3 Mini",
"provider": "openrouter",
"family": "grok",
- "created_at": "2025-02-17 00:00:00 +0530",
+ "created_at": "2025-02-17 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -21445,18 +55253,53 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.3,
"output_per_million": 0.5,
- "cached_input_per_million": 0.075
+ "cache_read_input_per_million": 0.075,
+ "cache_write_input_per_million": 0.5
}
}
},
"metadata": {
+ "description": "A lightweight model that thinks before responding. Fast, smart, and great for logic-based tasks that do not require deep domain knowledge. The raw thinking traces are accessible.",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Grok",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "logprobs",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -21481,7 +55324,7 @@
"name": "Grok 3 Mini Beta",
"provider": "openrouter",
"family": "grok",
- "created_at": "2025-02-17 00:00:00 +0530",
+ "created_at": "2025-02-17 00:00:00 UTC",
"context_window": 131072,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -21495,18 +55338,53 @@
},
"capabilities": [
"function_calling",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "structured_output"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.3,
"output_per_million": 0.5,
- "cached_input_per_million": 0.075
+ "cache_read_input_per_million": 0.075,
+ "cache_write_input_per_million": 0.5
}
}
},
"metadata": {
+ "description": "Grok 3 Mini is a lightweight, smaller thinking model. Unlike traditional models that generate answers immediately, Grok 3 Mini thinks before responding. It’s ideal for reasoning-heavy tasks that don’t demand...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Grok",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "logprobs",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -21531,7 +55409,7 @@
"name": "Grok 4",
"provider": "openrouter",
"family": "grok",
- "created_at": "2025-07-09 00:00:00 +0530",
+ "created_at": "2025-07-09 00:00:00 UTC",
"context_window": 256000,
"max_output_tokens": 64000,
"knowledge_cutoff": null,
@@ -21546,18 +55424,54 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 3,
"output_per_million": 15,
- "cached_input_per_million": 0.75
+ "cache_read_input_per_million": 0.75,
+ "cache_write_input_per_million": 15
}
}
},
"metadata": {
+ "description": "Grok 4 is xAI's latest reasoning model with a 256k context window. It supports parallel tool calling, structured outputs, and both image and text inputs. Note that reasoning is not...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Grok",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 256000,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "logprobs",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -21582,7 +55496,7 @@
"name": "Grok 4 Fast",
"provider": "openrouter",
"family": "grok",
- "created_at": "2025-08-19 00:00:00 +0530",
+ "created_at": "2025-08-19 00:00:00 UTC",
"context_window": 2000000,
"max_output_tokens": 30000,
"knowledge_cutoff": null,
@@ -21599,18 +55513,54 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.2,
"output_per_million": 0.5,
- "cached_input_per_million": 0.05
+ "cache_read_input_per_million": 0.05,
+ "cache_write_input_per_million": 0.05
}
}
},
"metadata": {
+ "description": "Grok 4 Fast is xAI's latest multimodal model with SOTA cost-efficiency and a 2M token context window. It comes in two flavors: non-reasoning and reasoning. Read more about the model...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Grok",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 2000000,
+ "max_completion_tokens": 30000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "logprobs",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -21635,7 +55585,7 @@
"name": "Grok 4.1 Fast",
"provider": "openrouter",
"family": "grok",
- "created_at": "2025-11-19 00:00:00 +0530",
+ "created_at": "2025-11-19 00:00:00 UTC",
"context_window": 2000000,
"max_output_tokens": 30000,
"knowledge_cutoff": null,
@@ -21652,18 +55602,54 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.2,
"output_per_million": 0.5,
- "cached_input_per_million": 0.05
+ "cache_read_input_per_million": 0.05,
+ "cache_write_input_per_million": 0.05
}
}
},
"metadata": {
+ "description": "Grok 4.1 Fast is xAI's best agentic tool calling model that shines in real-world use cases like customer support and deep research. 2M context window. Reasoning can be enabled/disabled using...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Grok",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 2000000,
+ "max_completion_tokens": 30000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "logprobs",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -21683,12 +55669,82 @@
"knowledge": "2024-11"
}
},
+ {
+ "id": "x-ai/grok-4.20",
+ "name": "xAI: Grok 4.20",
+ "provider": "openrouter",
+ "family": "x-ai",
+ "created_at": "2026-03-31 17:43:39 UTC",
+ "context_window": 2000000,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 2.5,
+ "cache_read_input_per_million": 0.19999999999999998
+ }
+ }
+ },
+ "metadata": {
+ "description": "Grok 4.20 is xAI's newest flagship model with industry-leading speed and agentic tool calling capabilities. It combines the lowest hallucination rate on the market with strict prompt adherance, delivering consistently...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Grok",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 2000000,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "logprobs",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2026-03-12 00:00:00 UTC",
"context_window": 2000000,
"max_output_tokens": 30000,
"knowledge_cutoff": null,
@@ -21711,7 +55767,7 @@
"standard": {
"input_per_million": 2,
"output_per_million": 6,
- "cached_input_per_million": 0.2
+ "cache_read_input_per_million": 0.2
}
}
},
@@ -21738,12 +55794,79 @@
}
}
},
+ {
+ "id": "x-ai/grok-4.20-multi-agent",
+ "name": "xAI: Grok 4.20 Multi-Agent",
+ "provider": "openrouter",
+ "family": "x-ai",
+ "created_at": "2026-03-31 17:45:58 UTC",
+ "context_window": 2000000,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.0,
+ "output_per_million": 6.0,
+ "cache_read_input_per_million": 0.19999999999999998
+ }
+ }
+ },
+ "metadata": {
+ "description": "Grok 4.20 Multi-Agent is a variant of xAI’s Grok 4.20 designed for collaborative, agent-based workflows. Multiple agents operate in parallel to conduct deep research, coordinate tool use, and synthesize information...",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Grok",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 2000000,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "logprobs",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "temperature",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
{
"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",
+ "created_at": "2026-03-12 00:00:00 UTC",
"context_window": 2000000,
"max_output_tokens": 30000,
"knowledge_cutoff": null,
@@ -21765,7 +55888,7 @@
"standard": {
"input_per_million": 2,
"output_per_million": 6,
- "cached_input_per_million": 0.2
+ "cache_read_input_per_million": 0.2
}
}
},
@@ -21792,12 +55915,105 @@
}
}
},
+ {
+ "id": "x-ai/grok-4.3",
+ "name": "Grok 4.3",
+ "provider": "openrouter",
+ "family": "grok",
+ "created_at": "2026-05-01 00:00:00 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 1000000,
+ "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.25,
+ "output_per_million": 2.5,
+ "cache_read_input_per_million": 0.2
+ }
+ }
+ },
+ "metadata": {
+ "description": "Grok 4.3 is a reasoning model from xAI. It accepts text and image inputs with text output, and is suited for agentic workflows, instruction-following tasks, and applications requiring high factual...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Grok",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1000000,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logprobs",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ],
+ "source": "models.dev",
+ "provider_id": "openrouter",
+ "open_weights": false,
+ "attachment": true,
+ "temperature": true,
+ "last_updated": "2026-05-01",
+ "cost": {
+ "input": 1.25,
+ "output": 2.5,
+ "cache_read": 0.2,
+ "context_over_200k": {
+ "input": 2.5,
+ "output": 5,
+ "cache_read": 0.4
+ }
+ },
+ "limit": {
+ "context": 1000000,
+ "output": 1000000
+ }
+ }
+ },
{
"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",
+ "created_at": "2025-08-26 00:00:00 UTC",
"context_window": 256000,
"max_output_tokens": 10000,
"knowledge_cutoff": null,
@@ -21812,18 +56028,52 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.2,
"output_per_million": 1.5,
- "cached_input_per_million": 0.02
+ "cache_read_input_per_million": 0.02
}
}
},
"metadata": {
+ "description": "Grok Code Fast 1 is a speedy and economical reasoning model that excels at agentic coding. With reasoning traces visible in the response, developers can steer Grok Code for high-quality...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Grok",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 256000,
+ "max_completion_tokens": 10000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "logprobs",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -21844,13 +56094,13 @@
},
{
"id": "xiaomi/mimo-v2-flash",
- "name": "MiMo-V2-Flash",
+ "name": "Xiaomi: MiMo-V2-Flash",
"provider": "openrouter",
"family": "mimo",
- "created_at": "2025-12-14 00:00:00 +0530",
+ "created_at": "2025-12-16 00:00:00 UTC",
"context_window": 262144,
"max_output_tokens": 65536,
- "knowledge_cutoff": null,
+ "knowledge_cutoff": "2024-12-01",
"modalities": {
"input": [
"text"
@@ -21861,25 +56111,64 @@
},
"capabilities": [
"function_calling",
- "structured_output",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "structured_output"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.1,
"output_per_million": 0.3,
- "cached_input_per_million": 0.01
+ "cache_read_input_per_million": 0.01
}
}
},
"metadata": {
+ "description": "MiMo-V2-Flash is an open-source foundation language model developed by Xiaomi. It is a Mixture-of-Experts model with 309B total parameters and 15B active parameters, adopting hybrid attention architecture. MiMo-V2-Flash supports a...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
"attachment": false,
"temperature": true,
- "last_updated": "2025-12-14",
+ "last_updated": "2026-02-04",
+ "interleaved": {
+ "field": "reasoning_details"
+ },
"cost": {
"input": 0.1,
"output": 0.3,
@@ -21889,24 +56178,25 @@
"context": 262144,
"output": 65536
},
- "knowledge": "2024-12"
+ "knowledge": "2024-12-01"
}
},
{
"id": "xiaomi/mimo-v2-omni",
- "name": "MiMo-V2-Omni",
+ "name": "Xiaomi: MiMo-V2-Omni",
"provider": "openrouter",
"family": "mimo",
- "created_at": "2026-03-18 00:00:00 +0530",
+ "created_at": "2026-03-18 00:00:00 UTC",
"context_window": 262144,
- "max_output_tokens": 65536,
+ "max_output_tokens": 131072,
"knowledge_cutoff": null,
"modalities": {
"input": [
"text",
"image",
+ "audio",
"video",
- "audio"
+ "pdf"
],
"output": [
"text"
@@ -21914,23 +56204,58 @@
},
"capabilities": [
"function_calling",
- "structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming",
+ "structured_output"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.4,
"output_per_million": 2,
- "cached_input_per_million": 0.08
+ "cache_read_input_per_million": 0.08
}
}
},
"metadata": {
+ "description": "MiMo-V2-Omni is a frontier omni-modal model that natively processes image, video, and audio inputs within a unified architecture. It combines strong multimodal perception with agentic capability - visual grounding, multi-step...",
+ "architecture": {
+ "modality": "text+image+audio+video->text",
+ "input_modalities": [
+ "text",
+ "audio",
+ "image",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "response_format",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
- "open_weights": true,
+ "open_weights": false,
"attachment": true,
"temperature": true,
"last_updated": "2026-03-18",
@@ -21944,18 +56269,19 @@
},
"limit": {
"context": 262144,
- "output": 65536
- }
+ "output": 131072
+ },
+ "knowledge": "2024-12"
}
},
{
"id": "xiaomi/mimo-v2-pro",
- "name": "MiMo-V2-Pro",
+ "name": "Xiaomi: MiMo-V2-Pro",
"provider": "openrouter",
"family": "mimo",
- "created_at": "2026-03-18 00:00:00 +0530",
+ "created_at": "2026-03-18 00:00:00 UTC",
"context_window": 1048576,
- "max_output_tokens": 65536,
+ "max_output_tokens": 131072,
"knowledge_cutoff": null,
"modalities": {
"input": [
@@ -21967,23 +56293,55 @@
},
"capabilities": [
"function_calling",
- "structured_output",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "structured_output"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1,
"output_per_million": 3,
- "cached_input_per_million": 0.2
+ "cache_read_input_per_million": 0.2
}
}
},
"metadata": {
+ "description": "MiMo-V2-Pro is Xiaomi's flagship foundation model, featuring over 1T total parameters and a 1M context length, deeply optimized for agentic scenarios. It is highly adaptable to general agent frameworks like...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 131072,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "response_format",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
- "open_weights": true,
- "attachment": false,
+ "open_weights": false,
+ "attachment": true,
"temperature": true,
"last_updated": "2026-03-18",
"interleaved": {
@@ -21992,12 +56350,262 @@
"cost": {
"input": 1,
"output": 3,
- "cache_read": 0.2
+ "cache_read": 0.2,
+ "context_over_200k": {
+ "input": 2,
+ "output": 6,
+ "cache_read": 0.4
+ }
},
"limit": {
"context": 1048576,
- "output": 65536
+ "output": 131072
+ },
+ "knowledge": "2024-12"
+ }
+ },
+ {
+ "id": "xiaomi/mimo-v2.5",
+ "name": "Xiaomi: MiMo-V2.5",
+ "provider": "openrouter",
+ "family": "mimo",
+ "created_at": "2026-04-22 00:00:00 UTC",
+ "context_window": 1048576,
+ "max_output_tokens": 131072,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "audio",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "reasoning",
+ "vision",
+ "streaming",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.4,
+ "output_per_million": 2,
+ "cache_read_input_per_million": 0.08
+ }
}
+ },
+ "metadata": {
+ "description": "MiMo-V2.5 is a native omnimodal model by Xiaomi. It delivers Pro-level agentic performance at roughly half the inference cost, while surpassing MiMo-V2-Omni in multimodal perception across image and video understanding...",
+ "architecture": {
+ "modality": "text+image+audio+video->text",
+ "input_modalities": [
+ "text",
+ "audio",
+ "image",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 131072,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "response_format",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
+ "source": "models.dev",
+ "provider_id": "openrouter",
+ "open_weights": true,
+ "attachment": true,
+ "temperature": true,
+ "last_updated": "2026-04-22",
+ "interleaved": {
+ "field": "reasoning_details"
+ },
+ "cost": {
+ "input": 0.4,
+ "output": 2,
+ "cache_read": 0.08,
+ "context_over_200k": {
+ "input": 0.8,
+ "output": 4,
+ "cache_read": 0.16
+ }
+ },
+ "limit": {
+ "context": 1048576,
+ "output": 131072
+ },
+ "knowledge": "2024-12"
+ }
+ },
+ {
+ "id": "xiaomi/mimo-v2.5-pro",
+ "name": "Xiaomi: MiMo-V2.5-Pro",
+ "provider": "openrouter",
+ "family": "mimo",
+ "created_at": "2026-04-22 00:00:00 UTC",
+ "context_window": 1048576,
+ "max_output_tokens": 131072,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "reasoning",
+ "streaming",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1,
+ "output_per_million": 3,
+ "cache_read_input_per_million": 0.2
+ }
+ }
+ },
+ "metadata": {
+ "description": "MiMo-V2.5-Pro is Xiaomi’s flagship model, delivering strong performance in general agentic capabilities, complex software engineering, and long-horizon tasks, with top rankings on benchmarks such as ClawEval, GDPVal, and SWE-bench Pro....",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 131072,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "response_format",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
+ "source": "models.dev",
+ "provider_id": "openrouter",
+ "open_weights": true,
+ "attachment": true,
+ "temperature": true,
+ "last_updated": "2026-04-22",
+ "interleaved": {
+ "field": "reasoning_content"
+ },
+ "cost": {
+ "input": 1,
+ "output": 3,
+ "cache_read": 0.2,
+ "context_over_200k": {
+ "input": 2,
+ "output": 6,
+ "cache_read": 0.4
+ }
+ },
+ "limit": {
+ "context": 1048576,
+ "output": 131072
+ },
+ "knowledge": "2024-12"
+ }
+ },
+ {
+ "id": "z-ai/glm-4-32b",
+ "name": "Z.ai: GLM 4 32B ",
+ "provider": "openrouter",
+ "family": "z-ai",
+ "created_at": "2025-07-24 17:03:37 UTC",
+ "context_window": 128000,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.09999999999999999,
+ "output_per_million": 0.09999999999999999
+ }
+ }
+ },
+ "metadata": {
+ "description": "GLM 4 32B is a cost-effective foundation language model. It can efficiently perform complex tasks and has significantly enhanced capabilities in tool use, online search, and code-related intelligent tasks. It...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 128000,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "max_tokens",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
}
},
{
@@ -22005,7 +56613,7 @@
"name": "GLM 4.5",
"provider": "openrouter",
"family": "glm",
- "created_at": "2025-07-28 00:00:00 +0530",
+ "created_at": "2025-07-28 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 96000,
"knowledge_cutoff": null,
@@ -22020,7 +56628,8 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -22031,6 +56640,40 @@
}
},
"metadata": {
+ "description": "GLM-4.5 is our latest flagship foundation model, purpose-built for agent-based applications. It leverages a Mixture-of-Experts (MoE) architecture and supports a context length of up to 128k tokens. GLM-4.5 delivers significantly...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 98304,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -22053,7 +56696,7 @@
"name": "GLM 4.5 Air",
"provider": "openrouter",
"family": "glm-air",
- "created_at": "2025-07-28 00:00:00 +0530",
+ "created_at": "2025-07-28 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 96000,
"knowledge_cutoff": null,
@@ -22068,7 +56711,8 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -22079,6 +56723,39 @@
}
},
"metadata": {
+ "description": "GLM-4.5-Air is the lightweight variant of our latest flagship model family, also purpose-built for agent-centric applications. Like GLM-4.5, it adopts the Mixture-of-Experts (MoE) architecture but with a more compact parameter...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 98304,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -22101,7 +56778,7 @@
"name": "GLM 4.5 Air (free)",
"provider": "openrouter",
"family": "glm-air",
- "created_at": "2025-07-28 00:00:00 +0530",
+ "created_at": "2025-07-28 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 96000,
"knowledge_cutoff": null,
@@ -22114,10 +56791,39 @@
]
},
"capabilities": [
- "reasoning"
+ "reasoning",
+ "streaming",
+ "function_calling"
],
"pricing": {},
"metadata": {
+ "description": "GLM-4.5-Air is the lightweight variant of our latest flagship model family, also purpose-built for agent-centric applications. Like GLM-4.5, it adopts the Mixture-of-Experts (MoE) architecture but with a more compact parameter...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 96000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -22140,7 +56846,7 @@
"name": "GLM 4.5V",
"provider": "openrouter",
"family": "glm",
- "created_at": "2025-08-11 00:00:00 +0530",
+ "created_at": "2025-08-11 00:00:00 UTC",
"context_window": 64000,
"max_output_tokens": 16384,
"knowledge_cutoff": null,
@@ -22158,7 +56864,8 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
@@ -22169,6 +56876,40 @@
}
},
"metadata": {
+ "description": "GLM-4.5V is a vision-language foundation model for multimodal agent applications. Built on a Mixture-of-Experts (MoE) architecture with 106B parameters and 12B activated parameters, it achieves state-of-the-art results in video understanding,...",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 65536,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -22191,7 +56932,7 @@
"name": "GLM 4.6",
"provider": "openrouter",
"family": "glm",
- "created_at": "2025-09-30 00:00:00 +0530",
+ "created_at": "2025-09-30 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 128000,
"knowledge_cutoff": null,
@@ -22206,18 +56947,57 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.6,
"output_per_million": 2.2,
- "cached_input_per_million": 0.11
+ "cache_read_input_per_million": 0.11
}
}
},
"metadata": {
+ "description": "Compared with GLM-4.5, this generation brings several key improvements: Longer context window: The context window has been expanded from 128K to 200K tokens, enabling the model to handle more complex...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 204800,
+ "max_completion_tokens": 204800,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -22241,7 +57021,7 @@
"name": "GLM 4.6 (exacto)",
"provider": "openrouter",
"family": "glm",
- "created_at": "2025-09-30 00:00:00 +0530",
+ "created_at": "2025-09-30 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 128000,
"knowledge_cutoff": null,
@@ -22263,7 +57043,7 @@
"standard": {
"input_per_million": 0.6,
"output_per_million": 1.9,
- "cached_input_per_million": 0.11
+ "cache_read_input_per_million": 0.11
}
}
},
@@ -22286,12 +57066,82 @@
"knowledge": "2025-09"
}
},
+ {
+ "id": "z-ai/glm-4.6v",
+ "name": "Z.ai: GLM 4.6V",
+ "provider": "openrouter",
+ "family": "z-ai",
+ "created_at": "2025-12-08 15:24:22 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 24000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "image",
+ "text",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.3,
+ "output_per_million": 0.8999999999999999,
+ "cache_read_input_per_million": 0.049999999999999996
+ }
+ }
+ },
+ "metadata": {
+ "description": "GLM-4.6V is a large multimodal model designed for high-fidelity visual understanding and long-context reasoning across images, documents, and mixed media. It supports up to 128K tokens, processes complex page layouts...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 131072,
+ "max_completion_tokens": 24000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "max_tokens",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
{
"id": "z-ai/glm-4.7",
"name": "GLM-4.7",
"provider": "openrouter",
"family": "glm",
- "created_at": "2025-12-22 00:00:00 +0530",
+ "created_at": "2025-12-22 00:00:00 UTC",
"context_window": 204800,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -22306,18 +57156,59 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.6,
"output_per_million": 2.2,
- "cached_input_per_million": 0.11
+ "cache_read_input_per_million": 0.11
}
}
},
"metadata": {
+ "description": "GLM-4.7 is Z.ai’s latest flagship model, featuring upgrades in two key areas: enhanced programming capabilities and more stable multi-step reasoning/execution. It demonstrates significant improvements in executing complex agent tasks while...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 202752,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -22344,7 +57235,7 @@
"name": "GLM-4.7-Flash",
"provider": "openrouter",
"family": "glm",
- "created_at": "2026-01-19 00:00:00 +0530",
+ "created_at": "2026-01-19 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 65535,
"knowledge_cutoff": null,
@@ -22359,7 +57250,9 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
@@ -22370,6 +57263,43 @@
}
},
"metadata": {
+ "description": "As a 30B-class SOTA model, GLM-4.7-Flash offers a new option that balances performance and efficiency. It is further optimized for agentic coding use cases, strengthening coding capabilities, long-horizon task planning,...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 202752,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -22394,7 +57324,7 @@
"name": "GLM-5",
"provider": "openrouter",
"family": "glm",
- "created_at": "2026-02-12 00:00:00 +0530",
+ "created_at": "2026-02-12 00:00:00 UTC",
"context_window": 202752,
"max_output_tokens": 131000,
"knowledge_cutoff": null,
@@ -22409,18 +57339,59 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1,
"output_per_million": 3.2,
- "cached_input_per_million": 0.2
+ "cache_read_input_per_million": 0.2
}
}
},
"metadata": {
+ "description": "GLM-5 is Z.ai’s flagship open-source foundation model engineered for complex systems design and long-horizon agent workflows. Built for expert developers, it delivers production-grade performance on large-scale programming tasks, rivaling leading...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 202752,
+ "max_completion_tokens": null,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -22446,7 +57417,7 @@
"name": "GLM-5-Turbo",
"provider": "openrouter",
"family": "glm",
- "created_at": "2026-03-16 00:00:00 +0530",
+ "created_at": "2026-03-16 00:00:00 UTC",
"context_window": 202752,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -22461,18 +57432,56 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.96,
"output_per_million": 3.2,
- "cached_input_per_million": 0.192
+ "cache_read_input_per_million": 0.192
}
}
},
"metadata": {
+ "description": "GLM-5 Turbo is a new model from Z.ai designed for fast inference and strong performance in agent-driven environments such as OpenClaw scenarios. It is deeply optimized for real-world agent workflows...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 202752,
+ "max_completion_tokens": 131072,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "max_tokens",
+ "min_p",
+ "presence_penalty",
+ "reasoning",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": false,
@@ -22499,7 +57508,7 @@
"name": "GLM-5.1",
"provider": "openrouter",
"family": "glm",
- "created_at": "2026-04-07 00:00:00 +0530",
+ "created_at": "2026-04-07 00:00:00 UTC",
"context_window": 202752,
"max_output_tokens": 131072,
"knowledge_cutoff": null,
@@ -22514,18 +57523,61 @@
"capabilities": [
"function_calling",
"structured_output",
- "reasoning"
+ "reasoning",
+ "streaming",
+ "predicted_outputs"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.4,
"output_per_million": 4.4,
- "cached_input_per_million": 0.26
+ "cache_read_input_per_million": 0.26
}
}
},
"metadata": {
+ "description": "GLM-5.1 delivers a major leap in coding capability, with particularly significant gains in handling long-horizon tasks. Unlike previous models built around minute-level interactions, GLM-5.1 can work independently and continuously on...",
+ "architecture": {
+ "modality": "text->text",
+ "input_modalities": [
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 202752,
+ "max_completion_tokens": 65535,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "parallel_tool_calls",
+ "presence_penalty",
+ "reasoning",
+ "reasoning_effort",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ],
"source": "models.dev",
"provider_id": "openrouter",
"open_weights": true,
@@ -22546,12 +57598,639 @@
}
}
},
+ {
+ "id": "z-ai/glm-5v-turbo",
+ "name": "Z.ai: GLM 5V Turbo",
+ "provider": "openrouter",
+ "family": "z-ai",
+ "created_at": "2026-04-01 16:37:38 UTC",
+ "context_window": 202752,
+ "max_output_tokens": 131072,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "image",
+ "text",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.2,
+ "output_per_million": 4.0,
+ "cache_read_input_per_million": 0.24
+ }
+ }
+ },
+ "metadata": {
+ "description": "GLM-5V-Turbo is Z.ai’s first native multimodal agent foundation model, built for vision-based coding and agent-driven tasks. It natively handles image, video, and text inputs, excels at long-horizon planning, complex coding,...",
+ "architecture": {
+ "modality": "text+image+video->text",
+ "input_modalities": [
+ "image",
+ "text",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Other",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 202752,
+ "max_completion_tokens": 131072,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "~anthropic/claude-haiku-latest",
+ "name": "Anthropic Claude Haiku Latest",
+ "provider": "openrouter",
+ "family": "~anthropic",
+ "created_at": "2026-04-27 19:34:52 UTC",
+ "context_window": 200000,
+ "max_output_tokens": 64000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "image",
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.0,
+ "output_per_million": 5.0,
+ "cache_read_input_per_million": 0.09999999999999999
+ }
+ }
+ },
+ "metadata": {
+ "description": "This model always redirects to the latest model in the Anthropic Claude Haiku family.",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Router",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 200000,
+ "max_completion_tokens": 64000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "~anthropic/claude-opus-latest",
+ "name": "Anthropic: Claude Opus Latest",
+ "provider": "openrouter",
+ "family": "~anthropic",
+ "created_at": "2026-04-21 18:16:01 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 128000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 5.0,
+ "output_per_million": 25.0,
+ "cache_read_input_per_million": 0.5
+ }
+ }
+ },
+ "metadata": {
+ "description": "This model always redirects to the latest model in the Claude Opus family.",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Router",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1000000,
+ "max_completion_tokens": 128000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "stop",
+ "structured_outputs",
+ "tool_choice",
+ "tools",
+ "verbosity"
+ ]
+ }
+ },
+ {
+ "id": "~anthropic/claude-sonnet-latest",
+ "name": "Anthropic Claude Sonnet Latest",
+ "provider": "openrouter",
+ "family": "~anthropic",
+ "created_at": "2026-04-27 19:32:48 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 128000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 3.0,
+ "output_per_million": 15.0,
+ "cache_read_input_per_million": 0.3
+ }
+ }
+ },
+ "metadata": {
+ "description": "This model always redirects to the latest model in the Anthropic Claude Sonnet family.",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Router",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1000000,
+ "max_completion_tokens": 128000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_completion_tokens",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_p",
+ "verbosity"
+ ]
+ }
+ },
+ {
+ "id": "~google/gemini-flash-latest",
+ "name": "Google Gemini Flash Latest",
+ "provider": "openrouter",
+ "family": "~google",
+ "created_at": "2026-04-27 19:33:18 UTC",
+ "context_window": 1048576,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "file",
+ "audio",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.5,
+ "output_per_million": 3.0,
+ "cache_read_input_per_million": 0.049999999999999996,
+ "reasoning_output_per_million": 3.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "This model always redirects to the latest model in the Google Gemini Flash family.",
+ "architecture": {
+ "modality": "text+image+file+audio+video->text",
+ "input_modalities": [
+ "text",
+ "image",
+ "file",
+ "audio",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Router",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "~google/gemini-pro-latest",
+ "name": "Google Gemini Pro Latest",
+ "provider": "openrouter",
+ "family": "~google",
+ "created_at": "2026-04-27 19:34:11 UTC",
+ "context_window": 1048576,
+ "max_output_tokens": 65536,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "audio",
+ "file",
+ "image",
+ "text",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 2.0,
+ "output_per_million": 12.0,
+ "cache_read_input_per_million": 0.19999999999999998,
+ "reasoning_output_per_million": 12.0
+ }
+ }
+ },
+ "metadata": {
+ "description": "This model always redirects to the latest model in the Google Gemini Pro family.",
+ "architecture": {
+ "modality": "text+image+file+audio+video->text",
+ "input_modalities": [
+ "audio",
+ "file",
+ "image",
+ "text",
+ "video"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Router",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1048576,
+ "max_completion_tokens": 65536,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "~moonshotai/kimi-latest",
+ "name": "MoonshotAI Kimi Latest",
+ "provider": "openrouter",
+ "family": "~moonshotai",
+ "created_at": "2026-04-27 19:33:48 UTC",
+ "context_window": 262144,
+ "max_output_tokens": 16384,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "predicted_outputs"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.75,
+ "output_per_million": 3.5,
+ "cache_read_input_per_million": 0.15
+ }
+ }
+ },
+ "metadata": {
+ "description": "This model always redirects to the latest model in the MoonshotAI Kimi family.",
+ "architecture": {
+ "modality": "text+image->text",
+ "input_modalities": [
+ "text",
+ "image"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Router",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 262144,
+ "max_completion_tokens": 16384,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "frequency_penalty",
+ "include_reasoning",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "min_p",
+ "parallel_tool_calls",
+ "presence_penalty",
+ "reasoning",
+ "reasoning_effort",
+ "repetition_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "structured_outputs",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_k",
+ "top_logprobs",
+ "top_p"
+ ]
+ }
+ },
+ {
+ "id": "~openai/gpt-latest",
+ "name": "OpenAI GPT Latest",
+ "provider": "openrouter",
+ "family": "~openai",
+ "created_at": "2026-04-27 19:32:14 UTC",
+ "context_window": 1050000,
+ "max_output_tokens": 128000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "file",
+ "image",
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 5.0,
+ "output_per_million": 30.0,
+ "cache_read_input_per_million": 0.5
+ }
+ }
+ },
+ "metadata": {
+ "description": "This model always redirects to the latest model in the OpenAI GPT family.",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "file",
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Router",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 1050000,
+ "max_completion_tokens": 128000,
+ "is_moderated": true
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_completion_tokens",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ]
+ }
+ },
+ {
+ "id": "~openai/gpt-mini-latest",
+ "name": "OpenAI GPT Mini Latest",
+ "provider": "openrouter",
+ "family": "~openai",
+ "created_at": "2026-04-27 19:34:31 UTC",
+ "context_window": 400000,
+ "max_output_tokens": 128000,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "file",
+ "image",
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.75,
+ "output_per_million": 4.5,
+ "cache_read_input_per_million": 0.075
+ }
+ }
+ },
+ "metadata": {
+ "description": "This model always redirects to the latest model in the OpenAI GPT Mini family.",
+ "architecture": {
+ "modality": "text+image+file->text",
+ "input_modalities": [
+ "file",
+ "image",
+ "text"
+ ],
+ "output_modalities": [
+ "text"
+ ],
+ "tokenizer": "Router",
+ "instruct_type": null
+ },
+ "top_provider": {
+ "context_length": 400000,
+ "max_completion_tokens": 128000,
+ "is_moderated": false
+ },
+ "per_request_limits": null,
+ "supported_parameters": [
+ "include_reasoning",
+ "max_completion_tokens",
+ "max_tokens",
+ "reasoning",
+ "response_format",
+ "seed",
+ "structured_outputs",
+ "tool_choice",
+ "tools"
+ ]
+ }
+ },
{
"id": "sonar",
"name": "Sonar",
"provider": "perplexity",
"family": "sonar",
- "created_at": "2024-01-01 00:00:00 +0530",
+ "created_at": "2024-01-01 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 4096,
"knowledge_cutoff": "2025-09-01",
@@ -22563,7 +58242,9 @@
"text"
]
},
- "capabilities": [],
+ "capabilities": [
+ "vision"
+ ],
"pricing": {
"text_tokens": {
"standard": {
@@ -22595,7 +58276,7 @@
"name": "Perplexity Sonar Deep Research",
"provider": "perplexity",
"family": null,
- "created_at": "2025-02-01 00:00:00 +0530",
+ "created_at": "2025-02-01 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 32768,
"knowledge_cutoff": null,
@@ -22643,7 +58324,7 @@
"name": "Sonar Pro",
"provider": "perplexity",
"family": "sonar-pro",
- "created_at": "2024-01-01 00:00:00 +0530",
+ "created_at": "2024-01-01 00:00:00 UTC",
"context_window": 200000,
"max_output_tokens": 8192,
"knowledge_cutoff": "2025-09-01",
@@ -22685,12 +58366,39 @@
"knowledge": "2025-09-01"
}
},
+ {
+ "id": "sonar-reasoning",
+ "name": "sonar-reasoning",
+ "provider": "perplexity",
+ "family": null,
+ "created_at": null,
+ "context_window": 128000,
+ "max_output_tokens": 4096,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "vision",
+ "reasoning"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.0,
+ "output_per_million": 5.0
+ }
+ }
+ },
+ "metadata": {}
+ },
{
"id": "sonar-reasoning-pro",
"name": "Sonar Reasoning Pro",
"provider": "perplexity",
"family": "sonar-reasoning",
- "created_at": "2024-01-01 00:00:00 +0530",
+ "created_at": "2024-01-01 00:00:00 UTC",
"context_window": 128000,
"max_output_tokens": 4096,
"knowledge_cutoff": "2025-09-01",
@@ -22734,17 +58442,18 @@
}
},
{
- "id": "deepseek-ai/deepseek-v3.1-maas",
- "name": "DeepSeek V3.1",
+ "id": "claude-3-5-haiku@20241022",
+ "name": "Claude Haiku 3.5",
"provider": "vertexai",
- "family": "deepseek",
- "created_at": "2025-08-28 00:00:00 +0530",
- "context_window": 163840,
- "max_output_tokens": 32768,
- "knowledge_cutoff": null,
+ "family": "claude-haiku",
+ "created_at": "2024-10-22 00:00:00 UTC",
+ "context_window": 200000,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": "2024-07-31",
"modalities": {
"input": [
"text",
+ "image",
"pdf"
],
"output": [
@@ -22753,47 +58462,51 @@
},
"capabilities": [
"function_calling",
- "structured_output",
- "reasoning",
"vision"
],
"pricing": {
"text_tokens": {
"standard": {
- "input_per_million": 0.6,
- "output_per_million": 1.7
+ "input_per_million": 0.8,
+ "output_per_million": 4,
+ "cache_read_input_per_million": 0.08,
+ "cache_write_input_per_million": 1
}
}
},
"metadata": {
"source": "models.dev",
"provider_id": "google-vertex",
- "open_weights": true,
- "attachment": false,
+ "open_weights": false,
+ "attachment": true,
"temperature": true,
- "last_updated": "2025-08-28",
+ "last_updated": "2024-10-22",
"cost": {
- "input": 0.6,
- "output": 1.7
+ "input": 0.8,
+ "output": 4,
+ "cache_read": 0.08,
+ "cache_write": 1
},
"limit": {
- "context": 163840,
- "output": 32768
- }
+ "context": 200000,
+ "output": 8192
+ },
+ "knowledge": "2024-07-31"
}
},
{
- "id": "deepseek-ai/deepseek-v3.2-maas",
- "name": "DeepSeek V3.2",
+ "id": "claude-3-5-sonnet@20241022",
+ "name": "Claude Sonnet 3.5 v2",
"provider": "vertexai",
- "family": "deepseek",
- "created_at": "2025-12-17 00:00:00 +0530",
- "context_window": 163840,
- "max_output_tokens": 65536,
- "knowledge_cutoff": null,
+ "family": "claude-sonnet",
+ "created_at": "2024-10-22 00:00:00 UTC",
+ "context_window": 200000,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": "2024-04-30",
"modalities": {
"input": [
"text",
+ "image",
"pdf"
],
"output": [
@@ -22802,35 +58515,862 @@
},
"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
+ "input_per_million": 3,
+ "output_per_million": 15,
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
}
}
},
"metadata": {
"source": "models.dev",
"provider_id": "google-vertex",
- "open_weights": true,
- "attachment": false,
+ "open_weights": false,
+ "attachment": true,
"temperature": true,
- "last_updated": "2026-04-04",
+ "last_updated": "2024-10-22",
"cost": {
- "input": 0.56,
- "output": 1.68,
- "cache_read": 0.056
+ "input": 3,
+ "output": 15,
+ "cache_read": 0.3,
+ "cache_write": 3.75
},
"limit": {
- "context": 163840,
- "output": 65536
+ "context": 200000,
+ "output": 8192
+ },
+ "knowledge": "2024-04-30"
+ }
+ },
+ {
+ "id": "claude-3-7-sonnet@20250219",
+ "name": "Claude Sonnet 3.7",
+ "provider": "vertexai",
+ "family": "claude-sonnet",
+ "created_at": "2025-02-19 00:00:00 UTC",
+ "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,
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
+ }
}
+ },
+ "metadata": {
+ "source": "models.dev",
+ "provider_id": "google-vertex",
+ "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-haiku-4-5@20251001",
+ "name": "Claude Haiku 4.5",
+ "provider": "vertexai",
+ "family": "claude-haiku",
+ "created_at": "2025-10-15 00:00:00 UTC",
+ "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,
+ "cache_read_input_per_million": 0.1,
+ "cache_write_input_per_million": 1.25
+ }
+ }
+ },
+ "metadata": {
+ "source": "models.dev",
+ "provider_id": "google-vertex",
+ "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-1@20250805",
+ "name": "Claude Opus 4.1",
+ "provider": "vertexai",
+ "family": "claude-opus",
+ "created_at": "2025-08-05 00:00:00 UTC",
+ "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,
+ "cache_read_input_per_million": 1.5,
+ "cache_write_input_per_million": 18.75
+ }
+ }
+ },
+ "metadata": {
+ "source": "models.dev",
+ "provider_id": "google-vertex",
+ "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-5@20251101",
+ "name": "Claude Opus 4.5",
+ "provider": "vertexai",
+ "family": "claude-opus",
+ "created_at": "2025-11-01 00:00:00 UTC",
+ "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,
+ "cache_read_input_per_million": 0.5,
+ "cache_write_input_per_million": 6.25
+ }
+ }
+ },
+ "metadata": {
+ "source": "models.dev",
+ "provider_id": "google-vertex",
+ "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@default",
+ "name": "Claude Opus 4.6",
+ "provider": "vertexai",
+ "family": "claude-opus",
+ "created_at": "2026-02-05 00:00:00 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 128000,
+ "knowledge_cutoff": "2025-05-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,
+ "cache_read_input_per_million": 0.5,
+ "cache_write_input_per_million": 6.25
+ }
+ }
+ },
+ "metadata": {
+ "source": "models.dev",
+ "provider_id": "google-vertex",
+ "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,
+ "context_over_200k": {
+ "input": 10,
+ "output": 37.5,
+ "cache_read": 1,
+ "cache_write": 12.5
+ }
+ },
+ "limit": {
+ "context": 1000000,
+ "output": 128000
+ },
+ "knowledge": "2025-05-31"
+ }
+ },
+ {
+ "id": "claude-opus-4-7@default",
+ "name": "Claude Opus 4.7",
+ "provider": "vertexai",
+ "family": "claude-opus",
+ "created_at": "2026-04-16 00:00:00 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 128000,
+ "knowledge_cutoff": "2026-01-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,
+ "cache_read_input_per_million": 0.5,
+ "cache_write_input_per_million": 6.25
+ }
+ }
+ },
+ "metadata": {
+ "source": "models.dev",
+ "provider_id": "google-vertex",
+ "open_weights": false,
+ "attachment": true,
+ "temperature": false,
+ "last_updated": "2026-04-16",
+ "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": "2026-01-31"
+ }
+ },
+ {
+ "id": "claude-opus-4@20250514",
+ "name": "Claude Opus 4",
+ "provider": "vertexai",
+ "family": "claude-opus",
+ "created_at": "2025-05-22 00:00:00 UTC",
+ "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,
+ "cache_read_input_per_million": 1.5,
+ "cache_write_input_per_million": 18.75
+ }
+ }
+ },
+ "metadata": {
+ "source": "models.dev",
+ "provider_id": "google-vertex",
+ "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-sonnet-4-5@20250929",
+ "name": "Claude Sonnet 4.5",
+ "provider": "vertexai",
+ "family": "claude-sonnet",
+ "created_at": "2025-09-29 00:00:00 UTC",
+ "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,
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
+ }
+ }
+ },
+ "metadata": {
+ "source": "models.dev",
+ "provider_id": "google-vertex",
+ "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@default",
+ "name": "Claude Sonnet 4.6",
+ "provider": "vertexai",
+ "family": "claude-sonnet",
+ "created_at": "2026-02-17 00:00:00 UTC",
+ "context_window": 200000,
+ "max_output_tokens": 64000,
+ "knowledge_cutoff": "2025-08-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,
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
+ }
+ }
+ },
+ "metadata": {
+ "source": "models.dev",
+ "provider_id": "google-vertex",
+ "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,
+ "context_over_200k": {
+ "input": 6,
+ "output": 22.5,
+ "cache_read": 0.6,
+ "cache_write": 7.5
+ }
+ },
+ "limit": {
+ "context": 200000,
+ "output": 64000
+ },
+ "knowledge": "2025-08-31"
+ }
+ },
+ {
+ "id": "claude-sonnet-4@20250514",
+ "name": "Claude Sonnet 4",
+ "provider": "vertexai",
+ "family": "claude-sonnet",
+ "created_at": "2025-05-22 00:00:00 UTC",
+ "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,
+ "cache_read_input_per_million": 0.3,
+ "cache_write_input_per_million": 3.75
+ }
+ }
+ },
+ "metadata": {
+ "source": "models.dev",
+ "provider_id": "google-vertex",
+ "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": "gemini-1.5-flash",
+ "name": "Gemini 1.5 Flash",
+ "provider": "vertexai",
+ "family": "gemini-flash",
+ "created_at": "2024-05-14 00:00:00 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "audio",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "vision",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.075,
+ "output_per_million": 0.3,
+ "cache_read_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-002",
+ "name": "gemini-1.5-flash-002",
+ "provider": "vertexai",
+ "family": "gemini-1.5",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "source": "known_models"
+ }
+ },
+ {
+ "id": "gemini-1.5-flash-8b",
+ "name": "Gemini 1.5 Flash-8B",
+ "provider": "vertexai",
+ "family": "gemini-flash",
+ "created_at": "2024-10-03 00:00:00 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "audio",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "vision",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.0375,
+ "output_per_million": 0.15,
+ "cache_read_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": "vertexai",
+ "family": "gemini-pro",
+ "created_at": "2024-02-15 00:00:00 UTC",
+ "context_window": 1000000,
+ "max_output_tokens": 8192,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "audio",
+ "video"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "function_calling",
+ "vision",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 1.25,
+ "output_per_million": 5,
+ "cache_read_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-1.5-pro-002",
+ "name": "gemini-1.5-pro-002",
+ "provider": "vertexai",
+ "family": "gemini-1.5",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "version_id": "default",
+ "open_source_category": "PROPRIETARY",
+ "launch_stage": "GA",
+ "supported_actions": {
+ "openNotebook": {
+ "references": {
+ "us-central1": {
+ "uri": "https://colab.research.google.com/github/GoogleCloudPlatform/generative-ai/blob/main/gemini/use-cases/retail/product_attributes_extraction.ipynb"
+ }
+ },
+ "title": "Open Notebook",
+ "resourceTitle": "Notebook",
+ "resourceUseCase": "Product Attributes Extraction",
+ "resourceDescription": "Extract product descriptions and attribute json from images using Gemini 1.5 Pro. This notebook also shows the use of self-correcting prompt to improve the quality of the output."
+ },
+ "openGenerationAiStudio": {
+ "references": {
+ "us-central1": {
+ "uri": "https://console.cloud.google.com/vertex-ai/studio/freeform?model=gemini-1.5-pro-002"
+ }
+ }
+ },
+ "openEvaluationPipeline": {
+ "references": {
+ "us-central1": {
+ "uri": "https://console.cloud.google.com/vertex-ai/pipelines/vertex-ai-templates/autosxs-template"
+ }
+ },
+ "title": "Evaluate"
+ },
+ "openNotebooks": {
+ "notebooks": [
+ {
+ "references": {
+ "us-central1": {
+ "uri": "https://colab.research.google.com/github/GoogleCloudPlatform/generative-ai/blob/main/gemini/getting-started/intro_gemini_1_5_pro.ipynb"
+ }
+ },
+ "title": "Open Notebook"
+ },
+ {
+ "references": {
+ "us-central1": {
+ "uri": "https://colab.research.google.com/github/GoogleCloudPlatform/generative-ai/blob/main/gemini/getting-started/intro_gemini_1_5_pro.ipynb"
+ }
+ },
+ "title": "Open Notebook",
+ "resourceTitle": "Notebook",
+ "resourceUseCase": "Vertex AI Gemini API 1.5 Pro",
+ "resourceDescription": "Use the Vertex AI Gemini API 1.5 Pro model to process images, video, audio, and text simultaneously."
+ },
+ {
+ "references": {
+ "us-central1": {
+ "uri": "https://colab.research.google.com/github/GoogleCloudPlatform/generative-ai/blob/main/gemini/use-cases/retail/product_attributes_extraction.ipynb"
+ }
+ },
+ "title": "Open Notebook",
+ "resourceTitle": "Notebook",
+ "resourceUseCase": "Product Attributes Extraction",
+ "resourceDescription": "Extract product descriptions and attribute json from images using Gemini 1.5 Pro. This notebook also shows the use of self-correcting prompt to improve the quality of the output."
+ }
+ ]
+ }
+ },
+ "publisher_model_template": "projects/{project}/locations/{location}/publishers/google/models/gemini-1.5-pro-002@default"
}
},
{
@@ -22838,7 +59378,7 @@
"name": "Gemini 2.0 Flash",
"provider": "vertexai",
"family": "gemini-flash",
- "created_at": "2024-12-11 00:00:00 +0530",
+ "created_at": "2024-12-11 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -22856,18 +59396,56 @@
},
"capabilities": [
"function_calling",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.15,
"output_per_million": 0.6,
- "cached_input_per_million": 0.025
+ "cache_read_input_per_million": 0.025
}
}
},
"metadata": {
+ "version_id": "default",
+ "open_source_category": null,
+ "launch_stage": "GA",
+ "supported_actions": {
+ "openNotebook": {
+ "references": {
+ "us-central1": {
+ "uri": "https://colab.research.google.com/github/GoogleCloudPlatform/generative-ai/blob/main/gemini/getting-started/intro_gemini_2_0_flash.ipynb"
+ }
+ },
+ "resourceTitle": "Notebook",
+ "resourceUseCase": "Vertex Serving",
+ "resourceDescription": "Intro to Gemini 2.0 Flash."
+ },
+ "openGenerationAiStudio": {
+ "references": {
+ "us-central1": {
+ "uri": "https://console.cloud.google.com/vertex-ai/generative/multimodal/create/text?model=gemini-2.0-flash-001"
+ }
+ }
+ },
+ "openNotebooks": {
+ "notebooks": [
+ {
+ "references": {
+ "us-central1": {
+ "uri": "https://colab.research.google.com/github/GoogleCloudPlatform/generative-ai/blob/main/gemini/getting-started/intro_gemini_2_0_flash.ipynb"
+ }
+ },
+ "resourceTitle": "Notebook",
+ "resourceUseCase": "Vertex Serving",
+ "resourceDescription": "Intro to Gemini 2.0 Flash."
+ }
+ ]
+ }
+ },
+ "publisher_model_template": "projects/{project}/locations/{location}/publishers/google/models/gemini-2.0-flash@default",
"source": "models.dev",
"provider_id": "google-vertex",
"open_weights": false,
@@ -22886,12 +59464,92 @@
"knowledge": "2024-06"
}
},
+ {
+ "id": "gemini-2.0-flash-001",
+ "name": "gemini-2.0-flash-001",
+ "provider": "vertexai",
+ "family": "gemini-2",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "version_id": "default",
+ "open_source_category": null,
+ "launch_stage": "GA",
+ "supported_actions": {
+ "openNotebook": {
+ "references": {
+ "us-central1": {
+ "uri": "https://colab.research.google.com/github/GoogleCloudPlatform/generative-ai/blob/main/gemini/getting-started/intro_gemini_2_0_flash.ipynb"
+ }
+ },
+ "resourceTitle": "Notebook",
+ "resourceUseCase": "Vertex Serving",
+ "resourceDescription": "Intro to Gemini 2.0 Flash."
+ },
+ "openGenerationAiStudio": {
+ "references": {
+ "us-central1": {
+ "uri": "https://console.cloud.google.com/vertex-ai/generative/multimodal/create/text?model=gemini-2.0-flash-001"
+ }
+ }
+ },
+ "openNotebooks": {
+ "notebooks": [
+ {
+ "references": {
+ "us-central1": {
+ "uri": "https://colab.research.google.com/github/GoogleCloudPlatform/generative-ai/blob/main/gemini/getting-started/intro_gemini_2_0_flash.ipynb"
+ }
+ },
+ "resourceTitle": "Notebook",
+ "resourceUseCase": "Vertex Serving",
+ "resourceDescription": "Intro to Gemini 2.0 Flash."
+ }
+ ]
+ }
+ },
+ "publisher_model_template": "projects/{project}/locations/{location}/publishers/google/models/gemini-2.0-flash-001@default"
+ }
+ },
+ {
+ "id": "gemini-2.0-flash-exp",
+ "name": "gemini-2.0-flash-exp",
+ "provider": "vertexai",
+ "family": "gemini-2",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "source": "known_models"
+ }
+ },
{
"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",
+ "created_at": "2024-12-11 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 8192,
"knowledge_cutoff": null,
@@ -22937,12 +59595,38 @@
"knowledge": "2024-06"
}
},
+ {
+ "id": "gemini-2.0-flash-lite-001",
+ "name": "gemini-2.0-flash-lite-001",
+ "provider": "vertexai",
+ "family": "gemini-2",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "version_id": "default",
+ "open_source_category": null,
+ "launch_stage": "GA",
+ "supported_actions": null,
+ "publisher_model_template": "projects/{project}/locations/{location}/publishers/google/models/gemini-2.0-flash-lite-001@default"
+ }
+ },
{
"id": "gemini-2.5-flash",
"name": "Gemini 2.5 Flash",
"provider": "vertexai",
"family": "gemini-flash",
- "created_at": "2025-06-17 00:00:00 +0530",
+ "created_at": "2025-06-17 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -22961,18 +59645,25 @@
"capabilities": [
"function_calling",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.3,
"output_per_million": 2.5,
- "cached_input_per_million": 0.075
+ "cache_read_input_per_million": 0.075,
+ "cache_write_input_per_million": 0.383
}
}
},
"metadata": {
+ "version_id": "default",
+ "open_source_category": null,
+ "launch_stage": "GA",
+ "supported_actions": null,
+ "publisher_model_template": "projects/{project}/locations/{location}/publishers/google/models/gemini-2.5-flash@default",
"source": "models.dev",
"provider_id": "google-vertex",
"open_weights": false,
@@ -22997,7 +59688,7 @@
"name": "Gemini 2.5 Flash Lite",
"provider": "vertexai",
"family": "gemini-flash-lite",
- "created_at": "2025-06-17 00:00:00 +0530",
+ "created_at": "2025-06-17 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -23016,18 +59707,24 @@
"capabilities": [
"function_calling",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.1,
"output_per_million": 0.4,
- "cached_input_per_million": 0.025
+ "cache_read_input_per_million": 0.025
}
}
},
"metadata": {
+ "version_id": "default",
+ "open_source_category": null,
+ "launch_stage": "GA",
+ "supported_actions": null,
+ "publisher_model_template": "projects/{project}/locations/{location}/publishers/google/models/gemini-2.5-flash-lite@default",
"source": "models.dev",
"provider_id": "google-vertex",
"open_weights": false,
@@ -23051,7 +59748,7 @@
"name": "Gemini 2.5 Flash Lite Preview 06-17",
"provider": "vertexai",
"family": "gemini-flash-lite",
- "created_at": "2025-06-17 00:00:00 +0530",
+ "created_at": "2025-06-17 00:00:00 UTC",
"context_window": 65536,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -23077,7 +59774,7 @@
"standard": {
"input_per_million": 0.1,
"output_per_million": 0.4,
- "cached_input_per_million": 0.025
+ "cache_read_input_per_million": 0.025
}
}
},
@@ -23105,7 +59802,7 @@
"name": "Gemini 2.5 Flash Lite Preview 09-25",
"provider": "vertexai",
"family": "gemini-flash-lite",
- "created_at": "2025-09-25 00:00:00 +0530",
+ "created_at": "2025-09-25 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -23131,7 +59828,7 @@
"standard": {
"input_per_million": 0.1,
"output_per_million": 0.4,
- "cached_input_per_million": 0.025
+ "cache_read_input_per_million": 0.025
}
}
},
@@ -23159,7 +59856,7 @@
"name": "Gemini 2.5 Flash Preview 04-17",
"provider": "vertexai",
"family": "gemini-flash",
- "created_at": "2025-04-17 00:00:00 +0530",
+ "created_at": "2025-04-17 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -23178,18 +59875,32 @@
"capabilities": [
"function_calling",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.15,
"output_per_million": 0.6,
- "cached_input_per_million": 0.0375
+ "cache_read_input_per_million": 0.0375
}
}
},
"metadata": {
+ "version_id": "default",
+ "open_source_category": null,
+ "launch_stage": "PUBLIC_PREVIEW",
+ "supported_actions": {
+ "openGenerationAiStudio": {
+ "references": {
+ "us-central1": {
+ "uri": "https://console.cloud.google.com/vertex-ai/generative/multimodal/create/text?model=gemini-2.5-flash-preview-04-17"
+ }
+ }
+ }
+ },
+ "publisher_model_template": "projects/{project}/locations/{location}/publishers/google/models/gemini-2.5-flash-preview-04-17@default",
"source": "models.dev",
"provider_id": "google-vertex",
"open_weights": false,
@@ -23213,7 +59924,7 @@
"name": "Gemini 2.5 Flash Preview 05-20",
"provider": "vertexai",
"family": "gemini-flash",
- "created_at": "2025-05-20 00:00:00 +0530",
+ "created_at": "2025-05-20 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -23239,7 +59950,7 @@
"standard": {
"input_per_million": 0.15,
"output_per_million": 0.6,
- "cached_input_per_million": 0.0375
+ "cache_read_input_per_million": 0.0375
}
}
},
@@ -23267,7 +59978,7 @@
"name": "Gemini 2.5 Flash Preview 09-25",
"provider": "vertexai",
"family": "gemini-flash",
- "created_at": "2025-09-25 00:00:00 +0530",
+ "created_at": "2025-09-25 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -23293,7 +60004,8 @@
"standard": {
"input_per_million": 0.3,
"output_per_million": 2.5,
- "cached_input_per_million": 0.075
+ "cache_read_input_per_million": 0.075,
+ "cache_write_input_per_million": 0.383
}
}
},
@@ -23317,12 +60029,38 @@
"knowledge": "2025-01"
}
},
+ {
+ "id": "gemini-2.5-flash-tts",
+ "name": "gemini-2.5-flash-tts",
+ "provider": "vertexai",
+ "family": "gemini-2",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "version_id": "default",
+ "open_source_category": null,
+ "launch_stage": "GA",
+ "supported_actions": null,
+ "publisher_model_template": "projects/{project}/locations/{location}/publishers/google/models/gemini-2.5-flash-tts@default"
+ }
+ },
{
"id": "gemini-2.5-pro",
"name": "Gemini 2.5 Pro",
"provider": "vertexai",
"family": "gemini-pro",
- "created_at": "2025-03-20 00:00:00 +0530",
+ "created_at": "2025-03-20 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -23341,18 +60079,24 @@
"capabilities": [
"function_calling",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 1.25,
"output_per_million": 10,
- "cached_input_per_million": 0.31
+ "cache_read_input_per_million": 0.125
}
}
},
"metadata": {
+ "version_id": "default",
+ "open_source_category": null,
+ "launch_stage": "GA",
+ "supported_actions": null,
+ "publisher_model_template": "projects/{project}/locations/{location}/publishers/google/models/gemini-2.5-pro@default",
"source": "models.dev",
"provider_id": "google-vertex",
"open_weights": false,
@@ -23362,7 +60106,12 @@
"cost": {
"input": 1.25,
"output": 10,
- "cache_read": 0.31
+ "cache_read": 0.125,
+ "context_over_200k": {
+ "input": 2.5,
+ "output": 15,
+ "cache_read": 0.25
+ }
},
"limit": {
"context": 1048576,
@@ -23371,12 +60120,70 @@
"knowledge": "2025-01"
}
},
+ {
+ "id": "gemini-2.5-pro-exp-03-25",
+ "name": "gemini-2.5-pro-exp-03-25",
+ "provider": "vertexai",
+ "family": "gemini-2",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "version_id": "default",
+ "open_source_category": null,
+ "launch_stage": "EXPERIMENTAL",
+ "supported_actions": {
+ "openNotebook": {
+ "references": {
+ "us-central1": {
+ "uri": "https://colab.research.google.com/github/GoogleCloudPlatform/generative-ai/blob/main/gemini/getting-started/intro_gemini_2_5_pro.ipynb"
+ }
+ },
+ "resourceTitle": "Notebook",
+ "resourceUseCase": "Vertex Serving",
+ "resourceDescription": "Intro to Gemini 2.5 Pro."
+ },
+ "openGenerationAiStudio": {
+ "references": {
+ "us-central1": {
+ "uri": "https://console.cloud.google.com/vertex-ai/generative/multimodal/create/text?model=gemini-2.5-pro-exp-03-25"
+ }
+ }
+ },
+ "openNotebooks": {
+ "notebooks": [
+ {
+ "references": {
+ "us-central1": {
+ "uri": "https://colab.research.google.com/github/GoogleCloudPlatform/generative-ai/blob/main/gemini/getting-started/intro_gemini_2_5_pro.ipynb"
+ }
+ },
+ "resourceTitle": "Notebook",
+ "resourceUseCase": "Vertex Serving",
+ "resourceDescription": "Intro to Gemini 2.5 Pro."
+ }
+ ]
+ }
+ },
+ "publisher_model_template": "projects/{project}/locations/{location}/publishers/google/models/gemini-2.5-pro-exp-03-25@default"
+ }
+ },
{
"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",
+ "created_at": "2025-05-06 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -23402,7 +60209,7 @@
"standard": {
"input_per_million": 1.25,
"output_per_million": 10,
- "cached_input_per_million": 0.31
+ "cache_read_input_per_million": 0.31
}
}
},
@@ -23430,7 +60237,7 @@
"name": "Gemini 2.5 Pro Preview 06-05",
"provider": "vertexai",
"family": "gemini-pro",
- "created_at": "2025-06-05 00:00:00 +0530",
+ "created_at": "2025-06-05 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -23456,7 +60263,7 @@
"standard": {
"input_per_million": 1.25,
"output_per_million": 10,
- "cached_input_per_million": 0.31
+ "cache_read_input_per_million": 0.31
}
}
},
@@ -23479,12 +60286,38 @@
"knowledge": "2025-01"
}
},
+ {
+ "id": "gemini-2.5-pro-tts",
+ "name": "gemini-2.5-pro-tts",
+ "provider": "vertexai",
+ "family": "gemini-2",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "version_id": "default",
+ "open_source_category": null,
+ "launch_stage": "GA",
+ "supported_actions": null,
+ "publisher_model_template": "projects/{project}/locations/{location}/publishers/google/models/gemini-2.5-pro-tts@default"
+ }
+ },
{
"id": "gemini-3-flash-preview",
"name": "Gemini 3 Flash Preview",
"provider": "vertexai",
"family": "gemini-flash",
- "created_at": "2025-12-17 00:00:00 +0530",
+ "created_at": "2025-12-17 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -23504,18 +60337,24 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 0.5,
"output_per_million": 3,
- "cached_input_per_million": 0.05
+ "cache_read_input_per_million": 0.05
}
}
},
"metadata": {
+ "version_id": "default",
+ "open_source_category": null,
+ "launch_stage": "PUBLIC_PREVIEW",
+ "supported_actions": null,
+ "publisher_model_template": "projects/{project}/locations/{location}/publishers/google/models/gemini-3-flash-preview@default",
"source": "models.dev",
"provider_id": "google-vertex",
"open_weights": false,
@@ -23544,7 +60383,7 @@
"name": "Gemini 3 Pro Preview",
"provider": "vertexai",
"family": "gemini-pro",
- "created_at": "2025-11-18 00:00:00 +0530",
+ "created_at": "2025-11-18 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -23571,7 +60410,7 @@
"standard": {
"input_per_million": 2,
"output_per_million": 12,
- "cached_input_per_million": 0.2
+ "cache_read_input_per_million": 0.2
}
}
},
@@ -23600,11 +60439,68 @@
}
},
{
- "id": "gemini-3.1-pro-preview",
- "name": "Gemini 3.1 Pro Preview",
+ "id": "gemini-3.1-flash-image-preview",
+ "name": "Gemini 3.1 Flash Image (Preview)",
"provider": "vertexai",
- "family": "gemini-pro",
- "created_at": "2026-02-19 00:00:00 +0530",
+ "family": "gemini-flash",
+ "created_at": "2026-02-26 00:00:00 UTC",
+ "context_window": 131072,
+ "max_output_tokens": 32768,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image",
+ "pdf"
+ ],
+ "output": [
+ "text",
+ "image"
+ ]
+ },
+ "capabilities": [
+ "reasoning",
+ "vision",
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.25,
+ "output_per_million": 60
+ }
+ }
+ },
+ "metadata": {
+ "version_id": "default",
+ "open_source_category": null,
+ "launch_stage": "PUBLIC_PREVIEW",
+ "supported_actions": null,
+ "publisher_model_template": "projects/{project}/locations/{location}/publishers/google/models/gemini-3.1-flash-image-preview@default",
+ "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": "vertexai",
+ "family": "gemini-flash-lite",
+ "created_at": "2026-03-03 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -23624,18 +60520,87 @@
"function_calling",
"structured_output",
"reasoning",
- "vision"
+ "vision",
+ "streaming"
+ ],
+ "pricing": {
+ "text_tokens": {
+ "standard": {
+ "input_per_million": 0.25,
+ "output_per_million": 1.5,
+ "cache_read_input_per_million": 0.025,
+ "cache_write_input_per_million": 1
+ }
+ }
+ },
+ "metadata": {
+ "version_id": "default",
+ "open_source_category": null,
+ "launch_stage": "PUBLIC_PREVIEW",
+ "supported_actions": null,
+ "publisher_model_template": "projects/{project}/locations/{location}/publishers/google/models/gemini-3.1-flash-lite-preview@default",
+ "source": "models.dev",
+ "provider_id": "google-vertex",
+ "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": "vertexai",
+ "family": "gemini-pro",
+ "created_at": "2026-02-19 00:00:00 UTC",
+ "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",
+ "streaming"
],
"pricing": {
"text_tokens": {
"standard": {
"input_per_million": 2,
"output_per_million": 12,
- "cached_input_per_million": 0.2
+ "cache_read_input_per_million": 0.2
}
}
},
"metadata": {
+ "version_id": "default",
+ "open_source_category": null,
+ "launch_stage": "PUBLIC_PREVIEW",
+ "supported_actions": null,
+ "publisher_model_template": "projects/{project}/locations/{location}/publishers/google/models/gemini-3.1-pro-preview@default",
"source": "models.dev",
"provider_id": "google-vertex",
"open_weights": false,
@@ -23664,7 +60629,7 @@
"name": "Gemini 3.1 Pro Preview Custom Tools",
"provider": "vertexai",
"family": "gemini-pro",
- "created_at": "2026-02-19 00:00:00 +0530",
+ "created_at": "2026-02-19 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -23691,7 +60656,7 @@
"standard": {
"input_per_million": 2,
"output_per_million": 12,
- "cached_input_per_million": 0.2
+ "cache_read_input_per_million": 0.2
}
}
},
@@ -23724,7 +60689,7 @@
"name": "Gemini Embedding 001",
"provider": "vertexai",
"family": "gemini",
- "created_at": "2025-05-20 00:00:00 +0530",
+ "created_at": "2025-05-20 00:00:00 UTC",
"context_window": 2048,
"max_output_tokens": 3072,
"knowledge_cutoff": null,
@@ -23733,10 +60698,13 @@
"text"
],
"output": [
- "text"
+ "embeddings"
]
},
- "capabilities": [],
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
"pricing": {
"text_tokens": {
"standard": {
@@ -23762,12 +60730,82 @@
"knowledge": "2025-05"
}
},
+ {
+ "id": "gemini-embedding-2",
+ "name": "gemini-embedding-2",
+ "provider": "vertexai",
+ "family": "gemini",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "version_id": "default",
+ "open_source_category": null,
+ "launch_stage": "GA",
+ "supported_actions": null,
+ "publisher_model_template": "projects/{project}/locations/{location}/publishers/google/models/gemini-embedding-2@default"
+ }
+ },
+ {
+ "id": "gemini-exp-1121",
+ "name": "gemini-exp-1121",
+ "provider": "vertexai",
+ "family": "gemini",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "source": "known_models"
+ }
+ },
+ {
+ "id": "gemini-exp-1206",
+ "name": "gemini-exp-1206",
+ "provider": "vertexai",
+ "family": "gemini",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "source": "known_models"
+ }
+ },
{
"id": "gemini-flash-latest",
"name": "Gemini Flash Latest",
"provider": "vertexai",
"family": "gemini-flash",
- "created_at": "2025-09-25 00:00:00 +0530",
+ "created_at": "2025-09-25 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -23793,7 +60831,8 @@
"standard": {
"input_per_million": 0.3,
"output_per_million": 2.5,
- "cached_input_per_million": 0.075
+ "cache_read_input_per_million": 0.075,
+ "cache_write_input_per_million": 0.383
}
}
},
@@ -23822,7 +60861,7 @@
"name": "Gemini Flash-Lite Latest",
"provider": "vertexai",
"family": "gemini-flash-lite",
- "created_at": "2025-09-25 00:00:00 +0530",
+ "created_at": "2025-09-25 00:00:00 UTC",
"context_window": 1048576,
"max_output_tokens": 65536,
"knowledge_cutoff": null,
@@ -23848,7 +60887,7 @@
"standard": {
"input_per_million": 0.1,
"output_per_million": 0.4,
- "cached_input_per_million": 0.025
+ "cache_read_input_per_million": 0.025
}
}
},
@@ -23872,13 +60911,149 @@
}
},
{
- "id": "meta/llama-3.3-70b-instruct-maas",
- "name": "Llama 3.3 70B Instruct",
+ "id": "gemini-live-2.5-flash-native-audio",
+ "name": "gemini-live-2.5-flash-native-audio",
"provider": "vertexai",
- "family": "llama",
- "created_at": "2025-04-29 00:00:00 +0530",
- "context_window": 128000,
- "max_output_tokens": 8192,
+ "family": "gemini",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "version_id": "default",
+ "open_source_category": null,
+ "launch_stage": "GA",
+ "supported_actions": null,
+ "publisher_model_template": "projects/{project}/locations/{location}/publishers/google/models/gemini-live-2.5-flash-native-audio@default"
+ }
+ },
+ {
+ "id": "gemini-pro",
+ "name": "gemini-pro",
+ "provider": "vertexai",
+ "family": "gemini",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "source": "known_models"
+ }
+ },
+ {
+ "id": "gemini-pro-vision",
+ "name": "gemini-pro-vision",
+ "provider": "vertexai",
+ "family": "gemini",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "source": "known_models"
+ }
+ },
+ {
+ "id": "text-embedding-004",
+ "name": "text-embedding-004",
+ "provider": "vertexai",
+ "family": "text-embedding",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "source": "known_models"
+ }
+ },
+ {
+ "id": "text-embedding-005",
+ "name": "text-embedding-005",
+ "provider": "vertexai",
+ "family": "text-embedding",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "source": "known_models"
+ }
+ },
+ {
+ "id": "text-multilingual-embedding-002",
+ "name": "text-multilingual-embedding-002",
+ "provider": "vertexai",
+ "family": "gemini",
+ "created_at": null,
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [],
+ "output": []
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling"
+ ],
+ "pricing": {},
+ "metadata": {
+ "source": "known_models"
+ }
+ },
+ {
+ "id": "grok-3",
+ "name": "Grok 3",
+ "provider": "xai",
+ "family": "grok",
+ "created_at": "2025-04-04 00:00:00 UTC",
+ "context_window": null,
+ "max_output_tokens": null,
"knowledge_cutoff": null,
"modalities": {
"input": [
@@ -23889,43 +61064,53 @@
]
},
"capabilities": [
+ "streaming",
"function_calling",
"structured_output"
],
- "pricing": {
- "text_tokens": {
- "standard": {
- "input_per_million": 0.72,
- "output_per_million": 0.72
- }
- }
- },
+ "pricing": {},
"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"
+ "object": "model",
+ "owned_by": "xai"
}
},
{
- "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,
+ "id": "grok-3-mini",
+ "name": "Grok 3 Mini",
+ "provider": "xai",
+ "family": "grok",
+ "created_at": "2025-04-04 00:00:00 UTC",
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "reasoning"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "xai"
+ }
+ },
+ {
+ "id": "grok-4-0709",
+ "name": "Grok 4 0709",
+ "provider": "xai",
+ "family": "grok",
+ "created_at": "2025-07-09 00:00:00 UTC",
+ "context_window": null,
+ "max_output_tokens": null,
"knowledge_cutoff": null,
"modalities": {
"input": [
@@ -23937,287 +61122,148 @@
]
},
"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": [
+ "streaming",
"function_calling",
"structured_output",
"reasoning",
"vision"
],
- "pricing": {
- "text_tokens": {
- "standard": {
- "input_per_million": 0.6,
- "output_per_million": 2.2
- }
- }
- },
+ "pricing": {},
"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"
+ "object": "model",
+ "owned_by": "xai"
}
},
{
- "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,
+ "id": "grok-4-1-fast-non-reasoning",
+ "name": "Grok 4 1 Fast Non Reasoning",
+ "provider": "xai",
+ "family": "grok",
+ "created_at": "2025-11-19 00:00:00 UTC",
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "xai"
+ }
+ },
+ {
+ "id": "grok-4-1-fast-reasoning",
+ "name": "Grok 4 1 Fast Reasoning",
+ "provider": "xai",
+ "family": "grok",
+ "created_at": "2025-11-19 00:00:00 UTC",
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "reasoning",
+ "vision"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "xai"
+ }
+ },
+ {
+ "id": "grok-4-fast-non-reasoning",
+ "name": "Grok 4 Fast Non Reasoning",
+ "provider": "xai",
+ "family": "grok",
+ "created_at": "2025-09-04 00:00:00 UTC",
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "vision"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "xai"
+ }
+ },
+ {
+ "id": "grok-4-fast-reasoning",
+ "name": "Grok 4 Fast Reasoning",
+ "provider": "xai",
+ "family": "grok",
+ "created_at": "2025-09-04 00:00:00 UTC",
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text",
+ "image"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
+ "reasoning",
+ "vision"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "xai"
+ }
+ },
+ {
+ "id": "grok-4.20-0309-non-reasoning",
+ "name": "Grok 4.20 0309 Non Reasoning",
+ "provider": "xai",
+ "family": "grok",
+ "created_at": "2026-03-09 00:00:00 UTC",
+ "context_window": null,
+ "max_output_tokens": null,
"knowledge_cutoff": null,
"modalities": {
"input": [
@@ -24228,37 +61274,239 @@
]
},
"capabilities": [
+ "streaming",
"function_calling",
+ "structured_output"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "xai"
+ }
+ },
+ {
+ "id": "grok-4.20-0309-reasoning",
+ "name": "Grok 4.20 0309 Reasoning",
+ "provider": "xai",
+ "family": "grok",
+ "created_at": "2026-03-09 00:00:00 UTC",
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "xai"
+ }
+ },
+ {
+ "id": "grok-4.20-multi-agent-0309",
+ "name": "Grok 4.20 Multi Agent 0309",
+ "provider": "xai",
+ "family": "grok",
+ "created_at": "2026-03-09 00:00:00 UTC",
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "xai"
+ }
+ },
+ {
+ "id": "grok-4.3",
+ "name": "Grok 4.3",
+ "provider": "xai",
+ "family": "grok",
+ "created_at": "2026-04-17 00:00:00 UTC",
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "xai"
+ }
+ },
+ {
+ "id": "grok-code-fast-1",
+ "name": "Grok Code Fast 1",
+ "provider": "xai",
+ "family": "grok",
+ "created_at": "2025-08-24 00:00:00 UTC",
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output",
"reasoning"
],
- "pricing": {
- "text_tokens": {
- "standard": {
- "input_per_million": 1,
- "output_per_million": 3.2,
- "cached_input_per_million": 0.1
- }
- }
- },
+ "pricing": {},
"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
- }
+ "object": "model",
+ "owned_by": "xai"
+ }
+ },
+ {
+ "id": "grok-imagine-image",
+ "name": "Grok Imagine Image",
+ "provider": "xai",
+ "family": "grok",
+ "created_at": "2026-01-28 00:00:00 UTC",
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "xai"
+ }
+ },
+ {
+ "id": "grok-imagine-image-pro",
+ "name": "Grok Imagine Image Pro",
+ "provider": "xai",
+ "family": "grok",
+ "created_at": "2026-01-28 00:00:00 UTC",
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "xai"
+ }
+ },
+ {
+ "id": "grok-imagine-image-quality",
+ "name": "Grok Imagine Image Quality",
+ "provider": "xai",
+ "family": "grok",
+ "created_at": "2026-04-03 00:00:00 UTC",
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "xai"
+ }
+ },
+ {
+ "id": "grok-imagine-video",
+ "name": "Grok Imagine Video",
+ "provider": "xai",
+ "family": "grok",
+ "created_at": "2026-01-28 00:00:00 UTC",
+ "context_window": null,
+ "max_output_tokens": null,
+ "knowledge_cutoff": null,
+ "modalities": {
+ "input": [
+ "text"
+ ],
+ "output": [
+ "text"
+ ]
+ },
+ "capabilities": [
+ "streaming",
+ "function_calling",
+ "structured_output"
+ ],
+ "pricing": {},
+ "metadata": {
+ "object": "model",
+ "owned_by": "xai"
}
}
]
\ No newline at end of file
diff --git a/config/locales/en.yml b/config/locales/en.yml
index f7b98a47b..c590f8be9 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -367,6 +367,7 @@ en:
name: 'Linear'
short_description: 'Create and link Linear issues directly from conversations.'
description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.'
+ attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}'
notion:
name: 'Notion'
short_description: 'Integrate databases, documents and pages directly with Captain.'
diff --git a/config/routes.rb b/config/routes.rb
index ab6321ea6..dec54c093 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -187,6 +187,8 @@ Rails.application.routes.draw do
get :search
end
end
+ resources :conversations, only: [:index]
+ resources :notes, only: [:index]
end
end
resources :contacts, only: [:index, :show, :update, :create, :destroy] do
diff --git a/db/migrate/20260429043000_add_sync_stats_index_to_captain_documents.rb b/db/migrate/20260429043000_add_sync_stats_index_to_captain_documents.rb
new file mode 100644
index 000000000..9c2cdb66c
--- /dev/null
+++ b/db/migrate/20260429043000_add_sync_stats_index_to_captain_documents.rb
@@ -0,0 +1,12 @@
+class AddSyncStatsIndexToCaptainDocuments < ActiveRecord::Migration[7.0]
+ def up
+ add_index :captain_documents,
+ [:account_id, :assistant_id, :sync_status, :last_synced_at],
+ name: 'idx_captain_documents_on_account_assistant_sync_stats',
+ if_not_exists: true
+ end
+
+ def down
+ remove_index :captain_documents, name: 'idx_captain_documents_on_account_assistant_sync_stats', if_exists: true
+ end
+end
diff --git a/db/migrate/20260507000000_add_imap_authentication_to_channel_email.rb b/db/migrate/20260507000000_add_imap_authentication_to_channel_email.rb
new file mode 100644
index 000000000..ffdf94bf2
--- /dev/null
+++ b/db/migrate/20260507000000_add_imap_authentication_to_channel_email.rb
@@ -0,0 +1,5 @@
+class AddImapAuthenticationToChannelEmail < ActiveRecord::Migration[7.0]
+ def change
+ add_column :channel_email, :imap_authentication, :string, default: 'plain'
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index f7c3cce6d..1948330e6 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_30_114500) do
+ActiveRecord::Schema[7.1].define(version: 2026_05_07_000000) do
# These extensions should be enabled to support this database
enable_extension "pg_stat_statements"
enable_extension "pg_trgm"
@@ -381,11 +381,12 @@ ActiveRecord::Schema[7.1].define(version: 2026_04_30_114500) do
t.integer "sync_status"
t.datetime "last_synced_at"
t.datetime "last_sync_attempted_at"
+ t.index ["account_id", "assistant_id", "sync_status", "last_synced_at"], name: "idx_captain_documents_on_account_assistant_sync_stats"
+ t.index ["account_id", "sync_status"], name: "index_captain_documents_on_account_id_and_sync_status"
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|
@@ -472,6 +473,7 @@ ActiveRecord::Schema[7.1].define(version: 2026_04_30_114500) do
t.boolean "smtp_enable_ssl_tls", default: false
t.jsonb "provider_config", default: {}
t.string "provider"
+ t.string "imap_authentication", default: "plain"
t.boolean "verified_for_sending", default: false, null: false
t.index ["email"], name: "index_channel_email_on_email", unique: true
t.index ["forward_to_email"], name: "index_channel_email_on_forward_to_email", unique: true
diff --git a/enterprise/app/controllers/api/v1/accounts/captain/bulk_actions_controller.rb b/enterprise/app/controllers/api/v1/accounts/captain/bulk_actions_controller.rb
index bc1ebaf9e..b9a6bbcc5 100644
--- a/enterprise/app/controllers/api/v1/accounts/captain/bulk_actions_controller.rb
+++ b/enterprise/app/controllers/api/v1/accounts/captain/bulk_actions_controller.rb
@@ -77,7 +77,12 @@ class Api::V1::Accounts::Captain::BulkActionsController < Api::V1::Accounts::Bas
next unless document.available?
next if document.sync_in_progress?
- document.update!(sync_status: :syncing, last_sync_attempted_at: Time.current)
+ document.update!(
+ sync_status: :syncing,
+ sync_step: nil,
+ last_sync_error_code: nil,
+ last_sync_attempted_at: Time.current
+ )
Captain::Documents::PerformSyncJob.perform_later(document)
synced_document_ids << document.id
end
diff --git a/enterprise/app/controllers/api/v1/accounts/captain/documents_controller.rb b/enterprise/app/controllers/api/v1/accounts/captain/documents_controller.rb
index 973559743..23f410499 100644
--- a/enterprise/app/controllers/api/v1/accounts/captain/documents_controller.rb
+++ b/enterprise/app/controllers/api/v1/accounts/captain/documents_controller.rb
@@ -11,8 +11,13 @@ class Api::V1::Accounts::Captain::DocumentsController < Api::V1::Accounts::BaseC
def index
base_query = @documents
base_query = base_query.where(assistant_id: permitted_params[:assistant_id]) if permitted_params[:assistant_id].present?
+ base_query = apply_source_filter(base_query, permitted_params[:source])
+ base_query = apply_filter(base_query, permitted_params[:filter])
+ base_query = apply_search(base_query, permitted_params[:search_key])
+ base_query = apply_sort(base_query, permitted_params[:sort])
@documents_count = base_query.count
+ @sync_interval_hours = current_sync_interval&.in_hours&.to_i
@documents = base_query.page(@current_page).per(RESULTS_PER_PAGE)
end
@@ -34,7 +39,12 @@ class Api::V1::Accounts::Captain::DocumentsController < Api::V1::Accounts::BaseC
return render_could_not_create_error(I18n.t('captain.documents.sync_only_available_documents')) unless @document.available?
return render_could_not_create_error(I18n.t('captain.documents.sync_already_in_progress')) if @document.sync_in_progress?
- @document.update!(sync_status: :syncing, last_sync_attempted_at: Time.current)
+ @document.update!(
+ sync_status: :syncing,
+ sync_step: nil,
+ last_sync_error_code: nil,
+ last_sync_attempted_at: Time.current
+ )
Captain::Documents::PerformSyncJob.perform_later(@document)
head :accepted
end
@@ -47,7 +57,7 @@ class Api::V1::Accounts::Captain::DocumentsController < Api::V1::Accounts::BaseC
private
def set_documents
- @documents = Current.account.captain_documents.includes(:assistant).ordered
+ @documents = Current.account.captain_documents.with_attached_pdf_file.includes(:assistant)
end
def set_document
@@ -63,7 +73,58 @@ class Api::V1::Accounts::Captain::DocumentsController < Api::V1::Accounts::BaseC
end
def permitted_params
- params.permit(:assistant_id, :page, :id, :account_id)
+ params.permit(:assistant_id, :page, :id, :account_id, :filter, :source, :sort, :search_key)
+ end
+
+ def apply_source_filter(scope, source)
+ case source
+ when 'web' then scope.syncable
+ when 'pdf' then scope.pdf_documents
+ else scope
+ end
+ end
+
+ def apply_filter(scope, filter)
+ case filter
+ when 'stale' then stale_documents(scope.syncable)
+ when 'synced' then up_to_date_documents(scope.syncable)
+ when 'syncing' then scope.syncable.sync_in_progress
+ when 'failed' then scope.syncable.sync_failed
+ else scope
+ end
+ end
+
+ def apply_search(scope, search_key)
+ return scope if search_key.blank?
+
+ query = "%#{ActiveRecord::Base.sanitize_sql_like(search_key)}%"
+ scope.where('captain_documents.name ILIKE :query OR captain_documents.external_link ILIKE :query', query: query)
+ end
+
+ def apply_sort(scope, sort)
+ case sort
+ when 'recently_created' then scope.order(created_at: :desc)
+ else scope.order(updated_at: :desc)
+ end
+ end
+
+ def stale_documents(scope)
+ return scope.none unless current_sync_interval
+
+ scope.sync_synced.where(Captain::Document.arel_table[:last_synced_at].lt(current_sync_interval.ago))
+ end
+
+ def up_to_date_documents(scope)
+ documents = scope.sync_synced
+ return documents unless current_sync_interval
+
+ documents.where(Captain::Document.arel_table[:last_synced_at].gteq(current_sync_interval.ago))
+ end
+
+ def current_sync_interval
+ return @current_sync_interval if defined?(@current_sync_interval)
+
+ @current_sync_interval = Current.account.captain_document_sync_interval
end
def document_params
diff --git a/enterprise/app/controllers/api/v1/accounts/companies/base_controller.rb b/enterprise/app/controllers/api/v1/accounts/companies/base_controller.rb
new file mode 100644
index 000000000..197a6425c
--- /dev/null
+++ b/enterprise/app/controllers/api/v1/accounts/companies/base_controller.rb
@@ -0,0 +1,24 @@
+class Api::V1::Accounts::Companies::BaseController < Api::V1::Accounts::EnterpriseAccountsController
+ before_action :ensure_companies_enabled!
+ before_action :fetch_company
+
+ private
+
+ def ensure_companies_enabled!
+ return if Current.account.feature_enabled?('companies')
+
+ render json: { error: 'Companies are not enabled for this account' }, status: :forbidden
+ end
+
+ def fetch_company
+ @company = Current.account.companies.find(params[:company_id])
+ end
+
+ def authorize_company_read!
+ authorize(@company, :show?)
+ end
+
+ def authorize_company_update!
+ authorize(@company, :update?)
+ end
+end
diff --git a/enterprise/app/controllers/api/v1/accounts/companies/contacts_controller.rb b/enterprise/app/controllers/api/v1/accounts/companies/contacts_controller.rb
index a67ad907b..07c7b8a99 100644
--- a/enterprise/app/controllers/api/v1/accounts/companies/contacts_controller.rb
+++ b/enterprise/app/controllers/api/v1/accounts/companies/contacts_controller.rb
@@ -1,4 +1,4 @@
-class Api::V1::Accounts::Companies::ContactsController < Api::V1::Accounts::EnterpriseAccountsController
+class Api::V1::Accounts::Companies::ContactsController < Api::V1::Accounts::Companies::BaseController
RESULTS_PER_PAGE = 15
CONTACT_SEARCH_QUERY = [
'contacts.name ILIKE :search',
@@ -7,8 +7,6 @@ class Api::V1::Accounts::Companies::ContactsController < Api::V1::Accounts::Ente
'contacts.identifier ILIKE :search'
].join(' OR ')
- before_action :ensure_companies_enabled!
- before_action :fetch_company
before_action :authorize_company_read!, only: [:index, :search]
before_action :authorize_company_update!, only: [:create, :destroy]
before_action :set_current_page, only: [:index, :search]
@@ -45,10 +43,6 @@ class Api::V1::Accounts::Companies::ContactsController < Api::V1::Accounts::Ente
@current_page = params[:page] || 1
end
- def fetch_company
- @company = Current.account.companies.find(params[:company_id])
- end
-
def fetch_contact
@contact = @company.contacts.find(params[:id])
end
@@ -70,18 +64,4 @@ class Api::V1::Accounts::Companies::ContactsController < Api::V1::Accounts::Ente
def membership_service
@membership_service ||= Companies::ContactMembershipService.new(company: @company)
end
-
- def ensure_companies_enabled!
- return if Current.account.feature_enabled?('companies')
-
- render json: { error: 'Companies are not enabled for this account' }, status: :forbidden
- end
-
- def authorize_company_read!
- authorize(@company, :show?)
- end
-
- def authorize_company_update!
- authorize(@company, :update?)
- end
end
diff --git a/enterprise/app/controllers/api/v1/accounts/companies/conversations_controller.rb b/enterprise/app/controllers/api/v1/accounts/companies/conversations_controller.rb
new file mode 100644
index 000000000..e6944674e
--- /dev/null
+++ b/enterprise/app/controllers/api/v1/accounts/companies/conversations_controller.rb
@@ -0,0 +1,15 @@
+class Api::V1::Accounts::Companies::ConversationsController < Api::V1::Accounts::Companies::BaseController
+ before_action :authorize_company_read!
+
+ def index
+ conversations = Current.account.conversations.includes(
+ :assignee, :contact, :inbox, :taggings
+ ).where(contact_id: @company.contacts.select(:id))
+
+ @conversations = Conversations::PermissionFilterService.new(
+ conversations,
+ Current.user,
+ Current.account
+ ).perform.order(last_activity_at: :desc).limit(20)
+ end
+end
diff --git a/enterprise/app/controllers/api/v1/accounts/companies/notes_controller.rb b/enterprise/app/controllers/api/v1/accounts/companies/notes_controller.rb
new file mode 100644
index 000000000..85c3df034
--- /dev/null
+++ b/enterprise/app/controllers/api/v1/accounts/companies/notes_controller.rb
@@ -0,0 +1,11 @@
+class Api::V1::Accounts::Companies::NotesController < Api::V1::Accounts::Companies::BaseController
+ before_action :authorize_company_read!
+
+ def index
+ @notes = Current.account.notes
+ .where(contact_id: @company.contacts.select(:id))
+ .latest
+ .includes(:contact, :user)
+ .limit(20)
+ end
+end
diff --git a/enterprise/app/jobs/captain/documents/perform_sync_job.rb b/enterprise/app/jobs/captain/documents/perform_sync_job.rb
index 100d72eeb..eaef7d64d 100644
--- a/enterprise/app/jobs/captain/documents/perform_sync_job.rb
+++ b/enterprise/app/jobs/captain/documents/perform_sync_job.rb
@@ -20,13 +20,13 @@ class Captain::Documents::PerformSyncJob < MutexApplicationJob
exception_class: error.class.name)
end
- # Permanent errors (404, 403, empty content) — no point retrying, discard immediately.
+ # Permanent errors (404, 403, empty content) - no point retrying, discard immediately.
# Document is already marked failed by SyncService before the exception reaches here.
discard_on(Captain::Documents::SyncService::PermanentSyncError)
- # TransientSyncError is raised by SyncService when the customer's site is unreachable —
+ # TransientSyncError is raised by SyncService when the customer's site is unreachable -
# timeouts, TLS errors, 5xx, connection drops. Four attempts with backoff gives the site
- # a chance to recover before we give up.
+ # a chance to recover before we mark the document failed.
#
# The exhaustion block absorbs the exception so it doesn't propagate to Sentry —
# site flakiness isn't an application bug.
@@ -36,6 +36,7 @@ class Captain::Documents::PerformSyncJob < MutexApplicationJob
attempts: 4
) do |job, error|
document = job.arguments.first
+ job.send(:mark_sync_failed, document, error.message)
job.send(:log_sync_outcome, document, result: :transient_retry_exhausted, error_code: error.message)
end
@@ -47,7 +48,7 @@ class Captain::Documents::PerformSyncJob < MutexApplicationJob
return if document.pdf_document?
with_lock(lock_key(document), LOCK_TIMEOUT) do
- document.update!(sync_status: :syncing, last_sync_attempted_at: Time.current)
+ mark_sync_started(document)
result = Captain::Documents::SyncService.new(document.reload).perform
log_sync_outcome(document, result: result, duration_ms: duration_ms_since(start_time))
end
@@ -78,13 +79,26 @@ class Captain::Documents::PerformSyncJob < MutexApplicationJob
raise error
end
- def handle_unexpected_failure(document, error, start_time)
+ def mark_sync_failed(document, error_code)
document.update!(
sync_status: :failed,
sync_step: nil,
- last_sync_error_code: 'sync_error',
+ last_sync_error_code: error_code,
last_sync_attempted_at: Time.current
)
+ end
+
+ def mark_sync_started(document)
+ document.update!(
+ sync_status: :syncing,
+ sync_step: nil,
+ last_sync_error_code: nil,
+ last_sync_attempted_at: Time.current
+ )
+ end
+
+ def handle_unexpected_failure(document, error, start_time)
+ mark_sync_failed(document, 'sync_error')
log_sync_outcome(document, result: :unexpected_failure, error_code: 'sync_error',
exception_class: error.class.name,
duration_ms: duration_ms_since(start_time))
diff --git a/enterprise/app/jobs/captain/documents/schedule_syncs_job.rb b/enterprise/app/jobs/captain/documents/schedule_syncs_job.rb
index 4103fd271..393a307db 100644
--- a/enterprise/app/jobs/captain/documents/schedule_syncs_job.rb
+++ b/enterprise/app/jobs/captain/documents/schedule_syncs_job.rb
@@ -82,7 +82,7 @@ class Captain::Documents::ScheduleSyncsJob < ApplicationJob
end
def reserve_sync_slot(document)
- document.update!(sync_status: :syncing, last_sync_attempted_at: Time.current)
+ mark_sync_started(document)
true
rescue ActiveRecord::RecordInvalid => e
log_document_skip(document, e)
@@ -112,4 +112,13 @@ class Captain::Documents::ScheduleSyncsJob < ApplicationJob
Rails.logger.info("[Captain::Documents::ScheduleSyncsJob] #{payload.to_json}")
end
+
+ def mark_sync_started(document)
+ document.update!(
+ sync_status: :syncing,
+ sync_step: nil,
+ last_sync_error_code: nil,
+ last_sync_attempted_at: Time.current
+ )
+ end
end
diff --git a/enterprise/app/models/captain/document.rb b/enterprise/app/models/captain/document.rb
index 7509286a1..0fe14813b 100644
--- a/enterprise/app/models/captain/document.rb
+++ b/enterprise/app/models/captain/document.rb
@@ -4,8 +4,10 @@
#
# id :bigint not null, primary key
# content :text
+# content_fingerprint :string
# external_link :string not null
# last_sync_attempted_at :datetime
+# last_sync_error_code :string
# last_synced_at :datetime
# metadata :jsonb
# name :string
@@ -18,6 +20,7 @@
#
# Indexes
#
+# idx_captain_documents_on_account_assistant_sync_stats (account_id,assistant_id,sync_status,last_synced_at)
# 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)
@@ -62,6 +65,14 @@ class Captain::Document < ApplicationRecord
scope :for_account, ->(account_id) { where(account_id: account_id) }
scope :for_assistant, ->(assistant_id) { where(assistant_id: assistant_id) }
scope :syncable, -> { where("external_link NOT LIKE 'PDF:%' AND external_link NOT LIKE '%.pdf'") }
+ scope :pdf_documents, -> { where("external_link LIKE 'PDF:%' OR external_link LIKE '%.pdf'") }
+ scope :sync_in_progress, -> { sync_syncing.where(arel_table[:last_sync_attempted_at].gteq(SYNC_STALE_TIMEOUT.ago)) }
+ scope :stale, lambda { |stale_before|
+ sync_failed.or(sync_synced.where(arel_table[:last_synced_at].lt(stale_before)))
+ }
+ scope :synced_since, lambda { |time|
+ sync_synced.where(arel_table[:last_synced_at].gteq(time))
+ }
def pdf_document?
return true if pdf_file.attached? && pdf_file.blob.content_type == 'application/pdf'
diff --git a/enterprise/app/policies/captain/assistant_policy.rb b/enterprise/app/policies/captain/assistant_policy.rb
index a3cc19b16..bbde3ffb0 100644
--- a/enterprise/app/policies/captain/assistant_policy.rb
+++ b/enterprise/app/policies/captain/assistant_policy.rb
@@ -7,6 +7,10 @@ class Captain::AssistantPolicy < ApplicationPolicy
true
end
+ def stats?
+ true
+ end
+
def tools?
@account_user.administrator?
end
diff --git a/enterprise/app/services/captain/documents/sync_service.rb b/enterprise/app/services/captain/documents/sync_service.rb
index f1a67c781..eca28dbab 100644
--- a/enterprise/app/services/captain/documents/sync_service.rb
+++ b/enterprise/app/services/captain/documents/sync_service.rb
@@ -15,10 +15,7 @@ class Captain::Documents::SyncService
@document.update!(sync_step: 'fetching')
result = Captain::Documents::SinglePageFetcher.new(@document.external_link).fetch
- unless result.success
- mark_failed(result.error_code)
- raise_for_error_code(result.error_code)
- end
+ handle_fetch_error(result.error_code) unless result.success
@document.update!(sync_step: 'comparing')
new_fingerprint = compute_fingerprint(result.content)
@@ -75,8 +72,11 @@ class Captain::Documents::SyncService
)
end
- def raise_for_error_code(error_code)
- raise PermanentSyncError, error_code if PERMANENT_ERROR_CODES.include?(error_code)
+ def handle_fetch_error(error_code)
+ if PERMANENT_ERROR_CODES.include?(error_code)
+ mark_failed(error_code)
+ raise PermanentSyncError, error_code
+ end
raise TransientSyncError, error_code
end
diff --git a/enterprise/app/services/captain/llm/widget_tagline_schema.rb b/enterprise/app/services/captain/llm/widget_tagline_schema.rb
new file mode 100644
index 000000000..cfb1bc4c5
--- /dev/null
+++ b/enterprise/app/services/captain/llm/widget_tagline_schema.rb
@@ -0,0 +1,5 @@
+class Captain::Llm::WidgetTaglineSchema < RubyLLM::Schema
+ string :tagline,
+ description: 'Short marketing tagline for a customer-support chat widget. Plain text, no quotes, no emoji, no trailing punctuation.',
+ max_length: 60
+end
diff --git a/enterprise/app/services/captain/llm/widget_tagline_service.rb b/enterprise/app/services/captain/llm/widget_tagline_service.rb
new file mode 100644
index 000000000..230c54165
--- /dev/null
+++ b/enterprise/app/services/captain/llm/widget_tagline_service.rb
@@ -0,0 +1,78 @@
+class Captain::Llm::WidgetTaglineService < Captain::BaseTaskService
+ RESPONSE_SCHEMA = Captain::Llm::WidgetTaglineSchema
+
+ pattr_initialize [:account!]
+
+ def perform
+ response = make_api_call(model: tagline_model, messages: messages, schema: RESPONSE_SCHEMA)
+ return response if response[:error]
+
+ response.merge(message: extract_tagline(response[:message]))
+ end
+
+ private
+
+ def extract_tagline(message)
+ tagline = message.is_a?(Hash) ? (message['tagline'] || message[:tagline]) : message
+ tagline.to_s.strip
+ end
+
+ def messages
+ [
+ { role: 'system', content: system_prompt },
+ { role: 'user', content: user_prompt }
+ ]
+ end
+
+ def system_prompt
+ <<~PROMPT
+ You write a short marketing tagline for a company's customer-support chat widget.
+ Use the provided company context to make the tagline specific and on-brand.
+ PROMPT
+ end
+
+ def user_prompt
+ parts = [
+ "Company: #{account.name}",
+ ("Title: #{brand_info[:title]}" if brand_info[:title].present?),
+ ("Description: #{brand_info[:description]}" if brand_info[:description].present?),
+ ("Slogan: #{brand_info[:slogan]}" if brand_info[:slogan].present?),
+ ("Industries: #{industries_text}" if industries_text.present?)
+ ].compact
+ parts.join("\n")
+ end
+
+ def brand_info
+ @brand_info ||= (account.custom_attributes['brand_info'] || {}).deep_symbolize_keys
+ end
+
+ def industries_text
+ Array(brand_info[:industries]).filter_map { |i| i.is_a?(Hash) ? i[:industry] : i }.join(', ').presence
+ end
+
+ def event_name
+ 'widget_tagline'
+ end
+
+ def llm_credential
+ @llm_credential ||= system_llm_credential
+ end
+
+ def captain_tasks_enabled?
+ true
+ end
+
+ # Tagline generation runs on the operator's OpenAI key during onboarding;
+ # the customer should not have captain_responses quota deducted for it.
+ def counts_toward_usage?
+ false
+ end
+
+ def tagline_model
+ @tagline_model ||= InstallationConfig.find_by(name: 'CAPTAIN_OPEN_AI_MODEL')&.value.presence || GPT_MODEL
+ end
+
+ def build_follow_up_context?
+ false
+ end
+end
diff --git a/enterprise/app/services/enterprise/billing/create_stripe_customer_service.rb b/enterprise/app/services/enterprise/billing/create_stripe_customer_service.rb
index ac1f74860..79e5ee258 100644
--- a/enterprise/app/services/enterprise/billing/create_stripe_customer_service.rb
+++ b/enterprise/app/services/enterprise/billing/create_stripe_customer_service.rb
@@ -4,15 +4,17 @@ class Enterprise::Billing::CreateStripeCustomerService
DEFAULT_QUANTITY = 2
def perform
- return if existing_subscription?
+ active_sub = active_subscription
+ return false if active_sub && !default_plan_subscription?(active_sub)
customer_id = prepare_customer_id
- subscription = Stripe::Subscription.create(customer: customer_id, items: [{ price: price_id, quantity: default_quantity }])
+ subscription = active_sub || Stripe::Subscription.create(customer: customer_id, items: [{ price: price_id, quantity: default_quantity }])
custom_attributes = build_custom_attributes(customer_id, subscription)
custom_attributes.except!('is_creating_customer')
account.update!(custom_attributes: custom_attributes)
Enterprise::Billing::ReconcilePlanFeaturesService.new(account: account).perform
+ true
end
private
@@ -44,18 +46,21 @@ class Enterprise::Billing::CreateStripeCustomerService
price_ids.first
end
- def existing_subscription?
+ def active_subscription
stripe_customer_id = account.custom_attributes['stripe_customer_id']
- return false if stripe_customer_id.blank?
+ return nil if stripe_customer_id.blank?
- subscriptions = Stripe::Subscription.list(
+ Stripe::Subscription.list(
{
customer: stripe_customer_id,
status: 'active',
limit: 1
}
- )
- subscriptions.data.present?
+ ).data.first
+ end
+
+ def default_plan_subscription?(subscription)
+ default_plan['price_ids'].include?(subscription['plan']['id'])
end
def build_custom_attributes(customer_id, subscription)
diff --git a/enterprise/app/services/enterprise/billing/handle_stripe_event_service.rb b/enterprise/app/services/enterprise/billing/handle_stripe_event_service.rb
index f69edeb45..9760caacf 100644
--- a/enterprise/app/services/enterprise/billing/handle_stripe_event_service.rb
+++ b/enterprise/app/services/enterprise/billing/handle_stripe_event_service.rb
@@ -47,9 +47,8 @@ class Enterprise::Billing::HandleStripeEventService
def current_plan_credits
plan_name = account.custom_attributes['plan_name']
- return { responses: 0, documents: 0 } if plan_name.blank?
-
- get_plan_credits(plan_name)
+ plan_credits = get_plan_credits(plan_name) if plan_name.present?
+ plan_credits || { responses: 0, documents: 0 }
end
def update_account_attributes(subscription, plan)
@@ -71,19 +70,28 @@ class Enterprise::Billing::HandleStripeEventService
# skipping self hosted plan events
return if account.blank?
- Enterprise::Billing::CreateStripeCustomerService.new(account: account).perform
+ previous_monthly_credits = current_plan_credits[:responses]
+ return unless Enterprise::Billing::CreateStripeCustomerService.new(account: account).perform
+
+ account.with_lock do
+ previous_usage = { responses: account.custom_attributes['captain_responses_usage'].to_i, monthly: previous_monthly_credits }
+ adjust_captain_credits(previous_usage, new_plan_credits: 0)
+ account.reset_response_usage
+ end
end
def handle_subscription_credits(plan, previous_usage)
- current_limits = account.limits || {}
+ adjust_captain_credits(previous_usage, new_plan_credits: get_plan_credits(plan['name'])[:responses])
+ end
+ def adjust_captain_credits(previous_usage, new_plan_credits:)
+ current_limits = account.limits || {}
current_credits = current_limits['captain_responses'].to_i
- new_plan_credits = get_plan_credits(plan['name'])[:responses]
consumed_topup_credits = [previous_usage[:responses] - previous_usage[:monthly], 0].max
- updated_credits = current_credits - consumed_topup_credits - previous_usage[:monthly] + new_plan_credits
+ updated_credits = [current_credits - consumed_topup_credits - previous_usage[:monthly] + new_plan_credits, 0].max
- Rails.logger.info("Updating subscription credits for account #{account.id}: #{current_credits} -> #{updated_credits}")
+ Rails.logger.info("Updating captain credits for account #{account.id}: #{current_credits} -> #{updated_credits}")
account.update!(limits: current_limits.merge('captain_responses' => updated_credits))
end
diff --git a/enterprise/app/services/enterprise/onboarding/web_widget_creation_service.rb b/enterprise/app/services/enterprise/onboarding/web_widget_creation_service.rb
new file mode 100644
index 000000000..b108dd5e7
--- /dev/null
+++ b/enterprise/app/services/enterprise/onboarding/web_widget_creation_service.rb
@@ -0,0 +1,11 @@
+module Enterprise::Onboarding::WebWidgetCreationService
+ private
+
+ def welcome_tagline_text
+ response = Captain::Llm::WidgetTaglineService.new(account: @account).perform
+ response&.dig(:message).to_s.strip.presence || super
+ rescue StandardError => e
+ Rails.logger.error "[WidgetCreation] LLM tagline failed: #{e.message}"
+ super
+ end
+end
diff --git a/enterprise/app/services/enterprise/website_branding_service.rb b/enterprise/app/services/enterprise/website_branding_service.rb
index a1925e80d..553317c43 100644
--- a/enterprise/app/services/enterprise/website_branding_service.rb
+++ b/enterprise/app/services/enterprise/website_branding_service.rb
@@ -34,7 +34,10 @@ module Enterprise::WebsiteBrandingService
def process_response(response)
@http_status = response.code
- raise "API Error: #{response.message} (Status: #{response.code})" unless response.success?
+ unless response.success?
+ Rails.logger.warn "[WebsiteBranding] Context.dev returned #{response.code}: #{response.parsed_response}"
+ return nil
+ end
brand = response.parsed_response&.dig('brand')
return nil if brand.blank?
diff --git a/enterprise/app/views/api/v1/accounts/captain/documents/index.json.jbuilder b/enterprise/app/views/api/v1/accounts/captain/documents/index.json.jbuilder
index 5b8c726ea..e6fb5fd0b 100644
--- a/enterprise/app/views/api/v1/accounts/captain/documents/index.json.jbuilder
+++ b/enterprise/app/views/api/v1/accounts/captain/documents/index.json.jbuilder
@@ -7,4 +7,5 @@ end
json.meta do
json.total_count @documents_count
json.page @current_page
+ json.sync_interval_hours @sync_interval_hours if @sync_interval_hours.present?
end
diff --git a/enterprise/app/views/api/v1/accounts/companies/conversations/index.json.jbuilder b/enterprise/app/views/api/v1/accounts/companies/conversations/index.json.jbuilder
new file mode 100644
index 000000000..c81e4bdd0
--- /dev/null
+++ b/enterprise/app/views/api/v1/accounts/companies/conversations/index.json.jbuilder
@@ -0,0 +1,5 @@
+json.payload do
+ json.array! @conversations do |conversation|
+ json.partial! 'api/v1/conversations/partials/conversation', formats: [:json], conversation: conversation
+ end
+end
diff --git a/enterprise/app/views/api/v1/accounts/companies/notes/index.json.jbuilder b/enterprise/app/views/api/v1/accounts/companies/notes/index.json.jbuilder
new file mode 100644
index 000000000..053ebcd97
--- /dev/null
+++ b/enterprise/app/views/api/v1/accounts/companies/notes/index.json.jbuilder
@@ -0,0 +1,8 @@
+json.payload do
+ json.array! @notes do |note|
+ json.partial! 'api/v1/models/note', formats: [:json], resource: note
+ json.contact do
+ json.partial! 'api/v1/models/contact', formats: [:json], resource: note.contact
+ end
+ end
+end
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 62710bc64..56260f675 100644
--- a/enterprise/app/views/api/v1/models/captain/_document.json.jbuilder
+++ b/enterprise/app/views/api/v1/models/captain/_document.json.jbuilder
@@ -8,10 +8,12 @@ json.created_at resource.created_at.to_i
json.external_link resource.external_link
json.display_url resource.display_url
json.file_size resource.file_size
+json.pdf_document resource.pdf_document?
json.id resource.id
json.name resource.name
json.status resource.status
json.sync_status resource.sync_status
+json.sync_in_progress resource.sync_in_progress?
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
diff --git a/enterprise/lib/enterprise/captain/base_task_service.rb b/enterprise/lib/enterprise/captain/base_task_service.rb
index 9845359f5..427aeb06d 100644
--- a/enterprise/lib/enterprise/captain/base_task_service.rb
+++ b/enterprise/lib/enterprise/captain/base_task_service.rb
@@ -1,6 +1,6 @@
module Enterprise::Captain::BaseTaskService
def perform
- return { error: I18n.t('captain.copilot_limit'), error_code: 429 } unless responses_available?
+ return { error: I18n.t('captain.copilot_limit'), error_code: 429 } if counts_toward_usage? && !responses_available?
unless captain_tasks_enabled?
return { error: I18n.t('captain.upgrade') } if ChatwootApp.chatwoot_cloud?
@@ -9,7 +9,7 @@ module Enterprise::Captain::BaseTaskService
end
result = super
- increment_usage if successful_result?(result)
+ increment_usage if counts_toward_usage? && successful_result?(result)
result
end
diff --git a/lib/captain/base_task_service.rb b/lib/captain/base_task_service.rb
index 123377ea0..a043d38e2 100644
--- a/lib/captain/base_task_service.rb
+++ b/lib/captain/base_task_service.rb
@@ -149,6 +149,16 @@ class Captain::BaseTaskService
account.feature_enabled?('captain_tasks')
end
+ # Extension point consulted by the Enterprise quota wrapper. Subclasses
+ # whose calls run on the operator's key (e.g. internal/onboarding tasks)
+ # should override this to return false. When false, the wrapper neither
+ # blocks the call on an exhausted captain_responses quota nor decrements
+ # it on success — the call participates in the quota system in neither
+ # direction.
+ def counts_toward_usage?
+ true
+ end
+
def api_key_configured?
llm_credential.present?
end
diff --git a/lib/integrations/linear/auto_link_service.rb b/lib/integrations/linear/auto_link_service.rb
new file mode 100644
index 000000000..a980e56e4
--- /dev/null
+++ b/lib/integrations/linear/auto_link_service.rb
@@ -0,0 +1,93 @@
+class Integrations::Linear::AutoLinkService
+ pattr_initialize [:account!, :message!]
+
+ LINEAR_URL_REGEX = %r{https?://linear\.app/[^/\s]+/issue/[A-Z][A-Z0-9_]+-\d+(?:/[^\s)]*)?}
+ IDENTIFIER_REGEX = %r{/issue/([A-Z][A-Z0-9_]+-\d+)}i
+ WORKSPACE_REGEX = %r{//linear\.app/([^/\s]+)/}i
+
+ def perform
+ return unless valid_message?
+
+ attempt_link
+ end
+
+ private
+
+ def valid_message?
+ message.private? && message.content.present? && message.sender.is_a?(User)
+ end
+
+ def attempt_link
+ linear_url = message.content[LINEAR_URL_REGEX]
+ return if linear_url.blank?
+
+ identifier = linear_url[IDENTIFIER_REGEX, 1]&.upcase
+ workspace = linear_url[WORKSPACE_REGEX, 1]&.downcase
+ return if identifier.blank? || workspace.blank? || already_linked?(identifier)
+
+ finalize_link(workspace, identifier)
+ end
+
+ def finalize_link(workspace, identifier)
+ node_id = resolve_node_id(workspace, identifier)
+ return if node_id.blank?
+ return unless link_to_linear(node_id, identifier)
+
+ post_activity_message(identifier)
+ end
+
+ def already_linked?(identifier)
+ response = processor.linked_issues(conversation_link)
+ return false if response[:error]
+
+ response[:data].any? { |attachment| attachment.dig('issue', 'identifier') == identifier }
+ end
+
+ def resolve_node_id(workspace, identifier)
+ response = processor.search_issue(identifier)
+ return if response[:error]
+
+ node = response[:data].find do |issue|
+ issue['identifier'] == identifier && node_workspace(issue) == workspace
+ end
+ node && node['id']
+ end
+
+ def node_workspace(node)
+ node['url']&.match(WORKSPACE_REGEX)&.[](1)&.downcase
+ end
+
+ def link_to_linear(node_id, identifier)
+ response = processor.link_issue(conversation_link, node_id, attachment_title, message.sender)
+ if response[:error].present?
+ Rails.logger.warn("[Linear::AutoLinkService] link_issue failed for #{identifier}: #{response[:error]}")
+ return false
+ end
+ true
+ end
+
+ def attachment_title
+ I18n.t(
+ 'integration_apps.linear.attachment_link_title',
+ conversation_id: message.conversation.display_id,
+ name: message.conversation.contact&.name
+ )
+ end
+
+ def post_activity_message(identifier)
+ Linear::ActivityMessageService.new(
+ conversation: message.conversation,
+ action_type: :issue_linked,
+ user: message.sender,
+ issue_data: { id: identifier }
+ ).perform
+ end
+
+ def conversation_link
+ "#{ENV.fetch('FRONTEND_URL', nil)}/app/accounts/#{message.account_id}/conversations/#{message.conversation.display_id}"
+ end
+
+ def processor
+ @processor ||= Integrations::Linear::ProcessorService.new(account: account)
+ end
+end
diff --git a/lib/linear/queries.rb b/lib/linear/queries.rb
index cc705625e..7d7c9ae97 100644
--- a/lib/linear/queries.rb
+++ b/lib/linear/queries.rb
@@ -54,6 +54,7 @@ module Linear::Queries
title
description
identifier
+ url
state {
name
color
diff --git a/lib/safe_fetch.rb b/lib/safe_fetch.rb
index d664dcf6a..7f89c03c4 100644
--- a/lib/safe_fetch.rb
+++ b/lib/safe_fetch.rb
@@ -22,16 +22,11 @@ module SafeFetch
class FileTooLargeError < Error; end
class UnsupportedContentTypeError < Error; end
class UnsupportedMethodError < Error; end
-end
-require_relative 'safe_fetch/request_options'
-require_relative 'safe_fetch/fetcher'
-
-module SafeFetch
def self.fetch(url, **, &)
raise ArgumentError, 'block required' unless block_given?
- Fetcher.new(RequestOptions.new(url: url, **)).fetch(&)
+ SafeFetch::Fetcher.new(SafeFetch::RequestOptions.new(url: url, **)).fetch(&)
rescue SsrfFilter::InvalidUriScheme, URI::InvalidURIError => e
raise InvalidUrlError, e.message
rescue SsrfFilter::Error, Resolv::ResolvError => e
diff --git a/spec/builders/notification_builder_spec.rb b/spec/builders/notification_builder_spec.rb
index 1b28f6adf..f191f0485 100644
--- a/spec/builders/notification_builder_spec.rb
+++ b/spec/builders/notification_builder_spec.rb
@@ -6,9 +6,11 @@ describe NotificationBuilder do
describe '#perform' do
let!(:account) { create(:account) }
let!(:user) { create(:user, account: account) }
- let!(:primary_actor) { create(:conversation, account: account) }
+ let!(:inbox) { create(:inbox, account: account) }
+ let!(:primary_actor) { create(:conversation, account: account, inbox: inbox) }
before do
+ create(:inbox_member, user: user, inbox: inbox)
notification_setting = user.notification_settings.find_by(account_id: account.id)
notification_setting.selected_email_flags = [:email_conversation_creation]
notification_setting.selected_push_flags = [:push_conversation_creation]
@@ -97,5 +99,66 @@ describe NotificationBuilder do
).perform
end.to change { user.notifications.count }.by(1)
end
+
+ context 'when the user does not have access to the conversation' do
+ let!(:outsider) { create(:user, account: account) }
+
+ it 'does not create a notification for an agent without inbox or team access' do
+ expect do
+ described_class.new(
+ notification_type: 'conversation_creation',
+ user: outsider,
+ account: account,
+ primary_actor: primary_actor
+ ).perform
+ end.not_to(change { outsider.notifications.count })
+ end
+
+ it 'still creates a notification for administrators regardless of inbox membership' do
+ admin = create(:user, account: account, role: :administrator)
+ admin_setting = admin.notification_settings.find_by(account_id: account.id)
+ admin_setting.selected_email_flags = [:email_conversation_creation]
+ admin_setting.selected_push_flags = [:push_conversation_creation]
+ admin_setting.save!
+
+ expect do
+ described_class.new(
+ notification_type: 'conversation_creation',
+ user: admin,
+ account: account,
+ primary_actor: primary_actor
+ ).perform
+ end.to change { admin.notifications.count }.by(1)
+ end
+
+ it 'does not create a notification when the user is not part of the account' do
+ unrelated_user = create(:user)
+
+ expect do
+ described_class.new(
+ notification_type: 'conversation_creation',
+ user: unrelated_user,
+ account: account,
+ primary_actor: primary_actor
+ ).perform
+ end.not_to(change { unrelated_user.notifications.count })
+ end
+
+ it 'derives the conversation from a message primary_actor' do
+ outsider_inbox = create(:inbox, account: account)
+ message = create(:message, account: account, inbox: outsider_inbox,
+ conversation: create(:conversation, account: account, inbox: outsider_inbox))
+
+ expect do
+ described_class.new(
+ notification_type: 'conversation_mention',
+ user: outsider,
+ account: account,
+ primary_actor: message.conversation,
+ secondary_actor: message
+ ).perform
+ end.not_to(change { outsider.notifications.count })
+ end
+ end
end
end
diff --git a/spec/controllers/api/v1/accounts/custom_attribute_definitions_controller_spec.rb b/spec/controllers/api/v1/accounts/custom_attribute_definitions_controller_spec.rb
index c5be392b6..b55da5059 100644
--- a/spec/controllers/api/v1/accounts/custom_attribute_definitions_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/custom_attribute_definitions_controller_spec.rb
@@ -2,7 +2,8 @@ require 'rails_helper'
RSpec.describe 'Custom Attribute Definitions API', type: :request do
let(:account) { create(:account) }
- let(:user) { create(:user, account: account) }
+ let(:agent) { create(:user, account: account, role: :agent) }
+ let(:admin) { create(:user, account: account, role: :administrator) }
describe 'GET /api/v1/accounts/{account.id}/custom_attribute_definitions' do
context 'when it is an unauthenticated user' do
@@ -19,7 +20,7 @@ RSpec.describe 'Custom Attribute Definitions API', type: :request do
create(:custom_attribute_definition, attribute_model: 'contact_attribute', account: account)
get "/api/v1/accounts/#{account.id}/custom_attribute_definitions",
- headers: user.create_new_auth_token,
+ headers: admin.create_new_auth_token,
as: :json
expect(response).to have_http_status(:success)
@@ -45,7 +46,7 @@ RSpec.describe 'Custom Attribute Definitions API', type: :request do
context 'when it is an authenticated user' do
it 'shows the custom attribute definition' do
get "/api/v1/accounts/#{account.id}/custom_attribute_definitions/#{custom_attribute_definition.id}",
- headers: user.create_new_auth_token,
+ headers: admin.create_new_auth_token,
as: :json
expect(response).to have_http_status(:success)
@@ -81,7 +82,7 @@ RSpec.describe 'Custom Attribute Definitions API', type: :request do
context 'when it is an authenticated user' do
it 'creates the filter' do
expect do
- post "/api/v1/accounts/#{account.id}/custom_attribute_definitions", headers: user.create_new_auth_token,
+ post "/api/v1/accounts/#{account.id}/custom_attribute_definitions", headers: admin.create_new_auth_token,
params: payload
end.to change(CustomAttributeDefinition, :count).by(1)
@@ -90,6 +91,18 @@ RSpec.describe 'Custom Attribute Definitions API', type: :request do
expect(json_response['attribute_key']).to eq 'developer_id'
end
+ context 'when it is an agent' do
+ it 'returns forbidden and does not create the custom attribute' do
+ expect do
+ post "/api/v1/accounts/#{account.id}/custom_attribute_definitions",
+ headers: agent.create_new_auth_token,
+ params: payload
+ end.not_to change(CustomAttributeDefinition, :count)
+
+ expect(response).to have_http_status(:unauthorized)
+ end
+ end
+
context 'when creating with a conflicting attribute_key' do
let(:standard_key) { CustomAttributeDefinition::STANDARD_ATTRIBUTES[:conversation].first }
let(:conflicting_payload) do
@@ -105,7 +118,7 @@ RSpec.describe 'Custom Attribute Definitions API', type: :request do
it 'returns error for conflicting key' do
post "/api/v1/accounts/#{account.id}/custom_attribute_definitions",
- headers: user.create_new_auth_token,
+ headers: admin.create_new_auth_token,
params: conflicting_payload
expect(response).to have_http_status(:unprocessable_entity)
@@ -132,7 +145,7 @@ RSpec.describe 'Custom Attribute Definitions API', type: :request do
context 'when it is an authenticated user' do
it 'updates the custom attribute definition' do
patch "/api/v1/accounts/#{account.id}/custom_attribute_definitions/#{custom_attribute_definition.id}",
- headers: user.create_new_auth_token,
+ headers: admin.create_new_auth_token,
params: payload,
as: :json
expect(response).to have_http_status(:success)
@@ -141,6 +154,19 @@ RSpec.describe 'Custom Attribute Definitions API', type: :request do
expect(custom_attribute_definition.reload.attribute_model).to eq('conversation_attribute')
end
end
+
+ context 'when it is an agent' do
+ it 'returns forbidden and does not update the custom attribute' do
+ original_name = custom_attribute_definition.attribute_display_name
+ patch "/api/v1/accounts/#{account.id}/custom_attribute_definitions/#{custom_attribute_definition.id}",
+ headers: agent.create_new_auth_token,
+ params: payload,
+ as: :json
+
+ expect(response).to have_http_status(:unauthorized)
+ expect(custom_attribute_definition.reload.attribute_display_name).to eq(original_name)
+ end
+ end
end
describe 'DELETE /api/v1/accounts/{account.id}/custom_attribute_definitions/:id' do
@@ -156,11 +182,22 @@ RSpec.describe 'Custom Attribute Definitions API', type: :request do
context 'when it is an authenticated admin user' do
it 'deletes custom attribute' do
delete "/api/v1/accounts/#{account.id}/custom_attribute_definitions/#{custom_attribute_definition.id}",
- headers: user.create_new_auth_token,
+ headers: admin.create_new_auth_token,
as: :json
expect(response).to have_http_status(:no_content)
expect(account.custom_attribute_definitions.count).to be 0
end
end
+
+ context 'when it is an agent' do
+ it 'returns forbidden and does not delete the custom attribute' do
+ delete "/api/v1/accounts/#{account.id}/custom_attribute_definitions/#{custom_attribute_definition.id}",
+ headers: agent.create_new_auth_token,
+ as: :json
+
+ expect(response).to have_http_status(:unauthorized)
+ expect(account.custom_attribute_definitions.count).to be 1
+ end
+ end
end
end
diff --git a/spec/controllers/api/v1/accounts/inboxes_controller_spec.rb b/spec/controllers/api/v1/accounts/inboxes_controller_spec.rb
index 8aae60d53..0372bb141 100644
--- a/spec/controllers/api/v1/accounts/inboxes_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/inboxes_controller_spec.rb
@@ -568,8 +568,10 @@ RSpec.describe 'Inboxes API', type: :request do
email_channel = create(:channel_email, account: account)
email_inbox = create(:inbox, channel: email_channel, account: account)
- imap_connection = double
- allow(Mail).to receive(:connection).and_return(imap_connection)
+ imap_connection = instance_double(Net::IMAP, disconnected?: false)
+ allow(Net::IMAP).to receive(:new).and_return(imap_connection)
+ allow(imap_connection).to receive(:login)
+ allow(imap_connection).to receive(:disconnect)
patch "/api/v1/accounts/#{account.id}/inboxes/#{email_inbox.id}",
headers: admin.create_new_auth_token,
@@ -578,7 +580,8 @@ RSpec.describe 'Inboxes API', type: :request do
imap_enabled: true,
imap_address: 'imap.gmail.com',
imap_port: 993,
- imap_login: 'imaptest@gmail.com'
+ imap_login: 'imaptest@gmail.com',
+ imap_authentication: 'login'
}
},
as: :json
@@ -587,6 +590,7 @@ RSpec.describe 'Inboxes API', type: :request do
expect(email_channel.reload.imap_enabled).to be true
expect(email_channel.reload.imap_address).to eq('imap.gmail.com')
expect(email_channel.reload.imap_port).to eq(993)
+ expect(email_channel.reload.imap_authentication).to eq('login')
end
it 'updates avatar when administrator' do
diff --git a/spec/controllers/api/v1/accounts/labels_controller_spec.rb b/spec/controllers/api/v1/accounts/labels_controller_spec.rb
index 61751ad68..657b53796 100644
--- a/spec/controllers/api/v1/accounts/labels_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/labels_controller_spec.rb
@@ -3,6 +3,7 @@ require 'rails_helper'
RSpec.describe 'Label API', type: :request do
let!(:account) { create(:account) }
let!(:label) { create(:label, account: account) }
+ let!(:conversation) { create(:conversation, account: account) }
describe 'GET /api/v1/accounts/{account.id}/labels' do
context 'when it is an unauthenticated user' do
@@ -101,4 +102,39 @@ RSpec.describe 'Label API', type: :request do
end
end
end
+
+ describe 'DELETE /api/v1/accounts/{account.id}/labels/:id' do
+ context 'when it is an unauthenticated user' do
+ it 'returns unauthorized' do
+ delete "/api/v1/accounts/#{account.id}/labels/#{label.id}"
+
+ expect(response).to have_http_status(:unauthorized)
+ end
+ end
+
+ context 'when it is an authenticated user' do
+ let(:admin) { create(:user, account: account, role: :administrator) }
+
+ it 'deletes the label and enqueues label cleanup' do
+ label_deleted_at = Time.zone.parse('2026-05-07 10:00:00 UTC')
+ conversation.label_list.add(label.title)
+ conversation.save!
+
+ clear_enqueued_jobs
+
+ travel_to(label_deleted_at) do
+ expect do
+ delete "/api/v1/accounts/#{account.id}/labels/#{label.id}", headers: admin.create_new_auth_token, as: :json
+ end.to have_enqueued_job(Labels::RemoveAssociationsJob).with(
+ label_title: label.title,
+ account_id: account.id,
+ label_deleted_at: label_deleted_at
+ )
+ end
+
+ expect(response).to have_http_status(:ok)
+ expect(Label.exists?(label.id)).to be(false)
+ end
+ end
+ end
end
diff --git a/spec/enterprise/builders/notification_builder_spec.rb b/spec/enterprise/builders/notification_builder_spec.rb
new file mode 100644
index 000000000..e25034f0c
--- /dev/null
+++ b/spec/enterprise/builders/notification_builder_spec.rb
@@ -0,0 +1,106 @@
+require 'rails_helper'
+
+describe NotificationBuilder do
+ describe '#perform with custom role permissions' do
+ let!(:account) { create(:account) }
+ let!(:agent) { create(:user, account: account, role: :agent) }
+ let!(:inbox) { create(:inbox, account: account) }
+ let!(:account_user) { agent.account_users.find_by(account: account) }
+
+ before do
+ create(:inbox_member, user: agent, inbox: inbox)
+ notification_setting = agent.notification_settings.find_by(account_id: account.id)
+ notification_setting.selected_email_flags = [:email_conversation_creation]
+ notification_setting.selected_push_flags = [:push_conversation_creation]
+ notification_setting.save!
+ end
+
+ def build_notification(conversation, type: 'conversation_creation')
+ described_class.new(
+ notification_type: type,
+ user: agent,
+ account: account,
+ primary_actor: conversation
+ ).perform
+ end
+
+ context 'when the agent has conversation_manage permission' do
+ before do
+ custom_role = create(:custom_role, account: account, permissions: ['conversation_manage'])
+ account_user.update!(custom_role: custom_role)
+ end
+
+ it 'creates a notification for any inbox conversation' do
+ conversation = create(:conversation, account: account, inbox: inbox)
+
+ expect { build_notification(conversation) }.to change { agent.notifications.count }.by(1)
+ end
+ end
+
+ context 'when the agent has conversation_unassigned_manage permission' do
+ before do
+ custom_role = create(:custom_role, account: account, permissions: ['conversation_unassigned_manage'])
+ account_user.update!(custom_role: custom_role)
+ end
+
+ it 'creates a notification for unassigned conversations' do
+ conversation = create(:conversation, account: account, inbox: inbox, assignee: nil)
+
+ expect { build_notification(conversation) }.to change { agent.notifications.count }.by(1)
+ end
+
+ it 'creates a notification for conversations assigned to the agent' do
+ conversation = create(:conversation, account: account, inbox: inbox, assignee: agent)
+
+ expect { build_notification(conversation) }.to change { agent.notifications.count }.by(1)
+ end
+
+ it 'does not create a notification for conversations assigned to someone else' do
+ other_agent = create(:user, account: account, role: :agent)
+ create(:inbox_member, user: other_agent, inbox: inbox)
+ conversation = create(:conversation, account: account, inbox: inbox, assignee: other_agent)
+
+ expect { build_notification(conversation) }.not_to(change { agent.notifications.count })
+ end
+ end
+
+ context 'when the agent has conversation_participating_manage permission' do
+ before do
+ custom_role = create(:custom_role, account: account, permissions: ['conversation_participating_manage'])
+ account_user.update!(custom_role: custom_role)
+ end
+
+ it 'creates a notification for conversations assigned to the agent' do
+ conversation = create(:conversation, account: account, inbox: inbox, assignee: agent)
+
+ expect { build_notification(conversation) }.to change { agent.notifications.count }.by(1)
+ end
+
+ it 'creates a notification for conversations the agent participates in' do
+ conversation = create(:conversation, account: account, inbox: inbox, assignee: nil)
+ create(:conversation_participant, conversation: conversation, account: account, user: agent)
+
+ expect { build_notification(conversation) }.to change { agent.notifications.count }.by(1)
+ end
+
+ it 'does not create a notification for unassigned conversations the agent does not participate in' do
+ conversation = create(:conversation, account: account, inbox: inbox, assignee: nil)
+
+ expect { build_notification(conversation) }.not_to(change { agent.notifications.count })
+ end
+ end
+
+ context 'when the custom role grants no conversation permissions' do
+ before do
+ custom_role = create(:custom_role, account: account, permissions: ['contact_manage'])
+ account_user.update!(custom_role: custom_role)
+ end
+
+ it 'does not create a notification' do
+ conversation = create(:conversation, account: account, inbox: inbox, assignee: agent)
+
+ expect { build_notification(conversation) }.not_to(change { agent.notifications.count })
+ end
+ end
+ end
+end
diff --git a/spec/enterprise/controllers/api/v1/accounts/whatsapp_calls_controller_spec.rb b/spec/enterprise/controllers/api/v1/accounts/whatsapp_calls_controller_spec.rb
new file mode 100644
index 000000000..264f428ce
--- /dev/null
+++ b/spec/enterprise/controllers/api/v1/accounts/whatsapp_calls_controller_spec.rb
@@ -0,0 +1,209 @@
+require 'rails_helper'
+
+RSpec.describe 'WhatsApp Calls API', type: :request do
+ let(:account) { create(:account) }
+ let(:agent) { create(:user, account: account, role: :agent) }
+ let(:channel) do
+ create(:channel_whatsapp, provider: 'whatsapp_cloud', account: account,
+ validate_provider_config: false, sync_templates: false)
+ end
+ let(:inbox) { channel.inbox }
+ let(:conversation) { create(:conversation, account: account, inbox: inbox) }
+ let(:call) do
+ create(:call, account: account, inbox: inbox, conversation: conversation, contact: conversation.contact,
+ provider: :whatsapp, direction: :incoming, status: 'ringing', provider_call_id: 'wacid_abc')
+ end
+ let(:provider_service) { instance_double(Whatsapp::Providers::WhatsappCloudService) }
+
+ before do
+ account.enable_features!('channel_voice')
+ channel.provider_config = channel.provider_config.merge('source' => 'embedded_signup', 'calling_enabled' => true)
+ channel.save!
+ create(:inbox_member, user: agent, inbox: inbox)
+ allow(Whatsapp::Providers::WhatsappCloudService).to receive(:new).and_return(provider_service)
+ end
+
+ describe 'GET /api/v1/accounts/:account_id/whatsapp_calls/:id' do
+ it 'returns the call payload' do
+ get "/api/v1/accounts/#{account.id}/whatsapp_calls/#{call.id}", headers: agent.create_new_auth_token
+
+ expect(response).to have_http_status(:ok)
+ body = response.parsed_body
+ expect(body['id']).to eq(call.id)
+ expect(body['call_id']).to eq('wacid_abc')
+ expect(body['provider']).to eq('whatsapp')
+ end
+
+ it 'returns 401 when unauthenticated' do
+ get "/api/v1/accounts/#{account.id}/whatsapp_calls/#{call.id}"
+ expect(response).to have_http_status(:unauthorized)
+ end
+ end
+
+ describe 'POST /api/v1/accounts/:account_id/whatsapp_calls/:id/accept' do
+ it 'forwards SDP and returns the updated call payload' do
+ allow(provider_service).to receive(:pre_accept_call).and_return(true)
+ allow(provider_service).to receive(:accept_call).and_return(true)
+
+ post "/api/v1/accounts/#{account.id}/whatsapp_calls/#{call.id}/accept",
+ params: { sdp_answer: 'sdp_answer' }, headers: agent.create_new_auth_token
+
+ expect(response).to have_http_status(:ok)
+ expect(call.reload.status).to eq('in_progress')
+ end
+
+ it 'returns 422 when sdp_answer is missing' do
+ post "/api/v1/accounts/#{account.id}/whatsapp_calls/#{call.id}/accept",
+ headers: agent.create_new_auth_token
+
+ expect(response).to have_http_status(:unprocessable_entity)
+ end
+ end
+
+ describe 'POST /api/v1/accounts/:account_id/whatsapp_calls/:id/reject' do
+ it 'rejects the call via Meta and returns its new status' do
+ allow(provider_service).to receive(:reject_call).and_return(true)
+
+ post "/api/v1/accounts/#{account.id}/whatsapp_calls/#{call.id}/reject",
+ headers: agent.create_new_auth_token
+
+ expect(response).to have_http_status(:ok)
+ expect(call.reload.status).to eq('failed')
+ end
+ end
+
+ describe 'POST /api/v1/accounts/:account_id/whatsapp_calls/:id/terminate' do
+ it 'terminates the call via Meta and returns its new status' do
+ call.update!(status: 'in_progress')
+ allow(provider_service).to receive(:terminate_call).and_return(true)
+
+ post "/api/v1/accounts/#{account.id}/whatsapp_calls/#{call.id}/terminate",
+ headers: agent.create_new_auth_token
+
+ expect(response).to have_http_status(:ok)
+ expect(call.reload.status).to eq('completed')
+ end
+ end
+
+ describe 'POST /api/v1/accounts/:account_id/whatsapp_calls/initiate' do
+ let(:contact) { create(:contact, account: account, phone_number: '+15551234567') }
+ let!(:contact_inbox) { create(:contact_inbox, contact: contact, inbox: inbox, source_id: '15551234567') }
+ let(:initiate_conversation) do
+ create(:conversation, account: account, inbox: inbox, contact: contact, contact_inbox: contact_inbox)
+ end
+
+ it 'creates an outbound Call and returns calling status' do
+ allow(provider_service).to receive(:initiate_call).and_return({ 'calls' => [{ 'id' => 'wacid_outbound' }] })
+
+ post "/api/v1/accounts/#{account.id}/whatsapp_calls/initiate",
+ params: { conversation_id: initiate_conversation.display_id, sdp_offer: 'sdp_offer' },
+ headers: agent.create_new_auth_token
+
+ expect(response).to have_http_status(:ok)
+ expect(response.parsed_body).to include('status' => 'calling', 'call_id' => 'wacid_outbound')
+ expect(Call.find_by(provider_call_id: 'wacid_outbound')).to have_attributes(direction: 'outgoing', status: 'ringing')
+ end
+
+ it 'sends a permission request and records the wamid when Meta returns NoCallPermission' do
+ allow(provider_service).to receive(:initiate_call).and_raise(Voice::CallErrors::NoCallPermission)
+ allow(provider_service).to receive(:send_call_permission_request).and_return({ 'messages' => [{ 'id' => 'wamid.req_xyz' }] })
+
+ post "/api/v1/accounts/#{account.id}/whatsapp_calls/initiate",
+ params: { conversation_id: initiate_conversation.display_id, sdp_offer: 'sdp_offer' },
+ headers: agent.create_new_auth_token
+
+ # Controller deliberately returns 422 so clients can't mistake the permission-template path for a successful dial.
+ expect(response).to have_http_status(:unprocessable_entity)
+ expect(response.parsed_body['status']).to eq('permission_requested')
+ attrs = initiate_conversation.reload.additional_attributes
+ expect(attrs['call_permission_requested_at']).to be_present
+ expect(attrs['call_permission_request_message_id']).to eq('wamid.req_xyz')
+ end
+
+ it 'returns permission_request_failed when send_call_permission_request raises a transport error' do
+ allow(provider_service).to receive(:initiate_call).and_raise(Voice::CallErrors::NoCallPermission)
+ allow(provider_service).to receive(:send_call_permission_request).and_raise(Faraday::TimeoutError)
+
+ post "/api/v1/accounts/#{account.id}/whatsapp_calls/initiate",
+ params: { conversation_id: initiate_conversation.display_id, sdp_offer: 'sdp_offer' },
+ headers: agent.create_new_auth_token
+
+ expect(response).to have_http_status(:unprocessable_entity)
+ expect(response.parsed_body['error']).to eq(I18n.t('errors.whatsapp.calls.permission_request_failed'))
+ end
+
+ it 'returns 422 when sdp_offer is missing' do
+ post "/api/v1/accounts/#{account.id}/whatsapp_calls/initiate",
+ params: { conversation_id: initiate_conversation.display_id },
+ headers: agent.create_new_auth_token
+
+ expect(response).to have_http_status(:unprocessable_entity)
+ end
+
+ it 'returns 422 when Meta raises CallFailed for non-permission errors' do
+ allow(provider_service).to receive(:initiate_call).and_raise(Voice::CallErrors::CallFailed, 'Meta error')
+
+ post "/api/v1/accounts/#{account.id}/whatsapp_calls/initiate",
+ params: { conversation_id: initiate_conversation.display_id, sdp_offer: 'sdp_offer' },
+ headers: agent.create_new_auth_token
+
+ expect(response).to have_http_status(:unprocessable_entity)
+ expect(response.parsed_body['error']).to eq('Meta error')
+ end
+
+ it 'returns 422 when the conversation contact has no phone number' do
+ contact.update!(phone_number: nil)
+
+ post "/api/v1/accounts/#{account.id}/whatsapp_calls/initiate",
+ params: { conversation_id: initiate_conversation.display_id, sdp_offer: 'sdp_offer' },
+ headers: agent.create_new_auth_token
+
+ expect(response).to have_http_status(:unprocessable_entity)
+ expect(response.parsed_body['error']).to eq(I18n.t('errors.whatsapp.calls.contact_phone_required'))
+ end
+
+ it 'returns 422 when the conversation belongs to a non-WhatsApp inbox' do
+ twilio_channel = create(:channel_twilio_sms, :with_voice, account: account, phone_number: '+15551239998')
+ create(:inbox_member, user: agent, inbox: twilio_channel.inbox)
+ twilio_conversation = create(:conversation, account: account, inbox: twilio_channel.inbox)
+
+ post "/api/v1/accounts/#{account.id}/whatsapp_calls/initiate",
+ params: { conversation_id: twilio_conversation.display_id, sdp_offer: 'sdp_offer' },
+ headers: agent.create_new_auth_token
+
+ expect(response).to have_http_status(:unprocessable_entity)
+ expect(response.parsed_body['error']).to eq(I18n.t('errors.whatsapp.calls.not_enabled'))
+ end
+ end
+
+ describe 'POST /api/v1/accounts/:account_id/whatsapp_calls/:id/upload_recording' do
+ before do
+ message = create(:message, conversation: conversation, account: account, inbox: inbox,
+ content_type: 'voice_call', message_type: 'incoming')
+ call.update!(message_id: message.id)
+ end
+
+ it 'attaches the recording to the call message' do
+ file = fixture_file_upload(Rails.root.join('spec/assets/sample.mp3'), 'audio/mpeg')
+
+ expect do
+ post "/api/v1/accounts/#{account.id}/whatsapp_calls/#{call.id}/upload_recording",
+ params: { recording: file }, headers: agent.create_new_auth_token
+ end.to change { call.message.attachments.count }.by(1)
+
+ expect(response).to have_http_status(:ok)
+ expect(response.parsed_body['status']).to eq('uploaded')
+ end
+
+ it 'is idempotent: returns already_uploaded if an audio attachment exists' do
+ call.message.attachments.create!(account_id: account.id, file_type: :audio,
+ file: fixture_file_upload(Rails.root.join('spec/assets/sample.mp3'), 'audio/mpeg'))
+
+ post "/api/v1/accounts/#{account.id}/whatsapp_calls/#{call.id}/upload_recording",
+ params: { recording: fixture_file_upload(Rails.root.join('spec/assets/sample.mp3'), 'audio/mpeg') },
+ headers: agent.create_new_auth_token
+
+ expect(response.parsed_body['status']).to eq('already_uploaded')
+ end
+ end
+end
diff --git a/spec/enterprise/lib/captain/base_task_service_spec.rb b/spec/enterprise/lib/captain/base_task_service_spec.rb
index a018a7c84..b3dc473eb 100644
--- a/spec/enterprise/lib/captain/base_task_service_spec.rb
+++ b/spec/enterprise/lib/captain/base_task_service_spec.rb
@@ -165,5 +165,37 @@ RSpec.describe Captain::BaseTaskService, type: :model do
service.perform
end
end
+
+ context 'when subclass opts out via counts_toward_usage?' do
+ let(:test_service_class) do
+ result = perform_result
+ klass = Class.new(described_class) do
+ define_method(:perform) { result }
+ define_method(:event_name) { 'test_event' }
+ define_method(:counts_toward_usage?) { false }
+ end
+ klass.prepend(Enterprise::Captain::BaseTaskService)
+ klass
+ end
+
+ it 'does not increment usage even on a successful result' do
+ expect(account).not_to receive(:increment_response_usage)
+ service.perform
+ end
+
+ context 'when the captain_responses quota is exhausted on Cloud' do
+ before do
+ allow(ChatwootApp).to receive(:chatwoot_cloud?).and_return(true)
+ allow(account).to receive(:usage_limits).and_return({
+ captain: { responses: { current_available: 0 } }
+ })
+ end
+
+ it 'bypasses the 429 gate and returns the underlying result' do
+ result = service.perform
+ expect(result).to eq(perform_result)
+ end
+ end
+ end
end
end
diff --git a/spec/enterprise/models/sla_event_spec.rb b/spec/enterprise/models/sla_event_spec.rb
index 8a839d626..0600fb80f 100644
--- a/spec/enterprise/models/sla_event_spec.rb
+++ b/spec/enterprise/models/sla_event_spec.rb
@@ -55,6 +55,7 @@ RSpec.describe SlaEvent, type: :model do
before do
# to ensure notifications are not sent to other users
create(:user, account: account)
+ create(:inbox_member, inbox: inbox, user: assignee)
create(:inbox_member, inbox: inbox, user: participant)
create(:conversation_participant, conversation: conversation, user: participant)
end
diff --git a/spec/enterprise/services/enterprise/billing/create_stripe_customer_service_spec.rb b/spec/enterprise/services/enterprise/billing/create_stripe_customer_service_spec.rb
index 0dd8189c4..d2dbf646a 100644
--- a/spec/enterprise/services/enterprise/billing/create_stripe_customer_service_spec.rb
+++ b/spec/enterprise/services/enterprise/billing/create_stripe_customer_service_spec.rb
@@ -145,10 +145,10 @@ describe Enterprise::Billing::CreateStripeCustomerService do
account.update!(custom_attributes: { stripe_customer_id: stripe_customer_id })
end
- context 'when customer has active subscriptions' do
+ context 'when customer has an active non-default subscription' do
before do
allow(Stripe::Subscription).to receive(:list).and_return(subscriptions_list)
- allow(subscriptions_list).to receive(:data).and_return(['subscription'])
+ allow(subscriptions_list).to receive(:data).and_return([{ 'plan' => { 'id' => 'price_paid_plan' } }])
allow(Stripe::Subscription).to receive(:create)
end
diff --git a/spec/enterprise/services/enterprise/onboarding/web_widget_creation_service_spec.rb b/spec/enterprise/services/enterprise/onboarding/web_widget_creation_service_spec.rb
new file mode 100644
index 000000000..90272f5ef
--- /dev/null
+++ b/spec/enterprise/services/enterprise/onboarding/web_widget_creation_service_spec.rb
@@ -0,0 +1,59 @@
+require 'rails_helper'
+
+# Simulate the prepend_mod_with overlay for testing.
+test_klass = Class.new(Onboarding::WebWidgetCreationService) do
+ prepend Enterprise::Onboarding::WebWidgetCreationService
+end
+
+RSpec.describe Enterprise::Onboarding::WebWidgetCreationService do
+ let(:account) do
+ create(:account, name: 'Acme Inc', domain: 'acme.com', custom_attributes: {
+ 'brand_info' => { 'slogan' => 'Fallback slogan', 'description' => 'Fallback description' }
+ })
+ end
+ let(:user) { create(:user) }
+ let(:service) { test_klass.new(account, user) }
+
+ before { create(:account_user, account: account, user: user, role: :administrator) }
+
+ describe '#welcome_tagline_text via #perform' do
+ let(:llm_double) { instance_double(Captain::Llm::WidgetTaglineService) }
+
+ before do
+ allow(Captain::Llm::WidgetTaglineService).to receive(:new).and_return(llm_double)
+ end
+
+ context 'when the LLM returns a tagline' do
+ before { allow(llm_double).to receive(:perform).and_return(message: ' LLM tagline ') }
+
+ it 'uses the (stripped) LLM-generated tagline' do
+ expect(service.perform.channel.welcome_tagline).to eq('LLM tagline')
+ end
+ end
+
+ context 'when the LLM returns a blank message' do
+ before { allow(llm_double).to receive(:perform).and_return(message: '') }
+
+ it 'falls back to brand_info text' do
+ expect(service.perform.channel.welcome_tagline).to eq('Fallback slogan')
+ end
+ end
+
+ context 'when the LLM returns an error response' do
+ before { allow(llm_double).to receive(:perform).and_return(error: 'LLM timeout', error_code: 500) }
+
+ it 'falls back to brand_info text' do
+ expect(service.perform.channel.welcome_tagline).to eq('Fallback slogan')
+ end
+ end
+
+ context 'when the LLM raises an exception' do
+ before { allow(llm_double).to receive(:perform).and_raise(StandardError, 'boom') }
+
+ it 'still creates the widget with brand_info fallback (no transaction rollback)' do
+ expect { service.perform }.to change(Channel::WebWidget, :count).by(1)
+ expect(service.perform.channel.welcome_tagline).to eq('Fallback slogan')
+ end
+ end
+ end
+end
diff --git a/spec/enterprise/services/voice/inbound_call_builder_spec.rb b/spec/enterprise/services/voice/inbound_call_builder_spec.rb
index 3065875f2..e36c9a1b7 100644
--- a/spec/enterprise/services/voice/inbound_call_builder_spec.rb
+++ b/spec/enterprise/services/voice/inbound_call_builder_spec.rb
@@ -103,7 +103,7 @@ RSpec.describe Voice::InboundCallBuilder do
context 'when the WhatsApp wa_id needs Brazil normalization to match an existing ContactInbox' do
let(:whatsapp_channel) do
create(:channel_whatsapp, account: account, provider: 'whatsapp_cloud',
- provider_config: { 'phone_number_id' => '123', 'calling_enabled' => true },
+ provider_config: { 'phone_number_id' => '123', 'source' => 'embedded_signup', 'calling_enabled' => true },
validate_provider_config: false, sync_templates: false)
end
let(:whatsapp_inbox) { whatsapp_channel.inbox }
@@ -112,6 +112,8 @@ RSpec.describe Voice::InboundCallBuilder do
create(:contact_inbox, contact: stored_contact, inbox: whatsapp_inbox, source_id: '5541988887777')
end
+ before { account.enable_features!('channel_voice') }
+
it 'reuses the contact via normalized wa_id rather than forking a new ContactInbox' do
call = described_class.perform!(
inbox: whatsapp_inbox,
diff --git a/spec/enterprise/services/whatsapp/call_service_spec.rb b/spec/enterprise/services/whatsapp/call_service_spec.rb
new file mode 100644
index 000000000..a17f7572a
--- /dev/null
+++ b/spec/enterprise/services/whatsapp/call_service_spec.rb
@@ -0,0 +1,136 @@
+require 'rails_helper'
+
+describe Whatsapp::CallService do
+ let(:account) { create(:account) }
+ let(:channel) do
+ create(:channel_whatsapp, provider: 'whatsapp_cloud', account: account,
+ validate_provider_config: false, sync_templates: false)
+ end
+ let(:inbox) { channel.inbox }
+ let(:agent) { create(:user, account: account) }
+ let(:conversation) { create(:conversation, account: account, inbox: inbox) }
+ let(:call) do
+ create(:call, account: account, inbox: inbox, conversation: conversation, contact: conversation.contact,
+ provider: :whatsapp, direction: :incoming, status: 'ringing', provider_call_id: 'wacid_abc')
+ end
+ let(:provider_service) { instance_double(Whatsapp::Providers::WhatsappCloudService) }
+
+ before do
+ channel.provider_config = channel.provider_config.merge('calling_enabled' => true)
+ channel.save!
+ allow(channel).to receive(:provider_service).and_return(provider_service)
+ allow(inbox).to receive(:channel).and_return(channel)
+ allow(call).to receive(:inbox).and_return(inbox)
+ allow(ActionCable.server).to receive(:broadcast)
+ end
+
+ describe '#accept' do
+ let(:sdp_answer) { "v=0\r\n...sdp..." }
+
+ before do
+ allow(provider_service).to receive(:pre_accept_call).and_return(true)
+ allow(provider_service).to receive(:accept_call).and_return(true)
+ end
+
+ it 'forwards the SDP answer to Meta and transitions the call to in_progress' do
+ described_class.new(call: call, agent: agent, sdp_answer: sdp_answer).accept
+
+ expect(provider_service).to have_received(:pre_accept_call).with('wacid_abc', sdp_answer)
+ expect(provider_service).to have_received(:accept_call).with('wacid_abc', sdp_answer)
+ expect(call.reload).to have_attributes(status: 'in_progress', accepted_by_agent_id: agent.id, started_at: be_present)
+ expect(call.meta['sdp_answer']).to eq(sdp_answer)
+ expect(ActionCable.server).to have_received(:broadcast).with(
+ "account_#{account.id}", hash_including(event: 'voice_call.accepted')
+ )
+ end
+
+ it 'claims the conversation when no assignee is set' do
+ described_class.new(call: call, agent: agent, sdp_answer: sdp_answer).accept
+
+ expect(conversation.reload.assignee_id).to eq(agent.id)
+ end
+
+ it 'raises AlreadyAccepted when another agent has already accepted the call' do
+ call.update!(status: 'in_progress')
+
+ expect { described_class.new(call: call, agent: agent, sdp_answer: sdp_answer).accept }
+ .to raise_error(StandardError) { |error| expect(error.class.name).to eq('Voice::CallErrors::AlreadyAccepted') }
+ end
+
+ it 'raises NotRinging when the call has reached a terminal state' do
+ call.update!(status: 'completed')
+
+ expect { described_class.new(call: call, agent: agent, sdp_answer: sdp_answer).accept }
+ .to raise_error(StandardError) { |error| expect(error.class.name).to eq('Voice::CallErrors::NotRinging') }
+ end
+
+ it 'raises CallFailed when sdp_answer is missing' do
+ expect { described_class.new(call: call, agent: agent, sdp_answer: nil).accept }
+ .to raise_error(StandardError) do |error|
+ expect(error.class.name).to eq('Voice::CallErrors::CallFailed')
+ expect(error.message).to eq('sdp_answer is required')
+ end
+ end
+
+ it 'wraps Meta transport exceptions as CallFailed and leaves the call ringing' do
+ allow(provider_service).to receive(:pre_accept_call).and_raise(Faraday::TimeoutError)
+
+ expect { described_class.new(call: call, agent: agent, sdp_answer: sdp_answer).accept }
+ .to raise_error(StandardError) { |error| expect(error.class.name).to eq('Voice::CallErrors::CallFailed') }
+ expect(call.reload.status).to eq('ringing')
+ end
+ end
+
+ describe '#reject' do
+ before { allow(provider_service).to receive(:reject_call).and_return(true) }
+
+ it 'tells Meta to reject and finalizes the call as failed' do
+ described_class.new(call: call, agent: agent).reject
+
+ expect(provider_service).to have_received(:reject_call).with('wacid_abc')
+ expect(call.reload.status).to eq('failed')
+ expect(ActionCable.server).to have_received(:broadcast).with(
+ "account_#{account.id}", hash_including(event: 'voice_call.ended', data: hash_including(status: 'failed'))
+ )
+ end
+
+ it 'is a no-op for already-terminal calls' do
+ call.update!(status: 'completed')
+
+ described_class.new(call: call, agent: agent).reject
+
+ expect(provider_service).not_to have_received(:reject_call)
+ end
+
+ it 'raises CallFailed and leaves the call ringing when Meta rejects the request' do
+ allow(provider_service).to receive(:reject_call).and_return(false)
+
+ expect { described_class.new(call: call, agent: agent).reject }
+ .to raise_error(StandardError) { |error| expect(error.class.name).to eq('Voice::CallErrors::CallFailed') }
+ expect(call.reload.status).to eq('ringing')
+ end
+ end
+
+ describe '#terminate' do
+ before { allow(provider_service).to receive(:terminate_call).and_return(true) }
+
+ it 'finalizes an in-progress call as completed' do
+ call.update!(status: 'in_progress')
+
+ described_class.new(call: call, agent: agent).terminate
+
+ expect(provider_service).to have_received(:terminate_call).with('wacid_abc')
+ expect(call.reload.status).to eq('completed')
+ expect(call.meta['ended_at']).to be_present
+ expect(ActionCable.server).to have_received(:broadcast).with(
+ "account_#{account.id}", hash_including(event: 'voice_call.ended')
+ )
+ end
+
+ it 'finalizes a still-ringing call as no_answer when the agent hangs up before the contact picks up' do
+ described_class.new(call: call, agent: agent).terminate
+
+ expect(call.reload.status).to eq('no_answer')
+ end
+ end
+end
diff --git a/spec/factories/channel/channel_email.rb b/spec/factories/channel/channel_email.rb
index 32cdb0488..516699594 100644
--- a/spec/factories/channel/channel_email.rb
+++ b/spec/factories/channel/channel_email.rb
@@ -16,6 +16,7 @@ FactoryBot.define do
imap_login { 'email@example.com' }
imap_password { '' }
imap_enable_ssl { true }
+
provider_config do
{
expires_on: Time.zone.now + 3600,
@@ -33,6 +34,7 @@ FactoryBot.define do
imap_login { 'email@example.com' }
imap_password { 'random-password' }
imap_enable_ssl { true }
+ imap_authentication { 'plain' }
end
end
end
diff --git a/spec/jobs/hook_job_spec.rb b/spec/jobs/hook_job_spec.rb
index b55b05838..c6faebd86 100644
--- a/spec/jobs/hook_job_spec.rb
+++ b/spec/jobs/hook_job_spec.rb
@@ -65,6 +65,13 @@ RSpec.describe HookJob do
expect(Integrations::GoogleTranslate::DetectLanguageService).to receive(:new).with(hook: hook, message: event_data[:message])
described_class.perform_now(hook, event_name, event_data)
end
+
+ it "calls Integrations::Linear::AutoLinkService when it's a linear hook" do
+ hook = create(:integrations_hook, :linear, account: account)
+ allow(Integrations::Linear::AutoLinkService).to receive(:new).and_return(process_service)
+ expect(Integrations::Linear::AutoLinkService).to receive(:new).with(account: account, message: event_data[:message])
+ described_class.perform_now(hook, event_name, event_data)
+ end
end
context 'when handleable events like message.updated for slack' do
diff --git a/spec/jobs/labels/remove_associations_job_spec.rb b/spec/jobs/labels/remove_associations_job_spec.rb
new file mode 100644
index 000000000..0b608630f
--- /dev/null
+++ b/spec/jobs/labels/remove_associations_job_spec.rb
@@ -0,0 +1,21 @@
+require 'rails_helper'
+
+RSpec.describe Labels::RemoveAssociationsJob do
+ subject(:job) do
+ described_class.perform_later(
+ label_title: label_title,
+ account_id: account_id,
+ label_deleted_at: label_deleted_at
+ )
+ end
+
+ let(:label_title) { 'billing' }
+ let(:account_id) { 1 }
+ let(:label_deleted_at) { Time.current }
+
+ it 'queues the job' do
+ expect { job }.to have_enqueued_job(described_class)
+ .with(label_title: label_title, account_id: account_id, label_deleted_at: label_deleted_at)
+ .on_queue('default')
+ end
+end
diff --git a/spec/jobs/send_reply_job_spec.rb b/spec/jobs/send_reply_job_spec.rb
index 46d8e5e56..3f95164b5 100644
--- a/spec/jobs/send_reply_job_spec.rb
+++ b/spec/jobs/send_reply_job_spec.rb
@@ -18,6 +18,17 @@ RSpec.describe SendReplyJob do
allow(process_service).to receive(:perform)
end
+ def expect_mapped_service_to_perform(message, service_class_name)
+ channel_name = message.conversation.inbox.channel.class.name
+ service_class = described_class::CHANNEL_SERVICES.fetch(channel_name)
+
+ expect(service_class.name).to eq(service_class_name)
+ expect(service_class).to receive(:new).with(message: message).and_return(process_service)
+ expect(process_service).to receive(:perform)
+
+ described_class.perform_now(message.id)
+ end
+
it 'calls Facebook::SendOnFacebookService when its facebook message' do
stub_request(:post, /graph.facebook.com/)
facebook_channel = create(:channel_facebook_page)
@@ -33,65 +44,44 @@ RSpec.describe SendReplyJob do
twitter_channel = create(:channel_twitter_profile)
twitter_inbox = create(:inbox, channel: twitter_channel)
message = create(:message, conversation: create(:conversation, inbox: twitter_inbox))
- allow(Twitter::SendOnTwitterService).to receive(:new).with(message: message).and_return(process_service)
- expect(Twitter::SendOnTwitterService).to receive(:new).with(message: message)
- expect(process_service).to receive(:perform)
- described_class.perform_now(message.id)
+ expect_mapped_service_to_perform(message, 'Twitter::SendOnTwitterService')
end
it 'calls ::Twilio::SendOnTwilioService when its twilio message' do
twilio_channel = create(:channel_twilio_sms)
message = create(:message, conversation: create(:conversation, inbox: twilio_channel.inbox))
- allow(Twilio::SendOnTwilioService).to receive(:new).with(message: message).and_return(process_service)
- expect(Twilio::SendOnTwilioService).to receive(:new).with(message: message)
- expect(process_service).to receive(:perform)
- described_class.perform_now(message.id)
+ expect_mapped_service_to_perform(message, 'Twilio::SendOnTwilioService')
end
it 'calls ::Telegram::SendOnTelegramService when its telegram message' do
telegram_channel = create(:channel_telegram)
message = create(:message, conversation: create(:conversation, inbox: telegram_channel.inbox))
- allow(Telegram::SendOnTelegramService).to receive(:new).with(message: message).and_return(process_service)
- expect(Telegram::SendOnTelegramService).to receive(:new).with(message: message)
- expect(process_service).to receive(:perform)
- described_class.perform_now(message.id)
+ expect_mapped_service_to_perform(message, 'Telegram::SendOnTelegramService')
end
it 'calls ::Line:SendOnLineService when its line message' do
line_channel = create(:channel_line)
message = create(:message, conversation: create(:conversation, inbox: line_channel.inbox))
- allow(Line::SendOnLineService).to receive(:new).with(message: message).and_return(process_service)
- expect(Line::SendOnLineService).to receive(:new).with(message: message)
- expect(process_service).to receive(:perform)
- described_class.perform_now(message.id)
+ expect_mapped_service_to_perform(message, 'Line::SendOnLineService')
end
it 'calls ::Whatsapp:SendOnWhatsappService when its whatsapp message' do
stub_request(:post, 'https://waba.360dialog.io/v1/configs/webhook')
whatsapp_channel = create(:channel_whatsapp, sync_templates: false)
message = create(:message, conversation: create(:conversation, inbox: whatsapp_channel.inbox))
- allow(Whatsapp::SendOnWhatsappService).to receive(:new).with(message: message).and_return(process_service)
- expect(Whatsapp::SendOnWhatsappService).to receive(:new).with(message: message)
- expect(process_service).to receive(:perform)
- described_class.perform_now(message.id)
+ expect_mapped_service_to_perform(message, 'Whatsapp::SendOnWhatsappService')
end
it 'calls ::Sms::SendOnSmsService when its sms message' do
sms_channel = create(:channel_sms)
message = create(:message, conversation: create(:conversation, inbox: sms_channel.inbox))
- allow(Sms::SendOnSmsService).to receive(:new).with(message: message).and_return(process_service)
- expect(Sms::SendOnSmsService).to receive(:new).with(message: message)
- expect(process_service).to receive(:perform)
- described_class.perform_now(message.id)
+ expect_mapped_service_to_perform(message, 'Sms::SendOnSmsService')
end
it 'calls ::Instagram::Direct::SendOnInstagramService when its instagram message' do
instagram_channel = create(:channel_instagram)
message = create(:message, conversation: create(:conversation, inbox: instagram_channel.inbox))
- allow(Instagram::SendOnInstagramService).to receive(:new).with(message: message).and_return(process_service)
- expect(Instagram::SendOnInstagramService).to receive(:new).with(message: message)
- expect(process_service).to receive(:perform)
- described_class.perform_now(message.id)
+ expect_mapped_service_to_perform(message, 'Instagram::SendOnInstagramService')
end
it 'calls ::Instagram::Messenger::SendOnInstagramService when its an instagram_direct_message from facebook channel' do
@@ -112,37 +102,25 @@ RSpec.describe SendReplyJob do
it 'calls ::Email::SendOnEmailService when its email message' do
email_channel = create(:channel_email)
message = create(:message, conversation: create(:conversation, inbox: email_channel.inbox))
- allow(Email::SendOnEmailService).to receive(:new).with(message: message).and_return(process_service)
- expect(Email::SendOnEmailService).to receive(:new).with(message: message)
- expect(process_service).to receive(:perform)
- described_class.perform_now(message.id)
+ expect_mapped_service_to_perform(message, 'Email::SendOnEmailService')
end
it 'calls ::Messages::SendEmailNotificationService when its webwidget message' do
webwidget_channel = create(:channel_widget)
message = create(:message, conversation: create(:conversation, inbox: webwidget_channel.inbox))
- allow(Messages::SendEmailNotificationService).to receive(:new).with(message: message).and_return(process_service)
- expect(Messages::SendEmailNotificationService).to receive(:new).with(message: message)
- expect(process_service).to receive(:perform)
- described_class.perform_now(message.id)
+ expect_mapped_service_to_perform(message, 'Messages::SendEmailNotificationService')
end
it 'calls ::Messages::SendEmailNotificationService when its api channel message' do
api_channel = create(:channel_api)
message = create(:message, conversation: create(:conversation, inbox: api_channel.inbox))
- allow(Messages::SendEmailNotificationService).to receive(:new).with(message: message).and_return(process_service)
- expect(Messages::SendEmailNotificationService).to receive(:new).with(message: message)
- expect(process_service).to receive(:perform)
- described_class.perform_now(message.id)
+ expect_mapped_service_to_perform(message, 'Messages::SendEmailNotificationService')
end
it 'calls ::Tiktok::SendOnTiktokService when its tiktok message' do
tiktok_channel = create(:channel_tiktok)
message = create(:message, conversation: create(:conversation, inbox: tiktok_channel.inbox))
- allow(Tiktok::SendOnTiktokService).to receive(:new).with(message: message).and_return(process_service)
- expect(Tiktok::SendOnTiktokService).to receive(:new).with(message: message)
- expect(process_service).to receive(:perform)
- described_class.perform_now(message.id)
+ expect_mapped_service_to_perform(message, 'Tiktok::SendOnTiktokService')
end
end
end
diff --git a/spec/lib/integrations/linear/auto_link_service_spec.rb b/spec/lib/integrations/linear/auto_link_service_spec.rb
new file mode 100644
index 000000000..f90c5f060
--- /dev/null
+++ b/spec/lib/integrations/linear/auto_link_service_spec.rb
@@ -0,0 +1,178 @@
+require 'rails_helper'
+
+describe Integrations::Linear::AutoLinkService do
+ let(:account) { create(:account) }
+ let(:user) { create(:user, account: account) }
+ let(:inbox) { create(:inbox, account: account) }
+ let(:conversation) { create(:conversation, account: account, inbox: inbox) }
+ let(:processor) { instance_double(Integrations::Linear::ProcessorService) }
+ let(:activity_service) { instance_double(Linear::ActivityMessageService, perform: true) }
+
+ let(:linear_url) { 'https://linear.app/chatwoot/issue/CW-1234/some-slug' }
+ let(:identifier) { 'CW-1234' }
+ let(:node_id) { 'linear-node-id-1' }
+ let(:search_response) do
+ { data: [{ 'id' => node_id, 'identifier' => identifier, 'title' => 'Issue title',
+ 'url' => 'https://linear.app/chatwoot/issue/CW-1234/issue-title' }] }
+ end
+
+ before do
+ allow(Integrations::Linear::ProcessorService).to receive(:new).with(account: account).and_return(processor)
+ allow(Linear::ActivityMessageService).to receive(:new).and_return(activity_service)
+ allow(processor).to receive(:linked_issues).and_return({ data: [] })
+ allow(processor).to receive(:search_issue).and_return(search_response)
+ allow(processor).to receive(:link_issue).and_return({ data: { id: node_id, link_id: 'attachment-1' } })
+ end
+
+ def build_private_note(content)
+ create(:message,
+ account: account,
+ inbox: inbox,
+ conversation: conversation,
+ sender: user,
+ message_type: :outgoing,
+ private: true,
+ content: content)
+ end
+
+ describe '#perform' do
+ context 'when the message is not a private note' do
+ it 'does no work' do
+ message = create(:message, account: account, inbox: inbox, conversation: conversation,
+ sender: user, message_type: :outgoing, private: false,
+ content: "see #{linear_url}")
+
+ described_class.new(account: account, message: message).perform
+
+ expect(processor).not_to have_received(:linked_issues)
+ expect(processor).not_to have_received(:search_issue)
+ expect(processor).not_to have_received(:link_issue)
+ expect(Linear::ActivityMessageService).not_to have_received(:new)
+ end
+ end
+
+ context 'when the sender is not a User' do
+ it 'does no work' do
+ contact = create(:contact, account: account)
+ message = create(:message, account: account, inbox: inbox, conversation: conversation,
+ sender: contact, message_type: :incoming, private: true,
+ content: "see #{linear_url}")
+
+ described_class.new(account: account, message: message).perform
+
+ expect(processor).not_to have_received(:link_issue)
+ expect(Linear::ActivityMessageService).not_to have_received(:new)
+ end
+ end
+
+ context 'when the private note has no Linear URL' do
+ it 'does no work' do
+ message = build_private_note('just a regular note with no link')
+
+ described_class.new(account: account, message: message).perform
+
+ expect(processor).not_to have_received(:link_issue)
+ expect(Linear::ActivityMessageService).not_to have_received(:new)
+ end
+ end
+
+ context 'when the issue identifier is already linked from this conversation' do
+ it 'skips silently' do
+ message = build_private_note("see #{linear_url}")
+ allow(processor).to receive(:linked_issues).and_return(
+ { data: [{ 'id' => 'attachment-prev', 'issue' => { 'id' => node_id, 'identifier' => identifier } }] }
+ )
+
+ described_class.new(account: account, message: message).perform
+
+ expect(processor).not_to have_received(:search_issue)
+ expect(processor).not_to have_received(:link_issue)
+ expect(Linear::ActivityMessageService).not_to have_received(:new)
+ end
+ end
+
+ context 'when Linear search returns no exact match for the identifier' do
+ it 'does not link' do
+ message = build_private_note("see #{linear_url}")
+ allow(processor).to receive(:search_issue).with(identifier).and_return(
+ { data: [{ 'id' => 'other', 'identifier' => 'OTHER-1', 'url' => 'https://linear.app/chatwoot/issue/OTHER-1' }] }
+ )
+
+ described_class.new(account: account, message: message).perform
+
+ expect(processor).not_to have_received(:link_issue)
+ expect(Linear::ActivityMessageService).not_to have_received(:new)
+ end
+ end
+
+ context 'when the matching issue belongs to a different Linear workspace' do
+ it 'does not link' do
+ message = build_private_note("see #{linear_url}")
+ allow(processor).to receive(:search_issue).with(identifier).and_return(
+ { data: [{ 'id' => node_id, 'identifier' => identifier,
+ 'url' => 'https://linear.app/other-workspace/issue/CW-1234' }] }
+ )
+
+ described_class.new(account: account, message: message).perform
+
+ expect(processor).not_to have_received(:link_issue)
+ expect(Linear::ActivityMessageService).not_to have_received(:new)
+ end
+ end
+
+ context 'when Linear search returns an error' do
+ it 'does not link' do
+ message = build_private_note("see #{linear_url}")
+ allow(processor).to receive(:search_issue).with(identifier).and_return({ error: 'boom' })
+
+ described_class.new(account: account, message: message).perform
+
+ expect(processor).not_to have_received(:link_issue)
+ expect(Linear::ActivityMessageService).not_to have_received(:new)
+ end
+ end
+
+ context 'when link_issue returns an error' do
+ it 'does not post the activity message' do
+ message = build_private_note("see #{linear_url}")
+ allow(processor).to receive(:link_issue).and_return({ error: 'nope' })
+
+ described_class.new(account: account, message: message).perform
+
+ expect(Linear::ActivityMessageService).not_to have_received(:new)
+ end
+ end
+
+ context 'when the private note contains a Linear URL' do
+ it 'links the issue and posts an activity message' do
+ message = build_private_note("Found it: #{linear_url}")
+
+ described_class.new(account: account, message: message).perform
+
+ expect(processor).to have_received(:link_issue).with(
+ a_string_matching(%r{/conversations/#{conversation.display_id}\z}),
+ node_id,
+ anything,
+ user
+ )
+ expect(Linear::ActivityMessageService).to have_received(:new).with(
+ conversation: conversation,
+ action_type: :issue_linked,
+ user: user,
+ issue_data: { id: identifier }
+ )
+ expect(activity_service).to have_received(:perform)
+ end
+
+ it 'links only the first Linear URL when multiple are present' do
+ second_url = 'https://linear.app/chatwoot/issue/CW-9999'
+ message = build_private_note("see #{linear_url} and #{second_url}")
+
+ described_class.new(account: account, message: message).perform
+
+ expect(processor).to have_received(:search_issue).with(identifier).once
+ expect(processor).not_to have_received(:search_issue).with('CW-9999')
+ end
+ end
+ end
+end
diff --git a/spec/listeners/hook_listener_spec.rb b/spec/listeners/hook_listener_spec.rb
index c048761d1..0f96ae4af 100644
--- a/spec/listeners/hook_listener_spec.rb
+++ b/spec/listeners/hook_listener_spec.rb
@@ -84,6 +84,13 @@ describe HookListener do
listener.message_created(event)
end
+
+ it 'enqueues the job for linear' do
+ hook = create(:integrations_hook, :linear, account: account)
+ expect(HookJob).to receive(:perform_later).with(hook, event_name, message: message, previous_changes: nil)
+
+ listener.message_created(event)
+ end
end
context 'with disabled hook' do
diff --git a/spec/models/channel/whatsapp_spec.rb b/spec/models/channel/whatsapp_spec.rb
index dcc010d88..9afc21f7c 100644
--- a/spec/models/channel/whatsapp_spec.rb
+++ b/spec/models/channel/whatsapp_spec.rb
@@ -209,4 +209,43 @@ RSpec.describe Channel::Whatsapp do
end
end
end
+
+ describe '#voice_enabled?' do
+ let(:account) { create(:account) }
+
+ before { account.enable_features!('channel_voice') }
+
+ it 'returns true for embedded-signup whatsapp_cloud channels with calling_enabled' do
+ channel = create(:channel_whatsapp, account: account, provider: 'whatsapp_cloud',
+ validate_provider_config: false, sync_templates: false)
+ channel.update!(provider_config: channel.provider_config.merge('source' => 'embedded_signup', 'calling_enabled' => true))
+
+ expect(channel.voice_enabled?).to be true
+ end
+
+ it 'returns false for whatsapp_cloud channels without embedded_signup source' do
+ channel = create(:channel_whatsapp, account: account, provider: 'whatsapp_cloud',
+ validate_provider_config: false, sync_templates: false)
+ channel.update!(provider_config: channel.provider_config.merge('source' => 'manual', 'calling_enabled' => true))
+
+ expect(channel.voice_enabled?).to be false
+ end
+
+ it 'returns false for default-provider channels (360dialog) even with calling_enabled' do
+ channel = create(:channel_whatsapp, account: account, provider: 'default',
+ validate_provider_config: false, sync_templates: false)
+ channel.update!(provider_config: channel.provider_config.merge('source' => 'embedded_signup', 'calling_enabled' => true))
+
+ expect(channel.voice_enabled?).to be false
+ end
+
+ it 'returns false when the channel_voice feature is disabled on the account' do
+ account.disable_features!('channel_voice')
+ channel = create(:channel_whatsapp, account: account, provider: 'whatsapp_cloud',
+ validate_provider_config: false, sync_templates: false)
+ channel.update!(provider_config: channel.provider_config.merge('source' => 'embedded_signup', 'calling_enabled' => true))
+
+ expect(channel.voice_enabled?).to be false
+ end
+ end
end
diff --git a/spec/services/crm/leadsquared/processor_service_spec.rb b/spec/services/crm/leadsquared/processor_service_spec.rb
index 7008eb064..7b99721c5 100644
--- a/spec/services/crm/leadsquared/processor_service_spec.rb
+++ b/spec/services/crm/leadsquared/processor_service_spec.rb
@@ -157,7 +157,7 @@ RSpec.describe Crm::Leadsquared::ProcessorService do
it 'logs the error' do
service.handle_conversation_created(conversation)
- expect(Rails.logger).to have_received(:error).with(/Error creating conversation activity/)
+ expect(Rails.logger).to have_received(:error).with(/LeadSquared conversation activity failed/)
end
end
end
diff --git a/spec/services/imap/fetch_email_service_spec.rb b/spec/services/imap/fetch_email_service_spec.rb
index 2910f41fb..a40a46343 100644
--- a/spec/services/imap/fetch_email_service_spec.rb
+++ b/spec/services/imap/fetch_email_service_spec.rb
@@ -13,14 +13,68 @@ RSpec.describe Imap::FetchEmailService do
before do
allow(Rails).to receive(:logger).and_return(logger)
allow(Net::IMAP).to receive(:new).with(
- imap_email_channel.imap_address, port: imap_email_channel.imap_port, ssl: true
+ imap_email_channel.imap_address, port: imap_email_channel.imap_port, ssl: imap_email_channel.imap_enable_ssl
).and_return(imap)
allow(imap).to receive(:authenticate).with(
- 'PLAIN', imap_email_channel.imap_login, imap_email_channel.imap_password
+ 'plain', imap_email_channel.imap_login, imap_email_channel.imap_password
)
allow(imap).to receive(:select).with('INBOX')
end
+ context 'when using CRAM-MD5 authentication' do
+ let(:cram_md5_channel) { create(:channel_email, :imap_email, account: account, imap_authentication: 'cram-md5') }
+
+ before do
+ allow(Net::IMAP).to receive(:new).with(
+ cram_md5_channel.imap_address, port: cram_md5_channel.imap_port, ssl: cram_md5_channel.imap_enable_ssl
+ ).and_return(imap)
+ allow(imap).to receive(:authenticate).with(
+ 'CRAM-MD5', cram_md5_channel.imap_login, cram_md5_channel.imap_password
+ )
+ allow(imap).to receive(:select).with('INBOX')
+ end
+
+ it 'uses CRAM-MD5 authentication' do
+ travel_to '26.10.2020 10:00'.to_datetime do
+ allow(imap).to receive(:search).with(%w[SINCE 25-Oct-2020]).and_return([])
+ allow(imap).to receive(:logout)
+
+ described_class.new(channel: cram_md5_channel).perform
+
+ expect(imap).to have_received(:authenticate).with(
+ 'CRAM-MD5', cram_md5_channel.imap_login, cram_md5_channel.imap_password
+ )
+ end
+ end
+ end
+
+ context 'when using LOGIN authentication' do
+ let(:login_channel) { create(:channel_email, :imap_email, account: account, imap_authentication: 'login') }
+
+ before do
+ allow(Net::IMAP).to receive(:new).with(
+ login_channel.imap_address, port: login_channel.imap_port, ssl: login_channel.imap_enable_ssl
+ ).and_return(imap)
+ allow(imap).to receive(:login).with(
+ login_channel.imap_login, login_channel.imap_password
+ )
+ allow(imap).to receive(:select).with('INBOX')
+ end
+
+ it 'uses LOGIN authentication' do
+ travel_to '26.10.2020 10:00'.to_datetime do
+ allow(imap).to receive(:search).with(%w[SINCE 25-Oct-2020]).and_return([])
+ allow(imap).to receive(:logout)
+
+ described_class.new(channel: login_channel).perform
+
+ expect(imap).to have_received(:login).with(
+ login_channel.imap_login, login_channel.imap_password
+ )
+ end
+ end
+ end
+
context 'when new emails are available in the mailbox' do
it 'fetches the emails and returns the emails that are not present in the db' do
travel_to '26.10.2020 10:00'.to_datetime do
diff --git a/spec/services/labels/destroy_service_spec.rb b/spec/services/labels/destroy_service_spec.rb
new file mode 100644
index 000000000..7d06b72d0
--- /dev/null
+++ b/spec/services/labels/destroy_service_spec.rb
@@ -0,0 +1,102 @@
+require 'rails_helper'
+
+describe Labels::DestroyService do
+ let(:account) { create(:account) }
+ let(:conversation) { create(:conversation, account: account) }
+ let(:label) { create(:label, account: account) }
+ let(:contact) { conversation.contact }
+ let(:label_deleted_at) { Time.zone.parse('2026-05-07 10:00:00 UTC') }
+
+ before do
+ conversation.label_list.add(label.title)
+ conversation.label_list.add('billing')
+ conversation.save!
+
+ contact.label_list.add(label.title)
+ contact.label_list.add('vip')
+ contact.save!
+
+ set_label_tagging_created_at(conversation, label_deleted_at - 1.minute)
+ set_label_tagging_created_at(contact, label_deleted_at - 1.minute)
+ end
+
+ describe '#perform' do
+ it 'removes label from associated conversations and contacts' do
+ described_class.new(
+ label_title: label.title,
+ account_id: account.id,
+ label_deleted_at: label_deleted_at
+ ).perform
+
+ expect(conversation.reload.label_list).to eq(['billing'])
+ expect(conversation.cached_label_list).to eq('billing')
+ expect(contact.reload.label_list).to eq(['vip'])
+ end
+
+ it 'removes label associations after the label record is destroyed' do
+ label_title = label.title
+ label.destroy!
+
+ described_class.new(
+ label_title: label_title,
+ account_id: account.id,
+ label_deleted_at: label_deleted_at
+ ).perform
+
+ expect(conversation.reload.label_list).to eq(['billing'])
+ expect(conversation.cached_label_list).to eq('billing')
+ expect(contact.reload.label_list).to eq(['vip'])
+ end
+
+ it 'does not remove labels from other accounts' do
+ other_account = create(:account)
+ other_conversation = create(:conversation, account: other_account)
+ other_conversation.label_list.add(label.title)
+ other_conversation.save!
+ set_label_tagging_created_at(other_conversation, label_deleted_at - 1.minute)
+
+ described_class.new(
+ label_title: label.title,
+ account_id: account.id,
+ label_deleted_at: label_deleted_at
+ ).perform
+
+ expect(other_conversation.reload.label_list).to eq([label.title])
+ end
+
+ it 'does not dispatch conversation or contact update events' do
+ expect(Rails.configuration.dispatcher).not_to receive(:dispatch)
+
+ described_class.new(
+ label_title: label.title,
+ account_id: account.id,
+ label_deleted_at: label_deleted_at
+ ).perform
+ end
+
+ it 'does not remove label associations created after the label was deleted' do
+ other_conversation = create(:conversation, account: account)
+ other_conversation.label_list.add(label.title)
+ other_conversation.save!
+ set_label_tagging_created_at(other_conversation, label_deleted_at + 1.minute)
+
+ described_class.new(
+ label_title: label.title,
+ account_id: account.id,
+ label_deleted_at: label_deleted_at
+ ).perform
+
+ expect(conversation.reload.label_list).to eq(['billing'])
+ expect(conversation.cached_label_list).to eq('billing')
+ expect(contact.reload.label_list).to eq(['vip'])
+ expect(other_conversation.reload.label_list).to eq([label.title])
+ end
+ end
+
+ def set_label_tagging_created_at(record, created_at)
+ ActsAsTaggableOn::Tagging
+ .joins(:tag)
+ .find_by!(context: 'labels', taggable: record, tags: { name: label.title })
+ .update!(created_at: created_at)
+ end
+end
diff --git a/spec/services/messages/mention_service_spec.rb b/spec/services/messages/mention_service_spec.rb
index a7bddcc4e..e04a0e19b 100644
--- a/spec/services/messages/mention_service_spec.rb
+++ b/spec/services/messages/mention_service_spec.rb
@@ -117,6 +117,26 @@ describe Messages::MentionService do
expect(conversation.conversation_participants.map(&:user_id)).to include(first_agent.id)
end
+
+ it 'adds the mentioned user as a participant before generating the notification' do
+ message = build(
+ :message,
+ conversation: conversation,
+ account: account,
+ content: "hi (mention://user/#{first_agent.id}/#{first_agent.name})",
+ private: true
+ )
+
+ participant_user_ids_when_notified = nil
+ allow(NotificationBuilder).to receive(:new) do |**_kwargs|
+ participant_user_ids_when_notified = conversation.conversation_participants.reload.map(&:user_id)
+ builder
+ end
+
+ described_class.new(message: message).perform
+
+ expect(participant_user_ids_when_notified).to include(first_agent.id)
+ end
end
context 'when message contains multiple user mentions' do
diff --git a/spec/services/telegram/send_attachments_service_spec.rb b/spec/services/telegram/send_attachments_service_spec.rb
index f9c625780..739dd6f73 100644
--- a/spec/services/telegram/send_attachments_service_spec.rb
+++ b/spec/services/telegram/send_attachments_service_spec.rb
@@ -41,7 +41,9 @@ RSpec.describe Telegram::SendAttachmentsService do
end
context 'when this is business chat' do
- before { allow(channel).to receive(:business_connection_id).and_return('eooW3KF5WB5HxTD7T826') }
+ before do
+ message.conversation.update!(additional_attributes: { 'business_connection_id' => 'eooW3KF5WB5HxTD7T826' })
+ end
it 'sends all types of attachments in seperate groups and returns the last successful message ID from the batch' do
attach_files(message)