Skip to content

Depot mdmidp

Registers the IdP connection routes.

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

GETmdm:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

listMdmIdpConnections lists the identity providers people can sign in with to enroll a device.

Client secrets are never returned.

NameInTypeRequiredDescription
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
StatusBodyDescription
200application/json, PagedResultIdpConnectionViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold mdm:read.
500application/problem+json, ProblemDetailsNo client context in request.

200 response body

FieldTypeDescription
itemsrequiredarray of IdpConnectionView
items[].allowedPurposesrequiredarray of string
items[].autoCreateNamedUserrequiredboolean
items[].clientIdrequiredstring
items[].displayNamerequiredstring
items[].hasClientSecretrequiredboolean
items[].hostedDomainstring or null
items[].identifierClaimrequiredstring
items[].issuerrequiredstring
items[].providerrequiredstring
items[].publicIdrequiredstring
items[].rowVersionrequiredinteger

int64.

items[].scopesrequiredarray of string
items[].secretExpiresAtstring (date-time) or null
items[].staterequiredstring
items[].tenantHintstring or null
pagerequiredinteger
pageSizerequiredinteger
totalrequiredinteger
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/mdm/idp-connections?page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTmdm:managetenant facehosteditmspremote

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

Source: [object Object]

createMdmIdpConnection adds an identity provider for device enrollment.

Required, sent as application/json.

FieldTypeDescription
allowedPurposesrequiredarray of string
autoCreateNamedUserrequiredboolean
clientIdrequiredstring
clientSecretrequiredstring
displayNamerequiredstring
hostedDomainrequiredstring
identifierClaimrequiredstring
issuerrequiredstring
providerrequiredstring
scopesrequiredarray of string
secretExpiresAtstring (date-time) or null
tenantHintrequiredstring
StatusBodyDescription
201application/json, IdpConnectionViewCreated.
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 mdm:manage.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe identity provider could not be saved.
500application/problem+json, ProblemDetailsNo client context in request.

201 response body

FieldTypeDescription
allowedPurposesrequiredarray of string
autoCreateNamedUserrequiredboolean
clientIdrequiredstring
displayNamerequiredstring
hasClientSecretrequiredboolean
hostedDomainstring or null
identifierClaimrequiredstring
issuerrequiredstring
providerrequiredstring
publicIdrequiredstring
rowVersionrequiredinteger

int64.

scopesrequiredarray of string
secretExpiresAtstring (date-time) or null
staterequiredstring
tenantHintstring or null
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
curl -X POST 'https://depot.example.com/api/v1/mdm/idp-connections' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"allowedPurposes": [
"string"
],
"autoCreateNamedUser": false,
"clientId": "string",
"clientSecret": "string",
"displayName": "string",
"hostedDomain": "string",
"identifierClaim": "string",
"issuer": "string",
"provider": "string",
"scopes": [
"string"
],
"secretExpiresAt": "2026-01-01T00:00:00Z",
"tenantHint": "string"
}'

PATCH /api/v1/mdm/idp-connections/{publicId}

Section titled “PATCH /api/v1/mdm/idp-connections/{publicId}”

PATCHmdm:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

updateMdmIdpConnection changes an identity provider.

Send clientSecret only to replace it; the provider type cannot change.

NameInTypeRequiredDescription
publicIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
allowedPurposesarray of string or null
autoCreateNamedUserboolean or null
clearSecretExpiryrequiredboolean
clientIdstring or null
clientSecretstring or null
displayNamestring or null
hostedDomainstring or null
identifierClaimstring or null
issuerstring or null
rowVersionrequiredinteger

int64.

scopesarray of string or null
secretExpiresAtstring (date-time) or null
statestring or null
tenantHintstring or null
StatusBodyDescription
200application/json, IdpConnectionViewSuccess.
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 mdm:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThis identity provider changed since you loaded it. Reload and try again.
500application/problem+json, ProblemDetailsNo client context in request.

200 response body

FieldTypeDescription
allowedPurposesrequiredarray of string
autoCreateNamedUserrequiredboolean
clientIdrequiredstring
displayNamerequiredstring
hasClientSecretrequiredboolean
hostedDomainstring or null
identifierClaimrequiredstring
issuerrequiredstring
providerrequiredstring
publicIdrequiredstring
rowVersionrequiredinteger

int64.

scopesrequiredarray of string
secretExpiresAtstring (date-time) or null
staterequiredstring
tenantHintstring 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 PATCH 'https://depot.example.com/api/v1/mdm/idp-connections/<publicId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"allowedPurposes": [
"string"
],
"autoCreateNamedUser": false,
"clearSecretExpiry": false,
"clientId": "string",
"clientSecret": "string",
"displayName": "string",
"hostedDomain": "string",
"identifierClaim": "string",
"issuer": "string",
"rowVersion": 0,
"scopes": [
"string"
],
"secretExpiresAt": "2026-01-01T00:00:00Z",
"state": "string",
"tenantHint": "string"
}'

DELETE /api/v1/mdm/idp-connections/{publicId}

Section titled “DELETE /api/v1/mdm/idp-connections/{publicId}”

DELETEmdm:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

deleteMdmIdpConnection removes an identity provider.

Links that use it stop working.

NameInTypeRequiredDescription
publicIdpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold mdm:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client context in request.
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 DELETE 'https://depot.example.com/api/v1/mdm/idp-connections/<publicId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/mdm/idp-connections/{publicId}/test

Section titled “POST /api/v1/mdm/idp-connections/{publicId}/test”

POSTmdm:managetenant facehosteditmspremote

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

Source: [object Object]

testMdmIdpConnection checks that the provider’s sign-in settings (discovery) and signing keys (JWKS) can be fetched.

It needs no user.

NameInTypeRequiredDescription
publicIdpathstringYesA uuid.
StatusBodyDescription
200application/json, IdpTestViewSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold mdm:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client context in request.

200 response body

FieldTypeDescription
checksrequiredarray of Check
checks[].detailrequiredstring
checks[].namerequiredstring
checks[].okrequiredboolean
okrequiredboolean
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
curl -X POST 'https://depot.example.com/api/v1/mdm/idp-connections/<publicId>/test' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

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.