Создать сообщение

MD версия

Создаёт сообщение в формате Anthropic Messages API. Поддерживает текст, изображения, PDF-файлы, инструменты и расширенное рассуждение.

OpenAPI

yaml
/openapi/openapi.yaml post /messages 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: /messages: post: tags: - Anthropic Messages summary: Create a message description: >- Creates a message using the Anthropic Messages API format. Supports text, images, PDFs, tools, and extended thinking. operationId: createMessages parameters: - description: >- Opt-in to surface routing metadata on the response under `openrouter_metadata`. Defaults to `disabled`. The legacy header `X-OpenRouter-Experimental-Metadata` is also accepted for backward compatibility. example: enabled in: header name: X-OpenRouter-Metadata required: false schema: $ref: '#/components/schemas/MetadataLevel' requestBody: content: application/json: example: max_tokens: 1024 messages: - content: Hello, how are you? role: user model: anthropic/claude-sonnet-4 schema: $ref: '#/components/schemas/MessagesRequest' required: true responses: '200': content: application/json: example: container: null content: - citations: [] text: >- I'm doing well, thank you for asking! How can I help you today? type: text id: msg_abc123 model: anthropic/claude-sonnet-4 role: assistant stop_details: null stop_reason: end_turn stop_sequence: null type: message usage: cache_creation: null cache_creation_input_tokens: null cache_read_input_tokens: null inference_geo: null input_tokens: 12 output_tokens: 18 output_tokens_details: null server_tool_use: null service_tier: standard schema: $ref: '#/components/schemas/MessagesResult' text/event-stream: example: data: delta: text: Hello type: text_delta index: 0 type: content_block_delta event: content_block_delta schema: $ref: '#/components/schemas/MessagesStreamingResponse' x-speakeasy-sse-sentinel: '[DONE]' description: Successful response '400': content: application/json: example: error: message: 'Invalid request: messages is required' type: invalid_request_error request_id: null type: error schema: $ref: '#/components/schemas/AnthropicMessagesErrorResponse' description: Invalid request error '401': content: application/json: example: error: message: Invalid API key type: authentication_error request_id: null type: error schema: $ref: '#/components/schemas/AnthropicMessagesErrorResponse' description: Authentication error '403': content: application/json: examples: guardrail-blocked: summary: Guardrail blocked the request value: error: message: 'Request blocked: prompt injection patterns detected' type: permission_error openrouter_metadata: pipeline: - name: regex_pi_detection summary: >- Blocked: prompt injection detected (1 pattern matched) type: guardrail request_id: null type: error insufficient-permissions: summary: Insufficient permissions value: error: message: Only management keys can perform this operation type: permission_error request_id: null type: error schema: $ref: '#/components/schemas/AnthropicMessagesErrorResponse' description: Forbidden error '404': content: application/json: example: error: message: Model not found type: not_found_error request_id: gen-xxxxxxxxxxxxxxxxxxxxxxxx type: error schema: $ref: '#/components/schemas/AnthropicMessagesErrorResponse' description: Not found error '429': content: application/json: example: error: message: Rate limit exceeded type: rate_limit_error request_id: gen-xxxxxxxxxxxxxxxxxxxxxxxx type: error schema: $ref: '#/components/schemas/AnthropicMessagesErrorResponse' description: Rate limit error '500': content: application/json: example: error: message: Internal server error type: api_error request_id: gen-xxxxxxxxxxxxxxxxxxxxxxxx type: error schema: $ref: '#/components/schemas/AnthropicMessagesErrorResponse' description: API error '503': content: application/json: example: error: message: Service temporarily overloaded type: overloaded_error request_id: gen-xxxxxxxxxxxxxxxxxxxxxxxx type: error schema: $ref: '#/components/schemas/AnthropicMessagesErrorResponse' description: Overloaded error '529': content: application/json: example: error: message: Provider is temporarily overloaded type: overloaded_error request_id: gen-xxxxxxxxxxxxxxxxxxxxxxxx type: error schema: $ref: '#/components/schemas/AnthropicMessagesErrorResponse' description: Overloaded error components: schemas: MetadataLevel: description: >- Opt-in level for surfacing routing metadata on the response under `openrouter_metadata`. enum: - disabled - enabled example: enabled type: string MessagesRequest: description: Request schema for Anthropic Messages API endpoint example: max_tokens: 1024 messages: - content: Hello, how are you? role: user model: anthropic/claude-4.5-sonnet-20250929 temperature: 0.7 properties: cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' context_management: properties: edits: items: oneOf: - properties: clear_at_least: $ref: '#/components/schemas/AnthropicInputTokensClearAtLeast' clear_tool_inputs: anyOf: - type: boolean - items: type: string type: array - type: 'null' exclude_tools: items: type: string type: - array - 'null' keep: $ref: '#/components/schemas/AnthropicToolUsesKeep' trigger: discriminator: mapping: input_tokens: $ref: '#/components/schemas/AnthropicInputTokensTrigger' tool_uses: $ref: '#/components/schemas/AnthropicToolUsesTrigger' propertyName: type oneOf: - $ref: '#/components/schemas/AnthropicInputTokensTrigger' - $ref: '#/components/schemas/AnthropicToolUsesTrigger' type: enum: - clear_tool_uses_20250919 type: string required: - type type: object - properties: keep: anyOf: - $ref: '#/components/schemas/AnthropicThinkingTurns' - properties: type: enum: - all type: string required: - type type: object - enum: - all type: string type: enum: - clear_thinking_20251015 type: string required: - type type: object - properties: instructions: type: - string - 'null' pause_after_compaction: type: boolean trigger: anyOf: - allOf: - $ref: >- #/components/schemas/AnthropicInputTokensTrigger - properties: {} type: object - type: 'null' example: type: input_tokens value: 100000 type: enum: - compact_20260112 type: string required: - type type: object type: array type: - object - 'null' fallbacks: description: >- Fallback models to try if the primary model fails or refuses, in order. Handled by OpenRouter multi-model routing rather than Anthropic server-side fallbacks; cannot be combined with `models`. Each entry accepts only `model`. Maximum of 3 entries. example: - model: claude-opus-4-8 items: $ref: '#/components/schemas/MessagesFallbackParam' type: - array - 'null' max_tokens: type: integer messages: items: $ref: '#/components/schemas/MessagesMessageParam' type: - array - 'null' metadata: properties: user_id: type: - string - 'null' type: object model: type: string models: items: type: string type: array output_config: $ref: '#/components/schemas/MessagesOutputConfig' 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 provider: $ref: '#/components/schemas/ProviderPreferences' route: $ref: '#/components/schemas/DeprecatedRoute' service_tier: type: string 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 speed: allOf: - $ref: '#/components/schemas/AnthropicSpeed' - description: >- Controls output generation speed. When set to `fast`, uses a higher-speed inference configuration at premium pricing. Defaults to `standard` when omitted. example: fast stop_sequences: items: type: string type: array stop_server_tools_when: $ref: '#/components/schemas/StopServerToolsWhen' stream: type: boolean system: anyOf: - type: string - items: $ref: '#/components/schemas/AnthropicTextBlockParam' type: array temperature: format: double type: number thinking: oneOf: - properties: budget_tokens: type: integer display: $ref: '#/components/schemas/AnthropicThinkingDisplay' type: enum: - enabled type: string required: - type - budget_tokens type: object - properties: type: enum: - disabled type: string required: - type type: object - properties: display: $ref: '#/components/schemas/AnthropicThinkingDisplay' type: enum: - adaptive type: string required: - type type: object tool_choice: oneOf: - properties: disable_parallel_tool_use: type: boolean type: enum: - auto type: string required: - type type: object - properties: disable_parallel_tool_use: type: boolean type: enum: - any type: string required: - type type: object - properties: type: enum: - none type: string required: - type type: object - properties: disable_parallel_tool_use: type: boolean name: type: string type: enum: - tool type: string required: - type - name type: object tools: items: anyOf: - properties: cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' defer_loading: type: boolean description: type: string input_schema: additionalProperties: {} properties: properties: {} required: items: type: string type: - array - 'null' type: default: object type: string type: object name: type: string type: enum: - custom type: string required: - name - input_schema type: object - properties: cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' name: enum: - bash type: string type: enum: - bash_20250124 type: string required: - type - name type: object - properties: cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' name: enum: - str_replace_editor type: string type: enum: - text_editor_20250124 type: string required: - type - name type: object - properties: allowed_domains: items: type: string type: - array - 'null' blocked_domains: items: type: string type: - array - 'null' cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' max_uses: type: - integer - 'null' name: enum: - web_search type: string type: enum: - web_search_20250305 type: string user_location: $ref: '#/components/schemas/AnthropicWebSearchToolUserLocation' required: - type - name type: object - properties: allowed_callers: $ref: '#/components/schemas/AnthropicAllowedCallers' allowed_domains: items: type: string type: - array - 'null' blocked_domains: items: type: string type: - array - 'null' cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' max_uses: type: - integer - 'null' name: enum: - web_search type: string type: enum: - web_search_20260209 type: string user_location: $ref: '#/components/schemas/AnthropicWebSearchToolUserLocation' required: - type - name type: object - properties: allowed_callers: $ref: '#/components/schemas/AnthropicAllowedCallers' cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' caching: anyOf: - $ref: '#/components/schemas/AnthropicCacheControlDirective' - type: 'null' defer_loading: type: boolean max_uses: type: integer model: type: string name: enum: - advisor type: string type: enum: - advisor_20260301 type: string required: - type - name - model type: object - $ref: '#/components/schemas/BashServerTool' - $ref: '#/components/schemas/DatetimeServerTool' - $ref: '#/components/schemas/ImageGenerationServerTool_OpenRouter' - $ref: '#/components/schemas/MessagesSearchModelsServerTool' - $ref: '#/components/schemas/WebFetchServerTool' - $ref: '#/components/schemas/OpenRouterWebSearchServerTool' - additionalProperties: {} properties: type: type: string required: - type type: object - $ref: '#/components/schemas/AnthropicToolSearchToolBm25' - $ref: '#/components/schemas/AnthropicToolSearchToolRegex' - $ref: '#/components/schemas/ShellServerTool_OpenRouter' type: array top_k: type: integer top_p: format: double type: number trace: $ref: '#/components/schemas/TraceConfig' 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 required: - model - messages type: object