Files
openrouter-python-sdk-retry…/docs/sdks/oauth
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
..
2026-02-23 21:34:42 +00:00

OAuth

(o_auth)

Overview

OAuth authentication endpoints

Available Operations

exchange_auth_code_for_api_key

Exchange an authorization code from the PKCE flow for a user-controlled API key

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.o_auth.exchange_auth_code_for_api_key(code="auth_code_abc123def456")

    # Handle response
    print(res)

Parameters

Parameter Type Required Description Example
code str ✔️ The authorization code received from the OAuth redirect auth_code_abc123def456
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.
code_verifier Optional[str] The code verifier if code_challenge was used in the authorization request dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
code_challenge_method OptionalNullable[operations.ExchangeAuthCodeForAPIKeyCodeChallengeMethod] The method used to generate the code challenge S256
retries Optional[utils.RetryConfig] Configuration to override the default retry behavior of the client.

Response

operations.ExchangeAuthCodeForAPIKeyResponse

Errors

Error Type Status Code Content Type
errors.BadRequestResponseError 400 application/json
errors.ForbiddenResponseError 403 application/json
errors.InternalServerResponseError 500 application/json
errors.OpenRouterDefaultError 4XX, 5XX */*

create_auth_code

Create an authorization code for the PKCE flow to generate a user-controlled API key

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.o_auth.create_auth_code(callback_url="https://myapp.com/auth/callback")

    # Handle response
    print(res)

Parameters

Parameter Type Required Description Example
callback_url str ✔️ The callback URL to redirect to after authorization. Note, only https URLs on ports 443 and 3000 are allowed. https://myapp.com/auth/callback
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.
code_challenge Optional[str] PKCE code challenge for enhanced security E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM
code_challenge_method Optional[operations.CreateAuthKeysCodeCodeChallengeMethod] The method used to generate the code challenge S256
limit Optional[float] Credit limit for the API key to be created 100
expires_at date Optional expiration time for the API key to be created
key_label Optional[str] Optional custom label for the API key. Defaults to the app name if not provided. My Custom Key
usage_limit_type Optional[operations.UsageLimitType] Optional credit limit reset interval. When set, the credit limit resets on this interval. monthly
retries Optional[utils.RetryConfig] Configuration to override the default retry behavior of the client.

Response

operations.CreateAuthKeysCodeResponse

Errors

Error Type Status Code Content Type
errors.BadRequestResponseError 400 application/json
errors.UnauthorizedResponseError 401 application/json
errors.InternalServerResponseError 500 application/json
errors.OpenRouterDefaultError 4XX, 5XX */*