Skip to content

Depot endpointtransfer

Registers the transfer routes on the tenant API.

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

POSTendpoint:writetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

transfer starts moving an endpoint into another client the practice manages.

It answers 202 with the A-side command to poll: dispatched for a connected endpoint, queued for an offline one, which moves the next time it connects.

NameInTypeRequiredDescription
agentIDpathstringYes

Required, sent as application/json.

FieldTypeDescription
siteIdstring or null
targetClientIdrequiredstring
StatusBodyDescription
202application/json, EndpointTransferResponseAccepted.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsMoving an endpoint needs permission to enroll endpoints.
404application/problem+json, ProblemDetailsEndpoint not found.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client context in request.
502application/problem+json, ProblemDetailsThe request was refused.
503application/problem+json, ProblemDetailsThis Depot has no agent server URL configured.

202 response body

FieldTypeDescription
commandIdrequiredstring
expiresAtrequiredstring (date-time)
siteIdstring or null
staterequiredstring
targetClientIdrequiredstring
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/endpoints/<agentID>/transfer' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"siteId": "string",
"targetClientId": "string"
}'

DELETE /api/v1/endpoints/{agentID}/transfer

Section titled “DELETE /api/v1/endpoints/{agentID}/transfer”

DELETEendpoint:writetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

cancel withdraws a transfer that is still queued for an offline endpoint.

Once it has been armed it is under way and answers 409; nothing was minted for a queued one, so there is nothing to revoke. 204 on success.

NameInTypeRequiredDescription
agentIDpathstringYes
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsMoving an endpoint needs permission to enroll endpoints.
404application/problem+json, ProblemDetailsThis endpoint has no transfer in progress.
409application/problem+json, ProblemDetailsThis transfer is already under way and cannot be canceled.
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>/transfer' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTendpoint:writetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

bulkTransfer moves up to 500 endpoints into one client and site.

B is resolved once; each endpoint is then checked and started on its own, so one refusal never stops the rest. It answers 200 with one item per endpoint, in request order.

Required, sent as application/json.

FieldTypeDescription
agentIdsrequiredarray of string
siteIdstring or null
targetClientIdrequiredstring
StatusBodyDescription
200application/json, objectSuccess.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsMoving an endpoint needs permission to enroll endpoints.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client context in request.
502application/problem+json, ProblemDetailsThe request was refused.
503application/problem+json, ProblemDetailsThis Depot has no agent server URL configured.
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/endpoints/bulk/transfer' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"agentIds": [
"string"
],
"siteId": "string",
"targetClientId": "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.