Skip to main content
Version: 2.x (Latest)

Functions

Every method below exists on both AuthorizerClient (sync) and AsyncAuthorizerClient (async). On the async client the calls are coroutines — await them. Request objects are dataclasses imported from authorizer; responses are dataclasses too.

from authorizer import (
AuthorizerClient, AsyncAuthorizerClient,
LoginRequest, SignUpRequest, MagicLinkLoginRequest,
VerifyOTPRequest, VerifyEmailRequest, ResendOTPRequest,
ResendVerifyEmailRequest, ForgotPasswordRequest, ResetPasswordRequest,
ValidateJWTTokenRequest, ValidateSessionRequest, SessionQueryRequest,
UpdateProfileRequest, GetTokenRequest, RevokeTokenRequest,
CheckPermissionsRequest, ListPermissionsRequest, PermissionCheckInput, FgaTupleInput,
TokenType,
)

Authentication & user management

MethodSignatureReturns
loginlogin(req: LoginRequest)AuthToken
signupsignup(req: SignUpRequest)AuthToken
magic_link_loginmagic_link_login(req: MagicLinkLoginRequest)GenericResponse
verify_otpverify_otp(req: VerifyOTPRequest)AuthToken
verify_emailverify_email(req: VerifyEmailRequest)AuthToken
resend_otpresend_otp(req: ResendOTPRequest)GenericResponse
resend_verify_emailresend_verify_email(req: ResendVerifyEmailRequest)GenericResponse
forgot_passwordforgot_password(req: ForgotPasswordRequest)ForgotPasswordResponse
reset_passwordreset_password(req: ResetPasswordRequest)GenericResponse
validate_jwt_tokenvalidate_jwt_token(req: ValidateJWTTokenRequest)ValidateJWTTokenResponse
validate_sessionvalidate_session(req: ValidateSessionRequest)ValidateSessionResponse
get_meta_dataget_meta_data()MetaData

Authenticated (pass a bearer token via headers)

MethodSignatureReturns
get_sessionget_session(req=None, headers=None)AuthToken
get_profileget_profile(headers=None)User
update_profileupdate_profile(req: UpdateProfileRequest, headers=None)GenericResponse
logoutlogout(headers=None)GenericResponse
deactivate_accountdeactivate_account(headers=None)GenericResponse

Fine-grained authorization

MethodSignatureReturns
check_permissionscheck_permissions(req: CheckPermissionsRequest, headers=None)CheckPermissionsResponse
list_permissionslist_permissions(req: ListPermissionsRequest, headers=None)ListPermissionsResponse

See the dedicated Fine-Grained Authorization page for usage.

OAuth (REST)

MethodSignatureReturns
get_tokenget_token(req: GetTokenRequest)GetTokenResponse
revoke_tokenrevoke_token(req: RevokeTokenRequest)GenericResponse

Escape hatch — raw GraphQL

For any operation not covered by a typed helper:

data = client.graphql_query(
query="query { meta { version } }",
variables=None,
headers=None,
)

graphql_query(query: str, variables=None, headers=None) -> dict returns the parsed data object.

Examples

Sign up

from authorizer import AuthorizerClient, SignUpRequest

client = AuthorizerClient("YOUR_CLIENT_ID", "https://your-instance.authorizer.dev")

token = client.signup(SignUpRequest(
email="user@example.com",
password="Abc@123",
confirm_password="Abc@123",
given_name="Ada",
family_name="Lovelace",
))
print(token.message, token.access_token)

Log in and read the profile

from authorizer import AuthorizerClient, LoginRequest

client = AuthorizerClient("YOUR_CLIENT_ID", "https://your-instance.authorizer.dev")

token = client.login(LoginRequest(email="user@example.com", password="Abc@123"))
auth = {"Authorization": f"Bearer {token.access_token}"}

user = client.get_profile(headers=auth)
print(user.id, user.email, user.roles)

Validate a JWT

from authorizer import AuthorizerClient, ValidateJWTTokenRequest, TokenType

client = AuthorizerClient("YOUR_CLIENT_ID", "https://your-instance.authorizer.dev")

res = client.validate_jwt_token(ValidateJWTTokenRequest(
token=access_token,
token_type=TokenType.ACCESS_TOKEN,
))
print(res.is_valid, res.claims)
from authorizer import AuthorizerClient, MagicLinkLoginRequest

client = AuthorizerClient("YOUR_CLIENT_ID", "https://your-instance.authorizer.dev")
res = client.magic_link_login(MagicLinkLoginRequest(email="user@example.com"))
print(res.message) # "Please check your inbox!..."

Request types

All request dataclasses serialize via to_dict(). Fields shown | None are optional.

TypeKey fields
LoginRequestpassword*, email, phone_number, roles, scope, state
SignUpRequestpassword*, confirm_password*, email, given_name, family_name, phone_number, roles, scope, redirect_uri, is_multi_factor_auth_enabled, app_data, …
MagicLinkLoginRequestemail*, roles, scope, state, redirect_uri
VerifyOTPRequestotp*, email, phone_number, is_totp, state
VerifyEmailRequesttoken*, state
ResendOTPRequestemail, phone_number, state
ResendVerifyEmailRequestemail*, identifier
ForgotPasswordRequestemail, phone_number, state, redirect_uri
ResetPasswordRequestpassword*, confirm_password*, token, otp, phone_number
ValidateJWTTokenRequesttoken*, token_type* (TokenType), roles
ValidateSessionRequestcookie, roles
SessionQueryRequestroles, scope
UpdateProfileRequestemail, old_password, new_password, confirm_new_password, given_name, family_name, roles, app_data, …
GetTokenRequestcode, grant_type, refresh_token, code_verifier
RevokeTokenRequestrefresh_token*
CheckPermissionsRequestchecks* (list[PermissionCheckInput]), user
ListPermissionsRequestrelation, object_type, user
PermissionCheckInputrelation*, object*, contextual_tuples (list[FgaTupleInput])
FgaTupleInputuser*, relation*, object*

* = required

Response types

All response dataclasses are built via from_dict().

TypeKey fields
AuthTokenmessage, access_token, expires_in, id_token, refresh_token, should_show_*_screen, authenticator_*, user
Userid, email, email_verified, given_name, family_name, phone_number, roles, created_at, app_data, …
GenericResponsemessage
ForgotPasswordResponsemessage, should_show_mobile_otp_screen
ValidateJWTTokenResponseis_valid, claims
ValidateSessionResponseis_valid, user
MetaDataversion, client_id, and is_*_enabled feature flags (login providers, MFA, sign-up, etc.)
GetTokenResponseaccess_token, expires_in, id_token, refresh_token
CheckPermissionsResponseresults (list[PermissionCheckResult])
PermissionCheckResultrelation, object, allowed
ListPermissionsResponseobjects, permissions (list[Permission]), truncated
Permissionobject, relation

Enums

EnumValues
TokenTypeACCESS_TOKEN, ID_TOKEN, REFRESH_TOKEN
ResponseTypesCODE, TOKEN
OAuthProvidersAPPLE, GITHUB, GOOGLE, FACEBOOK, LINKEDIN, TWITTER, MICROSOFT, TWITCH, ROBLOX, DISCORD

Error handling

The SDK raises two exception types:

ExceptionWhen
AuthorizerErrorThe API returned an error. Has message, errors, status.
AuthorizerConnectionErrorA network/transport failure (subclass of AuthorizerError).
from authorizer import AuthorizerClient, LoginRequest, AuthorizerError

client = AuthorizerClient("YOUR_CLIENT_ID", "https://your-instance.authorizer.dev")
try:
client.login(LoginRequest(email="user@example.com", password="wrong"))
except AuthorizerError as err:
print(err.status, err.message)