Choose an organization

POST /fapi/v1/authorization-requests/{authorization_request_id}:select-organization · called from the environment's sign-in host

Binds the organization the user chose on the hosted picker to the authorization request. The server checks the choice again. It is accepted only if organization_id is in the list from List organizations to choose from for this user and application at the time of the call. Any other value gets 422 validation_failed and nothing is bound, including:

On success the organization is written to the request once and cannot change. The answer carries continue_url, the authorization endpoint's resume URL. The browser goes there and authorization continues with the organization bound.

The request conditions and the 404 answer are the same as for the list. Requires the authenticated user's __Host-idp_session cookie; if the cookie is missing, expired, or revoked, returns 401 unauthenticated.

Request

Path parameter:

Parameter Description
authorization_request_id The authorization_request value of the picker URL (azr_…).

Headers:

Header Required Description
Idp-Client yes SDK identifier.
Origin yes Must be exactly https://<sign-in host>.
Content-Type yes application/json.

Body:

Field Type Required Description
organization_id string yes The id of a listed organization (org_…).

Response

200 OK:

Field Type Description
continue_url string Where the browser continues: the authorization endpoint's resume URL.
{"continue_url": "/oauth2/authorize/resume?authorization_request=azr_01jbz6x8kq3m2n4p5r6s7t8v9w"}

Errors

Status Code When
400 malformed_request The body is not valid JSON.
400 unknown_field The body has a field other than organization_id.
401 unauthenticated No valid session cookie.
403 origin_not_allowed Origin is missing or wrong.
404 not_found The request is malformed, unknown, expired, finished, another host's, or another browser's.
409 conflict The request already has an organization.
413 payload_too_large The body is too large.
415 unsupported_media_type Content-Type is not application/json.
422 validation_failed organization_id is missing or is not one of the listed organizations.
503 temporarily_unavailable The organization list could not be read.

Example

curl -X POST https://example.keenauth.app/fapi/v1/authorization-requests/azr_01jbz6x8kq3m2n4p5r6s7t8v9w:select-organization \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -H "Origin: https://example.keenauth.app" \
  -H "Content-Type: application/json" \
  -b cookies.txt \
  -d '{"organization_id": "org_01jbz6x8kq3m2n4p5r6s7t8v9w"}'