Authorization endpoint (302 to AgentID)
Authorization code with mandatory S256, exact registered redirect, resource and state. Default redirects fixed AgentSub identity-choice/consent UI with an opaque five-minute request identifier. Optional identity_provider=agentid starts AgentID directly. Human Google/Clerk identity requires explicit trusted-origin human consent before a one-minute code is issued.
/oauth/authorizeresponse_typestringrequiredclient_idstringrequiredredirect_uristring<uri>requiredcode_challengestringrequiredcode_challenge_methodstringrequiredresourcestringrequiredscopestringSpace-separated requested actor scopes. Request both to offer human and agent login; the issued token contains only the selected identity scope. Omit to offer both.
statestringrequiredidentity_providerstringclerkagentidRedirect to AgentID upstream authorization
OAuth error JSON (invalid_request, invalid_client, invalid_grant, invalid_scope, invalid_target, invalid_redirect_uri, invalid_client_metadata, unsupported_grant_type)
errorstringrequiredinvalid_requestinvalid_clientinvalid_grantinvalid_scopeinvalid_targetinvalid_redirect_uriinvalid_client_metadataunsupported_grant_typeaccess_deniedtemporarily_unavailableerror_descriptionstringrequiredOAuth error JSON (temporarily_unavailable — registration/authorization caps reached)
errorstringrequiredinvalid_requestinvalid_clientinvalid_grantinvalid_scopeinvalid_targetinvalid_redirect_uriinvalid_client_metadataunsupported_grant_typeaccess_deniedtemporarily_unavailableerror_descriptionstringrequiredOAuth error JSON (temporarily_unavailable — credentials or storage not configured)
errorstringrequiredinvalid_requestinvalid_clientinvalid_grantinvalid_scopeinvalid_targetinvalid_redirect_uriinvalid_client_metadataunsupported_grant_typeaccess_deniedtemporarily_unavailableerror_descriptionstringrequired