Files
openrouter-python-sdk-retry…/docs/sdks/chat/README.md
T
OpenRouter Team c734c52d9c Commits included in this export:
- 56d382078cfce7fa597d1da2bce531af2d060b47
  - 9ef6db7e04c9401536763a321b05d00311cef31a
  - bf855082e30820d466f0f86a6d6e87de2ecfb06f
  - 335b1cbe361214e48b945b987b4e164457aa817b
  - 648485fdc7f9d8ae86fd857eccedcc5e41fb2e69
  - 80c49474a15a2bd549a5f26efad3858aa45b7c7b
  - 70e8ac317f9c4472db3decd024d1819650df4182
  - 9f2a6659ab6dbf111a0c29e4366328c3d2048826
  - a3a28b1fc6ec7d2941232a4ebde8c5f470497876
  - 4b5dc9193480b7c5c9ddb882ccf3ee2128ca0d51
  - bb413e979a46ef67c2f266743f7ebd798af42afb
  - b60e92d5dcec83f31986164f51c010d1728b2b17
  - 45687f423707f5838461585c568a024a19eb2f06
  - 3103d3ca68b6e42ccdb6136588ec2b6edc8dcab0
  - fd9f991606027cd86116317c71f8eb7b4e2aa3eb
  - 0f312019161edd76c1e5923d142c788d22f096d5
  - 5dbab2094bc744db4a90b3097520d897e5d0d634
  - 4c47d1af1735db18a1c1a7f463e801c7f71ad4e5

GitOrigin-RevId: 56d382078cfce7fa597d1da2bce531af2d060b47
2026-02-23 21:34:42 +00:00

44 KiB
Raw Blame History

Chat

(chat)

Overview

Available Operations

  • send - Create a chat completion

send

Sends a request for a model response for the given chat conversation. Supports both streaming and non-streaming modes.

Example Usage

from openrouter import OpenRouter
import os


with OpenRouter(
    http_referer="<value>",
    x_title="<value>",
    api_key=os.getenv("OPENROUTER_API_KEY", ""),
) as open_router:

    res = open_router.chat.send(messages=[
        {
            "role": "system",
            "content": "You are a helpful assistant.",
        },
        {
            "role": "user",
            "content": "What is the capital of France?",
        },
    ], stream=False, temperature=0.7, top_p=1)

    with res as event_stream:
        for event in event_stream:
            # handle event
            print(event, flush=True)

Parameters

Parameter Type Required Description Example
messages List[components.Message] ✔️ List of messages for the conversation [
{
"role": "user",
"content": "Hello!"
}
]
http_referer Optional[str] The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
x_title Optional[str] The app display name allows you to customize how your app appears in OpenRouter's dashboard.
provider OptionalNullable[components.ChatGenerationParamsProvider] When multiple model providers are available, optionally indicate your routing preference.
plugins List[components.ChatGenerationParamsPluginUnion] Plugins you want to enable for this request, including their settings.
user Optional[str] Unique user identifier user-123
session_id Optional[str] A unique identifier for grouping related requests (e.g., a conversation or agent workflow) for observability. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 128 characters.
trace Optional[components.ChatGenerationParamsTrace] Metadata for observability and tracing. Known keys (trace_id, trace_name, span_name, generation_name, parent_span_id) have special handling. Additional keys are passed through as custom metadata to configured broadcast destinations.
model Optional[str] Model to use for completion openai/gpt-4
models List[str] Models to use for completion [
"openai/gpt-4",
"openai/gpt-4o"
]
frequency_penalty OptionalNullable[float] Frequency penalty (-2.0 to 2.0) 0
logit_bias Dict[str, float] Token logit bias adjustments {
"50256": -100
}
logprobs OptionalNullable[bool] Return log probabilities false
top_logprobs OptionalNullable[float] Number of top log probabilities to return (0-20) 5
max_completion_tokens OptionalNullable[float] Maximum tokens in completion 100
max_tokens OptionalNullable[float] Maximum tokens (deprecated, use max_completion_tokens) 100
metadata Dict[str, str] Key-value pairs for additional object information (max 16 pairs, 64 char keys, 512 char values) {
"user_id": "user-123",
"session_id": "session-456"
}
presence_penalty OptionalNullable[float] Presence penalty (-2.0 to 2.0) 0
reasoning Optional[components.Reasoning] Configuration options for reasoning models {
"effort": "medium",
"summary": "concise"
}
response_format Optional[components.ResponseFormat] Response format configuration {
"type": "json_object"
}
seed OptionalNullable[int] Random seed for deterministic outputs 42
stop OptionalNullable[components.Stop] Stop sequences (up to 4) [
""
]
stream Optional[bool] Enable streaming response false
stream_options OptionalNullable[components.ChatStreamOptions] Streaming configuration options {
"include_usage": true
}
temperature OptionalNullable[float] Sampling temperature (0-2) 0.7
parallel_tool_calls OptionalNullable[bool] N/A
tool_choice Optional[components.ToolChoiceOption] Tool choice configuration auto
tools List[components.ToolDefinitionJSON] Available tools for function calling [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get weather"
}
}
]
top_p OptionalNullable[float] Nucleus sampling parameter (0-1) 1
debug Optional[components.DebugOptions] Debug options for inspecting request transformations (streaming only) {
"echo_upstream_body": true
}
image_config Dict[str, components.ChatGenerationParamsImageConfig] Provider-specific image configuration options. Keys and values vary by model/provider. See https://openrouter.ai/docs/guides/overview/multimodal/image-generation for more details. {
"aspect_ratio": "16:9"
}
modalities List[components.Modality] Output modalities for the response. Supported values are "text" and "image". [
"text",
"image"
]
retries Optional[utils.RetryConfig] Configuration to override the default retry behavior of the client.

Response

operations.SendChatCompletionRequestResponse

Errors

Error Type Status Code Content Type
errors.BadRequestResponseError 400 application/json
errors.UnauthorizedResponseError 401 application/json
errors.PaymentRequiredResponseError 402 application/json
errors.NotFoundResponseError 404 application/json
errors.RequestTimeoutResponseError 408 application/json
errors.PayloadTooLargeResponseError 413 application/json
errors.UnprocessableEntityResponseError 422 application/json
errors.TooManyRequestsResponseError 429 application/json
errors.InternalServerResponseError 500 application/json
errors.BadGatewayResponseError 502 application/json
errors.ServiceUnavailableResponseError 503 application/json
errors.EdgeNetworkTimeoutResponseError 524 application/json
errors.ProviderOverloadedResponseError 529 application/json
errors.OpenRouterDefaultError 4XX, 5XX */*