OAuth - Python SDK

OAuth method reference

(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

1from openrouter import OpenRouter
2import os
3
4with OpenRouter(
5 api_key=os.getenv("OPENROUTER_API_KEY", ""),
6) as open_router:
7
8 res = open_router.o_auth.exchange_auth_code_for_api_key(code="auth_code_abc123def456", code_verifier="dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk", code_challenge_method="S256")
9
10 # Handle response
11 print(res)

Parameters

ParameterTypeRequiredDescriptionExample
codestr✔️The authorization code received from the OAuth redirectauth_code_abc123def456
code_verifierOptional[str]The code verifier if code_challenge was used in the authorization requestdBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
code_challenge_methodOptionalNullable[operations.ExchangeAuthCodeForAPIKeyCodeChallengeMethod]The method used to generate the code challengeS256
retriesOptional[utils.RetryConfig]Configuration to override the default retry behavior of the client.

Response

operations.ExchangeAuthCodeForAPIKeyResponse

Errors

Error TypeStatus CodeContent Type
errors.BadRequestResponseError400application/json
errors.ForbiddenResponseError403application/json
errors.InternalServerResponseError500application/json
errors.OpenRouterDefaultError4XX, 5XX*/*

create_auth_code

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

Example Usage

1from openrouter import OpenRouter
2import os
3
4with OpenRouter(
5 api_key=os.getenv("OPENROUTER_API_KEY", ""),
6) as open_router:
7
8 res = open_router.o_auth.create_auth_code(callback_url="https://myapp.com/auth/callback", code_challenge="E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM", code_challenge_method="S256", limit=100)
9
10 # Handle response
11 print(res)

Parameters

ParameterTypeRequiredDescriptionExample
callback_urlstr✔️The callback URL to redirect to after authorization. Note, only https URLs on ports 443 and 3000 are allowed.https://myapp.com/auth/callback
code_challengeOptional[str]PKCE code challenge for enhanced securityE9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM
code_challenge_methodOptional[operations.CreateAuthKeysCodeCodeChallengeMethod]The method used to generate the code challengeS256
limitOptional[float]Credit limit for the API key to be created100
expires_atdateOptional expiration time for the API key to be created
retriesOptional[utils.RetryConfig]Configuration to override the default retry behavior of the client.

Response

operations.CreateAuthKeysCodeResponse

Errors

Error TypeStatus CodeContent Type
errors.BadRequestResponseError400application/json
errors.UnauthorizedResponseError401application/json
errors.InternalServerResponseError500application/json
errors.OpenRouterDefaultError4XX, 5XX*/*