List the org's linked identity providers
Returns the IdPs currently linked to the active organization. Each entry carries alias, provider_id, display_name, enabled flag, and hide_on_login. Config is intentionally omitted here - secrets like client_secret stay server-side; fetch a single IdP to receive its config.
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
List the org's linked identity providers › Responses
OK
Attach an identity provider to the org
Creates a realm-level IdP and links it to the active org in one saga - on link failure the realm IdP is deleted to avoid orphans. Provider IDs supported: oidc, keycloak-oidc, saml. The config map is forwarded to Keycloak as-is (issuer URL, client secret, SAML metadata, etc.).
Headers
Idempotency-KeyUnique key that makes this POST safe to retry: repeats with the same key replay the first response instead of re-executing. Replays are scoped to the retrying principal (same API key / user) and kept for 24 hours. Required on every POST.
Client-generated idempotency key (e.g. a UUID).
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Attach an identity provider to the org › Request Body
aliasdisplay_nameenabledhide_on_loginprovider_idAttach an identity provider to the org › Responses
Created
Fetch one identity provider including config
Returns one IdP's full representation including config. 404 when the alias isn't linked to the active org (cross-tenant guard).
path Parameters
aliasRealm-level IdP alias
Realm-level IdP alias
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Fetch one identity provider including config › Responses
OK
Detach an identity provider from the org
Unlinks the IdP from the active org and deletes the realm-level IdP itself. Refuses (409 LAST_AUTH_PATH_GUARD) to remove the last identity provider while password login is disabled.
path Parameters
aliasRealm-level IdP alias
Realm-level IdP alias
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Detach an identity provider from the org › Responses
No Content
Update an identity provider's representation
Replaces the IdP's representation. Keycloak's update is full-representation replace, not partial-merge - fetch the IdP first and pass back the merged shape to preserve unchanged fields. 404 when the alias isn't linked to the active org (cross-tenant guard).
path Parameters
aliasRealm-level IdP alias
Realm-level IdP alias
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Update an identity provider's representation › Request Body
display_nameenabledhide_on_loginprovider_idUpdate an identity provider's representation › Responses
OK
List the org's email domains
Returns the domain list Keycloak holds for the active organization. Each entry carries the hostname and the verified flag (true once the org admin has asserted ownership in v1; v2 will require DNS-TXT proof). Empty array when the org has no domains.
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
List the org's email domains › Responses
OK
Replace the org's email domain list
Replaces the org's domain list with the supplied entries. v1 ships operator-asserted: every domain the request supplies is set verified=true so Keycloak's OrganizationAuthenticator picks it up for home-realm-discovery. Empty arrays clear the list.
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Replace the org's email domain list › Responses
OK