Skip to content

Depot portalssoprovider

Registers GET/PUT /api/v1/portal/sso-providers/{provider}.

This page is generated from the Depot route table. Every operation carries the permission it needs and the anchor an agent can link to.

GET /api/v1/portal/sso-providers/{provider}

Section titled “GET /api/v1/portal/sso-providers/{provider}”

GETclientportal:managemsp facemspIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID}/portal/branding to reach one client.

Source: [object Object]

get reads how portal SSO reaches one provider (entra or google): the Outpost broker, or the MSP’s own app registration.

NameInTypeRequiredDescription
providerpathstringYes
StatusBodyDescription
200application/json, PortalSsoProviderViewSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold clientportal:manage.
404application/problem+json, ProblemDetailsNot found.
500application/problem+json, ProblemDetailsCould not read the sign-in app.

200 response body

FieldTypeDescription
clientIdstring or null
configuredrequiredboolean
moderequiredstring
providerrequiredstring
rowVersionrequiredinteger

int64.

secretExpiresAtstring (date-time) or null
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/portal/sso-providers/<provider>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PUT /api/v1/portal/sso-providers/{provider}

Section titled “PUT /api/v1/portal/sso-providers/{provider}”

PUTclientportal:managemsp facemspIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID}/portal/branding to reach one client.

Source: [object Object]

put switches a provider between the Outpost broker and the MSP’s own app registration, and stores that app’s client id and secret.

NameInTypeRequiredDescription
providerpathstringYes

Required, sent as application/json.

FieldTypeDescription
clientIdstring or null
clientSecretstring or null
moderequiredstring
rowVersionrequiredinteger

int64.

secretExpiresAtstring (date-time) or null
StatusBodyDescription
200application/json, PortalSsoProviderViewSuccess.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold clientportal:manage.
404application/problem+json, ProblemDetailsNot found.
500application/problem+json, ProblemDetailsCould not read the sign-in app.

200 response body

FieldTypeDescription
clientIdstring or null
configuredrequiredboolean
moderequiredstring
providerrequiredstring
rowVersionrequiredinteger

int64.

secretExpiresAtstring (date-time) or null
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X PUT 'https://depot.example.com/api/v1/portal/sso-providers/<provider>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"clientId": "string",
"clientSecret": "string",
"mode": "string",
"rowVersion": 0,
"secretExpiresAt": "2026-01-01T00:00:00Z"
}'

Content is licensed CC BY 4.0. Code samples are MIT. Outpost and the Outpost mark are trademarks of Outpost Business Solutions, PBC and are not covered by either license.