Create a pushed authorization request for Admin Agent access.
curl --request POST \ --url https://auth.example.com/oauth/admin-agent/par \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data client_id=mcp_client_123 \ --data redirect_uri=http://127.0.0.1:34127/callback \ --data response_type=code \ --data scope=agent:read \ --data resource=https://tenant.example.com/mcp \ --data code_challenge=dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk \ --data code_challenge_method=S256Creates a single-use RFC 9126 request URI bound to the dedicated Admin Agent authorization journey and the tenant MCP resource. Known clients, HTTPS Client ID Metadata Documents, and restricted public-client registrations are supported. PKCE S256 and the exact RFC 8707 resource parameter are required.
Request Body required
Section titled “Request Body required ”object
Space-separated scopes. Interactive self-service accepts agent:read, agent:user-data:read, and agent:write. Advanced managed Grants may use additional advertised extension scopes.
Exact tenant MCP resource identifier advertised by protected resource metadata.
JSON-encoded RFC 9396 array, additionally bounded to 16 KiB and 20 entries at runtime. Only type authrim_admin_agent and max_subjects_per_call from 1 to 50 are accepted in this phase; repeated entries use the narrowest limit.
Example
client_id=mcp_client_123&redirect_uri=http%3A%2F%2F127.0.0.1%3A34127%2Fcallback&response_type=code&scope=agent%3Aread&resource=https%3A%2F%2Ftenant.example.com%2Fmcp&code_challenge=dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk&code_challenge_method=S256Responses
Section titled “ Responses ”Successful JSON response.
object
Example
{ "request_uri": "urn:ietf:params:oauth:request_uri:par_123", "expires_in": 90}Error response.
object
Optional browser-side WebAuthn Signal API hint. When unknown_credential is true, clients that just received a WebAuthn credential assertion may call PublicKeyCredential.signalUnknownCredential() for that credential ID.
object
Example generated
{ "error": "example", "error_description": "example", "message": "example", "webauthn_signal": { "unknown_credential": true }}Error response.
object
Optional browser-side WebAuthn Signal API hint. When unknown_credential is true, clients that just received a WebAuthn credential assertion may call PublicKeyCredential.signalUnknownCredential() for that credential ID.
object
Example generated
{ "error": "example", "error_description": "example", "message": "example", "webauthn_signal": { "unknown_credential": true }}Error response.
object
Optional browser-side WebAuthn Signal API hint. When unknown_credential is true, clients that just received a WebAuthn credential assertion may call PublicKeyCredential.signalUnknownCredential() for that credential ID.
object
Example generated
{ "error": "example", "error_description": "example", "message": "example", "webauthn_signal": { "unknown_credential": true }}Error response.
object
Optional browser-side WebAuthn Signal API hint. When unknown_credential is true, clients that just received a WebAuthn credential assertion may call PublicKeyCredential.signalUnknownCredential() for that credential ID.
object
Example generated
{ "error": "example", "error_description": "example", "message": "example", "webauthn_signal": { "unknown_credential": true }}Error response.
object
Optional browser-side WebAuthn Signal API hint. When unknown_credential is true, clients that just received a WebAuthn credential assertion may call PublicKeyCredential.signalUnknownCredential() for that credential ID.
object
Example generated
{ "error": "example", "error_description": "example", "message": "example", "webauthn_signal": { "unknown_credential": true }}