# Создать пресет из тела запроса Responses

> Создаёт пресет (или новую версию существующего пресета) на основе тела запроса на выполнение. Сохраняются только поля, пересекающиеся с конфигурацией пресета; остальные поля (например, `messages`, `stream`, `prompt`) молча игнорируются.

## OpenAPI

```yaml
/openapi/openapi.yaml post /presets/{slug}/responses
openapi: 3.1.0
info:
  contact:
    email: support@openrouter.ai
    name: OpenRouter Support
    url: https://openrouter.ai/docs
  description: OpenAI-compatible API with additional OpenRouter features
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  title: OpenRouter API
  version: 1.0.0
servers:
  - description: Production server
    url: https://openrouter.ai/api/v1
    x-speakeasy-server-id: production
security:
  - apiKey: []
tags:
  - description: API key management endpoints
    name: API Keys
  - description: Analytics and usage endpoints
    name: Analytics
  - description: Anthropic Messages endpoints
    name: Anthropic Messages
  - description: BYOK endpoints
    name: BYOK
  - description: Benchmarks endpoints
    name: Benchmarks
  - description: Chat completion endpoints
    name: Chat
  - description: Task classification market-share endpoints
    name: Classifications
  - description: Credit management endpoints
    name: Credits
  - description: >-
      Public OpenRouter usage datasets. Data returned by these endpoints is
      licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/):
      reuse and republish it, including commercially, with attribution to
      OpenRouter.
    name: Datasets
  - description: Text embedding endpoints
    name: Embeddings
  - description: Endpoint information
    name: Endpoints
  - description: Files endpoints
    name: Files
  - description: Generation history endpoints
    name: Generations
  - description: Guardrails endpoints
    name: Guardrails
  - description: Images endpoints
    name: Images
  - description: Model information endpoints
    name: Models
  - description: OAuth authentication endpoints
    name: OAuth
  - description: Observability endpoints
    name: Observability
  - description: Organization endpoints
    name: Organization
  - description: Presets endpoints
    name: Presets
  - description: Provider information endpoints
    name: Providers
  - description: Rerank endpoints
    name: Rerank
  - description: OpenAI-compatible Responses API endpoints
    name: Responses
  - description: SCIM endpoints
    name: SCIM
  - description: Speech-to-text endpoints
    name: STT
    x-displayName: Transcriptions
  - description: Text-to-speech endpoints
    name: TTS
    x-displayName: Speech
  - description: Video Generation endpoints
    name: Video Generation
  - description: Workspaces endpoints
    name: Workspaces
  - description: beta.Analytics endpoints
    name: beta.Analytics
externalDocs:
  description: OpenRouter Documentation
  url: https://openrouter.ai/docs
paths:
  /presets/{slug}/responses:
    post:
      tags:
        - Presets
      summary: Create a preset from a responses request body
      description: >-
        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.
      operationId: createPresetsResponses
      parameters:
        - description: URL-safe slug identifying the preset. Created if it does not exist.
          in: path
          name: slug
          required: true
          schema:
            description: >-
              URL-safe slug identifying the preset. Created if it does not
              exist.
            example: my-preset
            minLength: 1
            type: string
      requestBody:
        content:
          application/json:
            example:
              input: Hello!
              instructions: You are a helpful assistant.
              model: openai/gpt-5.4
            schema:
              $ref: '#/components/schemas/ResponsesRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                data:
                  created_at: '2026-04-20T10:00:00Z'
                  creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
                  description: null
                  designated_version:
                    config:
                      model: openai/gpt-5.4
                    created_at: '2026-04-20T10:00:00Z'
                    creator_id: user_2dHFtVWx2n56w6HkM0000000000
                    id: 550e8400-e29b-41d4-a716-446655440000
                    preset_id: 650e8400-e29b-41d4-a716-446655440001
                    system_prompt: You are a helpful assistant.
                    updated_at: '2026-04-20T10:00:00Z'
                    version: 1
                  designated_version_id: 550e8400-e29b-41d4-a716-446655440000
                  id: 650e8400-e29b-41d4-a716-446655440001
                  name: my-preset
                  slug: my-preset
                  status: active
                  status_updated_at: null
                  updated_at: '2026-04-20T10:00:00Z'
                  workspace_id: 750e8400-e29b-41d4-a716-446655440002
              schema:
                $ref: '#/components/schemas/CreatePresetFromInferenceResponse'
          description: Preset created or updated successfully.
        '400':
          content:
            application/json:
              example:
                error:
                  code: 400
                  message: Invalid request parameters
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
          description: Bad Request - Invalid request parameters or malformed input
        '401':
          content:
            application/json:
              example:
                error:
                  code: 401
                  message: Missing Authentication header
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized - Authentication required or invalid credentials
        '403':
          content:
            application/json:
              example:
                error:
                  code: 403
                  message: Only management keys can perform this operation
              schema:
                $ref: '#/components/schemas/ForbiddenResponse'
          description: Forbidden - Authentication successful but insufficient permissions
        '404':
          content:
            application/json:
              example:
                error:
                  code: 404
                  message: Resource not found
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
          description: Not Found - Resource does not exist
        '409':
          content:
            application/json:
              example:
                error:
                  code: 409
                  message: Resource conflict. Please try again later.
              schema:
                $ref: '#/components/schemas/ConflictResponse'
          description: Conflict - Resource conflict or concurrent modification
        '500':
          content:
            application/json:
              example:
                error:
                  code: 500
                  message: Internal Server Error
              schema:
                $ref: '#/components/schemas/InternalServerResponse'
          description: Internal Server Error - Unexpected server error
      security:
        - apiKey: []
components:
  schemas:
    ResponsesRequest:
      description: Request schema for Responses endpoint
      example:
        input:
          - content: Hello, how are you?
            role: user
            type: message
        model: anthropic/claude-4.5-sonnet-20250929
        temperature: 0.7
        tools:
          - description: Get the current weather in a given location
            name: get_current_weather
            parameters:
              properties:
                location:
                  type: string
              type: object
            type: function
        top_p: 0.9
      properties:
        background:
          type:
            - boolean
            - 'null'
        cache_control:
          $ref: '#/components/schemas/AnthropicCacheControlDirective'
        debug:
          $ref: '#/components/schemas/ChatDebugOptions'
        frequency_penalty:
          format: double
          type:
            - number
            - 'null'
        image_config:
          $ref: '#/components/schemas/ImageConfig'
        include:
          items:
            $ref: '#/components/schemas/ResponseIncludesEnum'
          type:
            - array
            - 'null'
        input:
          $ref: '#/components/schemas/Inputs'
        instructions:
          type:
            - string
            - 'null'
        max_output_tokens:
          type:
            - integer
            - 'null'
        max_tool_calls:
          description: >-
            Maximum number of server-tool (e.g. `openrouter:web_search`) agent
            steps the model may take during a request. Defaults to 30, which is
            also the maximum. Ignored when `stop_server_tools_when` is set.
          example: 30
          type:
            - integer
            - 'null'
        metadata:
          $ref: '#/components/schemas/RequestMetadata'
        modalities:
          description: >-
            Output modalities for the response. Supported values are "text" and
            "image".
          example:
            - text
            - image
          items:
            $ref: '#/components/schemas/OutputModalityEnum'
          type: array
        model:
          type: string
        models:
          items:
            type: string
          type: array
        parallel_tool_calls:
          type:
            - boolean
            - 'null'
        plugins:
          description: >-
            Plugins you want to enable for this request, including their
            settings.
          items:
            discriminator:
              mapping:
                auto-beta-router:
                  $ref: '#/components/schemas/AutoBetaRouterPlugin'
                auto-router:
                  $ref: '#/components/schemas/AutoRouterPlugin'
                context-compression:
                  $ref: '#/components/schemas/ContextCompressionPlugin'
                file-parser:
                  $ref: '#/components/schemas/FileParserPlugin'
                fusion:
                  $ref: '#/components/schemas/FusionPlugin'
                moderation:
                  $ref: '#/components/schemas/ModerationPlugin'
                pareto-router:
                  $ref: '#/components/schemas/ParetoRouterPlugin'
                response-healing:
                  $ref: '#/components/schemas/ResponseHealingPlugin'
                web:
                  $ref: '#/components/schemas/WebSearchPlugin'
                web-fetch:
                  $ref: '#/components/schemas/WebFetchPlugin'
              propertyName: id
            oneOf:
              - $ref: '#/components/schemas/AutoRouterPlugin'
              - $ref: '#/components/schemas/AutoBetaRouterPlugin'
              - $ref: '#/components/schemas/ModerationPlugin'
              - $ref: '#/components/schemas/WebSearchPlugin'
              - $ref: '#/components/schemas/WebFetchPlugin'
              - $ref: '#/components/schemas/FileParserPlugin'
              - $ref: '#/components/schemas/ResponseHealingPlugin'
              - $ref: '#/components/schemas/ContextCompressionPlugin'
              - $ref: '#/components/schemas/ParetoRouterPlugin'
              - $ref: '#/components/schemas/FusionPlugin'
          type: array
        presence_penalty:
          format: double
          type:
            - number
            - 'null'
        previous_response_id:
          description: >-
            Not supported. The Responses API is stateless: no responses are
            stored, so a previous response cannot be referenced. Requests with a
            non-null value are rejected with a 400 error. Send the full
            conversation history in `input` instead.
        prompt:
          $ref: '#/components/schemas/StoredPromptTemplate'
        prompt_cache_key:
          type:
            - string
            - 'null'
        prompt_cache_options:
          $ref: '#/components/schemas/PromptCacheOptions'
        provider:
          $ref: '#/components/schemas/ProviderPreferences'
        reasoning:
          $ref: '#/components/schemas/ReasoningConfig'
        route:
          $ref: '#/components/schemas/DeprecatedRoute'
        safety_identifier:
          description: >-
            Recommended per-end-user identifier for abuse isolation. Use a
            stable ID, hash, or pseudonym. When a provider requires a user
            identity, OpenRouter folds it into the hashed identity sent upstream
            and never forwards it raw. If omitted, requests use an account-level
            identity, so provider policy blocks can affect the whole account.
          example: user-123
          type:
            - string
            - 'null'
        service_tier:
          default: auto
          description: >-
            The service tier to use for processing this request. `fast` is
            accepted as an alias for `priority`.
          enum:
            - auto
            - default
            - fast
            - flex
            - priority
            - scale
            - null
          type:
            - string
            - 'null'
        session_id:
          description: >-
            A unique identifier for grouping related requests (e.g., a
            conversation or agent workflow). When provided, OpenRouter uses it
            as the sticky routing key, routing all requests in the session to
            the same provider to maximize prompt cache hits. Also used for
            observability grouping. If provided in both the request body and the
            x-session-id header, the body value takes precedence. Maximum of 256
            characters.
          maxLength: 256
          type: string
        stop_server_tools_when:
          $ref: '#/components/schemas/StopServerToolsWhen'
        store:
          const: false
          default: false
          type: boolean
        stream:
          default: false
          type: boolean
        temperature:
          format: double
          type:
            - number
            - 'null'
        text:
          $ref: '#/components/schemas/TextExtendedConfig'
        tool_choice:
          $ref: '#/components/schemas/OpenAIResponsesToolChoice'
        tools:
          items:
            anyOf:
              - allOf:
                  - $ref: '#/components/schemas/FunctionTool'
                  - properties: {}
                    type: object
                description: Function tool definition
                example:
                  description: Get the current weather in a location
                  name: get_weather
                  parameters:
                    properties:
                      location:
                        description: The city and state
                        type: string
                      unit:
                        enum:
                          - celsius
                          - fahrenheit
                        type: string
                    required:
                      - location
                    type: object
                  type: function
              - $ref: '#/components/schemas/Preview_WebSearchServerTool'
              - $ref: '#/components/schemas/Preview_20250311_WebSearchServerTool'
              - $ref: '#/components/schemas/Legacy_WebSearchServerTool'
              - $ref: '#/components/schemas/WebSearchServerTool'
              - $ref: '#/components/schemas/FileSearchServerTool'
              - $ref: '#/components/schemas/ComputerUseServerTool'
              - $ref: '#/components/schemas/CodeInterpreterServerTool'
              - $ref: '#/components/schemas/McpServerTool'
              - $ref: '#/components/schemas/ImageGenerationServerTool'
              - $ref: '#/components/schemas/CodexLocalShellTool'
              - $ref: '#/components/schemas/ShellServerTool'
              - $ref: '#/components/schemas/ApplyPatchServerTool'
              - $ref: '#/components/schemas/CustomTool'
              - $ref: '#/components/schemas/NamespaceTool'
              - $ref: '#/components/schemas/AdvisorServerTool_OpenRouter'
              - $ref: '#/components/schemas/SubagentServerTool_OpenRouter'
              - $ref: '#/components/schemas/DatetimeServerTool'
              - $ref: '#/components/schemas/FilesServerTool'
              - $ref: '#/components/schemas/FusionServerTool_OpenRouter'
              - $ref: '#/components/schemas/ImageGenerationServerTool_OpenRouter'
              - $ref: '#/components/schemas/SearchModelsServerTool_OpenRouter'
              - $ref: '#/components/schemas/WebFetchServerTool'
              - $ref: '#/components/schemas/WebSearchServerTool_OpenRouter'
              - $ref: '#/components/schemas/ApplyPatchServerTool_OpenRouter'
              - $ref: '#/components/schemas/BashServerTool'
              - $ref: '#/components/schemas/ShellServerTool_OpenRouter'
          type: array
        top_k:
          type: integer
        top_logprobs:
          type:
            - integer
            - 'null'
        top_p:
          format: double
          type:
            - number
            - 'null'
        trace:
          $ref: '#/components/schemas/TraceConfig'
        truncation:
          $ref: '#/components/schemas/OpenAIResponsesTruncation'
        user:
          description: >-
            A unique identifier representing your end-user, which helps
            distinguish between different users of your app. This allows your
            app to identify specific users in case of abuse reports, preventing
            your entire app from being affected by the actions of individual
            users. Maximum of 256 characters.
          maxLength: 256
          type: string
      type: object
```