Skip to content

Depot identity

Registers the identity 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.

GETidentity:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

listContactTags lists the contact tags this client can assign, by sort order, then label: the MSP’s definitions as last synced here.

StatusBodyDescription
200application/json, ContactTagListViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold identity:read.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of ContactTagView
items[].alertOnTicketsrequiredboolean
items[].coderequiredstring
items[].colorrequiredstring
items[].descriptionrequiredstring
items[].isSystemrequiredboolean
items[].labelrequiredstring
items[].singleHolderrequiredboolean
items[].sortOrderrequiredinteger
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/contact-tags' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETidentity:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

List device groups

NameInTypeRequiredDescription
dirquerystring, one of asc, descNoSort direction.
kindquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
qquerystringNoFree-text search term.
sortquerystring, one of created, name, updatedNoSort key.
StatusBodyDescription
200application/json, PagedResultDeviceGroupViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold identity:read.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of DeviceGroupView
items[].createdAtrequiredstring (date-time)
items[].descriptionstring
items[].isDynamicrequiredboolean
items[].membershipQueryany

Arbitrary JSON.

items[].namerequiredstring
items[].publicIdrequiredstring
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/device-groups?dir=asc&kind=<kind>&page=0&pageSize=0&q=<q>&sort=created' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTidentity:managetenant facehosteditmspremote

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

Source: [object Object]

Create device group

Required, sent as application/json.

FieldTypeDescription
descriptionrequiredstring
isDynamicrequiredboolean
membershipQueryrequiredany

Arbitrary JSON.

namerequiredstring
StatusBodyDescription
201application/json, DeviceGroupViewCreated.
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 identity:manage.
500application/problem+json, ProblemDetailsNo client store in request context.

201 response body

FieldTypeDescription
createdAtrequiredstring (date-time)
descriptionstring
isDynamicrequiredboolean
membershipQueryany

Arbitrary JSON.

namerequiredstring
publicIdrequiredstring
updatedAtrequiredstring (date-time)
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/device-groups' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"description": "string",
"isDynamic": false,
"membershipQuery": "string",
"name": "string"
}'

GETidentity:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Get device group

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

200 response body

FieldTypeDescription
createdAtrequiredstring (date-time)
descriptionstring
isDynamicrequiredboolean
membershipQueryany

Arbitrary JSON.

namerequiredstring
publicIdrequiredstring
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/device-groups/<groupID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PATCHidentity:managetenant facehosteditmspremote

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

Source: [object Object]

Patch device group

NameInTypeRequiredDescription
groupIDpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
descriptionstring or null
isDynamicboolean or null
membershipQueryrequiredany

Arbitrary JSON.

namestring or null
StatusBodyDescription
200application/json, DeviceGroupViewSuccess.
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 identity:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
createdAtrequiredstring (date-time)
descriptionstring
isDynamicrequiredboolean
membershipQueryany

Arbitrary JSON.

namerequiredstring
publicIdrequiredstring
updatedAtrequiredstring (date-time)
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
curl -X PATCH 'https://depot.example.com/api/v1/device-groups/<groupID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"description": "string",
"isDynamic": false,
"membershipQuery": "string",
"name": "string"
}'

DELETEidentity:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Delete device group

NameInTypeRequiredDescription
groupIDpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold identity:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
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/device-groups/<groupID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GET /api/v1/device-groups/{groupID}/members

Section titled “GET /api/v1/device-groups/{groupID}/members”

GETidentity:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

List device group members

NameInTypeRequiredDescription
groupIDpathstringYesA uuid.
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
StatusBodyDescription
200application/json, PagedResultStringSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold identity:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of string
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/device-groups/<groupID>/members?page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PUT /api/v1/device-groups/{groupID}/members/{agentID}

Section titled “PUT /api/v1/device-groups/{groupID}/members/{agentID}”

PUTidentity:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Add device group member

NameInTypeRequiredDescription
agentIDpathstringYesA uuid.
groupIDpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold identity:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.
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/device-groups/<groupID>/members/<agentID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

DELETE /api/v1/device-groups/{groupID}/members/{agentID}

Section titled “DELETE /api/v1/device-groups/{groupID}/members/{agentID}”

DELETEidentity:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Remove device group member

NameInTypeRequiredDescription
agentIDpathstringYesA uuid.
groupIDpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold identity:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.
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/device-groups/<groupID>/members/<agentID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GET /api/v1/endpoints/{agentID}/named-users

Section titled “GET /api/v1/endpoints/{agentID}/named-users”

GETidentity:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

List endpoint users

NameInTypeRequiredDescription
agentIDpathstringYesA uuid.
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
StatusBodyDescription
200application/json, PagedResultEndpointUserViewSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold identity:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of EndpointUserView
items[].agentIdrequiredstring
items[].assignmentKindrequiredstring
items[].createdAtrequiredstring (date-time)
items[].lastSeenAtstring (date-time) or null
items[].namedUserIdrequiredstring
items[].publicIdrequiredstring
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>/named-users?page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PUT /api/v1/endpoints/{agentID}/named-users/{userID}

Section titled “PUT /api/v1/endpoints/{agentID}/named-users/{userID}”

PUTidentity:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Assign endpoint user

NameInTypeRequiredDescription
agentIDpathstringYesA uuid.
userIDpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
assignmentKindrequiredstring
StatusBodyDescription
200application/json, EndpointUserViewSuccess.
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 identity:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThis endpoint already has a different primary owner. Remove that assignment first.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
agentIdrequiredstring
assignmentKindrequiredstring
createdAtrequiredstring (date-time)
lastSeenAtstring (date-time) or null
namedUserIdrequiredstring
publicIdrequiredstring
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>/named-users/<userID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"assignmentKind": "string"
}'

DELETE /api/v1/endpoints/{agentID}/named-users/{userID}

Section titled “DELETE /api/v1/endpoints/{agentID}/named-users/{userID}”

DELETEidentity:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Remove endpoint user

NameInTypeRequiredDescription
agentIDpathstringYesA uuid.
userIDpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold identity:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.
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>/named-users/<userID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETidentity:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

listNamedUsers answers the console’s roster: searched, narrowed by site and status, sorted and paged.

THE SEARCH MATCHES WORD PREFIXES AND NOT FRAGMENTS, and the console’s empty state has to say so. A person’s name and address are encrypted, so the term goes through the blind-index token table rather than through a LIKE: “grant” finds Alicia Grant and “rant” finds nobody. An operator who is told the search is a substring search reads that empty result as “this person is not here”.

NameInTypeRequiredDescription
contactTagquerystringNo
dirquerystring, one of asc, descNoSort direction.
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
qquerystringNoFree-text search term.
siteIdquerystringNo
sortquerystringNoSort key.
statusquerystring, one of active, departed, disabledNoComma-separated set. An unrecognised value is refused.
StatusBodyDescription
200application/json, PagedResultNamedUserViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold identity:read.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of NamedUserView
items[].chatBlockedrequiredboolean
items[].contactTagsrequiredarray of ContactTagRefView
items[].contactTags[].coderequiredstring
items[].contactTags[].colorrequiredstring
items[].contactTags[].labelrequiredstring
items[].createdAtrequiredstring (date-time)
items[].displayNamerequiredstring
items[].isUnclaimedrequiredboolean
items[].phonerequiredstring
items[].primaryEmailstring
items[].publicIdrequiredstring
items[].siteIdstring
items[].sourcerequiredstring
items[].statusrequiredstring
items[].titlerequiredstring
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/named-users?contactTag=<contactTag>&dir=asc&page=0&pageSize=0&q=<q>&siteId=<siteId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTidentity:managetenant facehosteditmspremote

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

Source: [object Object]

Create named user

Required, sent as application/json.

FieldTypeDescription
displayNamerequiredstring
phonerequiredstring
primaryEmailrequiredstring
siteIdrequiredstring
statusrequiredstring
titlerequiredstring
StatusBodyDescription
201application/json, NamedUserViewCreated.
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 identity:manage.
500application/problem+json, ProblemDetailsNo client store in request context.

201 response body

FieldTypeDescription
chatBlockedrequiredboolean
contactTagsrequiredarray of ContactTagRefView
contactTags[].coderequiredstring
contactTags[].colorrequiredstring
contactTags[].labelrequiredstring
createdAtrequiredstring (date-time)
displayNamerequiredstring
isUnclaimedrequiredboolean
phonerequiredstring
primaryEmailstring
publicIdrequiredstring
siteIdstring
sourcerequiredstring
statusrequiredstring
titlerequiredstring
updatedAtrequiredstring (date-time)
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/named-users' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"displayName": "string",
"phone": "string",
"primaryEmail": "string",
"siteId": "string",
"status": "string",
"title": "string"
}'

GETidentity:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Get named user

NameInTypeRequiredDescription
userIDpathstringYesA uuid.
StatusBodyDescription
200application/json, NamedUserViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold identity:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
chatBlockedrequiredboolean
contactTagsrequiredarray of ContactTagRefView
contactTags[].coderequiredstring
contactTags[].colorrequiredstring
contactTags[].labelrequiredstring
createdAtrequiredstring (date-time)
displayNamerequiredstring
isUnclaimedrequiredboolean
phonerequiredstring
primaryEmailstring
publicIdrequiredstring
siteIdstring
sourcerequiredstring
statusrequiredstring
titlerequiredstring
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/named-users/<userID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PATCHidentity:managetenant facehosteditmspremote

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

Source: [object Object]

Patch named user

NameInTypeRequiredDescription
userIDpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
chatBlockedboolean or null
displayNamestring or null
phonestring or null
primaryEmailstring or null
siteIdstring or null
statusstring or null
titlestring or null
StatusBodyDescription
200application/json, NamedUserViewSuccess.
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 identity:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
chatBlockedrequiredboolean
contactTagsrequiredarray of ContactTagRefView
contactTags[].coderequiredstring
contactTags[].colorrequiredstring
contactTags[].labelrequiredstring
createdAtrequiredstring (date-time)
displayNamerequiredstring
isUnclaimedrequiredboolean
phonerequiredstring
primaryEmailstring
publicIdrequiredstring
siteIdstring
sourcerequiredstring
statusrequiredstring
titlerequiredstring
updatedAtrequiredstring (date-time)
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
curl -X PATCH 'https://depot.example.com/api/v1/named-users/<userID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"chatBlocked": false,
"displayName": "string",
"phone": "string",
"primaryEmail": "string",
"siteId": "string",
"status": "string",
"title": "string"
}'

DELETEidentity:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Delete named user

NameInTypeRequiredDescription
userIDpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold identity:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.
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/named-users/<userID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PUT /api/v1/named-users/{userID}/contact-tags

Section titled “PUT /api/v1/named-users/{userID}/contact-tags”

PUTidentity:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

putNamedUserContactTags replaces the contact tags a person holds.

Assigning a single-holder tag such as the primary contact moves it from whoever held it.

NameInTypeRequiredDescription
userIDpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
codesarray of string or null
StatusBodyDescription
200application/json, ContactTagRefListViewSuccess.
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 identity:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of ContactTagRefView
items[].coderequiredstring
items[].colorrequiredstring
items[].labelrequiredstring
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/named-users/<userID>/contact-tags' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"codes": [
"string"
]
}'

GET /api/v1/named-users/{userID}/endpoints

Section titled “GET /api/v1/named-users/{userID}/endpoints”

GETidentity:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

listNamedUserEndpoints answers “which machines does this person use” in one query.

The endpoint-first route alone made it a fan-out of one request per machine, so the UI could only ever scan a window of the fleet and hope.

NameInTypeRequiredDescription
userIDpathstringYesA uuid.
StatusBodyDescription
200application/json, objectSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold identity:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.
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/named-users/<userID>/endpoints' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETidentity:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

List user logins

NameInTypeRequiredDescription
userIDpathstringYesA uuid.
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
StatusBodyDescription
200application/json, PagedResultUserLoginViewSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold identity:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of UserLoginView
items[].createdAtrequiredstring (date-time)
items[].entraObjectIdstring
items[].identifierrequiredstring
items[].identifierNormalizedrequiredstring
items[].isPrimaryrequiredboolean
items[].lastSeenAtstring (date-time) or null
items[].namedUserIdrequiredstring
items[].providerrequiredstring
items[].publicIdrequiredstring
items[].sidstring
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/named-users/<userID>/logins?page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTidentity:managetenant facehosteditmspremote

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

Source: [object Object]

Add user login

NameInTypeRequiredDescription
userIDpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
identifierrequiredstring
isPrimaryrequiredboolean
providerrequiredstring
StatusBodyDescription
201application/json, UserLoginViewCreated.
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 identity:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThat login is already assigned.
500application/problem+json, ProblemDetailsNo client store in request context.

201 response body

FieldTypeDescription
createdAtrequiredstring (date-time)
entraObjectIdstring
identifierrequiredstring
identifierNormalizedrequiredstring
isPrimaryrequiredboolean
lastSeenAtstring (date-time) or null
namedUserIdrequiredstring
providerrequiredstring
publicIdrequiredstring
sidstring
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/named-users/<userID>/logins' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"identifier": "string",
"isPrimary": false,
"provider": "string"
}'

DELETE /api/v1/named-users/{userID}/logins/{loginID}

Section titled “DELETE /api/v1/named-users/{userID}/logins/{loginID}”

DELETEidentity:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Remove user login

NameInTypeRequiredDescription
loginIDpathstringYesA uuid.
userIDpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold identity:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.
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/named-users/<userID>/logins/<loginID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTidentity:managetenant facehosteditmspremote

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

Source: [object Object]

Merge named users

NameInTypeRequiredDescription
userIDpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
mergeUserIdrequiredstring
StatusBodyDescription
200application/json, NamedUserViewSuccess.
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 identity:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
chatBlockedrequiredboolean
contactTagsrequiredarray of ContactTagRefView
contactTags[].coderequiredstring
contactTags[].colorrequiredstring
contactTags[].labelrequiredstring
createdAtrequiredstring (date-time)
displayNamerequiredstring
isUnclaimedrequiredboolean
phonerequiredstring
primaryEmailstring
publicIdrequiredstring
siteIdstring
sourcerequiredstring
statusrequiredstring
titlerequiredstring
updatedAtrequiredstring (date-time)
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/named-users/<userID>/merge' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"mergeUserId": "string"
}'

GETidentity:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

listSites answers the console’s site list: searched, sorted and paged in SQL.

The total is the FILTERED total, which is the difference between this and what it replaced. The console used to take one page and narrow it in the browser, so a search that matched three sites still paged against every site there was.

NameInTypeRequiredDescription
dirquerystring, one of asc, descNoSort direction.
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
qquerystringNoFree-text search term.
sortquerystring, one of code, created, name, updatedNoSort key.
StatusBodyDescription
200application/json, PagedResultSiteViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold identity:read.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of SiteView
items[].addressLine1requiredstring
items[].addressLine2requiredstring
items[].cityrequiredstring
items[].codestring
items[].countryrequiredstring
items[].createdAtrequiredstring (date-time)
items[].endpointCountrequiredinteger
items[].namerequiredstring
items[].parentSiteIdstring
items[].phonerequiredstring
items[].postalCoderequiredstring
items[].publicIdrequiredstring
items[].regionrequiredstring
items[].timeZonerequiredstring
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/sites?dir=asc&page=0&pageSize=0&q=<q>&sort=code' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTidentity:managetenant facehosteditmspremote

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

Source: [object Object]

Create site

Required, sent as application/json.

FieldTypeDescription
addressLine1requiredstring
addressLine2requiredstring
cityrequiredstring
coderequiredstring
countryrequiredstring
namerequiredstring
parentSiteIdrequiredstring
phonerequiredstring
postalCoderequiredstring
regionrequiredstring
timeZonerequiredstring
StatusBodyDescription
201application/json, SiteViewCreated.
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 identity:manage.
500application/problem+json, ProblemDetailsNo client store in request context.

201 response body

FieldTypeDescription
addressLine1requiredstring
addressLine2requiredstring
cityrequiredstring
codestring
countryrequiredstring
createdAtrequiredstring (date-time)
endpointCountrequiredinteger
namerequiredstring
parentSiteIdstring
phonerequiredstring
postalCoderequiredstring
publicIdrequiredstring
regionrequiredstring
timeZonerequiredstring
updatedAtrequiredstring (date-time)
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/sites' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"addressLine1": "string",
"addressLine2": "string",
"city": "string",
"code": "string",
"country": "string",
"name": "string",
"parentSiteId": "string",
"phone": "string",
"postalCode": "string",
"region": "string",
"timeZone": "string"
}'

GETidentity:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Get site

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

200 response body

FieldTypeDescription
addressLine1requiredstring
addressLine2requiredstring
cityrequiredstring
codestring
countryrequiredstring
createdAtrequiredstring (date-time)
endpointCountrequiredinteger
namerequiredstring
parentSiteIdstring
phonerequiredstring
postalCoderequiredstring
publicIdrequiredstring
regionrequiredstring
timeZonerequiredstring
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/sites/<siteID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PATCHidentity:managetenant facehosteditmspremote

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

Source: [object Object]

Patch site

NameInTypeRequiredDescription
siteIDpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
addressLine1string or null
addressLine2string or null
citystring or null
codestring or null
countrystring or null
namestring or null
parentSiteIdstring or null
phonestring or null
postalCodestring or null
regionstring or null
timeZonestring or null
StatusBodyDescription
200application/json, SiteViewSuccess.
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 identity:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
addressLine1requiredstring
addressLine2requiredstring
cityrequiredstring
codestring
countryrequiredstring
createdAtrequiredstring (date-time)
endpointCountrequiredinteger
namerequiredstring
parentSiteIdstring
phonerequiredstring
postalCoderequiredstring
publicIdrequiredstring
regionrequiredstring
timeZonerequiredstring
updatedAtrequiredstring (date-time)
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
curl -X PATCH 'https://depot.example.com/api/v1/sites/<siteID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"addressLine1": "string",
"addressLine2": "string",
"city": "string",
"code": "string",
"country": "string",
"name": "string",
"parentSiteId": "string",
"phone": "string",
"postalCode": "string",
"region": "string",
"timeZone": "string"
}'

DELETEidentity:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Delete site

NameInTypeRequiredDescription
siteIDpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold identity:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
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/sites/<siteID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETidentity:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

List user groups

NameInTypeRequiredDescription
dirquerystring, one of asc, descNoSort direction.
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
qquerystringNoFree-text search term.
sortquerystring, one of created, name, updatedNoSort key.
sourcequerystringNo
StatusBodyDescription
200application/json, PagedResultUserGroupViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold identity:read.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of UserGroupView
items[].createdAtrequiredstring (date-time)
items[].descriptionstring
items[].namerequiredstring
items[].publicIdrequiredstring
items[].sourceIdstring
items[].sourceProviderstring
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/user-groups?dir=asc&page=0&pageSize=0&q=<q>&sort=created&source=<source>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTidentity:managetenant facehosteditmspremote

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

Source: [object Object]

Create user group

Required, sent as application/json.

FieldTypeDescription
descriptionrequiredstring
namerequiredstring
sourceIdrequiredstring
sourceProviderrequiredstring
StatusBodyDescription
201application/json, UserGroupViewCreated.
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 identity:manage.
500application/problem+json, ProblemDetailsNo client store in request context.

201 response body

FieldTypeDescription
createdAtrequiredstring (date-time)
descriptionstring
namerequiredstring
publicIdrequiredstring
sourceIdstring
sourceProviderstring
updatedAtrequiredstring (date-time)
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/user-groups' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"description": "string",
"name": "string",
"sourceId": "string",
"sourceProvider": "string"
}'

GETidentity:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Get user group

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

200 response body

FieldTypeDescription
createdAtrequiredstring (date-time)
descriptionstring
namerequiredstring
publicIdrequiredstring
sourceIdstring
sourceProviderstring
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/user-groups/<groupID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

DELETEidentity:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Delete user group

NameInTypeRequiredDescription
groupIDpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold identity:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.
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/user-groups/<groupID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETidentity:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

List user group members

NameInTypeRequiredDescription
groupIDpathstringYesA uuid.
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
StatusBodyDescription
200application/json, PagedResultStringSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold identity:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of string
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/user-groups/<groupID>/members?page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PUT /api/v1/user-groups/{groupID}/members/{userID}

Section titled “PUT /api/v1/user-groups/{groupID}/members/{userID}”

PUTidentity:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Add user group member

NameInTypeRequiredDescription
groupIDpathstringYesA uuid.
userIDpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold identity:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.
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/user-groups/<groupID>/members/<userID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

DELETE /api/v1/user-groups/{groupID}/members/{userID}

Section titled “DELETE /api/v1/user-groups/{groupID}/members/{userID}”

DELETEidentity:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Remove user group member

NameInTypeRequiredDescription
groupIDpathstringYesA uuid.
userIDpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold identity:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.
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/user-groups/<groupID>/members/<userID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETidentity:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

List merge suggestions

StatusBodyDescription
200application/json, objectSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold identity:read.
500application/problem+json, ProblemDetailsNo client store in request context.
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/user-merge-suggestions' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/user-merge-suggestions/reject

Section titled “POST /api/v1/user-merge-suggestions/reject”

POSTidentity:managetenant facehosteditmspremote

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

Source: [object Object]

Reject merge suggestion

Required, sent as application/json.

FieldTypeDescription
userIdsrequiredarray of string
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 identity:manage.
404application/problem+json, ProblemDetailsOne of those people no longer exists.
500application/problem+json, ProblemDetailsNo client store in request context.
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/user-merge-suggestions/reject' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"userIds": [
"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.