Skip to content

Depot mdmpki

Registers the device-PKI 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]

getMdmPki shows the client’s device certificate authority: whether it exists, its fingerprints and certificate, the SCEP, CRL and CA download URLs, and the current revocation list.

StatusBodyDescription
200application/json, MdmPkiViewSuccess.
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
caCertHttpsUrlstring or null
caCertPemstring or null
caCertUrlstring or null
createdAtstring (date-time) or null
crlMdmPkiCrlView
crl.nextUpdaterequiredstring (date-time)
crl.numberrequiredinteger

int64.

crl.revokedCountrequiredinteger
crl.thisUpdaterequiredstring (date-time)
crlHttpsUrlstring or null
crlUrlstring or null
existsrequiredboolean
keyAlgorithmstring or null
notAfterstring (date-time) or null
notBeforestring (date-time) or null
scepUrlstring or null
sha1Thumbprintstring or null
sha256Fingerprintstring or null
subjectstring 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/pki' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTmdm:managetenant facehosteditmspremoteNot fully resolved

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

What this page does not know
  • response-status

These are parts of the route the extractor could not read from the source. Everything else on this page came straight from it.

Source: [object Object]

createMdmPkiCa creates the client’s device certificate authority.

It is idempotent: 201 when this call created it, 200 when it already existed.

StatusBodyDescription
200application/json, MdmPkiViewSuccess.
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:manage.
500application/problem+json, ProblemDetailsNo client context in request.

200 response body

FieldTypeDescription
caCertHttpsUrlstring or null
caCertPemstring or null
caCertUrlstring or null
createdAtstring (date-time) or null
crlMdmPkiCrlView
crl.nextUpdaterequiredstring (date-time)
crl.numberrequiredinteger

int64.

crl.revokedCountrequiredinteger
crl.thisUpdaterequiredstring (date-time)
crlHttpsUrlstring or null
crlUrlstring or null
existsrequiredboolean
keyAlgorithmstring or null
notAfterstring (date-time) or null
notBeforestring (date-time) or null
scepUrlstring or null
sha1Thumbprintstring or null
sha256Fingerprintstring or null
subjectstring 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/pki/ca' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETmdm:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

listMdmPkiCertificates lists the certificates the device PKI issued, newest first.

enrollmentId and agentId narrow it; status=valid lists unrevoked certificates, status=revoked revoked ones.

NameInTypeRequiredDescription
agentIdquerystringNo
enrollmentIdquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
statusquerystringNo
StatusBodyDescription
200application/json, PagedResultMdmPkiCertificateViewSuccess.
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 MdmPkiCertificateView
items[].agentIdstring or null
items[].createdAtrequiredstring (date-time)
items[].enrollmentIdstring or null
items[].entryrequiredstring
items[].generationrequiredinteger
items[].notAfterrequiredstring (date-time)
items[].notBeforerequiredstring (date-time)
items[].renewAtrequiredstring (date-time)
items[].revocationReasonstring or null
items[].revokedAtstring (date-time) or null
items[].scoperequiredstring
items[].serialrequiredstring
items[].sha256Fingerprintrequiredstring
items[].statusrequiredstring
items[].subjectDnrequiredstring
items[].supersededAtstring (date-time) 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/pki/certificates?agentId=<agentId>&enrollmentId=<enrollmentId>&page=0&pageSize=0&status=<status>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/mdm/pki/certificates/{serial}/revoke

Section titled “POST /api/v1/mdm/pki/certificates/{serial}/revoke”

POSTmdm:managetenant facehosteditmspremote

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

Source: [object Object]

revokeMdmPkiCertificate revokes one device certificate and republishes the revocation list.

reason is unspecified (the default), key_compromise, superseded or cessation_of_operation. Revoking a revoked certificate changes nothing and answers it as it is.

NameInTypeRequiredDescription
serialpathstringYes

Required, sent as application/json.

FieldTypeDescription
reasonrequiredstring
StatusBodyDescription
200application/json, MdmPkiCertificateViewSuccess.
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 device certificate has that serial.
500application/problem+json, ProblemDetailsNo client context in request.

200 response body

FieldTypeDescription
agentIdstring or null
createdAtrequiredstring (date-time)
enrollmentIdstring or null
entryrequiredstring
generationrequiredinteger
notAfterrequiredstring (date-time)
notBeforerequiredstring (date-time)
renewAtrequiredstring (date-time)
revocationReasonstring or null
revokedAtstring (date-time) or null
scoperequiredstring
serialrequiredstring
sha256Fingerprintrequiredstring
statusrequiredstring
subjectDnrequiredstring
supersededAtstring (date-time) 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/pki/certificates/<serial>/revoke' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"reason": "string"
}'

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.