Presets allow you to separate your LLM configuration from your code. Create and manage presets through the OpenRouter web application to control provider routing, model selection, system prompts, and other parameters, then reference them in OpenRouter API requests.
Presets are named configurations that encapsulate all the settings needed for a specific use case. For example, you might create:
Each preset can manage:
Create a preset. For example, select a model and restrict provider routing to just a few providers.

Make an API request to the preset:
Presets help you maintain a clean separation between your application code and LLM configuration. This makes your code more semantic and easier to maintain.
Update your LLM configuration without deploying code changes:
There are three ways to use presets in your API requests.
You can reference the preset as if it was a model by sending requests to @preset/preset-slug
In addition to the dashboard, you can create (or update) a preset directly from any inference request body you already use. This is useful when you want to capture a known-good request as a reusable configuration without re-typing it in the UI.
Each inference skin has its own endpoint. Send the same JSON body
you would send to the matching inference route — OpenRouter
persists only the fields that overlap with the preset config
(e.g. model, temperature, provider, top_p, system).
Transient fields like messages, input, prompt, and stream
are silently ignored.
The endpoints are:
POST /api/v1/presets/{slug}/chat/completions — Chat Completions skinPOST /api/v1/presets/{slug}/messages — Anthropic Messages skinPOST /api/v1/presets/{slug}/responses — Responses skinThe {slug} path parameter is a URL-safe identifier for the
preset. If a preset with that slug already exists in your
workspace, a new version is created and designated as the active
version. If it does not exist, a new preset is created.
Reuse the exact body you would POST /api/v1/chat/completions:
The messages array is ignored for preset storage; only the
configuration fields (model, temperature, provider) and the
extracted system prompt are persisted.
The top-level system field becomes the preset’s system prompt.
The instructions field becomes the preset’s system prompt.
All three endpoints return the resulting preset with its designated version:
Once created, the preset can be used in subsequent inference requests via any of the three referencing styles shown in Using Presets.
/chat/completions (or
/messages / /responses) until it produces the output you
want.POST the same body to the matching
/api/v1/presets/{slug}/... endpoint to capture the config.@preset/{slug} instead of repeating the configuration.This lets you iterate on prompts and parameters in code, then promote the working configuration to a preset without manual transcription.