# models.dev **Repository Path**: geodon/models.dev ## Basic Information - **Project Name**: models.dev - **Description**: Models.dev is a comprehensive open-source database of AI model specifications, pricing, and capabilities. - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-30 - **Last Updated**: 2026-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
--- [Models.dev](https://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](https://opencode.ai). ## API You can access this data through an API. ```bash 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](https://ai-sdk.dev/). Provider-agnostic model metadata is available separately: ```bash curl https://models.dev/models.json ``` Use this for facts about the model itself, independent of where it is served. If you need both provider endpoints and model-only metadata in one response: ```bash curl https://models.dev/catalog.json ``` ### Logos Provider logos are available as SVG files: ```bash 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. ## Contributing 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. ### Adding Model Metadata Model-only facts live in `models/`, using the same path-style IDs as provider models. For example, `models/openai/gpt-5.toml` defines metadata for the underlying GPT-5 model, while `providers/openai/models/gpt-5.toml` defines OpenAI-specific serving details such as pricing. Use model metadata for provider-agnostic facts: - `name`, `family`, `release_date`, `last_updated`, `knowledge` - `attachment`, `reasoning`, `tool_call`, `structured_output`, `temperature` - `[limit]` defaults like context, input, and output token limits - `[modalities]` defaults - `open_weights`, `license`, `links`, `weights`, and `benchmarks` Example: ```toml name = "GPT-5" family = "gpt" release_date = "2025-08-07" last_updated = "2025-08-07" attachment = true reasoning = true temperature = false tool_call = true structured_output = true open_weights = false [limit] context = 400_000 input = 272_000 output = 128_000 [modalities] input = ["text", "image"] output = ["text"] [[benchmarks]] name = "Benchmark Name" score = 72.5 metric = "accuracy" source = "https://example.com/results" [[weights]] label = "Model weights" url = "https://huggingface.co/example/model" format = "safetensors" ``` Provider TOMLs can inherit these facts with `base_model` and then keep only provider-specific fields or overrides: ```toml base_model = "openai/gpt-5" [cost] input = 1.25 output = 10.00 cache_read = 0.125 [limit] context = 200_000 # optional provider override output = 32_000 ``` Provider fields win over model metadata during generation. Use this when the underlying model is the same but a provider serves it with different context limits, modalities, features, or pricing. ### Adding a New Provider Model To add a new model, start by checking if the provider already exists in the `providers/` directory. If not, then: #### 1. Create a Provider If the provider isn't already in `providers/`: 1. Create a new folder in `providers/` with the provider's ID. For example, `providers/newprovider/`. 2. Add a `provider.toml` with the provider details: ```toml 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: ```toml npm = "@ai-sdk/openai-compatible" # Use OpenAI-compatible SDK api = "https://api.example.com/v1" # Required with openai-compatible ``` #### 2. Add a Logo (optional) To add a logo for the provider: 1. Add a `logo.svg` file to the provider's directory (e.g., `providers/newprovider/logo.svg`) 2. Use SVG format with no fixed size or colors - use `currentColor` for fills/strokes Example SVG structure: ```svg ``` #### 3. Add a Model Definition 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. ```toml 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" ``` #### 3a. Reuse Model Metadata with `base_model` For wrapper providers that mirror an existing model, prefer referencing the model-only metadata instead of duplicating provider-agnostic fields. Use `base_model` when the provider serves the same underlying model and only provider-specific fields differ. ```toml base_model = "anthropic/claude-opus-4-6" [cost] input = 5.00 output = 25.00 ``` Rules: - `base_model` must point to a TOML file in `models/` using `