Pushed Authorization Request (PAR)
POST/authz-srv/par
Pushed Authorization Request (PAR)
This API implements RFC 9126 - Pushed Authorization Request. It allows clients to Pushed Authorization Request parameters to the authorization server via a direct request, rather than including them in the authorization URL. This improves security by:
- Avoiding long URLs with sensitive parameters
- Reducing exposure of authorization parameters
- Enabling better logging and audit trails
How it works:
- Client sends all authorization request parameters to this endpoint via POST
- Server validates the request and creates a unique
request_uri - Client uses the
request_uriin the authorization endpoint (/authz-srv/authz) instead of passing all parameters
PAR can be used with both Authorization Code Flow and PKCE Flow. The request_uri expires after the time
specified in expires_in (typically 90 seconds), so it must be used promptly.
Application configuration: The browser origin that initiates PAR must be listed in the application's allowed_web_origins. Otherwise the request fails with AUTH10043 (HTTP 403). See PAR documentation.
Session transfer (native to web): You can include the optional form field stt (Session Transfer Token) in this POST body together with PKCE (code_challenge, code_challenge_method). The same rules apply as on GET /authz-srv/authz: PKCE is required when stt is present; client_id must be the web client. The browser then opens /authz-srv/authz?client_id=...&request_uri=... only (no stt on that URL—the STT is already inside the pushed request). See Session transfer.
See PAR documentation for detailed implementation guide.
Request
Responses
- 201
- 400
- 401
- 403
Created - The authorization request has been successfully pushed and a request_uri has been created.
Bad Request — The request is invalid (e.g., missing required parameters, invalid parameter values).
Unauthorized - Client authentication failed.
Forbidden — The client is not authorized to use PAR, or the request origin is not permitted.
AUTH10043 — returned when the origin of the initiating domain does not match any entry in the application's allowed_web_origins. This occurs if the browser origin that posts to PAR (or the redirect_uri / web_message_uri origin) is not whitelisted in Integrations → Applications. Configure allowed_web_origins with the scheme and host of the page that starts login (without the path). See PAR documentation and AUTH10043.
AUTH10053 — PAR is not enabled for the tenant.