Skip to content

Depot mdmtimeline

Registers the per-endpoint status, timeline and command list 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.

GET /api/v1/endpoints/{agentID}/mdm/commands

Section titled “GET /api/v1/endpoints/{agentID}/mdm/commands”

GETmdm:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

listMdmCommands lists the MDM commands sent to a device, newest first.

NameInTypeRequiredDescription
agentIDpathstringYesA uuid.
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
statequerystring, one of acknowledged, canceled, delivered, error, expired, not_now, pushed, queuedNoComma-separated set. An unrecognised value is refused.
StatusBodyDescription
200application/json, PagedResultMdmCommandViewSuccess.
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.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client context in request.

200 response body

FieldTypeDescription
itemsrequiredarray of MdmCommandView
items[].actorUserIdstring or null
items[].approvalIdstring or null
items[].commandIdrequiredstring
items[].completedAtstring (date-time) or null
items[].deliveredAtstring (date-time) or null
items[].expiresAtstring (date-time) or null
items[].originrequiredstring
items[].pushedAtstring (date-time) or null
items[].queuedAtrequiredstring (date-time)
items[].reasonCodestring or null
items[].requestTyperequiredstring
items[].staterequiredstring
items[].verbrequiredstring
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/endpoints/<agentID>/mdm/commands?page=0&pageSize=0&state=acknowledged' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GET /api/v1/endpoints/{agentID}/mdm/settings

Section titled “GET /api/v1/endpoints/{agentID}/mdm/settings”

GETmdm:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

listMdmSettingStatus lists the current delivery stage of every setting on an MDM device, with a plain reason and suggested fix where there is one.

NameInTypeRequiredDescription
agentIDpathstringYesA uuid.
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
StatusBodyDescription
200application/json, PagedResultMdmSettingStatusViewSuccess.
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.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client context in request.

200 response body

FieldTypeDescription
itemsrequiredarray of MdmSettingStatusView
items[].artifactRefstring or null
items[].providerrequiredstring
items[].reasonMdmReasonView

mdmReasonView is the wire Reason (contract 7.3).

items[].reason.fixrequiredstring
items[].reason.keyrequiredstring
items[].reason.plainrequiredstring
items[].reason.retryablerequiredboolean
items[].reasonCodestring or null
items[].settingKeyrequiredstring
items[].stagerequiredstring
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/endpoints/<agentID>/mdm/settings?page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GET /api/v1/endpoints/{agentID}/mdm/timeline

Section titled “GET /api/v1/endpoints/{agentID}/mdm/timeline”

GETmdm:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

listMdmTimeline lists an MDM device’s delivery events, newest first, optionally for one setting or command and since a time.

The device’s raw response is included only with raw=true and the mdm:command permission, because it can carry personal data.

NameInTypeRequiredDescription
agentIDpathstringYesA uuid.
commandIdquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
rawquerystringNo
settingKeyquerystringNo
sincequerystringNo
StatusBodyDescription
200application/json, PagedResultMdmTimelineEventViewSuccess.
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.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client context in request.

200 response body

FieldTypeDescription
itemsrequiredarray of MdmTimelineEventView
items[].artifactRefstring or null
items[].commandIdstring or null
items[].idrequiredinteger

int64.

items[].kindrequiredstring
items[].occurredAtrequiredstring (date-time)
items[].rawDetailstring or null
items[].reasonMdmReasonView

mdmReasonView is the wire Reason (contract 7.3).

items[].reason.fixrequiredstring
items[].reason.keyrequiredstring
items[].reason.plainrequiredstring
items[].reason.retryablerequiredboolean
items[].reasonCodestring or null
items[].settingKeystring or null
items[].stagerequiredstring
items[].syncIdstring 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/endpoints/<agentID>/mdm/timeline?commandId=<commandId>&page=0&pageSize=0&raw=<raw>&settingKey=<settingKey>&since=<since>' \
-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.