Skip to content

Depot endpoints

Registers the endpoint registry routes on mux.

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

GETendpoint:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

List endpoints

NameInTypeRequiredDescription
cpuquerystringNo
deviceClassquerystringNo
dirquerystring, one of asc, descNoSort direction.
hasAgentquerystringNo
idsquerystringNo
manufacturerquerystringNo
maxMemoryBytesquerystringNo
minMemoryBytesquerystringNo
modelquerystringNo
osquerystringNo
osFamilyquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
qquerystringNo
rolequerystringNo
serialquerystringNo
sitequerystringNo
softwarequerystringNo
sortquerystring, one of health, lastSeen, memory, model, name, os, userNoSort key.
statusquerystringNo
userquerystringNo
virtualizationquerystringNo
StatusBodyDescription
200application/json, PagedResultEndpointSummarySuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold endpoint:read.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of EndpointSummary
items[].agentIdrequiredstring
items[].aliasstring
items[].assetTagstring
items[].capabilitiesrequiredarray of string
items[].connectedrequiredboolean
items[].deviceClassrequiredstring, one of computer, mobile, tv
items[].hasAgentrequiredboolean
items[].healthScorerequiredinteger
items[].hostnamerequiredstring
items[].lastSeenAtstring (date-time) or null
items[].loggedInUserrequiredstring
items[].manufacturerrequiredstring
items[].mdmEnrollmentPublicIdstring or null
items[].mdmHeldboolean
items[].meteredboolean or null
items[].modelrequiredstring
items[].osDisplayNamerequiredstring
items[].osFamilyrequiredstring
items[].osVersionrequiredstring
items[].ownershiprequiredstring
items[].retiredAtstring (date-time) or null
items[].serialNumberrequiredstring
items[].serverRolesrequiredarray of string
items[].siteIdstring
items[].siteNamestring
items[].statusrequiredstring
items[].totalMemoryBytesrequiredinteger

int64.

items[].virtualPlatformstring
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?cpu=<cpu>&deviceClass=<deviceClass>&dir=asc&hasAgent=<hasAgent>&ids=<ids>&manufacturer=<manufacturer>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETendpoint:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Get endpoint

NameInTypeRequiredDescription
agentIDpathstringYes
StatusBodyDescription
200application/json, EndpointDetailSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold endpoint:read.
404application/problem+json, ProblemDetailsEndpoint not found.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
agentIdrequiredstring
aliasstring
appliedPolicyHashrequiredstring
assetTagstring
capabilitiesrequiredarray of string
checkInrequiredany

Arbitrary JSON.

connectedrequiredboolean
cpuModelrequiredstring
deviceClassrequiredstring, one of computer, mobile, tv
hasAgentrequiredboolean
healthScorerequiredinteger
hostnamerequiredstring
inventoryrequiredany

Arbitrary JSON.

inventoryUpdatedAtstring (date-time) or null
lastSeenAtstring (date-time) or null
loggedInUserrequiredstring
manufacturerrequiredstring
mdmEnrollmentPublicIdstring or null
mdmHeldboolean
meteredboolean or null
modelrequiredstring
osDisplayNamerequiredstring
osFamilyrequiredstring
osVersionrequiredstring
ownershiprequiredstring
retiredAtstring (date-time) or null
roamingarray of RoamingNote
roaming[].agentIdsrequiredarray of string
roaming[].clientIdrequiredstring
roaming[].clientNamerequiredstring
roaming[].kindsrequiredarray of string
serialNumberrequiredstring
serverRolesrequiredarray of string
siteIdstring
siteNamestring
statusrequiredstring
totalMemoryBytesrequiredinteger

int64.

transferEndpointTransferState

endpointTransferState is the endpoint detail's transfer field: the open transfer, queued or in progress.

transfer.commandIdrequiredstring
transfer.queuedAtstring (date-time) or null
transfer.staterequiredstring
transfer.targetClientIdrequiredstring
transfer.targetClientNamerequiredstring
virtualPlatformstring
wakeWakeBlock

wakeBlock is whether Wake is offered for an endpoint and why not: the wake-status body and endpointDetail.wake.

wake.armedboolean or null
wake.availablerequiredboolean
wake.fastStartupboolean or null
wake.forceablerequiredboolean
wake.lastRequestWakeRequestView

wakeRequestView is a WakeRequest as the wake block's lastRequest.

wake.lastRequest.createdAtrequiredstring (date-time)
wake.lastRequest.originrequiredstring
wake.lastRequest.reasonstring or null
wake.lastRequest.resolvedAtstring (date-time) or null
wake.lastRequest.returnOutcomestring or null
wake.lastRequest.returnReasonstring or null
wake.lastRequest.returnToSleeprequiredboolean
wake.lastRequest.staterequiredstring
wake.lastRequest.wakeRequestIdrequiredstring
wake.reasonstring or null
wake.senderCountrequiredinteger
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>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

DELETEendpoint:writetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Retire endpoint

NameInTypeRequiredDescription
agentIDpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
reasonrequiredstring
StatusBodyDescription
204NoneSuccess, with no body.
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 endpoint:write.
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/endpoints/<agentID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"reason": "string"
}'

PUTendpoint:writetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

setEndpointAlias writes the operator’s own name for a machine.

AUDITED, because this is the one field on an endpoint that no agent can account for. Everything else on the row can be traced back to what a machine reported; an alias only ever exists because a person typed it, so “who called it that, and what did they call it before” has no other source. Best-effort on the append for the reason every write in this package is: the change is already committed by the time the audit runs, and failing the response over the trail would tell the operator their save did not happen when it did.

NameInTypeRequiredDescription
agentIDpathstringYes

Required, sent as application/json.

FieldTypeDescription
aliasrequiredstring
StatusBodyDescription
200application/json, EndpointDetailSuccess.
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 endpoint:write.
404application/problem+json, ProblemDetailsNo such endpoint.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
agentIdrequiredstring
aliasstring
appliedPolicyHashrequiredstring
assetTagstring
capabilitiesrequiredarray of string
checkInrequiredany

Arbitrary JSON.

connectedrequiredboolean
cpuModelrequiredstring
deviceClassrequiredstring, one of computer, mobile, tv
hasAgentrequiredboolean
healthScorerequiredinteger
hostnamerequiredstring
inventoryrequiredany

Arbitrary JSON.

inventoryUpdatedAtstring (date-time) or null
lastSeenAtstring (date-time) or null
loggedInUserrequiredstring
manufacturerrequiredstring
mdmEnrollmentPublicIdstring or null
mdmHeldboolean
meteredboolean or null
modelrequiredstring
osDisplayNamerequiredstring
osFamilyrequiredstring
osVersionrequiredstring
ownershiprequiredstring
retiredAtstring (date-time) or null
roamingarray of RoamingNote
roaming[].agentIdsrequiredarray of string
roaming[].clientIdrequiredstring
roaming[].clientNamerequiredstring
roaming[].kindsrequiredarray of string
serialNumberrequiredstring
serverRolesrequiredarray of string
siteIdstring
siteNamestring
statusrequiredstring
totalMemoryBytesrequiredinteger

int64.

transferEndpointTransferState

endpointTransferState is the endpoint detail's transfer field: the open transfer, queued or in progress.

transfer.commandIdrequiredstring
transfer.queuedAtstring (date-time) or null
transfer.staterequiredstring
transfer.targetClientIdrequiredstring
transfer.targetClientNamerequiredstring
virtualPlatformstring
wakeWakeBlock

wakeBlock is whether Wake is offered for an endpoint and why not: the wake-status body and endpointDetail.wake.

wake.armedboolean or null
wake.availablerequiredboolean
wake.fastStartupboolean or null
wake.forceablerequiredboolean
wake.lastRequestWakeRequestView

wakeRequestView is a WakeRequest as the wake block's lastRequest.

wake.lastRequest.createdAtrequiredstring (date-time)
wake.lastRequest.originrequiredstring
wake.lastRequest.reasonstring or null
wake.lastRequest.resolvedAtstring (date-time) or null
wake.lastRequest.returnOutcomestring or null
wake.lastRequest.returnReasonstring or null
wake.lastRequest.returnToSleeprequiredboolean
wake.lastRequest.staterequiredstring
wake.lastRequest.wakeRequestIdrequiredstring
wake.reasonstring or null
wake.senderCountrequiredinteger
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 PUT 'https://depot.example.com/api/v1/endpoints/<agentID>/alias' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"alias": "string"
}'

PATCHendpoint:writetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

setEndpointSite moves an endpoint to a site of this client, or clears its site.

Audited as endpoint.site_set with the before and after site. An unchanged site answers 200 with nothing written and nothing audited.

NameInTypeRequiredDescription
agentIDpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
siteIdstring or null
StatusBodyDescription
200application/json, EndpointDetailSuccess.
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 endpoint:write.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsA retired endpoint cannot be moved to a site.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
agentIdrequiredstring
aliasstring
appliedPolicyHashrequiredstring
assetTagstring
capabilitiesrequiredarray of string
checkInrequiredany

Arbitrary JSON.

connectedrequiredboolean
cpuModelrequiredstring
deviceClassrequiredstring, one of computer, mobile, tv
hasAgentrequiredboolean
healthScorerequiredinteger
hostnamerequiredstring
inventoryrequiredany

Arbitrary JSON.

inventoryUpdatedAtstring (date-time) or null
lastSeenAtstring (date-time) or null
loggedInUserrequiredstring
manufacturerrequiredstring
mdmEnrollmentPublicIdstring or null
mdmHeldboolean
meteredboolean or null
modelrequiredstring
osDisplayNamerequiredstring
osFamilyrequiredstring
osVersionrequiredstring
ownershiprequiredstring
retiredAtstring (date-time) or null
roamingarray of RoamingNote
roaming[].agentIdsrequiredarray of string
roaming[].clientIdrequiredstring
roaming[].clientNamerequiredstring
roaming[].kindsrequiredarray of string
serialNumberrequiredstring
serverRolesrequiredarray of string
siteIdstring
siteNamestring
statusrequiredstring
totalMemoryBytesrequiredinteger

int64.

transferEndpointTransferState

endpointTransferState is the endpoint detail's transfer field: the open transfer, queued or in progress.

transfer.commandIdrequiredstring
transfer.queuedAtstring (date-time) or null
transfer.staterequiredstring
transfer.targetClientIdrequiredstring
transfer.targetClientNamerequiredstring
virtualPlatformstring
wakeWakeBlock

wakeBlock is whether Wake is offered for an endpoint and why not: the wake-status body and endpointDetail.wake.

wake.armedboolean or null
wake.availablerequiredboolean
wake.fastStartupboolean or null
wake.forceablerequiredboolean
wake.lastRequestWakeRequestView

wakeRequestView is a WakeRequest as the wake block's lastRequest.

wake.lastRequest.createdAtrequiredstring (date-time)
wake.lastRequest.originrequiredstring
wake.lastRequest.reasonstring or null
wake.lastRequest.resolvedAtstring (date-time) or null
wake.lastRequest.returnOutcomestring or null
wake.lastRequest.returnReasonstring or null
wake.lastRequest.returnToSleeprequiredboolean
wake.lastRequest.staterequiredstring
wake.lastRequest.wakeRequestIdrequiredstring
wake.reasonstring or null
wake.senderCountrequiredinteger
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/endpoints/<agentID>/site' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"siteId": "string"
}'

GETendpoint:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Endpoint facets

StatusBodyDescription
200application/json, EndpointFacetsResponseSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold endpoint:read.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
customFieldsarray of EndpointCustomFieldFacet
customFields[].keyrequiredstring
customFields[].kindrequiredstring
customFields[].labelrequiredstring
customFields[].valuesrequiredarray of string
loggedInUsersrequiredarray of string
manufacturersrequiredarray of string
modelsrequiredarray of string
osDisplayNamesrequiredarray of string
serverRolesrequiredarray of string
softwarerequiredarray of string
tagLabelsrequiredobject
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/filter-options' \
-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.