Requesters get
403 on every endpoint.
Writes need two things:
- the
org.manage_settingspermission (org admins and owners), otherwise403; - an Enterprise plan with the
ssofeature, otherwise402.
org_domain_01H….
GET sso/
- No Enterprise plan: the response is
{"entitled": false}. - Never configured:
configuredisfalseand the lists are empty. status_ok:falsewhen WorkOS couldn’t be reached; the lists may then be incomplete.- Pending domains: a pending domain carries the DNS TXT record to add (
txt_name/txt_value).
PATCH sso/
Member provisioning: what someone at a verified domain becomes the first time they sign in through SSO without an invite.
jit_role is off (invite only, the default), requester or member. Existing members keep their role. Returns the same body as GET.
POST sso/domains/
201 with the new domain, pending, including the TXT record to add:
400 if the domain is malformed, or if WorkOS refuses it (consumer domains like gmail.com, or a domain another organization has claimed).
POST sso/domains/{id}/verify/
Asks WorkOS to check the TXT record now. Returns the domain. If verified is still false, DNS may not have propagated yet; try again later. 400 if the id isn’t one of this organization’s domains.
DELETE sso/domains/{id}/
Removes the domain. People at it stop being sent to the identity provider. 204; 400 if the id isn’t one of this organization’s domains.
POST sso/setup-link/
Errors
Errors on this page use{"error": "..."}; validation errors use {"errors": {...}}.