Get one identity provider
const url = 'https://example.com/v1/auth/providers/example';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/v1/auth/providers/example \ --header 'Authorization: Bearer <token>'The provider as stored, with signIn when the deployment sets it. Secrets appear only as references.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Responses
Section titled “Responses”The provider.
An OpenID Connect identity provider people sign in with. The endpoints come from the issuer’s discovery document when absent, and are returned once the deployment has them.
object
The name a sign-in page shows (“Sign in with …”). Default: providerId.
The email domains whose people sign in with this provider (lowercase, e.g. acme.com): how an email-first sign-in page finds it.
Who may sign in the first time: invite (default) only people a tenant admin added; domain also anyone from one of domains, once the deployment has verified them.
object
Opaque reference resolved server-side. Never a plaintext secret.
Default openid email profile.
Per-provider claim mapping. All fields optional; closer to OIDC defaults (sub/email/name) → fewer overrides needed.
object
Claim path + optional delimiter for extracting Kindgi OAuth scopes from provider claims. When absent, scopes come from the token response scope field instead.
object
A SAML 2.0 identity provider people sign in with: its metadata XML, or its entity ID, single sign-on URL and signing certificates. Keys are given as references, never as keys.
object
The name a sign-in page shows (“Sign in with …”). Default: providerId.
The email domains whose people sign in with this provider (lowercase, e.g. acme.com): how an email-first sign-in page finds it.
Who may sign in the first time: invite (default) only people a tenant admin added; domain also anyone from one of domains, once the deployment has verified them.
object
The IdP’s single sign-on URL (HTTP-Redirect binding).
The IdP’s signing certificates (PEM); several during a rollover.
Opaque reference to the service provider’s signing key, for IdPs that require signed AuthnRequests. Never a plaintext key.
Opaque reference to the key that decrypts encrypted assertions. Never a plaintext key.
Require signed assertions. Default true.
Assertion attribute names. Defaults: userId = the NameID, email = email.
object
Example
{ "join": "invite", "kind": "oidc"}Missing / malformed / expired / revoked bearer token.
object
object
Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).
Optional, kind-specific.
object
Server-assigned request id; also echoed via X-Request-Id header.
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": {}, "requestId": "example" }}Not a member of the workspace (permission-denied). Without an authorization store, anyone reads it.
object
object
Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).
Optional, kind-specific.
object
Server-assigned request id; also echoed via X-Request-Id header.
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": {}, "requestId": "example" }}No identity provider registered with that id under this workspace.
object
object
Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).
Optional, kind-specific.
object
Server-assigned request id; also echoed via X-Request-Id header.
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": {}, "requestId": "example" }}The database was too busy to answer in time (database-busy); Retry-After (whole seconds) says when to try again.
object
object
Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).
Optional, kind-specific.
object
Server-assigned request id; also echoed via X-Request-Id header.
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": {}, "requestId": "example" }}See also
PATCH /v1/auth/providers/{providerId}: Change an identity provider, keeping its sign-in URLsGET /v1/auth/providers: List identity providers configured for the workspacePOST /v1/auth/providers: Register an identity provider (OIDC or SAML)GET /v1/auth/providers/{providerId}/sign-in: What to give the identity provider, before or after registering- Error code
database-busy - Error code
permission-denied - Every error code