cd /news/open-source/models-dev-open-source-database-of-a… · home topics open-source article
[ARTICLE · art-10008] src=github.com ↗ pub= topic=open-source verified=true sentiment=↑ positive

Models.dev: open-source database of AI model specs, pricing, and capabilities

Models.dev is an open-source, community-contributed database that provides comprehensive specifications, pricing, and capabilities for AI models, accessible via an API and stored as TOML files organized by provider. The project aims to address the lack of a single, centralized database for all available AI models, and it relies on community contributions to keep the data up to date. Users can add new models by creating provider directories with TOML configuration files and SVG logos, following specific formatting guidelines for model attributes like cost, limits, and supported modalities.

read6 min views21 publishedMay 22, 2026

Models.dev is a comprehensive open-source database of AI model specifications, pricing, and capabilities.

There's no single database with information about all the available AI models. We started Models.dev as a community-contributed project to address this. We also use it internally in opencode.

You can access this data through an API.

curl https://models.dev/api.json

Use the Model ID field to do a lookup on any model; it's the identifier used by AI SDK.

Provider logos are available as SVG files:

curl https://models.dev/logos/{provider}.svg

Replace {provider}

with the Provider ID (e.g., anthropic

, openai

, google

). If we don't have a provider's logo, a default logo is served instead.

The data is stored in the repo as TOML files; organized by provider and model. The logo is stored as an SVG. This is used to generate this page and power the API.

We need your help keeping the data up to date.

To add a new model, start by checking if the provider already exists in the providers/

directory. If not, then:

If the provider isn't already in providers/

:

Create a new folder in

providers/

with the provider's ID. For example,providers/newprovider/

. - Add a

provider.toml

with the provider details:

name = "Provider Name"
npm = "@ai-sdk/provider" # AI SDK Package name
env = ["PROVIDER_API_KEY"] # Environment Variable keys used for auth
doc = "https://example.com/docs/models" # Link to provider's documentation

If the provider doesn’t publish an npm package but exposes an OpenAI-compatible endpoint, set the npm field accordingly and include the base URL:

npm = "@ai-sdk/openai-compatible" # Use OpenAI-compatible SDK
api = "https://api.example.com/v1" # Required with openai-compatible

To add a logo for the provider:

  • Add a logo.svg

file to the provider's directory (e.g.,providers/newprovider/logo.svg

) - Use SVG format with no fixed size or colors - use currentColor

for fills/strokes

Example SVG structure:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
  <!-- Logo paths here -->
</svg>

Create a new TOML file in the provider's models/

directory where the filename is the model ID.

If the model ID contains /

, use subfolders. For example, for the model ID openai/gpt-5

, create a folder openai/

and place a file named gpt-5.toml

inside it.

name = "Model Display Name"
attachment = true           # or false - supports file attachments
reasoning = false           # or true - supports reasoning / chain-of-thought
tool_call = true            # or false - supports tool calling
structured_output = true    # or false - supports a dedicated structured output feature
temperature = true          # or false - supports temperature control
knowledge = "2024-04"       # Knowledge-cutoff date
release_date = "2025-02-19" # First public release date
last_updated = "2025-02-19" # Most recent update date
open_weights = true         # or false  - model’s trained weights are publicly available

[cost]
input = 3.00                # Cost per million input tokens (USD)
output = 15.00              # Cost per million output tokens (USD)
reasoning = 15.00           # Cost per million reasoning tokens (USD)
cache_read = 0.30           # Cost per million cached read tokens (USD)
cache_write = 3.75          # Cost per million cached write tokens (USD)
input_audio = 1.00          # Cost per million audio input tokens (USD)
output_audio = 10.00        # Cost per million audio output tokens (USD)

[limit]
context = 400_000           # Maximum context window (tokens)
input = 272_000             # Maximum input tokens
output = 8_192              # Maximum output tokens

[modalities]
input = ["text", "image"]   # Supported input modalities
output = ["text"]           # Supported output modalities

[interleaved]
field = "reasoning_content" # Name of the interleaved field "reasoning_content" or "reasoning_details"

For wrapper providers that mirror a model from another provider, prefer reusing the canonical model definition instead of duplicating the whole file.

Use extends

only for non-first-party wrappers and mirrors. Do not use it inside the actual lab provider directories that act as the canonical source for a model family, for example providers/anthropic/

, providers/openai/

, providers/google/

, providers/xai/

, providers/minimax/

, or providers/moonshot/

.

[extends]
from = "anthropic/claude-opus-4-6"
omit = ["experimental.modes.fast"]

[provider]
npm = "@ai-sdk/anthropic"

Rules:

from

must point to another model using<provider>/<model-id>

.omit

is optional and removes fields after the inherited model and local overrides are merged.- You can override any top-level model field locally.

  • If you override a nested table like [cost]

,[limit]

, or[modalities]

, include the full values needed for that table. id

still comes from the filename; do not add it to the TOML.

Use extends

when the wrapper model is materially the same as the source model and only differs by a small set of overrides or omitted fields.

  • Fork this repo
  • Create a new branch with your changes
  • Add your provider and/or model files
  • Open a PR with a clear description

There's a GitHub Action that will automatically validate your submission against our schema to ensure:

  • All required fields are present
  • Data types are correct
  • Values are within acceptable ranges
  • TOML syntax is valid

When converting existing wrapper models to extends

, compare generated output before and after the change:

bun run compare:migrations

This prints a diff for each changed model TOML so you can confirm the generated JSON only changed where you intended.

Models must conform to the following schema, as defined in packages/core/src/schema.ts

.

Provider Schema:

name

: String - Display name of the providernpm

: String - AI SDK Package nameenv

: String[] - Environment variable keys used for authdoc

: String - Link to the provider's documentationapi

(optional): String - OpenAI-compatible API endpoint. Required only when using@ai-sdk/openai-compatible

as the npm package

Model Schema:

name

: String — Display name of the modelattachment

: Boolean — Supports file attachmentsreasoning

: Boolean — Supports reasoning / chain-of-thoughttool_call

: Boolean - Supports tool callingstructured_output

(optional): Boolean — Supports structured output featuretemperature

(optional): Boolean — Supports temperature controlknowledge

(optional): String — Knowledge-cutoff date inYYYY-MM

orYYYY-MM-DD

formatrelease_date

: String — First public release date inYYYY-MM

orYYYY-MM-DD

last_updated

: String — Most recent update date inYYYY-MM

orYYYY-MM-DD

open_weights

: Boolean - Indicate the model's trained weights are publicly availableinterleaved

(optional): Boolean or Object — Supports interleaved reasoning. Usetrue

for general support or an object withfield

to specify the formatinterleaved.field

: String — Name of the interleaved field ("reasoning_content"

or"reasoning_details"

)cost.input

: Number — Cost per million input tokens (USD)cost.output

: Number — Cost per million output tokens (USD)cost.reasoning

(optional): Number — Cost per million reasoning tokens (USD)cost.cache_read

(optional): Number — Cost per million cached read tokens (USD)cost.cache_write

(optional): Number — Cost per million cached write tokens (USD)cost.input_audio

(optional): Number — Cost per million audio input tokens, if billed separately (USD)cost.output_audio

(optional): Number — Cost per million audio output tokens, if billed separately (USD)limit.context

: Number — Maximum context window (tokens)limit.input

: Number — Maximum input tokenslimit.output

: Number — Maximum output tokensmodalities.input

: Array of strings — Supported input modalities (e.g., ["text", "image", "audio", "video", "pdf"])modalities.output

: Array of strings — Supported output modalities (e.g., ["text"])status

(optional): String — Supported status:alpha

  • Indicate the model is in alpha testingbeta

  • Indicate the model is in beta testingdeprecated

  • Indicate the model is no longer served by the provider's public API

See existing providers in the providers/

directory for reference:

providers/anthropic/

  • Anthropic Claude modelsproviders/openai/

  • OpenAI GPT modelsproviders/google/

  • Google Gemini models

Make sure you have Bun installed.

$ bun install
$ cd packages/web
$ bun run dev

And it'll open the frontend at http://localhost:3000

You can manually check provider changes with opencode by:

$ bun install
$ cd packages/web
$ bun run build
$ OPENCODE_MODELS_PATH="dist/_api.json" opencode

Open an issue if you need help or have questions about contributing.

Models.dev is created by the maintainers of SST.

── more in #open-source 4 stories · sorted by recency
── more on @models.dev 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/models-dev-open-sour…] indexed:0 read:6min 2026-05-22 ·