Skip to content

Depot mdmvault

Registers the vault and practice push certificate routes on mspAPIMux.

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:readmsp facemspIdempotent

Source: [object Object]

getMdmPracticeApnsFallback shows the practice’s shared Apple push certificate, used by clients that have none of their own.

StatusBodyDescription
200application/json, PracticeApnsStatusViewSuccess.
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, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsThe practice push certificate is not available on this Depot.

200 response body

FieldTypeDescription
activePracticeApnsView

practiceApnsView is the practice's shared push certificate.

active.appleAccountOwnerstring or null
active.createdAtrequiredstring (date-time)
active.notAfterstring (date-time) or null
active.publicIdrequiredstring
active.staterequiredstring
active.topicstring or null
expiresInDaysinteger 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/mdm/practice/apns-fallback' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/mdm/practice/apns-fallback/certificate

Section titled “POST /api/v1/mdm/practice/apns-fallback/certificate”

POSTmdm:managemsp facemspIdempotent

Source: [object Object]

uploadMdmPracticeApnsCertificate completes the practice push certificate request with the certificate Apple issued.

A renewal must keep the push topic, because every client on the shared certificate is bound to it.

Required, sent as application/json.

FieldTypeDescription
certPemrequiredstring
pendingIdrequiredstring
StatusBodyDescription
200application/json, PracticeApnsStatusViewSuccess.
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.
409application/problem+json, ProblemDetailsThe push certificate changed while you were working. Reload and try again.
422application/problem+json, ProblemDetailsThe practice has no shared push certificate yet. Set one up under Device management > Credential vault in the MSP console first.
429application/problem+json, ProblemDetailsToo many requests to Outpost. Try again in a few minutes.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsThe practice push certificate is not available on this Depot.

200 response body

FieldTypeDescription
activePracticeApnsView

practiceApnsView is the practice's shared push certificate.

active.appleAccountOwnerstring or null
active.createdAtrequiredstring (date-time)
active.notAfterstring (date-time) or null
active.publicIdrequiredstring
active.staterequiredstring
active.topicstring or null
expiresInDaysinteger 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 POST 'https://depot.example.com/api/v1/mdm/practice/apns-fallback/certificate' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"certPem": "string",
"pendingId": "string"
}'

POST /api/v1/mdm/practice/apns-fallback/csr

Section titled “POST /api/v1/mdm/practice/apns-fallback/csr”

POSTmdm:managemsp facemspIdempotent

Source: [object Object]

createMdmPracticeApnsCsr starts a new or renewed practice push certificate and returns the file to upload at Apple’s push certificates portal.

Required, sent as application/json.

FieldTypeDescription
appleAccountOwnerstring or null
StatusBodyDescription
200application/json, PracticeApnsCsrViewSuccess.
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.
409application/problem+json, ProblemDetailsThe push certificate changed while you were working. Reload and try again.
422application/problem+json, ProblemDetailsThe practice has no shared push certificate yet. Set one up under Device management > Credential vault in the MSP console first.
429application/problem+json, ProblemDetailsToo many requests to Outpost. Try again in a few minutes.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsThe practice push certificate is not available on this Depot.

200 response body

FieldTypeDescription
pendingrequiredPracticeApnsView

practiceApnsView is the practice's shared push certificate.

pending.appleAccountOwnerstring or null
pending.createdAtrequiredstring (date-time)
pending.notAfterstring (date-time) or null
pending.publicIdrequiredstring
pending.staterequiredstring
pending.topicstring or null
plistB64requiredstring
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 POST 'https://depot.example.com/api/v1/mdm/practice/apns-fallback/csr' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"appleAccountOwner": "string"
}'

GETmdm:readmsp facemspIdempotent

Source: [object Object]

listMdmPracticeCredentials lists every expiring device management credential across all clients and the practice, soonest expiry first.

Removed credentials are hidden unless status asks for them.

NameInTypeRequiredDescription
clientIdquerystringNo
kindquerystring, one of abm, android_enterprise, apns, entra_app, idp, vpp, zero_touchNoComma-separated set. An unrecognised value is refused.
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
statusquerystring, one of error, expired, expiring, ok, removedNoComma-separated set. An unrecognised value is refused.
StatusBodyDescription
200application/json, PagedResultMdmCredentialViewSuccess.
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, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsThe credential vault is not available on this Depot.

200 response body

FieldTypeDescription
itemsrequiredarray of MdmCredentialView
items[].alertedThresholdsrequiredarray of integer
items[].clientIdstring or null
items[].clientNamestring or null
items[].credentialIdrequiredstring
items[].displayNamerequiredstring
items[].expiresAtstring (date-time) or null
items[].expiresInDaysinteger or null
items[].kindrequiredstring
items[].ownerstring or null
items[].statusrequiredstring
items[].termsPendingrequiredboolean
items[].updatedAtrequiredstring (date-time)
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/practice/credentials?clientId=<clientId>&kind=abm&page=0&pageSize=0&status=error' \
-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.