Skip to content

Depot mdmenrollments

Registers the enrollment 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]

getEndpointMdm returns an endpoint’s device management summary: its device class, whether it runs the agent, its ownership, its open enrollment, the open Sync now, the commands still in flight and lost mode.

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

200 response body

FieldTypeDescription
deviceClassrequiredstring
enrollmentMdmEnrollmentView

mdmEnrollmentView is the wire MdmEnrollment (contract 7.3).

enrollment.agentIdrequiredstring
enrollment.enrolledAtstring (date-time) or null
enrollment.enrolledByNamedUserIdstring or null
enrollment.enrollmentTyperequiredstring
enrollment.lastCheckInAtstring (date-time) or null
enrollment.lastStatusReportAtstring (date-time) or null
enrollment.ownershiprequiredstring
enrollment.providerrequiredstring
enrollment.publicIdrequiredstring
enrollment.pushTokenStalerequiredboolean
enrollment.serialNumberstring or null
enrollment.staterequiredstring
enrollment.supervisedrequiredboolean
enrollment.unenrollReasonstring or null
enrollment.unenrolledAtstring (date-time) or null
hasAgentrequiredboolean
lastLocateLocation

Location is a device's reported position, sealed as JSON on the session.

lastLocate.accuracyMetersrequirednumber

double.

lastLocate.atrequiredstring (date-time)
lastLocate.latrequirednumber

double.

lastLocate.lonrequirednumber

double.

lostModeLostModeView

lostModeView is the wire LostMode (contract 7.3) for EndpointMdm.lostMode.

lostMode.disabledAtstring (date-time) or null
lostMode.enabledAtrequiredstring (date-time)
lostMode.footnotestring or null
lostMode.lastLocationLocation

Location is a device's reported position, sealed as JSON on the session.

lostMode.lastLocation.accuracyMetersrequirednumber

double.

lostMode.lastLocation.atrequiredstring (date-time)
lostMode.lastLocation.latrequirednumber

double.

lostMode.lastLocation.lonrequirednumber

double.

lostMode.messagestring or null
lostMode.phonestring or null
lostMode.publicIdrequiredstring
lostMode.staterequiredstring
lostMode.ticketIdstring or null
openSyncMdmSyncView

mdmSyncView is the wire MdmSync (contract 7.3).

openSync.confirmedAtstring (date-time) or null
openSync.expiresAtrequiredstring (date-time)
openSync.publicIdrequiredstring
openSync.pushedAtstring (date-time) or null
openSync.reasonCodestring or null
openSync.requestedAtrequiredstring (date-time)
openSync.staterequiredstring
ownershiprequiredstring
pendingCommandsrequiredinteger
updateOsNowRefusalstring 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/endpoints/<agentID>/mdm' \
-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]

listMdmEnrollments lists device management enrollments, open ones unless state says otherwise.

NameInTypeRequiredDescription
agentIdquerystringNo
ownershipquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
providerquerystring, one of android, apple, fake, windowsNoComma-separated set. An unrecognised value is refused.
statequerystring, one of active, failed, held, pending, unenrolled, unenrollingNoComma-separated set. An unrecognised value is refused.
StatusBodyDescription
200application/json, PagedResultMdmEnrollmentViewSuccess.
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 MdmEnrollmentView
items[].agentIdrequiredstring
items[].enrolledAtstring (date-time) or null
items[].enrolledByNamedUserIdstring or null
items[].enrollmentTyperequiredstring
items[].lastCheckInAtstring (date-time) or null
items[].lastStatusReportAtstring (date-time) or null
items[].ownershiprequiredstring
items[].providerrequiredstring
items[].publicIdrequiredstring
items[].pushTokenStalerequiredboolean
items[].serialNumberstring or null
items[].staterequiredstring
items[].supervisedrequiredboolean
items[].unenrollReasonstring or null
items[].unenrolledAtstring (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/enrollments?agentId=<agentId>&ownership=<ownership>&page=0&pageSize=0&provider=android&state=active' \
-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.