---
title: "Create a preset from a chat-completions request body"
method: POST
path: "/presets/{slug}/chat/completions"
tags: ["Presets"]
---

# Create a preset from a chat-completions request body

`POST /presets/{slug}/chat/completions`

Creates a preset (or a new version of an existing one) from an inference request body. Only fields that overlap with the preset config are persisted; other fields (e.g. `messages`, `stream`, `prompt`) are silently ignored.

## Path parameters

- `slug` string, required — URL-safe slug identifying the preset. Created if it does not exist.

## Request body

- ChatRequest — unresolved $ref

## Response `200`

Preset created or updated successfully.

- CreatePresetFromInferenceResponse — Response containing the created preset with its designated version.
  - `data` PresetWithDesignatedVersion, required — A preset with its currently designated version.
    - `created_at` string, required
    - `creator_user_id` string, nullable, required
    - `description` string, nullable, required
    - `designated_version_id` string, nullable, required
    - `id` string, required
    - `name` string, required
    - `slug` string, required
    - `status` 'active' | 'disabled' | 'archived', required — The status of a preset.
    - `status_updated_at` string, nullable, required
    - `updated_at` string, required
    - `workspace_id` string, nullable, required
    - `designated_version` PresetDesignatedVersion, nullable, required — A specific version of a preset, containing config and optional system prompt.
      - `config` object, required
      - `created_at` string, required
      - `creator_id` string, required
      - `id` string, required
      - `preset_id` string, required
      - `system_prompt` string, nullable, required
      - `updated_at` string, required
      - `version` integer, required

## Other responses

- `400` — Bad Request - Invalid request parameters or malformed input
- `401` — Unauthorized - Authentication required or invalid credentials
- `403` — Forbidden - Authentication successful but insufficient permissions
- `404` — Not Found - Resource does not exist
- `409` — Conflict - Resource conflict or concurrent modification
- `500` — Internal Server Error - Unexpected server error

## Changes

- **2026-09-17** `3066544509b5` — 3 info
  - added the new `Unbiased` enum value to the request property `provider/ignore/items/anyOf[#/components/schemas/ProviderName]/`
  - added the new `Unbiased` enum value to the request property `provider/only/items/anyOf[#/components/schemas/ProviderName]/`
  - added the new `Unbiased` enum value to the request property `provider/order/items/anyOf[#/components/schemas/ProviderName]/`
- **2026-09-17** `2de027b6dfcd` — 3 info
  - added the new `TypeSafe` enum value to the request property `provider/ignore/items/anyOf[#/components/schemas/ProviderName]/`
  - added the new `TypeSafe` enum value to the request property `provider/only/items/anyOf[#/components/schemas/ProviderName]/`
  - added the new `TypeSafe` enum value to the request property `provider/order/items/anyOf[#/components/schemas/ProviderName]/`
- **2026-09-14** `54ab2e9ba857` — 3 info
  - added the new `AssemblyAI` enum value to the request property `provider/ignore/items/anyOf[#/components/schemas/ProviderName]/`
  - added the new `AssemblyAI` enum value to the request property `provider/only/items/anyOf[#/components/schemas/ProviderName]/`
  - added the new `AssemblyAI` enum value to the request property `provider/order/items/anyOf[#/components/schemas/ProviderName]/`
- …earlier changes not shown

[Full history](https://skmtc.dev/openrouterteam/apis/openrouter-api/changes/presets/:slug/chat/completions/post.md)

---

[API](https://skmtc.dev/openrouterteam/apis/openrouter-api.md) · [All operations](https://skmtc.dev/openrouterteam/apis/openrouter-api/llms.txt) · [OpenAPI document](https://skmtc.dev/openrouterteam/apis/openrouter-api/revisions/f0df94e28003?raw)
