The linked identity provider
const url = 'https://example.com/api/v1/settings/idp';const options = { method: 'GET', headers: {cookie: 'bl_%3Cslug%3E_session=%3Cbl_%3Cslug%3E_session%3E'}};
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/api/v1/settings/idp \ --cookie bl_%3Cslug%3E_session=%3Cbl_%3Cslug%3E_session%3EThe OpenID Connect settings, without the client secret: client_secret_set says whether there is one.
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”OK.
GET /api/v1/settings/idp: documents the JSON built in [idp_view].
object
The link with the participant’s OpenID Connect provider.
object
Issuer as seen by browsers (and as it appears in iss).
Optional base URL used for back-channel calls (discovery, token) when the IdP is reachable under a different name from the server.
Write only: never returned.
Dotted path to the roles claim, e.g. realm_access.roles or groups.
App role → IdP role names that grant it.
object
Ask for offline_access: an IdP such as Entra ID only gives a
refresh token with it. Keycloak gives one without, bound to its
session; with it, an offline token that outlives a logout.
Whether an identity provider is linked; the other fields only then.
A client secret is stored; it is never shown.
Example generated
{ "issuer": "example", "internal_url": "example", "client_id": "example", "client_secret": "example", "role_claim": "example", "role_mapping": { "additionalProperty": [ "example" ] }, "offline_access": true, "configured": true, "client_secret_set": true}No valid session, DPoP-bound token or API key.
The body of every failed call to a management API.
object
object
Stable, machine-readable: invalid_request, unauthenticated,
forbidden, not_found, conflict, upstream_unavailable,
unavailable, internal, or a more specific code of the operation.
For people; may change between versions.
Example
{ "error": { "code": "not_found", "message": "unknown negotiation" }}The caller lacks the role this operation needs; or a change with the session cookie came from a page of another site (cross_site_request, decisions #83).
The body of every failed call to a management API.
object
object
Stable, machine-readable: invalid_request, unauthenticated,
forbidden, not_found, conflict, upstream_unavailable,
unavailable, internal, or a more specific code of the operation.
For people; may change between versions.
Example
{ "error": { "code": "not_found", "message": "unknown negotiation" }}