Skip to content

Depot profiles

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

GETprofile:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

List profile bundle assignments

NameInTypeRequiredDescription
dirquerystring, one of asc, descNoSort direction.
mandatoryquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
profileIdquerystringNo
qquerystringNoFree-text search term.
scopeTypequerystring, one of device_group, endpoint, named_user, site, technician, tenant, user_groupNoComma-separated set. An unrecognised value is refused.
sortquerystring, one of created, rank, updatedNoSort key.
StatusBodyDescription
200application/json, PagedResultProfileAssignmentViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold profile:read.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of ProfileAssignmentView
items[].createdAtrequiredstring (date-time)
items[].mandatoryrequiredboolean
items[].profileIdrequiredstring
items[].publicIdrequiredstring
items[].rankrequiredinteger
items[].scopeIdstring
items[].scopeTyperequiredstring
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/profile-assignments?dir=asc&mandatory=<mandatory>&page=0&pageSize=0&profileId=<profileId>&q=<q>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTprofile:managetenant facehosteditmspremote

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

Source: [object Object]

Create profile bundle assignment

Required, sent as application/json.

FieldTypeDescription
mandatoryrequiredboolean
profileIdrequiredstring
rankinteger or null
scopeIdrequiredstring
scopeTyperequiredstring
StatusBodyDescription
201application/json, ProfileAssignmentViewCreated.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsAuthentication is required.
403application/problem+json, ProblemDetailsMarking a profile setting or assignment mandatory requires the profile:manage_mandatory permission.
500application/problem+json, ProblemDetailsNo client store in request context.
503application/problem+json, ProblemDetailsCould not verify the profile’s required capabilities.

201 response body

FieldTypeDescription
createdAtrequiredstring (date-time)
mandatoryrequiredboolean
profileIdrequiredstring
publicIdrequiredstring
rankrequiredinteger
scopeIdstring
scopeTyperequiredstring
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/profile-assignments' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"mandatory": false,
"profileId": "string",
"rank": 0,
"scopeId": "string",
"scopeType": "string"
}'

PATCH /api/v1/profile-assignments/{assignmentID}

Section titled “PATCH /api/v1/profile-assignments/{assignmentID}”

PATCHprofile:managetenant facehosteditmspremote

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

Source: [object Object]

Patch profile bundle assignment

NameInTypeRequiredDescription
assignmentIDpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
mandatoryboolean or null
rankinteger or null
StatusBodyDescription
200application/json, ProfileAssignmentViewSuccess.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsAuthentication is required.
403application/problem+json, ProblemDetailsMarking a profile setting or assignment mandatory requires the profile:manage_mandatory permission.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.
503application/problem+json, ProblemDetailsCould not verify the profile’s required capabilities.

200 response body

FieldTypeDescription
createdAtrequiredstring (date-time)
mandatoryrequiredboolean
profileIdrequiredstring
publicIdrequiredstring
rankrequiredinteger
scopeIdstring
scopeTyperequiredstring
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/profile-assignments/<assignmentID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"mandatory": false,
"rank": 0
}'

DELETE /api/v1/profile-assignments/{assignmentID}

Section titled “DELETE /api/v1/profile-assignments/{assignmentID}”

DELETEprofile:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Delete profile bundle assignment

NameInTypeRequiredDescription
assignmentIDpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold profile: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/profile-assignments/<assignmentID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETprofile:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

List profile bundles

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 category, created, name, status, updatedNoSort key.
statusquerystring, one of active, archived, draftNoComma-separated set. An unrecognised value is refused.
StatusBodyDescription
200application/json, PagedResultProfileBundleViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold profile:read.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of ProfileBundleView
items[].builtinKeystring
items[].categoryrequiredstring
items[].createdAtrequiredstring (date-time)
items[].descriptionstring
items[].isSystemrequiredboolean
items[].namerequiredstring
items[].publicIdrequiredstring
items[].statusrequiredstring
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/profiles?dir=asc&page=0&pageSize=0&q=<q>&sort=category&status=active' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTprofile:managetenant facehosteditmspremote

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

Source: [object Object]

Create profile bundle

Required, sent as application/json.

FieldTypeDescription
categoryrequiredstring
descriptionrequiredstring
namerequiredstring
statusrequiredstring
StatusBodyDescription
201application/json, ProfileBundleViewCreated.
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 profile:manage.
404application/problem+json, ProblemDetailsProfile not found.
409application/problem+json, ProblemDetailsA profile with this name already exists in this category. Choose a different name or category.
500application/problem+json, ProblemDetailsNo client store in request context.

201 response body

FieldTypeDescription
builtinKeystring
categoryrequiredstring
createdAtrequiredstring (date-time)
descriptionstring
isSystemrequiredboolean
namerequiredstring
publicIdrequiredstring
statusrequiredstring
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/profiles' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"category": "string",
"description": "string",
"name": "string",
"status": "string"
}'

GETprofile:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Get profile bundle

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

200 response body

FieldTypeDescription
builtinKeystring
categoryrequiredstring
createdAtrequiredstring (date-time)
descriptionstring
isSystemrequiredboolean
namerequiredstring
publicIdrequiredstring
statusrequiredstring
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/profiles/<profileID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PATCHprofile:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Patch profile bundle

NameInTypeRequiredDescription
profileIDpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
categorystring or null
descriptionstring or null
namestring or null
statusstring or null
StatusBodyDescription
200application/json, ProfileBundleViewSuccess.
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 profile:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThat is a built-in baseline profile and cannot be edited. Assign or unassign it instead.
500application/problem+json, ProblemDetailsNo client store in request context.
503application/problem+json, ProblemDetailsCould not verify the profile’s required capabilities.

200 response body

FieldTypeDescription
builtinKeystring
categoryrequiredstring
createdAtrequiredstring (date-time)
descriptionstring
isSystemrequiredboolean
namerequiredstring
publicIdrequiredstring
statusrequiredstring
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 PATCH 'https://depot.example.com/api/v1/profiles/<profileID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"category": "string",
"description": "string",
"name": "string",
"status": "string"
}'

DELETEprofile:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Delete profile bundle

NameInTypeRequiredDescription
profileIDpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold profile:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThat is a built-in baseline profile and cannot be edited. Assign or unassign it instead.
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/profiles/<profileID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETprofile:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

List profile bundle settings

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

200 response body

FieldTypeDescription
itemsrequiredarray of ProfileSettingView
items[].isSetrequiredboolean
items[].mandatoryrequiredboolean
items[].osFamilystring
items[].settingKeyrequiredstring
items[].valuerequiredany

Arbitrary JSON.

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/profiles/<profileID>/settings?page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PUT /api/v1/profiles/{profileID}/settings/{settingKey}

Section titled “PUT /api/v1/profiles/{profileID}/settings/{settingKey}”

PUTprofile:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Put profile bundle setting

NameInTypeRequiredDescription
profileIDpathstringYesA uuid.
settingKeypathstringYes

Required, sent as application/json.

FieldTypeDescription
isSetboolean or null
mandatoryrequiredboolean
osFamilyrequiredstring
valuerequiredany

Arbitrary JSON.

StatusBodyDescription
200application/json, ProfileSettingViewSuccess.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsAuthentication is required.
403application/problem+json, ProblemDetailsMarking a profile setting or assignment mandatory requires the profile:manage_mandatory permission.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThat is a built-in baseline profile and cannot be edited. Assign or unassign it instead.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
isSetrequiredboolean
mandatoryrequiredboolean
osFamilystring
settingKeyrequiredstring
valuerequiredany

Arbitrary JSON.

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/profiles/<profileID>/settings/<settingKey>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"isSet": false,
"mandatory": false,
"osFamily": "string",
"value": "string"
}'

DELETE /api/v1/profiles/{profileID}/settings/{settingKey}

Section titled “DELETE /api/v1/profiles/{profileID}/settings/{settingKey}”

DELETEprofile:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Delete profile bundle setting

NameInTypeRequiredDescription
profileIDpathstringYesA uuid.
settingKeypathstringYes
osFamilyquerystringNo
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsAuthentication is required.
403application/problem+json, ProblemDetailsThe identity does not hold profile:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThat is a built-in baseline profile and cannot be edited. Assign or unassign it instead.
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/profiles/<profileID>/settings/<settingKey>?osFamily=<osFamily>' \
-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.