Files
openrouter-python-sdk-retry…/docs/sdks/oauth/README.md
T
OpenRouter Team 13d706e274 Commits included in this export:
- 35d4e3137846cf3e0a5800e012692818f0dfe309
  - b2f10545419cea6b8a12c509f41ec4bd3937af0c
  - 2dbb7d9612a6e699caa91f334ad105dbde6442ee
  - 50539a3577b5a7e925b756f6bb87744052701215
  - 2cdbe64441ce4435ea0a1ff9127472e815fdaccf
  - f35bb49a8b788937fa61c0cf4591b14f2bc8b217
  - 08a37babde9ad8df5e24e0cd865d3292b1627464
  - 7ddc8e1ed230ca489bc11a5e14696c209ea76349
  - ad31290f38f3f02627f3e1953f1d7cf3e06159a5
  - fb7f764b500618e322f56d49997fbcfaebba7e39
  - 4306c032b9b4f3cfefeacdd3d243b0336f3b2f15

GitOrigin-RevId: 35d4e3137846cf3e0a5800e012692818f0dfe309
2026-03-17 02:59:58 +00:00

19 KiB
Raw Blame History

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_open_router_title="<value>",
    x_open_router_categories="<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_open_router_title Optional[str] The app display name allows you to customize how your app appears in OpenRouter's dashboard.
x_open_router_categories Optional[str] Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
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_open_router_title="<value>",
    x_open_router_categories="<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_open_router_title Optional[str] The app display name allows you to customize how your app appears in OpenRouter's dashboard.
x_open_router_categories Optional[str] Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
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.ConflictResponseError 409 application/json
errors.InternalServerResponseError 500 application/json
errors.OpenRouterDefaultError 4XX, 5XX */*