Skip to content

Depot backup

Registers section 10’s 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.

POST /api/v1/backup/connector-devices/{publicId}/link

Section titled “POST /api/v1/backup/connector-devices/{publicId}/link”

POSTbackup:managetenant facehosteditmspremote

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

Source: [object Object]

linkConnectorDevice links a vendor device to an endpoint by hand, or unlinks it with a null agentId.

A manual link is never replaced by a later poll.

NameInTypeRequiredDescription
publicIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
agentIdrequiredany

Arbitrary JSON.

StatusBodyDescription
200application/json, ConnectorDeviceSuccess.
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 backup:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsCould not read the connector.
503application/problem+json, ProblemDetailsNo client database for this request.

200 response body

FieldTypeDescription
connectorPublicIdrequiredstring
detailrequiredstring
externalIdrequiredstring
hostnamerequiredstring
lastAttemptAtstring (date-time) or null
lastSeenAtrequiredstring (date-time)
lastSuccessAtstring (date-time) or null
macsrequiredarray of string
matchKindrequiredstring
matchedAgentIdstring or null
outcomerequiredstring
productrequiredstring
protectedBytesinteger or null

int64.

publicIdrequiredstring
serialrequiredstring
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/backup/connector-devices/<publicId>/link' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"agentId": "string"
}'

GETbackup:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

listConnectors lists the client’s backup vendor connectors.

NameInTypeRequiredDescription
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
StatusBodyDescription
200application/json, PagedResultConnectorSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold backup:read.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsNo client database for this request.

200 response body

FieldTypeDescription
itemsrequiredarray of Connector
items[].configrequiredany

Arbitrary JSON.

items[].createdAtrequiredstring (date-time)
items[].credentialPublicIdstring or null
items[].enabledrequiredboolean
items[].lastPollAtstring (date-time) or null
items[].lastPollDevicesinteger or null
items[].lastPollErrorstring or null
items[].lastPollOkboolean or null
items[].namerequiredstring
items[].publicIdrequiredstring
items[].rowVersionrequiredinteger

int64.

items[].updatedAtrequiredstring (date-time)
items[].vendorrequiredstring
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/backup/connectors?page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTbackup:managetenant facehosteditmspremote

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

Source: [object Object]

createConnector adds a backup vendor connector.

Required, sent as application/json.

FieldTypeDescription
configrequiredany

Arbitrary JSON.

credentialPublicIdstring or null
enabledboolean or null
inlineCredentialInlineShareCredential

inlineShareCredential is a share credential typed into the storage form rather than picked from the vault.

inlineCredential.namerequiredstring
inlineCredential.secretrequiredstring
inlineCredential.usernamerequiredstring
namestring or null
rowVersioninteger or null

int64.

vendorstring or null
StatusBodyDescription
201application/json, ConnectorCreated.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsSaving a new credential to the vault needs the vault:manage permission. Pick a saved credential instead.
404application/problem+json, ProblemDetailsThat credential is not in the vault.
409application/problem+json, ProblemDetailsA connector with that name already exists.
500application/problem+json, ProblemDetailsCould not save the connector.
503application/problem+json, ProblemDetailsNo client database for this request.

201 response body

FieldTypeDescription
configrequiredany

Arbitrary JSON.

createdAtrequiredstring (date-time)
credentialPublicIdstring or null
enabledrequiredboolean
lastPollAtstring (date-time) or null
lastPollDevicesinteger or null
lastPollErrorstring or null
lastPollOkboolean or null
namerequiredstring
publicIdrequiredstring
rowVersionrequiredinteger

int64.

updatedAtrequiredstring (date-time)
vendorrequiredstring
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/backup/connectors' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"config": "string",
"credentialPublicId": "string",
"enabled": false,
"inlineCredential": {
"name": "string",
"secret": "string",
"username": "string"
},
"name": "string",
"rowVersion": 0,
"vendor": "string"
}'

GETbackup:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

getConnector reads one backup vendor connector.

NameInTypeRequiredDescription
publicIdpathstringYesA uuid.
StatusBodyDescription
200application/json, ConnectorSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold backup:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsCould not read the connector.
503application/problem+json, ProblemDetailsNo client database for this request.

200 response body

FieldTypeDescription
configrequiredany

Arbitrary JSON.

createdAtrequiredstring (date-time)
credentialPublicIdstring or null
enabledrequiredboolean
lastPollAtstring (date-time) or null
lastPollDevicesinteger or null
lastPollErrorstring or null
lastPollOkboolean or null
namerequiredstring
publicIdrequiredstring
rowVersionrequiredinteger

int64.

updatedAtrequiredstring (date-time)
vendorrequiredstring
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/backup/connectors/<publicId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PATCH /api/v1/backup/connectors/{publicId}

Section titled “PATCH /api/v1/backup/connectors/{publicId}”

PATCHbackup:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

patchConnector edits a connector’s name, credential, configuration or enabled flag.

rowVersion is required.

NameInTypeRequiredDescription
publicIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
configrequiredany

Arbitrary JSON.

credentialPublicIdstring or null
enabledboolean or null
inlineCredentialInlineShareCredential

inlineShareCredential is a share credential typed into the storage form rather than picked from the vault.

inlineCredential.namerequiredstring
inlineCredential.secretrequiredstring
inlineCredential.usernamerequiredstring
namestring or null
rowVersioninteger or null

int64.

vendorstring or null
StatusBodyDescription
200application/json, ConnectorSuccess.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsSaving a new credential to the vault needs the vault:manage permission. Pick a saved credential instead.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe connector changed since it was read, or another connector has that name. Reload and try again.
500application/problem+json, ProblemDetailsCould not read the connector.
503application/problem+json, ProblemDetailsNo client database for this request.

200 response body

FieldTypeDescription
configrequiredany

Arbitrary JSON.

createdAtrequiredstring (date-time)
credentialPublicIdstring or null
enabledrequiredboolean
lastPollAtstring (date-time) or null
lastPollDevicesinteger or null
lastPollErrorstring or null
lastPollOkboolean or null
namerequiredstring
publicIdrequiredstring
rowVersionrequiredinteger

int64.

updatedAtrequiredstring (date-time)
vendorrequiredstring
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/backup/connectors/<publicId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"config": "string",
"credentialPublicId": "string",
"enabled": false,
"inlineCredential": {
"name": "string",
"secret": "string",
"username": "string"
},
"name": "string",
"rowVersion": 0,
"vendor": "string"
}'

DELETE /api/v1/backup/connectors/{publicId}

Section titled “DELETE /api/v1/backup/connectors/{publicId}”

DELETEbackup:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

deleteConnector removes a connector and the backup statuses it wrote.

NameInTypeRequiredDescription
publicIdpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold backup:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsCould not read the connector.
503application/problem+json, ProblemDetailsNo client database for this 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/backup/connectors/<publicId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GET /api/v1/backup/connectors/{publicId}/devices

Section titled “GET /api/v1/backup/connectors/{publicId}/devices”

GETbackup:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

listConnectorDevices lists the machines a connector reported, optionally only the matched or the unmatched ones.

NameInTypeRequiredDescription
publicIdpathstringYesA uuid.
matchedquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
StatusBodyDescription
200application/json, PagedResultConnectorDeviceSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold backup:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsCould not read the connector.
503application/problem+json, ProblemDetailsNo client database for this request.

200 response body

FieldTypeDescription
itemsrequiredarray of ConnectorDevice
items[].connectorPublicIdrequiredstring
items[].detailrequiredstring
items[].externalIdrequiredstring
items[].hostnamerequiredstring
items[].lastAttemptAtstring (date-time) or null
items[].lastSeenAtrequiredstring (date-time)
items[].lastSuccessAtstring (date-time) or null
items[].macsrequiredarray of string
items[].matchKindrequiredstring
items[].matchedAgentIdstring or null
items[].outcomerequiredstring
items[].productrequiredstring
items[].protectedBytesinteger or null

int64.

items[].publicIdrequiredstring
items[].serialrequiredstring
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/backup/connectors/<publicId>/devices?matched=<matched>&page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/backup/connectors/{publicId}/poll

Section titled “POST /api/v1/backup/connectors/{publicId}/poll”

POSTbackup:managetenant facehosteditmspremote

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

Source: [object Object]

pollConnector queues an immediate poll of the connector.

NameInTypeRequiredDescription
publicIdpathstringYesA uuid.
StatusBodyDescription
202application/json, objectAccepted.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold backup:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsCould not read the connector.
503application/problem+json, ProblemDetailsNo client database for this request.
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/backup/connectors/<publicId>/poll' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/backup/connectors/{publicId}/test

Section titled “POST /api/v1/backup/connectors/{publicId}/test”

POSTbackup:managetenant facehosteditmspremote

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

Source: [object Object]

testConnector polls the vendor once with the connector’s credential and reports what it answered.

Nothing is written.

NameInTypeRequiredDescription
publicIdpathstringYesA uuid.
StatusBodyDescription
200application/json, ConnectorTestResultSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold backup:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsCould not read the connector.
503application/problem+json, ProblemDetailsNo client database for this request.

200 response body

FieldTypeDescription
devicesrequiredinteger
errorrequiredstring
okrequiredboolean
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/backup/connectors/<publicId>/test' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETbackup:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Coverage

NameInTypeRequiredDescription
dirquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
qquerystringNo
siteIdquerystringNo
sortquerystringNo
StatusBodyDescription
200application/json, PagedResultBackupCoverageViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold backup:read.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsNo client database for this request.

200 response body

FieldTypeDescription
itemsrequiredarray of BackupCoverageView
items[].agentIdrequiredstring
items[].hostnamerequiredstring
items[].lastAttemptAtstring (date-time) or null
items[].lastSuccessAtstring (date-time) or null
items[].osFamilyrequiredstring
items[].siteIdstring or null
items[].sourcesrequiredarray of string
items[].statusrequiredstring
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/backup/coverage?dir=<dir>&page=0&pageSize=0&q=<q>&siteId=<siteId>&sort=<sort>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETbackup:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Coverage summary

StatusBodyDescription
200application/json, BackupCoverageSummaryViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold backup:read.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsNo client database for this request.

200 response body

FieldTypeDescription
bySourcerequiredobject
failedrequiredinteger
protectedrequiredinteger
stalerequiredinteger
totalrequiredinteger
unprotectedrequiredinteger
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/backup/coverage/summary' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTbackup:restoretenant facehosteditmspremote

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

Source: [object Object]

download mints the ticket (POST /api/v1/backup/downloads).

Required, sent as application/json.

FieldTypeDescription
itemsrequiredarray of BackupItemBody
items[].isDirrequiredboolean
items[].pathrequiredstring
snapshotIdrequiredstring
StatusBodyDescription
201application/json, BackupDownloadTicketViewCreated.
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 backup:restore.
404application/problem+json, ProblemDetailsThat snapshot is no longer in the repository.
500application/problem+json, ProblemDetailsThe request failed.
502application/problem+json, ProblemDetailsThe backup storage could not be read.
503application/problem+json, ProblemDetailsNo client database for this request.

201 response body

FieldTypeDescription
bytesrequiredinteger

int64.

downloadUrlrequiredstring
expiresAtrequiredstring (date-time)
filesrequiredinteger
tokenrequiredstring
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/backup/downloads' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"items": [
{
"isDir": false,
"path": "string"
}
],
"snapshotId": "string"
}'

GETbackup:restoretenant facehosteditmspremoteIdempotentdownloadToken in the pathNot 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

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]

fetchDownload streams a ticket’s zip (GET /api/v1/backup/downloads/{token}).

The selection is re-planned against the cap, because the policy may have changed in the five minutes since the ticket was minted.

NameInTypeRequiredDescription
tokenpathstringYes
StatusBodyDescription
200application/octet-stream, string (binary)Success. The body shape was not resolved; see x-outpost-unresolved.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold backup:restore.
404application/problem+json, ProblemDetailsThat download link has been used or has expired. Start the download again.
500application/problem+json, ProblemDetailsThe request failed.
502application/problem+json, ProblemDetailsThe backup storage could not be read.
503application/problem+json, ProblemDetailsNo client database for this 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 GET 'https://depot.example.com/api/v1/backup/downloads/<token>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETbackup:keystenant facehosteditmspremoteIdempotentdownloadToken in the pathNot 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

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]

One time kit

NameInTypeRequiredDescription
tokenpathstringYes
StatusBodyDescription
200application/octet-stream, string (binary)Success. The body shape was not resolved; see x-outpost-unresolved.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold backup:keys.
404application/problem+json, ProblemDetailsThat recovery kit link has been used or has expired.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsNo client database for this 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 GET 'https://depot.example.com/api/v1/backup/recovery-kits/<token>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETbackup:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

List restore jobs

NameInTypeRequiredDescription
agentIdquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
StatusBodyDescription
200application/json, PagedResultBackupRestoreJobViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold backup:read.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsNo client database for this request.

200 response body

FieldTypeDescription
itemsrequiredarray of BackupRestoreJobView
items[].bytesDonerequiredinteger

int64.

items[].conflictrequiredstring
items[].createdAtrequiredstring (date-time)
items[].errorCodestring or null
items[].errorDetailstring or null
items[].filesDonerequiredinteger

int64.

items[].filesFailedrequiredinteger

int64.

items[].finishedAtstring (date-time) or null
items[].initiatorNamestring or null
items[].initiatorSidstring or null
items[].itemCountrequiredinteger

int64.

items[].itemsrequiredarray of BackupItemBody
items[].items[].isDirrequiredboolean
items[].items[].pathrequiredstring
items[].kindrequiredstring
items[].progressPctrequiredinteger
items[].publicIdrequiredstring
items[].requestedByUserPublicIdstring or null
items[].snapshotIdrequiredstring
items[].sourceAgentIdrequiredstring
items[].startedAtstring (date-time) or null
items[].staterequiredstring
items[].targetAgentIdstring or null
items[].targetKindrequiredstring
items[].targetPathstring or null
items[].triggerrequiredstring
items[].userMaprequiredarray of BackupUserMapBody
items[].userMap[].sourceSidrequiredstring
items[].userMap[].sourceUserrequiredstring
items[].userMap[].targetUserrequiredstring
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/backup/restore-jobs?agentId=<agentId>&page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTbackup:restoretenant facehosteditmspremote

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

Source: [object Object]

Create restore job

Required, sent as application/json.

FieldTypeDescription
conflictrequiredstring
itemsrequiredarray of BackupItemBody
items[].isDirrequiredboolean
items[].pathrequiredstring
snapshotIdrequiredstring
targetAgentIdrequiredstring
targetKindrequiredstring
targetPathrequiredstring
userMaprequiredarray of BackupUserMapBody
userMap[].sourceSidrequiredstring
userMap[].sourceUserrequiredstring
userMap[].targetUserrequiredstring
StatusBodyDescription
201application/json, BackupRestoreJobViewCreated.
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 backup:restore.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsNo client database for this request.

201 response body

FieldTypeDescription
bytesDonerequiredinteger

int64.

conflictrequiredstring
createdAtrequiredstring (date-time)
errorCodestring or null
errorDetailstring or null
filesDonerequiredinteger

int64.

filesFailedrequiredinteger

int64.

finishedAtstring (date-time) or null
initiatorNamestring or null
initiatorSidstring or null
itemCountrequiredinteger

int64.

itemsrequiredarray of BackupItemBody
items[].isDirrequiredboolean
items[].pathrequiredstring
kindrequiredstring
progressPctrequiredinteger
publicIdrequiredstring
requestedByUserPublicIdstring or null
snapshotIdrequiredstring
sourceAgentIdrequiredstring
startedAtstring (date-time) or null
staterequiredstring
targetAgentIdstring or null
targetKindrequiredstring
targetPathstring or null
triggerrequiredstring
userMaprequiredarray of BackupUserMapBody
userMap[].sourceSidrequiredstring
userMap[].sourceUserrequiredstring
userMap[].targetUserrequiredstring
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/backup/restore-jobs' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"conflict": "string",
"items": [
{
"isDir": false,
"path": "string"
}
],
"snapshotId": "string",
"targetAgentId": "string",
"targetKind": "string",
"targetPath": "string",
"userMap": [
{
"sourceSid": "string",
"sourceUser": "string",
"targetUser": "string"
}
]
}'

GET /api/v1/backup/restore-jobs/{publicId}

Section titled “GET /api/v1/backup/restore-jobs/{publicId}”

GETbackup:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Get restore job

NameInTypeRequiredDescription
publicIdpathstringYesA uuid.
StatusBodyDescription
200application/json, BackupRestoreJobViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold backup:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsNo client database for this request.

200 response body

FieldTypeDescription
bytesDonerequiredinteger

int64.

conflictrequiredstring
createdAtrequiredstring (date-time)
errorCodestring or null
errorDetailstring or null
filesDonerequiredinteger

int64.

filesFailedrequiredinteger

int64.

finishedAtstring (date-time) or null
initiatorNamestring or null
initiatorSidstring or null
itemCountrequiredinteger

int64.

itemsrequiredarray of BackupItemBody
items[].isDirrequiredboolean
items[].pathrequiredstring
kindrequiredstring
progressPctrequiredinteger
publicIdrequiredstring
requestedByUserPublicIdstring or null
snapshotIdrequiredstring
sourceAgentIdrequiredstring
startedAtstring (date-time) or null
staterequiredstring
targetAgentIdstring or null
targetKindrequiredstring
targetPathstring or null
triggerrequiredstring
userMaprequiredarray of BackupUserMapBody
userMap[].sourceSidrequiredstring
userMap[].sourceUserrequiredstring
userMap[].targetUserrequiredstring
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/backup/restore-jobs/<publicId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/backup/restore-jobs/{publicId}/cancel

Section titled “POST /api/v1/backup/restore-jobs/{publicId}/cancel”

POSTbackup:restoretenant facehosteditmspremote

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

Source: [object Object]

Cancel restore job

NameInTypeRequiredDescription
publicIdpathstringYesA uuid.
StatusBodyDescription
200application/json, BackupRestoreJobViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold backup:restore.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsNo client database for this request.

200 response body

FieldTypeDescription
bytesDonerequiredinteger

int64.

conflictrequiredstring
createdAtrequiredstring (date-time)
errorCodestring or null
errorDetailstring or null
filesDonerequiredinteger

int64.

filesFailedrequiredinteger

int64.

finishedAtstring (date-time) or null
initiatorNamestring or null
initiatorSidstring or null
itemCountrequiredinteger

int64.

itemsrequiredarray of BackupItemBody
items[].isDirrequiredboolean
items[].pathrequiredstring
kindrequiredstring
progressPctrequiredinteger
publicIdrequiredstring
requestedByUserPublicIdstring or null
snapshotIdrequiredstring
sourceAgentIdrequiredstring
startedAtstring (date-time) or null
staterequiredstring
targetAgentIdstring or null
targetKindrequiredstring
targetPathstring or null
triggerrequiredstring
userMaprequiredarray of BackupUserMapBody
userMap[].sourceSidrequiredstring
userMap[].sourceUserrequiredstring
userMap[].targetUserrequiredstring
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/backup/restore-jobs/<publicId>/cancel' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETbackup:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Get settings

StatusBodyDescription
200application/json, BackupSettingsViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold backup:read.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsNo client database for this request.

200 response body

FieldTypeDescription
recoveryKitsarray of BackupKitLinkView
recoveryKits[].agentIdrequiredstring
recoveryKits[].kitUrlrequiredstring
recoveryKits[].rolerequiredstring
rowVersionrequiredinteger

int64.

zeroKnowledgerequiredboolean
zeroKnowledgeChangedAtstring (date-time) 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/backup/settings' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PATCHbackup:keystenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Patch settings

Required, sent as application/json.

FieldTypeDescription
rowVersioninteger or null

int64.

zeroKnowledgeboolean or null
StatusBodyDescription
200application/json, BackupSettingsViewSuccess.
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 backup:keys.
409application/problem+json, ProblemDetailsThe backup settings changed since you read them. Reload and try again.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsNo client database for this request.

200 response body

FieldTypeDescription
recoveryKitsarray of BackupKitLinkView
recoveryKits[].agentIdrequiredstring
recoveryKits[].kitUrlrequiredstring
recoveryKits[].rolerequiredstring
rowVersionrequiredinteger

int64.

zeroKnowledgerequiredboolean
zeroKnowledgeChangedAtstring (date-time) 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 PATCH 'https://depot.example.com/api/v1/backup/settings' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"rowVersion": 0,
"zeroKnowledge": false
}'

GETbackup:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Endpoint backup

NameInTypeRequiredDescription
agentIdpathstringYesA uuid.
StatusBodyDescription
200application/json, BackupEndpointViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold backup:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsNo client database for this request.

200 response body

FieldTypeDescription
enabledrequiredboolean
lastRunBackupRunView
lastRun.bytesScannedrequiredinteger

int64.

lastRun.bytesUploadedrequiredinteger

int64.

lastRun.errorCodestring or null
lastRun.errorDetailstring or null
lastRun.filesFailedrequiredinteger

int64.

lastRun.filesTotalrequiredinteger

int64.

lastRun.finishedAtstring (date-time) or null
lastRun.kindrequiredstring
lastRun.repoIdrequiredstring
lastRun.rolerequiredstring
lastRun.runIdrequiredstring
lastRun.skippedReasonstring or null
lastRun.snapshotIdstring or null
lastRun.startedAtrequiredstring (date-time)
lastRun.staterequiredstring
lastRun.triggerrequiredstring
nextRunAtstring (date-time) or null
policyrequiredBackupPolicyView

backupPolicyView is the endpoint's effective backup.* values, catalog key minus the prefix, camelCased.

policy.allowMeteredrequiredboolean
policy.allowOnBatteryrequiredboolean
policy.browserDownloadMaxBytesrequiredinteger

int64.

policy.deleteFloorDaysrequiredinteger
policy.enabledrequiredboolean
policy.excludePathsrequiredarray of string
policy.imageRetentionrequiredBackupRetentionView

backupRetentionView is a GFS schedule (R2).

policy.imageRetention.annualrequiredinteger
policy.imageRetention.dailyrequiredinteger
policy.imageRetention.hourlyrequiredinteger
policy.imageRetention.latestrequiredinteger
policy.imageRetention.monthlyrequiredinteger
policy.imageRetention.weeklyrequiredinteger
policy.imageSchedulerequiredstring
policy.includeDownloadsrequiredboolean
policy.includePathsrequiredarray of string
policy.objectLockrequiredboolean
policy.postScriptIdrequiredstring
policy.prePatchrequiredboolean
policy.preScriptIdrequiredstring
policy.primaryIntervalMinutesrequiredinteger
policy.primaryRetentionrequiredBackupRetentionView

backupRetentionView is a GFS schedule (R2).

policy.primaryRetention.annualrequiredinteger
policy.primaryRetention.dailyrequiredinteger
policy.primaryRetention.hourlyrequiredinteger
policy.primaryRetention.latestrequiredinteger
policy.primaryRetention.monthlyrequiredinteger
policy.primaryRetention.weeklyrequiredinteger
policy.primaryStorageProfileIdrequiredstring
policy.secondaryIntervalMinutesrequiredinteger
policy.secondaryRetentionrequiredBackupRetentionView

backupRetentionView is a GFS schedule (R2).

policy.secondaryRetention.annualrequiredinteger
policy.secondaryRetention.dailyrequiredinteger
policy.secondaryRetention.hourlyrequiredinteger
policy.secondaryRetention.latestrequiredinteger
policy.secondaryRetention.monthlyrequiredinteger
policy.secondaryRetention.weeklyrequiredinteger
policy.secondaryStorageProfileIdrequiredstring
policy.selfServiceRestorerequiredboolean
policy.systemImagerequiredboolean
policy.uploadLimitKbpsrequiredinteger
policy.verifyIntervalDaysrequiredinteger
repositoriesrequiredarray of BackupRepoView
repositories[].createdAtrequiredstring (date-time)
repositories[].driverrequiredstring
repositories[].initializedAtstring (date-time) or null
repositories[].lastSnapshotAtstring (date-time) or null
repositories[].passwordStaterequiredstring
repositories[].publicIdrequiredstring
repositories[].rolerequiredstring
repositories[].statusrequiredstring
repositories[].storageProfileIdstring or null
repositories[].storageScoperequiredstring
statusesrequiredarray of BackupStatusView
statuses[].connectorPublicIdstring or null
statuses[].detailrequiredstring
statuses[].externalIdrequiredstring
statuses[].lastAttemptAtstring (date-time) or null
statuses[].lastSuccessAtstring (date-time) or null
statuses[].originrequiredstring
statuses[].outcomerequiredstring
statuses[].productrequiredstring
statuses[].protectedBytesinteger or null

int64.

statuses[].sourcerequiredstring
statuses[].updatedAtrequiredstring (date-time)
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>/backup' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/endpoints/{agentId}/backup/browse-requests

Section titled “POST /api/v1/endpoints/{agentId}/backup/browse-requests”

POSTbackup:browsetenant facehosteditmspremote

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

Source: [object Object]

Start agent browse

NameInTypeRequiredDescription
agentIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
pageTokenrequiredstring
pathrequiredstring
snapshotIdrequiredstring
StatusBodyDescription
202application/json, BackupBrowseRequestResponseAccepted.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold backup:browse.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsNo client database for this request.

202 response body

FieldTypeDescription
requestIdrequiredstring
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/endpoints/<agentId>/backup/browse-requests' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"pageToken": "string",
"path": "string",
"snapshotId": "string"
}'

GET /api/v1/endpoints/{agentId}/backup/browse-requests/{requestId}

Section titled “GET /api/v1/endpoints/{agentId}/backup/browse-requests/{requestId}”

GETbackup:browsetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Get agent browse

NameInTypeRequiredDescription
agentIdpathstringYesA uuid.
requestIdpathstringYesA uuid.
StatusBodyDescription
200application/json, BackupAgentBrowseViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold backup:browse.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsNo client database for this request.

200 response body

FieldTypeDescription
entriesrequiredarray of BackupBrowseEntryView
entries[].isDirrequiredboolean
entries[].modTimestring (date-time) or null
entries[].namerequiredstring
entries[].pathrequiredstring
entries[].sizerequiredinteger

int64.

errorrequiredstring
nextPageTokenrequiredstring
staterequiredstring
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>/backup/browse-requests/<requestId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GET /api/v1/endpoints/{agentId}/backup/recovery-kit

Section titled “GET /api/v1/endpoints/{agentId}/backup/recovery-kit”

GETbackup:keystenant facehosteditmspremoteIdempotentdownloadNot 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

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]

Recovery kit

NameInTypeRequiredDescription
agentIdpathstringYesA uuid.
formatquerystringNo
rolequerystringNo
StatusBodyDescription
200application/octet-stream, string (binary)Success. The body shape was not resolved; see x-outpost-unresolved.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold backup:keys.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsNo client database for this 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 GET 'https://depot.example.com/api/v1/endpoints/<agentId>/backup/recovery-kit?format=<format>&role=<role>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/endpoints/{agentId}/backup/run-now

Section titled “POST /api/v1/endpoints/{agentId}/backup/run-now”

POSTbackup:restoretenant facehosteditmspremote

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

Source: [object Object]

runNow is Backup now (R3: backup:restore).

An offline endpoint’s command queues; the answer is the same 202 either way.

NameInTypeRequiredDescription
agentIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
kindrequiredstring
rolerequiredstring
StatusBodyDescription
202application/json, BackupRunNowResponseAccepted.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold backup:restore.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsNo client database for this request.

202 response body

FieldTypeDescription
commandIdrequiredstring
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/endpoints/<agentId>/backup/run-now' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"kind": "string",
"role": "string"
}'

GET /api/v1/endpoints/{agentId}/backup/runs

Section titled “GET /api/v1/endpoints/{agentId}/backup/runs”

GETbackup:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

List runs

NameInTypeRequiredDescription
agentIdpathstringYesA uuid.
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
rolequerystringNo
StatusBodyDescription
200application/json, PagedResultBackupRunViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold backup:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsNo client database for this request.

200 response body

FieldTypeDescription
itemsrequiredarray of BackupRunView
items[].bytesScannedrequiredinteger

int64.

items[].bytesUploadedrequiredinteger

int64.

items[].errorCodestring or null
items[].errorDetailstring or null
items[].filesFailedrequiredinteger

int64.

items[].filesTotalrequiredinteger

int64.

items[].finishedAtstring (date-time) or null
items[].kindrequiredstring
items[].repoIdrequiredstring
items[].rolerequiredstring
items[].runIdrequiredstring
items[].skippedReasonstring or null
items[].snapshotIdstring or null
items[].startedAtrequiredstring (date-time)
items[].staterequiredstring
items[].triggerrequiredstring
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>/backup/runs?page=0&pageSize=0&role=<role>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GET /api/v1/endpoints/{agentId}/backup/snapshots

Section titled “GET /api/v1/endpoints/{agentId}/backup/snapshots”

GETbackup:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

List snapshots

NameInTypeRequiredDescription
agentIdpathstringYesA uuid.
includeExpiredquerystringNo
kindquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
rolequerystringNo
StatusBodyDescription
200application/json, PagedResultBackupSnapshotViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold backup:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsNo client database for this request.

200 response body

FieldTypeDescription
itemsrequiredarray of BackupSnapshotView
items[].dirCountrequiredinteger

int64.

items[].diskManifestrequiredany

Arbitrary JSON.

items[].endTimestring (date-time) or null
items[].expiredAtstring (date-time) or null
items[].fileCountrequiredinteger

int64.

items[].kindrequiredstring
items[].missingAtstring (date-time) or null
items[].publicIdrequiredstring
items[].repoIdrequiredstring
items[].retentionReasonsrequiredarray of string
items[].rolerequiredstring
items[].snapshotIdrequiredstring
items[].sourcerequiredstring
items[].startTimerequiredstring (date-time)
items[].totalBytesrequiredinteger

int64.

items[].verifiedAtstring (date-time) or null
items[].verifyOkboolean 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>/backup/snapshots?includeExpired=<includeExpired>&kind=<kind>&page=0&pageSize=0&role=<role>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GET /api/v1/endpoints/{agentId}/backup/snapshots/{snapshotId}/browse

Section titled “GET /api/v1/endpoints/{agentId}/backup/snapshots/{snapshotId}/browse”

GETbackup:browsetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Browse

NameInTypeRequiredDescription
agentIdpathstringYesA uuid.
snapshotIdpathstringYes
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
pathquerystringNo
StatusBodyDescription
200application/json, PagedResultBackupBrowseEntryViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold backup:browse.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsThe request failed.
502application/problem+json, ProblemDetailsThe backup storage could not be read.
503application/problem+json, ProblemDetailsNo client database for this request.

200 response body

FieldTypeDescription
itemsrequiredarray of BackupBrowseEntryView
items[].isDirrequiredboolean
items[].modTimestring (date-time) or null
items[].namerequiredstring
items[].pathrequiredstring
items[].sizerequiredinteger

int64.

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>/backup/snapshots/<snapshotId>/browse?page=0&pageSize=0&path=<path>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GET /api/v1/endpoints/{agentId}/backup/versions

Section titled “GET /api/v1/endpoints/{agentId}/backup/versions”

GETbackup:browsetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Versions

NameInTypeRequiredDescription
agentIdpathstringYesA uuid.
pathquerystringNo
StatusBodyDescription
200application/json, array of BackupVersionViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold backup:browse.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsNo client database for this request.

200 response body

FieldTypeDescription
[].modTimestring (date-time) or null
[].publicIdrequiredstring
[].rolerequiredstring
[].sizerequiredinteger

int64.

[].snapshotIdrequiredstring
[].startTimerequiredstring (date-time)
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>/backup/versions?path=<path>' \
-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.