Complete reference for all Authority API endpoints.
OAuth 2.0 Endpoints
Authorization Endpoint
GET /authorize
Initiates the OAuth 2.0 authorization flow. Displays consent form to user.
Query Parameters:
Parameter
Required
Description
Callback URL (must match registered URI)
Base64URL-encoded challenge
Example:
GET /authorize?response_type=code&client_id=abc123&redirect_uri=https://app.example.com/callback&scope=openid%20profile&state=xyz789
Response: Redirects to login page, then to redirect_uri with code and state parameters.
Error Response: Redirects to redirect_uri with error, error_description, and state parameters.
POST /authorize
Process user consent for authorization request.
Request Body (Form-encoded):
Parameter
Required
Description
Base64URL-encoded challenge
Response: 302 redirect to redirect_uri?code=<code>&state=<state>
POST /token
Exchange authorization code, refresh token, or client credentials for access tokens.
Headers:
application/x-www-form-urlencoded
Basic {base64(client_id:client_secret)}
Request Body (Authorization Code):
Parameter
Required
Description
Same as authorization request
Request Body (Refresh Token):
Parameter
Required
Description
Request Body (Client Credentials):
Parameter
Required
Description
Request Body (Password Grant - Legacy):
Parameter
Required
Description
Response: 201 Created
Token Introspection
POST /oauth/introspect
Validate a token and get its metadata (RFC 7662).
Headers:
application/x-www-form-urlencoded
Basic {base64(client_id:client_secret)}
Request Body:
Parameter
Required
Description
access_token or refresh_token
Response (Active Token): 200 OK
Response (Inactive Token):
Token Revocation
POST /oauth/revoke
Revoke an access or refresh token (RFC 7009).
Headers:
application/x-www-form-urlencoded
Basic {base64(client_id:client_secret)}
Request Body:
Parameter
Required
Description
access_token or refresh_token
Response: 200 OK (always succeeds per RFC 7009)
Device Authorization
POST /device/code
Start device authorization flow (RFC 8628).
Headers:
application/x-www-form-urlencoded
Request Body:
Parameter
Required
Description
Response: 201 Created
Device Token Polling
POST /device/token
Poll for device authorization completion.
Request Body:
Parameter
Required
Description
urn:ietf:params:oauth:grant-type:device_code
Device code from /device/code
Response (Pending): 400 Bad Request
Response (Success): 201 Created
Device Activation
GET /activate
Display device activation form for user to enter code.
Query Parameters:
Parameter
Required
Description
Response: HTML form for user to enter device code.
POST /activate
Process device activation.
Request Body:
Parameter
Required
Description
Response: HTML confirmation page.
OpenID Connect Endpoints
GET /oauth2/userinfo
Get authenticated user's claims.
Headers:
Response: 200 OK
GET /.well-known/openid-configuration
OpenID Connect discovery document.
Response: 200 OK
Caching: public, max-age=3600
GET /.well-known/jwks.json
JSON Web Key Set for token verification.
Response: 200 OK
Caching: public, max-age=3600
Dynamic Client Registration
Register Client
POST /register
Dynamically register an OAuth client (RFC 7591).
Request Body:
Response: 201 Created
Validation:
redirect_uris must use HTTPS (except localhost for development)
redirect_uris must not contain URL fragments
Authentication Endpoints
GET /signin
Display sign-in form.
Query Parameters:
Parameter
Required
Description
Base64-encoded redirect URL after login
Response: HTML sign-in form
POST /signin
Authenticate user.
Request Body (Form-encoded):
Parameter
Required
Description
Base64-encoded redirect URL
Response (Success): 302 redirect to profile or forward_url
Response (MFA Required): 302 redirect to /mfa/verify
Response (Account Locked): 423 Locked with Retry-After header
Response (Invalid Credentials): 401 Unauthorized
POST /signout
End user session.
Response: 302 redirect to sign-in page
Account Endpoints
Forgot Password
GET /forgot-password
Display forgot password form.
POST /forgot-password
Request password reset email.
Request Body (Form-encoded):
Parameter
Required
Description
Response: Always shows success (prevents email enumeration)
POST /account/password/reset
Request password reset token.
Request Body:
Parameter
Required
Description
Response: 200 OK (always, to prevent enumeration)
POST /account/password/confirm
Complete password reset.
Request Body:
Parameter
Required
Description
Response (Success): 200 OK
Response (Error): 400 Bad Request
Email Verification
POST /account/email/verify
Verify email address.
Request Body:
Parameter
Required
Description
Verification token from email
Response: 200 OK or 400 Bad Request
POST /account/email/resend
Resend verification email.
Request Body:
Parameter
Required
Description
Response: 200 OK
GET /mfa/setup
Display MFA setup with QR code.
Response: HTML page with:
QR code for authenticator app
Secret key (manual entry)
Authentication Required: Yes (session)
POST /mfa/enable
Enable MFA for account.
Request Body:
Parameter
Required
Description
6-digit verification code
Response: 302 redirect
Authentication Required: Yes (session)
POST /mfa/verify
Verify MFA code during login.
Request Body:
Parameter
Required
Description
6-digit code from authenticator
Response: 302 redirect to profile
POST /mfa/disable
Disable MFA for account.
Request Body:
Parameter
Required
Description
Current password for verification
Response: 302 redirect
Authentication Required: Yes (session)
GET /profile
Display user profile page.
Response: HTML profile page with:
Email verification status
Connected social accounts
Authentication Required: Yes (session)
GET /health_check
Check server health.
Response: 200 OK
See Social Login API for social authentication endpoints.