Skip to content

Depot docs

Registers the tenant-face documentation routes on apiMux, beside MountKnowledge.

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

GETdocs:readshared facehosteditmspremoteIdempotent

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

Source: [object Object]

listDocArticles pages ONE rung at a time.

Not a merged list, deliberately. Paging across two libraries with LIMIT and OFFSET produces a pager that skips rows: each rung offsets independently, so page two of the merge is not the rows after page one of it. The console has a scope chip and this answers it, which is the honest shape rather than a convincing wrong one.

NameInTypeRequiredDescription
includeSuggestedquerystringNo
labelquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
qquerystringNoFree-text search term.
relatedIdquerystringNo
relatedKindquerystringNo
reviewByquerystringNo
scopequerystringNo
statusquerystringNo
templatequerystringNo
updatedByquerystringNo
visibilityquerystringNo
StatusBodyDescription
200application/json, PagedResultDocArticleViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
itemsrequiredarray of DocArticleView
items[].authorUserIdstring
items[].bodyrequiredstring
items[].bodyFormatrequiredstring
items[].createdAtrequiredstring (date-time)
items[].grantrequiredstring
items[].isTemplaterequiredboolean
items[].labelsrequiredarray of string
items[].linkCountrequiredinteger
items[].publicIdrequiredstring
items[].publishedAtstring (date-time) or null
items[].restrictedrequiredboolean
items[].reviewByOnstring (date-time) or null
items[].reviewEveryDaysinteger
items[].scoperequiredstring
items[].slugrequiredstring
items[].sourceRefstring
items[].sourceSystemstring
items[].statusrequiredstring
items[].summarystring
items[].tagsrequiredarray of string
items[].titlerequiredstring
items[].updatedAtrequiredstring (date-time)
items[].verifiedAtstring (date-time) or null
items[].verifiedByNamestring
items[].viewCountrequiredinteger

int64.

items[].visibilityrequiredstring
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/docs/articles?includeSuggested=<includeSuggested>&label=<label>&page=0&pageSize=0&q=<q>&relatedId=<relatedId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTdocs:writeshared facehosteditmspremote

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

Source: [object Object]

Create doc article

Required, sent as application/json.

FieldTypeDescription
authorUserIdstring or null
bodystring or null
bodyFormatstring or null
isTemplateboolean or null
labelsrequiredarray of string
reviewByOnstring or null
reviewEveryDaysinteger or null
scopestring or null
slugstring or null
statusstring or null
summarystring or null
tagsrequiredarray of string
titlestring or null
visibilitystring or null
StatusBodyDescription
201application/json, DocArticleViewCreated.
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 docs:write.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

201 response body

FieldTypeDescription
authorUserIdstring
bodyrequiredstring
bodyFormatrequiredstring
createdAtrequiredstring (date-time)
grantrequiredstring
isTemplaterequiredboolean
labelsrequiredarray of string
linkCountrequiredinteger
publicIdrequiredstring
publishedAtstring (date-time) or null
restrictedrequiredboolean
reviewByOnstring (date-time) or null
reviewEveryDaysinteger
scoperequiredstring
slugrequiredstring
sourceRefstring
sourceSystemstring
statusrequiredstring
summarystring
tagsrequiredarray of string
titlerequiredstring
updatedAtrequiredstring (date-time)
verifiedAtstring (date-time) or null
verifiedByNamestring
viewCountrequiredinteger

int64.

visibilityrequiredstring
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/docs/articles' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"authorUserId": "string",
"body": "string",
"bodyFormat": "string",
"isTemplate": false,
"labels": [
"string"
],
"reviewByOn": "string",
"reviewEveryDays": 0,
"scope": "string",
"slug": "string",
"status": "string",
"summary": "string",
"tags": [
"string"
],
"title": "string",
"visibility": "string"
}'

GETdocs:readshared facehosteditmspremoteIdempotent

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

Source: [object Object]

Get doc article

NameInTypeRequiredDescription
articleIdpathstringYesA uuid.
StatusBodyDescription
200application/json, DocArticleViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThe request failed.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
authorUserIdstring
bodyrequiredstring
bodyFormatrequiredstring
createdAtrequiredstring (date-time)
grantrequiredstring
isTemplaterequiredboolean
labelsrequiredarray of string
linkCountrequiredinteger
publicIdrequiredstring
publishedAtstring (date-time) or null
restrictedrequiredboolean
reviewByOnstring (date-time) or null
reviewEveryDaysinteger
scoperequiredstring
slugrequiredstring
sourceRefstring
sourceSystemstring
statusrequiredstring
summarystring
tagsrequiredarray of string
titlerequiredstring
updatedAtrequiredstring (date-time)
verifiedAtstring (date-time) or null
verifiedByNamestring
viewCountrequiredinteger

int64.

visibilityrequiredstring
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/docs/articles/<articleId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PATCHdocs:writeshared facehosteditmspremoteIdempotent

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

Source: [object Object]

Patch doc article

NameInTypeRequiredDescription
articleIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
authorUserIdstring or null
bodystring or null
bodyFormatstring or null
isTemplateboolean or null
labelsrequiredarray of string
reviewByOnstring or null
reviewEveryDaysinteger or null
scopestring or null
slugstring or null
statusstring or null
summarystring or null
tagsrequiredarray of string
titlestring or null
visibilitystring or null
StatusBodyDescription
200application/json, DocArticleViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThat documentation library cannot be written to.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
authorUserIdstring
bodyrequiredstring
bodyFormatrequiredstring
createdAtrequiredstring (date-time)
grantrequiredstring
isTemplaterequiredboolean
labelsrequiredarray of string
linkCountrequiredinteger
publicIdrequiredstring
publishedAtstring (date-time) or null
restrictedrequiredboolean
reviewByOnstring (date-time) or null
reviewEveryDaysinteger
scoperequiredstring
slugrequiredstring
sourceRefstring
sourceSystemstring
statusrequiredstring
summarystring
tagsrequiredarray of string
titlerequiredstring
updatedAtrequiredstring (date-time)
verifiedAtstring (date-time) or null
verifiedByNamestring
viewCountrequiredinteger

int64.

visibilityrequiredstring
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/docs/articles/<articleId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"authorUserId": "string",
"body": "string",
"bodyFormat": "string",
"isTemplate": false,
"labels": [
"string"
],
"reviewByOn": "string",
"reviewEveryDays": 0,
"scope": "string",
"slug": "string",
"status": "string",
"summary": "string",
"tags": [
"string"
],
"title": "string",
"visibility": "string"
}'

DELETEdocs:writeshared facehosteditmspremoteIdempotent

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

Source: [object Object]

Delete doc article

NameInTypeRequiredDescription
articleIdpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThat documentation library cannot be written to.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.
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/docs/articles/<articleId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GET /api/v1/docs/articles/{articleId}/documents

Section titled “GET /api/v1/docs/articles/{articleId}/documents”

GETdocs:readshared facehosteditmspremoteIdempotent

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

Source: [object Object]

listDocArticleDocuments is the same read hung off an article (ruling A.14).

THE ARTICLE IS RESOLVED THROUGH BOTH RUNGS and the files are read from the rung that answered, which is the whole reason this is not one handler with a parent kind parameter: a practice article’s images live in the practice database, and reading them out of the tenant’s would answer an empty list for an article that is full of them.

NameInTypeRequiredDescription
articleIdpathstringYesA uuid.
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
StatusBodyDescription
200application/json, PagedResultDocDocumentViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThat documentation library cannot be written to.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
itemsrequiredarray of DocDocumentView
items[].contentTyperequiredstring
items[].createdAtrequiredstring (date-time)
items[].downloadUrlrequiredstring
items[].fileNamerequiredstring
items[].parentIdrequiredstring
items[].parentKindrequiredstring
items[].publicIdrequiredstring
items[].sizeBytesrequiredinteger

int64.

items[].uploadedByNamestring
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/docs/articles/<articleId>/documents?page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/docs/articles/{articleId}/documents

Section titled “POST /api/v1/docs/articles/{articleId}/documents”

POSTdocs:writeshared facehosteditmspremote

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

Source: [object Object]

uploadDocArticleDocument is the same upload hung off an article (ruling A.14).

THE CONSOLE EDITOR PUTS IMAGES THROUGH IT. A markdown body references an image by URL, and the only URL that survives an export, a move between libraries and a client who is not signed in to the console is one this Depot serves from its own storage. Pasting a data URI into a body instead would put megabytes of base64 into a column that is searched, diffed and revisioned.

NameInTypeRequiredDescription
articleIdpathstringYesA uuid.
fileNamequerystringNo
StatusBodyDescription
201application/json, DocDocumentViewCreated.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
413application/problem+json, ProblemDetailsThe request was refused.
415application/problem+json, ProblemDetailsA fileName query parameter is required.
500application/problem+json, ProblemDetailsThat documentation library cannot be written to.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
502application/problem+json, ProblemDetailsThe file could not be stored. Nothing was attached.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

201 response body

FieldTypeDescription
contentTyperequiredstring
createdAtrequiredstring (date-time)
downloadUrlrequiredstring
fileNamerequiredstring
parentIdrequiredstring
parentKindrequiredstring
publicIdrequiredstring
sizeBytesrequiredinteger

int64.

uploadedByNamestring
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/docs/articles/<articleId>/documents?fileName=<fileName>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/docs/articles/{articleId}/publish

Section titled “POST /api/v1/docs/articles/{articleId}/publish”

POSTdocs:writeshared facehosteditmspremoteIdempotent

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

Source: [object Object]

publishDocArticle is the status flip as its own verb.

Its own route rather than a PATCH of “status”, because publishing is the act that makes an internal runbook customer-visible and it deserves an audit verb and a permission story of its own rather than being one field of a body.

NameInTypeRequiredDescription
articleIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
publishedboolean or null
visibilitystring or null
StatusBodyDescription
200application/json, DocArticleViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThat documentation library cannot be written to.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
authorUserIdstring
bodyrequiredstring
bodyFormatrequiredstring
createdAtrequiredstring (date-time)
grantrequiredstring
isTemplaterequiredboolean
labelsrequiredarray of string
linkCountrequiredinteger
publicIdrequiredstring
publishedAtstring (date-time) or null
restrictedrequiredboolean
reviewByOnstring (date-time) or null
reviewEveryDaysinteger
scoperequiredstring
slugrequiredstring
sourceRefstring
sourceSystemstring
statusrequiredstring
summarystring
tagsrequiredarray of string
titlerequiredstring
updatedAtrequiredstring (date-time)
verifiedAtstring (date-time) or null
verifiedByNamestring
viewCountrequiredinteger

int64.

visibilityrequiredstring
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X POST 'https://depot.example.com/api/v1/docs/articles/<articleId>/publish' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"published": false,
"visibility": "string"
}'

GET /api/v1/docs/articles/{articleId}/revisions

Section titled “GET /api/v1/docs/articles/{articleId}/revisions”

GETdocs:readshared facehosteditmspremoteIdempotent

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

Source: [object Object]

List doc article revisions

NameInTypeRequiredDescription
articleIdpathstringYesA uuid.
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
StatusBodyDescription
200application/json, PagedResultDocRevisionViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThat documentation library cannot be written to.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
itemsrequiredarray of DocRevisionView
items[].authoredByNamestring
items[].authoredByUserIdstring
items[].bodyFormatrequiredstring
items[].createdAtrequiredstring (date-time)
items[].labelsrequiredarray of string
items[].publicIdrequiredstring
items[].reasonrequiredstring
items[].scoperequiredstring
items[].summarystring
items[].titlerequiredstring
items[].versionNorequiredinteger
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/docs/articles/<articleId>/revisions?page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GET /api/v1/docs/articles/{articleId}/revisions/{v}/diff

Section titled “GET /api/v1/docs/articles/{articleId}/revisions/{v}/diff”

GETdocs:readshared facehosteditmspremoteIdempotent

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

Source: [object Object]

diffDocArticleRevision compares one version against another, word by word.

WORD LEVEL AND NOT LINE LEVEL, because an article is prose. A line diff of a paragraph somebody rewrapped reports the whole paragraph as changed, which is the answer that makes a history unusable for the one question people ask it: what actually changed in this sentence.

“against” names the other version and defaults to the one before {v}, which is what a reader clicking a row in the history means.

NameInTypeRequiredDescription
articleIdpathstringYesA uuid.
vpathstringYes
againstquerystringNo
StatusBodyDescription
200application/json, DocDiffViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThat documentation library cannot be written to.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
articleIdrequiredstring
fromTitlerequiredstring
fromVersionrequiredinteger
opsrequiredarray of DocDiffOp
ops[].oprequiredstring
ops[].textrequiredstring
toTitlerequiredstring
toVersionrequiredinteger
truncatedrequiredboolean
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/docs/articles/<articleId>/revisions/<v>/diff?against=<against>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/docs/articles/{articleId}/revisions/{v}/restore

Section titled “POST /api/v1/docs/articles/{articleId}/revisions/{v}/restore”

POSTdocs:writeshared facehosteditmspremoteIdempotent

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

Source: [object Object]

Restore doc article revision

NameInTypeRequiredDescription
articleIdpathstringYesA uuid.
vpathstringYes
StatusBodyDescription
200application/json, DocArticleViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThat documentation library cannot be written to.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
authorUserIdstring
bodyrequiredstring
bodyFormatrequiredstring
createdAtrequiredstring (date-time)
grantrequiredstring
isTemplaterequiredboolean
labelsrequiredarray of string
linkCountrequiredinteger
publicIdrequiredstring
publishedAtstring (date-time) or null
restrictedrequiredboolean
reviewByOnstring (date-time) or null
reviewEveryDaysinteger
scoperequiredstring
slugrequiredstring
sourceRefstring
sourceSystemstring
statusrequiredstring
summarystring
tagsrequiredarray of string
titlerequiredstring
updatedAtrequiredstring (date-time)
verifiedAtstring (date-time) or null
verifiedByNamestring
viewCountrequiredinteger

int64.

visibilityrequiredstring
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X POST 'https://depot.example.com/api/v1/docs/articles/<articleId>/revisions/<v>/restore' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/docs/articles/{articleId}/verify

Section titled “POST /api/v1/docs/articles/{articleId}/verify”

POSTdocs:writeshared facehosteditmspremoteIdempotent

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

Source: [object Object]

verifyDocArticle stamps the article current as of now, NAMING WHO SAID SO.

A stamp with no name is a checkbox rather than evidence, which is why the store takes the actor and the label and why this route exists at all instead of a “verified” boolean on the PATCH body.

NameInTypeRequiredDescription
articleIdpathstringYesA uuid.
StatusBodyDescription
200application/json, DocArticleViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThat documentation library cannot be written to.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
authorUserIdstring
bodyrequiredstring
bodyFormatrequiredstring
createdAtrequiredstring (date-time)
grantrequiredstring
isTemplaterequiredboolean
labelsrequiredarray of string
linkCountrequiredinteger
publicIdrequiredstring
publishedAtstring (date-time) or null
restrictedrequiredboolean
reviewByOnstring (date-time) or null
reviewEveryDaysinteger
scoperequiredstring
slugrequiredstring
sourceRefstring
sourceSystemstring
statusrequiredstring
summarystring
tagsrequiredarray of string
titlerequiredstring
updatedAtrequiredstring (date-time)
verifiedAtstring (date-time) or null
verifiedByNamestring
viewCountrequiredinteger

int64.

visibilityrequiredstring
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X POST 'https://depot.example.com/api/v1/docs/articles/<articleId>/verify' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETdocs:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

listDocAssets pages the client’s records, narrowed by layout key and text.

A FILTER NAMING A CONFIDENTIAL FIELD IS A 422 AND NOT AN EMPTY RESULT. An empty page reads as “no firewall has that value”, which is a statement about the data; the truth is that the question cannot be asked, and saying so is the difference between a search somebody trusts and one they quietly stop using.

NameInTypeRequiredDescription
archivedquerystringNo
fieldquerystringNo
includeSuggestedquerystringNo
labelquerystringNo
layoutKeyquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
qquerystringNoFree-text search term.
relatedIdquerystringNo
relatedKindquerystringNo
updatedSincequerystringNo
StatusBodyDescription
200application/json, PagedResultDocAssetViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
itemsrequiredarray of DocAssetView
items[].archivedrequiredboolean
items[].createdAtrequiredstring (date-time)
items[].grantrequiredstring
items[].labelsrequiredarray of string
items[].layoutIdrequiredstring
items[].layoutKeyrequiredstring
items[].layoutNamerequiredstring
items[].layoutScoperequiredstring
items[].linkCountrequiredinteger
items[].publicIdrequiredstring
items[].restrictedrequiredboolean
items[].siteIdstring
items[].sourceRefstring
items[].sourceSystemstring
items[].titlerequiredstring
items[].updatedAtrequiredstring (date-time)
items[].valuesarray of DocAssetValueView
items[].values[].credentialIdstring
items[].values[].documentIdstring
items[].values[].fieldIdrequiredstring
items[].values[].fieldKeyrequiredstring
items[].values[].hasValuerequiredboolean
items[].values[].kindrequiredstring
items[].values[].relationsarray of DocRelationRefView
items[].values[].relations[].idrequiredstring
items[].values[].relations[].kindrequiredstring
items[].values[].relations[].restrictedrequiredboolean
items[].values[].relations[].subtitlestring
items[].values[].relations[].titlerequiredstring
items[].values[].setByNamestring
items[].values[].sourcerequiredstring
items[].values[].sourceRefstring
items[].values[].syncedAtstring (date-time) or null
items[].values[].updatedAtrequiredstring (date-time)
items[].values[].valuestring
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/docs/assets?archived=<archived>&field=<field>&includeSuggested=<includeSuggested>&label=<label>&layoutKey=<layoutKey>&page=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTdocs:writetenant facehosteditmspremote

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

Source: [object Object]

Create doc asset

Required, sent as application/json.

FieldTypeDescription
archivedboolean or null
labelsrequiredarray of string
layoutIdstring or null
restrictedboolean or null
siteIdstring or null
titlestring or null
StatusBodyDescription
201application/json, DocAssetViewCreated.
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 docs:write.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

201 response body

FieldTypeDescription
archivedrequiredboolean
createdAtrequiredstring (date-time)
grantrequiredstring
labelsrequiredarray of string
layoutIdrequiredstring
layoutKeyrequiredstring
layoutNamerequiredstring
layoutScoperequiredstring
linkCountrequiredinteger
publicIdrequiredstring
restrictedrequiredboolean
siteIdstring
sourceRefstring
sourceSystemstring
titlerequiredstring
updatedAtrequiredstring (date-time)
valuesarray of DocAssetValueView
values[].credentialIdstring
values[].documentIdstring
values[].fieldIdrequiredstring
values[].fieldKeyrequiredstring
values[].hasValuerequiredboolean
values[].kindrequiredstring
values[].relationsarray of DocRelationRefView
values[].relations[].idrequiredstring
values[].relations[].kindrequiredstring
values[].relations[].restrictedrequiredboolean
values[].relations[].subtitlestring
values[].relations[].titlerequiredstring
values[].setByNamestring
values[].sourcerequiredstring
values[].sourceRefstring
values[].syncedAtstring (date-time) or null
values[].updatedAtrequiredstring (date-time)
values[].valuestring
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/docs/assets' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"archived": false,
"labels": [
"string"
],
"layoutId": "string",
"restricted": false,
"siteId": "string",
"title": "string"
}'

GETdocs:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Get doc asset

NameInTypeRequiredDescription
assetIdpathstringYesA uuid.
StatusBodyDescription
200application/json, DocAssetViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
archivedrequiredboolean
createdAtrequiredstring (date-time)
grantrequiredstring
labelsrequiredarray of string
layoutIdrequiredstring
layoutKeyrequiredstring
layoutNamerequiredstring
layoutScoperequiredstring
linkCountrequiredinteger
publicIdrequiredstring
restrictedrequiredboolean
siteIdstring
sourceRefstring
sourceSystemstring
titlerequiredstring
updatedAtrequiredstring (date-time)
valuesarray of DocAssetValueView
values[].credentialIdstring
values[].documentIdstring
values[].fieldIdrequiredstring
values[].fieldKeyrequiredstring
values[].hasValuerequiredboolean
values[].kindrequiredstring
values[].relationsarray of DocRelationRefView
values[].relations[].idrequiredstring
values[].relations[].kindrequiredstring
values[].relations[].restrictedrequiredboolean
values[].relations[].subtitlestring
values[].relations[].titlerequiredstring
values[].setByNamestring
values[].sourcerequiredstring
values[].sourceRefstring
values[].syncedAtstring (date-time) or null
values[].updatedAtrequiredstring (date-time)
values[].valuestring
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/docs/assets/<assetId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PATCHdocs:writetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Patch doc asset

NameInTypeRequiredDescription
assetIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
archivedboolean or null
labelsrequiredarray of string
layoutIdstring or null
restrictedboolean or null
siteIdstring or null
titlestring or null
StatusBodyDescription
200application/json, DocAssetViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
archivedrequiredboolean
createdAtrequiredstring (date-time)
grantrequiredstring
labelsrequiredarray of string
layoutIdrequiredstring
layoutKeyrequiredstring
layoutNamerequiredstring
layoutScoperequiredstring
linkCountrequiredinteger
publicIdrequiredstring
restrictedrequiredboolean
siteIdstring
sourceRefstring
sourceSystemstring
titlerequiredstring
updatedAtrequiredstring (date-time)
valuesarray of DocAssetValueView
values[].credentialIdstring
values[].documentIdstring
values[].fieldIdrequiredstring
values[].fieldKeyrequiredstring
values[].hasValuerequiredboolean
values[].kindrequiredstring
values[].relationsarray of DocRelationRefView
values[].relations[].idrequiredstring
values[].relations[].kindrequiredstring
values[].relations[].restrictedrequiredboolean
values[].relations[].subtitlestring
values[].relations[].titlerequiredstring
values[].setByNamestring
values[].sourcerequiredstring
values[].sourceRefstring
values[].syncedAtstring (date-time) or null
values[].updatedAtrequiredstring (date-time)
values[].valuestring
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/docs/assets/<assetId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"archived": false,
"labels": [
"string"
],
"layoutId": "string",
"restricted": false,
"siteId": "string",
"title": "string"
}'

DELETEdocs:writetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Delete doc asset

NameInTypeRequiredDescription
assetIdpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.
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/docs/assets/<assetId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GET /api/v1/docs/assets/{assetId}/documents

Section titled “GET /api/v1/docs/assets/{assetId}/documents”

GETdocs:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

List doc asset documents

NameInTypeRequiredDescription
assetIdpathstringYesA uuid.
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
StatusBodyDescription
200application/json, PagedResultDocDocumentViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
itemsrequiredarray of DocDocumentView
items[].contentTyperequiredstring
items[].createdAtrequiredstring (date-time)
items[].downloadUrlrequiredstring
items[].fileNamerequiredstring
items[].parentIdrequiredstring
items[].parentKindrequiredstring
items[].publicIdrequiredstring
items[].sizeBytesrequiredinteger

int64.

items[].uploadedByNamestring
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/docs/assets/<assetId>/documents?page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/docs/assets/{assetId}/documents

Section titled “POST /api/v1/docs/assets/{assetId}/documents”

POSTdocs:writetenant facehosteditmspremote

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

Source: [object Object]

uploadDocDocument takes one file as the raw request body.

The tenant is already on the context: these routes mount on apiMux behind tenant.Middleware, which is what the project surface has to reconstruct by hand because its documents hang off the MSP mux.

NameInTypeRequiredDescription
assetIdpathstringYesA uuid.
fileNamequerystringNo
StatusBodyDescription
201application/json, DocDocumentViewCreated.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
413application/problem+json, ProblemDetailsThe request was refused.
415application/problem+json, ProblemDetailsA fileName query parameter is required.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
502application/problem+json, ProblemDetailsThe file could not be stored. Nothing was attached.
503application/problem+json, ProblemDetailsFile storage is not configured on this Depot.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

201 response body

FieldTypeDescription
contentTyperequiredstring
createdAtrequiredstring (date-time)
downloadUrlrequiredstring
fileNamerequiredstring
parentIdrequiredstring
parentKindrequiredstring
publicIdrequiredstring
sizeBytesrequiredinteger

int64.

uploadedByNamestring
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/docs/assets/<assetId>/documents?fileName=<fileName>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETdocs:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

List doc asset values

NameInTypeRequiredDescription
assetIdpathstringYesA uuid.
StatusBodyDescription
200application/json, PagedResultDocAssetValueViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
itemsrequiredarray of DocAssetValueView
items[].credentialIdstring
items[].documentIdstring
items[].fieldIdrequiredstring
items[].fieldKeyrequiredstring
items[].hasValuerequiredboolean
items[].kindrequiredstring
items[].relationsarray of DocRelationRefView
items[].relations[].idrequiredstring
items[].relations[].kindrequiredstring
items[].relations[].restrictedrequiredboolean
items[].relations[].subtitlestring
items[].relations[].titlerequiredstring
items[].setByNamestring
items[].sourcerequiredstring
items[].sourceRefstring
items[].syncedAtstring (date-time) or null
items[].updatedAtrequiredstring (date-time)
items[].valuestring
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/docs/assets/<assetId>/fields' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PUTdocs:writetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

putDocAssetValues writes the whole field set.

WHOLE-SET AND NOT A DIFF, which is the store’s contract and this handler’s job to honour: a key absent from the body CLEARS its value. That is stated on the route in the console so nobody discovers it by losing a field, and it is the only shape under which the title and the search vector can be rebuilt from all current values in one transaction.

A SEALED VALUE LEFT OUT IS REFUSED, NOT SILENTLY CLEARED. This is the sharp edge of the whole-set rule and it is worth the paragraph.

A caller that read the record back got hasValue and no plaintext, so it cannot echo a confidential value it never saw, and the obvious “save what I read” therefore omits every password on the record. Under the whole-set rule that DELETES them. Carrying them forward is not available: carrying means sending, and the only plaintext this package can obtain is through an AUDITED reveal - decrypting a secret in order to save a form is a disclosure with no record, which rule 1.2 exists to forbid. Nor can the value be sent back empty: CK_DocAssetFieldValue_Carrier requires a confidential row to carry ciphertext, so “no value” is the ABSENCE of the row and not a row holding nothing.

So the omission is refused, naming the field, and a caller that MEANT to remove the value says so with clear. Keeping is re-sending, clearing is explicit, and neither is the default that loses data.

NameInTypeRequiredDescription
assetIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
valuesrequiredarray of object
values[].clearrequiredboolean
values[].credentialIdstring or null
values[].documentIdstring or null
values[].fieldKeyrequiredstring
values[].relationIdsrequiredarray of string
values[].relationKindrequiredstring
values[].valuestring or null
StatusBodyDescription
200application/json, DocAssetViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
archivedrequiredboolean
createdAtrequiredstring (date-time)
grantrequiredstring
labelsrequiredarray of string
layoutIdrequiredstring
layoutKeyrequiredstring
layoutNamerequiredstring
layoutScoperequiredstring
linkCountrequiredinteger
publicIdrequiredstring
restrictedrequiredboolean
siteIdstring
sourceRefstring
sourceSystemstring
titlerequiredstring
updatedAtrequiredstring (date-time)
valuesarray of DocAssetValueView
values[].credentialIdstring
values[].documentIdstring
values[].fieldIdrequiredstring
values[].fieldKeyrequiredstring
values[].hasValuerequiredboolean
values[].kindrequiredstring
values[].relationsarray of DocRelationRefView
values[].relations[].idrequiredstring
values[].relations[].kindrequiredstring
values[].relations[].restrictedrequiredboolean
values[].relations[].subtitlestring
values[].relations[].titlerequiredstring
values[].setByNamestring
values[].sourcerequiredstring
values[].sourceRefstring
values[].syncedAtstring (date-time) or null
values[].updatedAtrequiredstring (date-time)
values[].valuestring
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/docs/assets/<assetId>/fields' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"values": [
{
"clear": false,
"credentialId": "string",
"documentId": "string",
"fieldKey": "string",
"relationIds": [
"string"
],
"relationKind": "string",
"value": "string"
}
]
}'

POST /api/v1/docs/assets/{assetId}/fields/{fieldKey}/reveal

Section titled “POST /api/v1/docs/assets/{assetId}/fields/{fieldKey}/reveal”

POSTdocs:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

revealDocAssetField is the nine steps of DOCS_CONTRACTS.md section 7.1, applied to a confidential asset field.

THE ORDER IS THE RULE. The record is read first so a field that does not exist is a 404 with nothing written to the chain; the access is resolved; the audit row is appended AND CHECKED; only then is the store asked for plaintext. An audit write that fails answers 500 and never the value, because this is the one audit in the package that records something leaving no other trace.

NameInTypeRequiredDescription
assetIdpathstringYesA uuid.
fieldKeypathstringYes
StatusBodyDescription
200application/json, DocFieldRevealResponseSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
auditIdrequiredinteger

int64.

fieldKeyrequiredstring
valuerequiredstring
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X POST 'https://depot.example.com/api/v1/docs/assets/<assetId>/fields/<fieldKey>/reveal' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETdocs:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

List doc certificates

NameInTypeRequiredDescription
agentIdquerystringNo
domainIdquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
StatusBodyDescription
200application/json, PagedResultDocCertificateViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
itemsrequiredarray of DocCertificateView
items[].agentIdstring
items[].createdAtrequiredstring (date-time)
items[].domainIdstring
items[].issuerstring
items[].monitorExpiryrequiredboolean
items[].notAfterstring (date-time) or null
items[].notBeforestring (date-time) or null
items[].publicIdrequiredstring
items[].sansrequiredarray of string
items[].serialNumberstring
items[].sourcerequiredstring
items[].storePathstring
items[].subjectrequiredstring
items[].thumbprintstring
items[].updatedAtrequiredstring (date-time)
items[].usagestring
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/docs/certificates?agentId=<agentId>&domainId=<domainId>&page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTdocs:writetenant facehosteditmspremote

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

Source: [object Object]

Create doc certificate

Required, sent as application/json.

FieldTypeDescription
domainIdstring or null
issuerstring or null
monitorExpiryboolean or null
notAfterstring or null
notBeforestring or null
sansrequiredarray of string
serialNumberstring or null
storePathstring or null
subjectstring or null
thumbprintstring or null
usagestring or null
StatusBodyDescription
201application/json, DocCertificateViewCreated.
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 docs:write.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

201 response body

FieldTypeDescription
agentIdstring
createdAtrequiredstring (date-time)
domainIdstring
issuerstring
monitorExpiryrequiredboolean
notAfterstring (date-time) or null
notBeforestring (date-time) or null
publicIdrequiredstring
sansrequiredarray of string
serialNumberstring
sourcerequiredstring
storePathstring
subjectrequiredstring
thumbprintstring
updatedAtrequiredstring (date-time)
usagestring
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/docs/certificates' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"domainId": "string",
"issuer": "string",
"monitorExpiry": false,
"notAfter": "string",
"notBefore": "string",
"sans": [
"string"
],
"serialNumber": "string",
"storePath": "string",
"subject": "string",
"thumbprint": "string",
"usage": "string"
}'

GETdocs:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Get doc certificate

NameInTypeRequiredDescription
certIdpathstringYesA uuid.
StatusBodyDescription
200application/json, DocCertificateViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
agentIdstring
createdAtrequiredstring (date-time)
domainIdstring
issuerstring
monitorExpiryrequiredboolean
notAfterstring (date-time) or null
notBeforestring (date-time) or null
publicIdrequiredstring
sansrequiredarray of string
serialNumberstring
sourcerequiredstring
storePathstring
subjectrequiredstring
thumbprintstring
updatedAtrequiredstring (date-time)
usagestring
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/docs/certificates/<certId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PATCHdocs:writetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

patchDocCertificate edits a HAND-ENTERED certificate.

A row mirrored out of an endpoint’s inventory or read off a TLS handshake is REFUSED, because the next sweep would overwrite the edit and the operator would have watched their correction disappear. The fix for a wrong inventory-sourced row is the endpoint, not this record.

NameInTypeRequiredDescription
certIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
domainIdstring or null
issuerstring or null
monitorExpiryboolean or null
notAfterstring or null
notBeforestring or null
sansrequiredarray of string
serialNumberstring or null
storePathstring or null
subjectstring or null
thumbprintstring or null
usagestring or null
StatusBodyDescription
200application/json, DocCertificateViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:write.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
agentIdstring
createdAtrequiredstring (date-time)
domainIdstring
issuerstring
monitorExpiryrequiredboolean
notAfterstring (date-time) or null
notBeforestring (date-time) or null
publicIdrequiredstring
sansrequiredarray of string
serialNumberstring
sourcerequiredstring
storePathstring
subjectrequiredstring
thumbprintstring
updatedAtrequiredstring (date-time)
usagestring
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/docs/certificates/<certId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"domainId": "string",
"issuer": "string",
"monitorExpiry": false,
"notAfter": "string",
"notBefore": "string",
"sans": [
"string"
],
"serialNumber": "string",
"storePath": "string",
"subject": "string",
"thumbprint": "string",
"usage": "string"
}'

DELETEdocs:writetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Delete doc certificate

NameInTypeRequiredDescription
certIdpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:write.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.
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/docs/certificates/<certId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETdocs:readshared facehosteditmspremoteIdempotent

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

Source: [object Object]

listDocConnectedSources answers the bindings a connected field may name.

IT IS STATIC AND IT IS ON BOTH FACES, which is why it takes no store and reads no tenant: the grammar is the Depot’s, not a client’s, and a layout designed on the practice face is instanced into every client’s database, so a picker that answered differently depending on which face asked would offer a binding that stops resolving the moment the layout is used.

IT EXISTS BECAUSE THE CONSOLE HARDCODED THE LIST. A second copy of these keys in TypeScript drifts the day a column is added to the grammar, and the failure is silent in the direction nobody checks: the builder never offers the new field, so the grammar that would have accepted it is never asked and nobody finds out it was added.

docs:read and not docs:manage, even though only the layout builder renders it: it is a vocabulary rather than a setting, it names no client’s data, and a picker behind a code the person filling in the form lacks is a picker that renders empty for exactly the reader who needs to know what a field is bound to.

StatusBodyDescription
200application/json, DocConnectedSourcesResponseSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.

200 response body

FieldTypeDescription
sourcesrequiredarray of Binding
sources[].keyrequiredstring
sources[].kindrequiredstring
sources[].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 GET 'https://depot.example.com/api/v1/docs/connected-sources' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETdocs:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

listDocDiagrams lists the client’s diagram files, newest first.

q narrows to files whose name or parent’s title contains it. A file whose parent the caller may not see is left out, never shown as restricted: the restriction exists to hide the parent.

NameInTypeRequiredDescription
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
qquerystringNo
StatusBodyDescription
200application/json, PagedResultDocDiagramViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
itemsrequiredarray of DocDiagramView
items[].createdAtrequiredstring (date-time)
items[].documentIdrequiredstring
items[].fileNamerequiredstring
items[].formatrequiredstring, one of drawio, image, vsdx
items[].parentIdrequiredstring
items[].parentKindrequiredstring
items[].parentTitlerequiredstring
items[].sizeBytesrequiredinteger

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

DELETE /api/v1/docs/documents/{documentId}

Section titled “DELETE /api/v1/docs/documents/{documentId}”

DELETEdocs:writeshared facehosteditmspremoteIdempotent

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

Source: [object Object]

Delete doc document

NameInTypeRequiredDescription
documentIdpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:write.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.
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/docs/documents/<documentId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GET /api/v1/docs/documents/{documentId}/content

Section titled “GET /api/v1/docs/documents/{documentId}/content”

GETdocs:readshared 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]

downloadDocDocument streams one file back.

The document is addressed by its own id rather than through its parent, because a document hangs off four different kinds of record and four routes would be four places to forget a check. The ACCESS CHECK IS STILL THE PARENT’S: the document inherits the record’s restriction, and a reader who may not see the firewall record may not download its configuration export either.

NameInTypeRequiredDescription
documentIdpathstringYesA uuid.
StatusBodyDescription
200application/octet-stream, string (binary)Success. The body shape was not resolved; see x-outpost-unresolved.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.
502application/problem+json, ProblemDetailsThe file could not be read.
503application/problem+json, ProblemDetailsFile storage is not configured on this Depot.
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/docs/documents/<documentId>/content' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GET /api/v1/docs/documents/{documentId}/diagram

Section titled “GET /api/v1/docs/documents/{documentId}/diagram”

GETdocs:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

readDocDiagram parses one diagram file (.drawio or .vsdx) and answers its pages as a graph plus the text summary Pioneer reads.

An image, or a file that will not parse, is a 422 saying why: an image is read only when the technician attaches it in a Pioneer chat.

NameInTypeRequiredDescription
documentIdpathstringYesA uuid.
StatusBodyDescription
200application/json, DocDiagramReadSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
422application/problem+json, ProblemDetailsThe request was refused.
500application/problem+json, ProblemDetailsNo client store in request context.
502application/problem+json, ProblemDetailsThe file could not be read.
503application/problem+json, ProblemDetailsFile storage is not configured on this Depot.

200 response body

FieldTypeDescription
diagramrequiredDiagram

Diagram is a parsed diagram file (.drawio or .vsdx): one Graph per page, every node and edge Source "doc" (NETWORK_MAP_CONTRACTS.md 9).

diagram.formatrequiredstring, one of drawio, vsdx
diagram.pagesrequiredarray of DiagramPage
diagram.pages[].graphrequiredGraph

Graph is the network map.

diagram.pages[].graph.edgesrequiredarray of Edge
diagram.pages[].graph.groupsrequiredarray of Group
diagram.pages[].graph.heightrequirednumber

double.

diagram.pages[].graph.iconsobject
diagram.pages[].graph.nodesrequiredarray of Node
diagram.pages[].graph.versionrequiredinteger
diagram.pages[].graph.viewstring
diagram.pages[].graph.widthrequirednumber

double.

diagram.pages[].namerequiredstring
documentIdrequiredstring
fileNamerequiredstring
formatrequiredstring
summaryrequiredstring
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/docs/documents/<documentId>/diagram' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETdocs:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

List doc domains

NameInTypeRequiredDescription
dirquerystring, one of asc, descNoSort direction.
expiringWithinDaysquerystringNo
hasContractquerystringNo
monitoredquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
qquerystringNoFree-text search term.
sortquerystring, one of created, expires, name, updatedNoSort key.
vendorIdquerystringNo
StatusBodyDescription
200application/json, DocDomainListResponseSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
itemsrequiredarray of DocDomainView
items[].checkFailureCountrequiredinteger
items[].createdAtrequiredstring (date-time)
items[].dkimSelectorsrequiredarray of string
items[].dkimStatestring
items[].dmarcRecordstring
items[].dmarcStatestring
items[].expiresOnstring (date-time) or null
items[].lastCheckErrorstring
items[].lastCheckStatusstring
items[].lastCheckedAtstring (date-time) or null
items[].linkCountrequiredinteger
items[].monitorDnsrequiredboolean
items[].monitorExpiryrequiredboolean
items[].monitorTlsrequiredboolean
items[].namerequiredstring
items[].nameserversrequiredarray of string
items[].nextCheckAtstring (date-time) or null
items[].publicIdrequiredstring
items[].registeredOnstring (date-time) or null
items[].registrarstring
items[].restrictedrequiredboolean
items[].spfRecordstring
items[].spfStatestring
items[].updatedAtrequiredstring (date-time)
pagerequiredinteger
pageSizerequiredinteger
totalrequiredinteger
truncatedboolean
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/docs/domains?dir=asc&expiringWithinDays=<expiringWithinDays>&hasContract=<hasContract>&monitored=<monitored>&page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTdocs:writetenant facehosteditmspremote

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

Source: [object Object]

Create doc domain

Required, sent as application/json.

FieldTypeDescription
dkimSelectorsrequiredarray of string
expiresOnstring or null
monitorDnsboolean or null
monitorExpiryboolean or null
monitorTlsboolean or null
namestring or null
nameserversrequiredarray of string
registeredOnstring or null
registrarstring or null
restrictedboolean or null
StatusBodyDescription
201application/json, DocDomainViewCreated.
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 docs:write.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

201 response body

FieldTypeDescription
checkFailureCountrequiredinteger
createdAtrequiredstring (date-time)
dkimSelectorsrequiredarray of string
dkimStatestring
dmarcRecordstring
dmarcStatestring
expiresOnstring (date-time) or null
lastCheckErrorstring
lastCheckStatusstring
lastCheckedAtstring (date-time) or null
linkCountrequiredinteger
monitorDnsrequiredboolean
monitorExpiryrequiredboolean
monitorTlsrequiredboolean
namerequiredstring
nameserversrequiredarray of string
nextCheckAtstring (date-time) or null
publicIdrequiredstring
registeredOnstring (date-time) or null
registrarstring
restrictedrequiredboolean
spfRecordstring
spfStatestring
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/docs/domains' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"dkimSelectors": [
"string"
],
"expiresOn": "string",
"monitorDns": false,
"monitorExpiry": false,
"monitorTls": false,
"name": "string",
"nameservers": [
"string"
],
"registeredOn": "string",
"registrar": "string",
"restricted": false
}'

GETdocs:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Get doc domain

NameInTypeRequiredDescription
domainIdpathstringYesA uuid.
StatusBodyDescription
200application/json, DocDomainViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
checkFailureCountrequiredinteger
createdAtrequiredstring (date-time)
dkimSelectorsrequiredarray of string
dkimStatestring
dmarcRecordstring
dmarcStatestring
expiresOnstring (date-time) or null
lastCheckErrorstring
lastCheckStatusstring
lastCheckedAtstring (date-time) or null
linkCountrequiredinteger
monitorDnsrequiredboolean
monitorExpiryrequiredboolean
monitorTlsrequiredboolean
namerequiredstring
nameserversrequiredarray of string
nextCheckAtstring (date-time) or null
publicIdrequiredstring
registeredOnstring (date-time) or null
registrarstring
restrictedrequiredboolean
spfRecordstring
spfStatestring
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/docs/domains/<domainId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PATCHdocs:writetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Patch doc domain

NameInTypeRequiredDescription
domainIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
dkimSelectorsrequiredarray of string
expiresOnstring or null
monitorDnsboolean or null
monitorExpiryboolean or null
monitorTlsboolean or null
namestring or null
nameserversrequiredarray of string
registeredOnstring or null
registrarstring or null
restrictedboolean or null
StatusBodyDescription
200application/json, DocDomainViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:write.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
checkFailureCountrequiredinteger
createdAtrequiredstring (date-time)
dkimSelectorsrequiredarray of string
dkimStatestring
dmarcRecordstring
dmarcStatestring
expiresOnstring (date-time) or null
lastCheckErrorstring
lastCheckStatusstring
lastCheckedAtstring (date-time) or null
linkCountrequiredinteger
monitorDnsrequiredboolean
monitorExpiryrequiredboolean
monitorTlsrequiredboolean
namerequiredstring
nameserversrequiredarray of string
nextCheckAtstring (date-time) or null
publicIdrequiredstring
registeredOnstring (date-time) or null
registrarstring
restrictedrequiredboolean
spfRecordstring
spfStatestring
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/docs/domains/<domainId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"dkimSelectors": [
"string"
],
"expiresOn": "string",
"monitorDns": false,
"monitorExpiry": false,
"monitorTls": false,
"name": "string",
"nameservers": [
"string"
],
"registeredOn": "string",
"registrar": "string",
"restricted": false
}'

DELETEdocs:writetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Delete doc domain

NameInTypeRequiredDescription
domainIdpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:write.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.
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/docs/domains/<domainId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/docs/domains/{domainId}/check

Section titled “POST /api/v1/docs/domains/{domainId}/check”

POSTdocs:writetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Check doc domain

NameInTypeRequiredDescription
domainIdpathstringYesA uuid.
StatusBodyDescription
202application/json, DocDomainCheckResponseAccepted.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:write.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot cannot schedule a domain check.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

202 response body

FieldTypeDescription
domainChecksAvailablerequiredboolean
nextCheckAtstring (date-time) or null
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 POST 'https://depot.example.com/api/v1/docs/domains/<domainId>/check' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETdocs:readshared facehosteditmspremoteIdempotent

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

Source: [object Object]

listDocExpirations answers the expirations page and the Documentation overview’s two counts.

withinDays is the lead-day filter the console’s chips send. It defaults to the SECOND lead day plus the first, so the default page is everything either warning band would have raised, rather than an arbitrary ninety days.

NameInTypeRequiredDescription
clientIdquerystringNo
includePastquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
siteIdquerystringNo
sourceKindsquerystring, one of article_review, asset_field, asset_warranty, certificate, credential_rotate, domain, licence, vendor_contractNoComma-separated set. An unrecognised value is refused.
withinDaysquerystringNo
StatusBodyDescription
200application/json, DocExpirationsResponseSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
404application/problem+json, ProblemDetailsNo resource matches that scope.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThe client scope is unavailable.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
breachChecksAvailablerequiredboolean
domainChecksAvailablerequiredboolean
itemsrequiredarray of DocExpirationRow
items[].clientIdstring
items[].clientNamestring
items[].daysRemainingrequiredinteger
items[].detailrequiredstring
items[].dueOnrequiredstring (date-time)
items[].hrefrequiredstring
items[].objectIdrequiredstring
items[].objectKindrequiredstring
items[].severityrequiredstring
items[].sourceKindrequiredstring
items[].titlerequiredstring
pagerequiredinteger
pageSizerequiredinteger
siteFilteredrequiredboolean
totalrequiredinteger
unavailableClientsarray of DocUnavailableClient
unavailableClients[].clientIdrequiredstring
unavailableClients[].namerequiredstring
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/docs/expirations?clientId=<clientId>&includePast=<includePast>&page=0&pageSize=0&siteId=<siteId>&sourceKinds=article_review' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETdocs:readshared facehosteditmspremoteIdempotent

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

Source: [object Object]

List doc layouts

NameInTypeRequiredDescription
includeArchivedquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
StatusBodyDescription
200application/json, PagedResultDocLayoutViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThe request failed.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
itemsrequiredarray of DocLayoutView
items[].archivedrequiredboolean
items[].createdAtrequiredstring (date-time)
items[].descriptionstring
items[].fieldsrequiredarray of DocFieldView
items[].fields[].connectedSourcestring
items[].fields[].defaultValuestring
items[].fields[].hintstring
items[].fields[].keyrequiredstring
items[].fields[].kindrequiredstring
items[].fields[].labelrequiredstring
items[].fields[].optionListIdstring
items[].fields[].optionsrequiredarray of string
items[].fields[].publicIdrequiredstring
items[].fields[].relationKindsrequiredarray of string
items[].fields[].requiredrequiredboolean
items[].fields[].showIfany
items[].fields[].showInListrequiredboolean
items[].fields[].sortOrderrequiredinteger
items[].fields[].tracksExpirationrequiredboolean
items[].iconstring
items[].keyrequiredstring
items[].namerequiredstring
items[].publicIdrequiredstring
items[].restrictedrequiredboolean
items[].scoperequiredstring
items[].sortOrderrequiredinteger
items[].titleFieldKeystring
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/docs/layouts?includeArchived=<includeArchived>&page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTdocs:manageshared facehosteditmspremote

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

Source: [object Object]

Create doc layout

Required, sent as application/json.

FieldTypeDescription
archivedboolean or null
descriptionstring or null
iconstring or null
keystring or null
namestring or null
restrictedboolean or null
sortOrderinteger or null
titleFieldKeystring or null
StatusBodyDescription
201application/json, DocLayoutViewCreated.
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 docs:manage.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThe request failed.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

201 response body

FieldTypeDescription
archivedrequiredboolean
createdAtrequiredstring (date-time)
descriptionstring
fieldsrequiredarray of DocFieldView
fields[].connectedSourcestring
fields[].defaultValuestring
fields[].hintstring
fields[].keyrequiredstring
fields[].kindrequiredstring
fields[].labelrequiredstring
fields[].optionListIdstring
fields[].optionsrequiredarray of string
fields[].publicIdrequiredstring
fields[].relationKindsrequiredarray of string
fields[].requiredrequiredboolean
fields[].showIfany
fields[].showInListrequiredboolean
fields[].sortOrderrequiredinteger
fields[].tracksExpirationrequiredboolean
iconstring
keyrequiredstring
namerequiredstring
publicIdrequiredstring
restrictedrequiredboolean
scoperequiredstring
sortOrderrequiredinteger
titleFieldKeystring
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/docs/layouts' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"archived": false,
"description": "string",
"icon": "string",
"key": "string",
"name": "string",
"restricted": false,
"sortOrder": 0,
"titleFieldKey": "string"
}'

GETdocs:readshared facehosteditmspremoteIdempotent

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

Source: [object Object]

Get doc layout

NameInTypeRequiredDescription
layoutIdpathstringYesA uuid.
StatusBodyDescription
200application/json, DocLayoutViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThe request failed.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
archivedrequiredboolean
createdAtrequiredstring (date-time)
descriptionstring
fieldsrequiredarray of DocFieldView
fields[].connectedSourcestring
fields[].defaultValuestring
fields[].hintstring
fields[].keyrequiredstring
fields[].kindrequiredstring
fields[].labelrequiredstring
fields[].optionListIdstring
fields[].optionsrequiredarray of string
fields[].publicIdrequiredstring
fields[].relationKindsrequiredarray of string
fields[].requiredrequiredboolean
fields[].showIfany
fields[].showInListrequiredboolean
fields[].sortOrderrequiredinteger
fields[].tracksExpirationrequiredboolean
iconstring
keyrequiredstring
namerequiredstring
publicIdrequiredstring
restrictedrequiredboolean
scoperequiredstring
sortOrderrequiredinteger
titleFieldKeystring
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/docs/layouts/<layoutId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PATCHdocs:manageshared facehosteditmspremoteIdempotent

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

Source: [object Object]

Patch doc layout

NameInTypeRequiredDescription
layoutIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
archivedboolean or null
descriptionstring or null
iconstring or null
keystring or null
namestring or null
restrictedboolean or null
sortOrderinteger or null
titleFieldKeystring or null
StatusBodyDescription
200application/json, DocLayoutViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThe request failed.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
archivedrequiredboolean
createdAtrequiredstring (date-time)
descriptionstring
fieldsrequiredarray of DocFieldView
fields[].connectedSourcestring
fields[].defaultValuestring
fields[].hintstring
fields[].keyrequiredstring
fields[].kindrequiredstring
fields[].labelrequiredstring
fields[].optionListIdstring
fields[].optionsrequiredarray of string
fields[].publicIdrequiredstring
fields[].relationKindsrequiredarray of string
fields[].requiredrequiredboolean
fields[].showIfany
fields[].showInListrequiredboolean
fields[].sortOrderrequiredinteger
fields[].tracksExpirationrequiredboolean
iconstring
keyrequiredstring
namerequiredstring
publicIdrequiredstring
restrictedrequiredboolean
scoperequiredstring
sortOrderrequiredinteger
titleFieldKeystring
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/docs/layouts/<layoutId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"archived": false,
"description": "string",
"icon": "string",
"key": "string",
"name": "string",
"restricted": false,
"sortOrder": 0,
"titleFieldKey": "string"
}'

DELETEdocs:manageshared facehosteditmspremoteIdempotent

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

Source: [object Object]

Delete doc layout

NameInTypeRequiredDescription
layoutIdpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThe request failed.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.
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/docs/layouts/<layoutId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GET /api/v1/docs/layouts/{layoutId}/fields

Section titled “GET /api/v1/docs/layouts/{layoutId}/fields”

GETdocs:readshared facehosteditmspremoteIdempotent

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

Source: [object Object]

List doc layout fields

NameInTypeRequiredDescription
layoutIdpathstringYesA uuid.
StatusBodyDescription
200application/json, PagedResultDocFieldViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThe request failed.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
itemsrequiredarray of DocFieldView
items[].connectedSourcestring
items[].defaultValuestring
items[].hintstring
items[].keyrequiredstring
items[].kindrequiredstring
items[].labelrequiredstring
items[].optionListIdstring
items[].optionsrequiredarray of string
items[].publicIdrequiredstring
items[].relationKindsrequiredarray of string
items[].requiredrequiredboolean
items[].showIfany
items[].showInListrequiredboolean
items[].sortOrderrequiredinteger
items[].tracksExpirationrequiredboolean
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/docs/layouts/<layoutId>/fields' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/docs/layouts/{layoutId}/fields

Section titled “POST /api/v1/docs/layouts/{layoutId}/fields”

POSTdocs:manageshared facehosteditmspremote

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

Source: [object Object]

Create doc layout field

NameInTypeRequiredDescription
layoutIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
connectedSourcestring or null
defaultValuestring or null
hintstring or null
keystring or null
kindstring or null
labelstring or null
optionListIdstring or null
optionsrequiredarray of string
relationKindsrequiredarray of string
requiredboolean or null
showIfrequiredany

Arbitrary JSON.

showInListboolean or null
sortOrderinteger or null
tracksExpirationboolean or null
StatusBodyDescription
201application/json, DocFieldViewCreated.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThe request failed.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

201 response body

FieldTypeDescription
connectedSourcestring
defaultValuestring
hintstring
keyrequiredstring
kindrequiredstring
labelrequiredstring
optionListIdstring
optionsrequiredarray of string
publicIdrequiredstring
relationKindsrequiredarray of string
requiredrequiredboolean
showIfany
showInListrequiredboolean
sortOrderrequiredinteger
tracksExpirationrequiredboolean
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/docs/layouts/<layoutId>/fields' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"connectedSource": "string",
"defaultValue": "string",
"hint": "string",
"key": "string",
"kind": "string",
"label": "string",
"optionListId": "string",
"options": [
"string"
],
"relationKinds": [
"string"
],
"required": false,
"showIf": "string",
"showInList": false,
"sortOrder": 0,
"tracksExpiration": false
}'

PATCH /api/v1/docs/layouts/{layoutId}/fields/{fieldId}

Section titled “PATCH /api/v1/docs/layouts/{layoutId}/fields/{fieldId}”

PATCHdocs:manageshared facehosteditmspremoteIdempotent

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

Source: [object Object]

Patch doc layout field

NameInTypeRequiredDescription
fieldIdpathstringYesA uuid.
layoutIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
connectedSourcestring or null
defaultValuestring or null
hintstring or null
keystring or null
kindstring or null
labelstring or null
optionListIdstring or null
optionsrequiredarray of string
relationKindsrequiredarray of string
requiredboolean or null
showIfrequiredany

Arbitrary JSON.

showInListboolean or null
sortOrderinteger or null
tracksExpirationboolean or null
StatusBodyDescription
200application/json, DocFieldViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThe request failed.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
connectedSourcestring
defaultValuestring
hintstring
keyrequiredstring
kindrequiredstring
labelrequiredstring
optionListIdstring
optionsrequiredarray of string
publicIdrequiredstring
relationKindsrequiredarray of string
requiredrequiredboolean
showIfany
showInListrequiredboolean
sortOrderrequiredinteger
tracksExpirationrequiredboolean
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/docs/layouts/<layoutId>/fields/<fieldId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"connectedSource": "string",
"defaultValue": "string",
"hint": "string",
"key": "string",
"kind": "string",
"label": "string",
"optionListId": "string",
"options": [
"string"
],
"relationKinds": [
"string"
],
"required": false,
"showIf": "string",
"showInList": false,
"sortOrder": 0,
"tracksExpiration": false
}'

DELETE /api/v1/docs/layouts/{layoutId}/fields/{fieldId}

Section titled “DELETE /api/v1/docs/layouts/{layoutId}/fields/{fieldId}”

DELETEdocs:manageshared facehosteditmspremoteIdempotent

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

Source: [object Object]

Delete doc layout field

NameInTypeRequiredDescription
fieldIdpathstringYesA uuid.
layoutIdpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThe request failed.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.
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/docs/layouts/<layoutId>/fields/<fieldId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETdocs:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

List doc licences

NameInTypeRequiredDescription
dirquerystring, one of asc, descNoSort direction.
expiringWithinDaysquerystringNo
hasContractquerystringNo
monitoredquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
qquerystringNoFree-text search term.
sortquerystring, one of created, expires, name, updatedNoSort key.
vendorIdquerystringNo
StatusBodyDescription
200application/json, DocLicenceListResponseSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
itemsrequiredarray of DocLicenceView
items[].autoRenewsrequiredboolean
items[].createdAtrequiredstring (date-time)
items[].expiresOnstring (date-time) or null
items[].keyCredentialIdstring
items[].labelsrequiredarray of string
items[].linkCountrequiredinteger
items[].namerequiredstring
items[].notesstring
items[].productstring
items[].publicIdrequiredstring
items[].purchasedOnstring (date-time) or null
items[].restrictedrequiredboolean
items[].seatsTotalrequiredinteger
items[].seatsUsedrequiredinteger
items[].updatedAtrequiredstring (date-time)
items[].vendorIdstring
items[].vendorNamestring
pagerequiredinteger
pageSizerequiredinteger
totalrequiredinteger
truncatedboolean
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/docs/licences?dir=asc&expiringWithinDays=<expiringWithinDays>&hasContract=<hasContract>&monitored=<monitored>&page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTdocs:writetenant facehosteditmspremote

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

Source: [object Object]

Create doc licence

Required, sent as application/json.

FieldTypeDescription
autoRenewsboolean or null
expiresOnstring or null
keystring or null
keyCredentialIdstring or null
labelsrequiredarray of string
namestring or null
notesstring or null
productstring or null
purchasedOnstring or null
restrictedboolean or null
seatsTotalinteger or null
seatsUsedinteger or null
vendorIdstring or null
StatusBodyDescription
201application/json, DocLicenceViewCreated.
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 docs:write.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

201 response body

FieldTypeDescription
autoRenewsrequiredboolean
createdAtrequiredstring (date-time)
expiresOnstring (date-time) or null
keyCredentialIdstring
labelsrequiredarray of string
linkCountrequiredinteger
namerequiredstring
notesstring
productstring
publicIdrequiredstring
purchasedOnstring (date-time) or null
restrictedrequiredboolean
seatsTotalrequiredinteger
seatsUsedrequiredinteger
updatedAtrequiredstring (date-time)
vendorIdstring
vendorNamestring
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/docs/licences' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"autoRenews": false,
"expiresOn": "string",
"key": "string",
"keyCredentialId": "string",
"labels": [
"string"
],
"name": "string",
"notes": "string",
"product": "string",
"purchasedOn": "string",
"restricted": false,
"seatsTotal": 0,
"seatsUsed": 0,
"vendorId": "string"
}'

GETdocs:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Get doc licence

NameInTypeRequiredDescription
licenceIdpathstringYesA uuid.
StatusBodyDescription
200application/json, DocLicenceViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
autoRenewsrequiredboolean
createdAtrequiredstring (date-time)
expiresOnstring (date-time) or null
keyCredentialIdstring
labelsrequiredarray of string
linkCountrequiredinteger
namerequiredstring
notesstring
productstring
publicIdrequiredstring
purchasedOnstring (date-time) or null
restrictedrequiredboolean
seatsTotalrequiredinteger
seatsUsedrequiredinteger
updatedAtrequiredstring (date-time)
vendorIdstring
vendorNamestring
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/docs/licences/<licenceId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PATCHdocs:writetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Patch doc licence

NameInTypeRequiredDescription
licenceIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
autoRenewsboolean or null
expiresOnstring or null
keystring or null
keyCredentialIdstring or null
labelsrequiredarray of string
namestring or null
notesstring or null
productstring or null
purchasedOnstring or null
restrictedboolean or null
seatsTotalinteger or null
seatsUsedinteger or null
vendorIdstring or null
StatusBodyDescription
200application/json, DocLicenceViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:write.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
autoRenewsrequiredboolean
createdAtrequiredstring (date-time)
expiresOnstring (date-time) or null
keyCredentialIdstring
labelsrequiredarray of string
linkCountrequiredinteger
namerequiredstring
notesstring
productstring
publicIdrequiredstring
purchasedOnstring (date-time) or null
restrictedrequiredboolean
seatsTotalrequiredinteger
seatsUsedrequiredinteger
updatedAtrequiredstring (date-time)
vendorIdstring
vendorNamestring
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/docs/licences/<licenceId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"autoRenews": false,
"expiresOn": "string",
"key": "string",
"keyCredentialId": "string",
"labels": [
"string"
],
"name": "string",
"notes": "string",
"product": "string",
"purchasedOn": "string",
"restricted": false,
"seatsTotal": 0,
"seatsUsed": 0,
"vendorId": "string"
}'

DELETEdocs:writetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Delete doc licence

NameInTypeRequiredDescription
licenceIdpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:write.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.
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/docs/licences/<licenceId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETdocs:readshared facehosteditmspremoteIdempotent

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

Source: [object Object]

listDocLinks answers the Related panel for one object.

The object is named by query parameters rather than by path, because the panel hangs off fourteen different kinds of page and a path per kind would be fourteen routes answering one question.

NameInTypeRequiredDescription
idquerystringNo
kindquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
StatusBodyDescription
200application/json, PagedResultDocLinkViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsDiscovery read permission is required.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
itemsrequiredarray of DocLinkView
items[].directionrequiredstring
items[].originrequiredstring
items[].otherrequiredDocRelationRefView
items[].other.idrequiredstring
items[].other.kindrequiredstring
items[].other.restrictedrequiredboolean
items[].other.subtitlestring
items[].other.titlerequiredstring
items[].publicIdrequiredstring
items[].relationrequiredstring
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/docs/links?id=<id>&kind=<kind>&page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTdocs:writeshared facehosteditmspremote

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

Source: [object Object]

createDocLink draws one edge by hand.

ORIGIN IS ALWAYS ‘manual’ HERE and is not read from the body. An ‘auto’ edge carries the rule that computed it and is written by the recompute; letting a caller claim one would mean a hand-drawn edge that the next recompute deletes as stale, which is a relation that disappears with nothing to blame.

Required, sent as application/json.

FieldTypeDescription
fromIdrequiredstring
fromKindrequiredstring
relationrequiredstring
toIdrequiredstring
toKindrequiredstring
StatusBodyDescription
201application/json, DocLinkViewCreated.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsDiscovery read permission is required.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

201 response body

FieldTypeDescription
directionrequiredstring
originrequiredstring
otherrequiredDocRelationRefView
other.idrequiredstring
other.kindrequiredstring
other.restrictedrequiredboolean
other.subtitlestring
other.titlerequiredstring
publicIdrequiredstring
relationrequiredstring
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/docs/links' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"fromId": "string",
"fromKind": "string",
"relation": "string",
"toId": "string",
"toKind": "string"
}'

DELETEdocs:writeshared facehosteditmspremoteIdempotent

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

Source: [object Object]

deleteDocLink removes one edge, and for an auto or suggested one leaves the tombstone that stops the next recompute re-creating it.

THE TOMBSTONE IS THE WHOLE POINT of this route being more than a DELETE. An operator who deletes the same wrong relation every hour stops using the panel, and a panel nobody trusts is worse than no panel.

NameInTypeRequiredDescription
linkIdpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:write.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.
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/docs/links/<linkId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETdocs:readshared facehosteditmspremoteIdempotent

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

Source: [object Object]

resolveDocMention answers the editor’s autocomplete and the reader’s hover card from one route.

A MENTION THE READER MAY NOT SEE IS A 404, not a padlocked card. A card that said “restricted: Domain administrator (Acme DC01)” would have disclosed the credential’s name to somebody the restriction exists to keep away from it; the padlock belongs in a list of things you already may see.

NameInTypeRequiredDescription
idquerystringNo
kindquerystringNo
StatusBodyDescription
200application/json, DocMentionPreviewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
404application/problem+json, ProblemDetailsNothing matches that mention.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
hrefrequiredstring
idrequiredstring
kindrequiredstring
restrictedrequiredboolean
subtitlerequiredstring
titlerequiredstring
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/docs/mention?id=<id>&kind=<kind>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETdocs:readshared facehosteditmspremoteIdempotent

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

Source: [object Object]

List doc option lists

NameInTypeRequiredDescription
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
StatusBodyDescription
200application/json, PagedResultDocOptionListViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThe request failed.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
itemsrequiredarray of DocOptionListView
items[].itemsrequiredarray of string
items[].keyrequiredstring
items[].namerequiredstring
items[].publicIdrequiredstring
items[].scoperequiredstring
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/docs/option-lists?page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTdocs:manageshared facehosteditmspremote

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

Source: [object Object]

Create doc option list

Required, sent as application/json.

FieldTypeDescription
itemsrequiredarray of string
keystring or null
namestring or null
StatusBodyDescription
201application/json, DocOptionListViewCreated.
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 docs:manage.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThe request failed.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

201 response body

FieldTypeDescription
itemsrequiredarray of string
keyrequiredstring
namerequiredstring
publicIdrequiredstring
scoperequiredstring
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/docs/option-lists' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"items": [
"string"
],
"key": "string",
"name": "string"
}'

PATCHdocs:manageshared facehosteditmspremoteIdempotent

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

Source: [object Object]

Patch doc option list

NameInTypeRequiredDescription
listIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
itemsrequiredarray of string
keystring or null
namestring or null
StatusBodyDescription
200application/json, DocOptionListViewSuccess.
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 docs:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThe request failed.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
itemsrequiredarray of string
keyrequiredstring
namerequiredstring
publicIdrequiredstring
scoperequiredstring
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/docs/option-lists/<listId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"items": [
"string"
],
"key": "string",
"name": "string"
}'

DELETEdocs:manageshared facehosteditmspremoteIdempotent

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

Source: [object Object]

Delete doc option list

NameInTypeRequiredDescription
listIdpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThe request failed.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.
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/docs/option-lists/<listId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETdocs:readshared facehosteditmspremoteIdempotent

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

Source: [object Object]

listDocProcessTemplates is the TENANT-face read: both rungs, merged, so a run picker inside a client workspace sees the practice’s procedures and any this client has of its own.

NameInTypeRequiredDescription
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
scopequerystringNo
StatusBodyDescription
200application/json, PagedResultDocProcessTemplateViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
itemsrequiredarray of DocProcessTemplateView
items[].archivedrequiredboolean
items[].createdAtrequiredstring (date-time)
items[].descriptionstring
items[].labelsrequiredarray of string
items[].namerequiredstring
items[].publicIdrequiredstring
items[].restrictedrequiredboolean
items[].scoperequiredstring
items[].stepsrequiredarray of DocProcessStepView
items[].steps[].articleIdstring
items[].steps[].articleScopestring
items[].steps[].detailstring
items[].steps[].optionalrequiredboolean
items[].steps[].publicIdrequiredstring
items[].steps[].roleHintstring
items[].steps[].sortOrderrequiredinteger
items[].steps[].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/docs/process-templates?page=0&pageSize=0&scope=<scope>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTdocs:writeshared facehosteditmspremote

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

Source: [object Object]

Create process template

Required, sent as application/json.

FieldTypeDescription
archivedboolean or null
descriptionstring or null
labelsrequiredarray of string
namestring or null
restrictedboolean or null
stepsrequiredarray of object
steps[].articleIdrequiredstring
steps[].articleScoperequiredstring
steps[].detailrequiredstring
steps[].optionalrequiredboolean
steps[].roleHintrequiredstring
steps[].titlerequiredstring
StatusBodyDescription
201application/json, DocProcessTemplateViewCreated.
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 docs:write.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThe request failed.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

201 response body

FieldTypeDescription
archivedrequiredboolean
createdAtrequiredstring (date-time)
descriptionstring
labelsrequiredarray of string
namerequiredstring
publicIdrequiredstring
restrictedrequiredboolean
scoperequiredstring
stepsrequiredarray of DocProcessStepView
steps[].articleIdstring
steps[].articleScopestring
steps[].detailstring
steps[].optionalrequiredboolean
steps[].publicIdrequiredstring
steps[].roleHintstring
steps[].sortOrderrequiredinteger
steps[].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/docs/process-templates' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"archived": false,
"description": "string",
"labels": [
"string"
],
"name": "string",
"restricted": false,
"steps": [
{
"articleId": "string",
"articleScope": "string",
"detail": "string",
"optional": false,
"roleHint": "string",
"title": "string"
}
]
}'

GET /api/v1/docs/process-templates/{templateId}

Section titled “GET /api/v1/docs/process-templates/{templateId}”

GETdocs:readshared facehosteditmspremoteIdempotent

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

Source: [object Object]

Get doc process template

NameInTypeRequiredDescription
templateIdpathstringYesA uuid.
StatusBodyDescription
200application/json, DocProcessTemplateViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
archivedrequiredboolean
createdAtrequiredstring (date-time)
descriptionstring
labelsrequiredarray of string
namerequiredstring
publicIdrequiredstring
restrictedrequiredboolean
scoperequiredstring
stepsrequiredarray of DocProcessStepView
steps[].articleIdstring
steps[].articleScopestring
steps[].detailstring
steps[].optionalrequiredboolean
steps[].publicIdrequiredstring
steps[].roleHintstring
steps[].sortOrderrequiredinteger
steps[].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/docs/process-templates/<templateId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PATCH /api/v1/docs/process-templates/{templateId}

Section titled “PATCH /api/v1/docs/process-templates/{templateId}”

PATCHdocs:writeshared facehosteditmspremoteIdempotent

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

Source: [object Object]

patchProcessTemplate edits the practice’s own procedure.

EDITING A TEMPLATE DOES NOT TOUCH A RUN. Every open run already copied its steps, which is the whole reason the copy exists: a practice that improves its onboarding checklist on Tuesday has not changed what somebody did on Monday.

NameInTypeRequiredDescription
templateIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
archivedboolean or null
descriptionstring or null
labelsrequiredarray of string
namestring or null
restrictedboolean or null
stepsrequiredarray of object
steps[].articleIdrequiredstring
steps[].articleScoperequiredstring
steps[].detailrequiredstring
steps[].optionalrequiredboolean
steps[].roleHintrequiredstring
steps[].titlerequiredstring
StatusBodyDescription
200application/json, DocProcessTemplateViewSuccess.
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 docs:write.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThe request failed.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
archivedrequiredboolean
createdAtrequiredstring (date-time)
descriptionstring
labelsrequiredarray of string
namerequiredstring
publicIdrequiredstring
restrictedrequiredboolean
scoperequiredstring
stepsrequiredarray of DocProcessStepView
steps[].articleIdstring
steps[].articleScopestring
steps[].detailstring
steps[].optionalrequiredboolean
steps[].publicIdrequiredstring
steps[].roleHintstring
steps[].sortOrderrequiredinteger
steps[].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 PATCH 'https://depot.example.com/api/v1/docs/process-templates/<templateId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"archived": false,
"description": "string",
"labels": [
"string"
],
"name": "string",
"restricted": false,
"steps": [
{
"articleId": "string",
"articleScope": "string",
"detail": "string",
"optional": false,
"roleHint": "string",
"title": "string"
}
]
}'

DELETE /api/v1/docs/process-templates/{templateId}

Section titled “DELETE /api/v1/docs/process-templates/{templateId}”

DELETEdocs:writeshared facehosteditmspremoteIdempotent

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

Source: [object Object]

Delete process template

NameInTypeRequiredDescription
templateIdpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:write.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsThe request failed.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.
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/docs/process-templates/<templateId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GET /api/v1/docs/process-templates/{templateId}/pdf

Section titled “GET /api/v1/docs/process-templates/{templateId}/pdf”

GETdocs:readshared 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]

docProcessTemplatePDF renders one template as a blank runbook.

It resolves through the docslib two-rung library exactly as the template’s own read route does, so a client-scope procedure and a practice-scope one print the same way and a broken rung is an error rather than a fall-through to the wrong library’s document.

NameInTypeRequiredDescription
templateIdpathstringYesA uuid.
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 docs:read.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.
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/docs/process-templates/<templateId>/pdf' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETdocs:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

List doc process runs

NameInTypeRequiredDescription
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
statequerystringNo
StatusBodyDescription
200application/json, PagedResultDocRunViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
itemsrequiredarray of DocRunView
items[].abandonedReasonstring
items[].agentIdstring
items[].completedAtstring (date-time) or null
items[].doneCountrequiredinteger
items[].namedUserIdstring
items[].projectIdstring
items[].publicIdrequiredstring
items[].siteIdstring
items[].startedAtrequiredstring (date-time)
items[].startedByNamestring
items[].staterequiredstring
items[].stepCountrequiredinteger
items[].stepsrequiredarray of DocRunStepView
items[].steps[].articleIdstring
items[].steps[].articleScopestring
items[].steps[].detailstring
items[].steps[].doneAtstring (date-time) or null
items[].steps[].doneByNamestring
items[].steps[].notestring
items[].steps[].optionalrequiredboolean
items[].steps[].publicIdrequiredstring
items[].steps[].sortOrderrequiredinteger
items[].steps[].staterequiredstring
items[].steps[].titlerequiredstring
items[].templateIdrequiredstring
items[].templateNamerequiredstring
items[].templateScoperequiredstring
items[].ticketIdstring
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/docs/processes/runs?page=0&pageSize=0&state=<state>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTdocs:writetenant facehosteditmspremote

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

Source: [object Object]

Start doc process run

Required, sent as application/json.

FieldTypeDescription
agentIdrequiredstring
namedUserIdrequiredstring
projectIdrequiredstring
siteIdrequiredstring
templateIdrequiredstring
ticketIdrequiredstring
StatusBodyDescription
201application/json, DocRunViewCreated.
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 the required permission.
404application/problem+json, ProblemDetailsNo documentation record matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

201 response body

FieldTypeDescription
abandonedReasonstring
agentIdstring
completedAtstring (date-time) or null
doneCountrequiredinteger
namedUserIdstring
projectIdstring
publicIdrequiredstring
siteIdstring
startedAtrequiredstring (date-time)
startedByNamestring
staterequiredstring
stepCountrequiredinteger
stepsrequiredarray of DocRunStepView
steps[].articleIdstring
steps[].articleScopestring
steps[].detailstring
steps[].doneAtstring (date-time) or null
steps[].doneByNamestring
steps[].notestring
steps[].optionalrequiredboolean
steps[].publicIdrequiredstring
steps[].sortOrderrequiredinteger
steps[].staterequiredstring
steps[].titlerequiredstring
templateIdrequiredstring
templateNamerequiredstring
templateScoperequiredstring
ticketIdstring
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/docs/processes/runs' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"agentId": "string",
"namedUserId": "string",
"projectId": "string",
"siteId": "string",
"templateId": "string",
"ticketId": "string"
}'

GETdocs:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Get doc process run

NameInTypeRequiredDescription
runIdpathstringYesA uuid.
StatusBodyDescription
200application/json, DocRunViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
abandonedReasonstring
agentIdstring
completedAtstring (date-time) or null
doneCountrequiredinteger
namedUserIdstring
projectIdstring
publicIdrequiredstring
siteIdstring
startedAtrequiredstring (date-time)
startedByNamestring
staterequiredstring
stepCountrequiredinteger
stepsrequiredarray of DocRunStepView
steps[].articleIdstring
steps[].articleScopestring
steps[].detailstring
steps[].doneAtstring (date-time) or null
steps[].doneByNamestring
steps[].notestring
steps[].optionalrequiredboolean
steps[].publicIdrequiredstring
steps[].sortOrderrequiredinteger
steps[].staterequiredstring
steps[].titlerequiredstring
templateIdrequiredstring
templateNamerequiredstring
templateScoperequiredstring
ticketIdstring
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/docs/processes/runs/<runId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/docs/processes/runs/{runId}/complete

Section titled “POST /api/v1/docs/processes/runs/{runId}/complete”

POSTdocs:writetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

completeDocProcessRun is the one terminator.

See the file header.

NameInTypeRequiredDescription
runIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
outcomerequiredstring
reasonrequiredstring
StatusBodyDescription
200application/json, DocRunViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:write.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
abandonedReasonstring
agentIdstring
completedAtstring (date-time) or null
doneCountrequiredinteger
namedUserIdstring
projectIdstring
publicIdrequiredstring
siteIdstring
startedAtrequiredstring (date-time)
startedByNamestring
staterequiredstring
stepCountrequiredinteger
stepsrequiredarray of DocRunStepView
steps[].articleIdstring
steps[].articleScopestring
steps[].detailstring
steps[].doneAtstring (date-time) or null
steps[].doneByNamestring
steps[].notestring
steps[].optionalrequiredboolean
steps[].publicIdrequiredstring
steps[].sortOrderrequiredinteger
steps[].staterequiredstring
steps[].titlerequiredstring
templateIdrequiredstring
templateNamerequiredstring
templateScoperequiredstring
ticketIdstring
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X POST 'https://depot.example.com/api/v1/docs/processes/runs/<runId>/complete' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"outcome": "string",
"reason": "string"
}'

GET /api/v1/docs/processes/runs/{runId}/pdf

Section titled “GET /api/v1/docs/processes/runs/{runId}/pdf”

GETdocs:readtenant 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]

docProcessRunPDF renders one run as the document somebody files.

THIS IS THE ARTIFACT THE FEATURE IS BOUGHT FOR. “Show me the onboarding you ran for this starter” is answered by a file with the steps, who ticked each one, when, and what they wrote, rather than by a screenshot of a console.

NameInTypeRequiredDescription
runIdpathstringYesA uuid.
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 docs:read.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.
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/docs/processes/runs/<runId>/pdf' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PATCH /api/v1/docs/processes/runs/{runId}/steps/{stepId}

Section titled “PATCH /api/v1/docs/processes/runs/{runId}/steps/{stepId}”

PATCHdocs:writetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Set doc process run step

NameInTypeRequiredDescription
runIdpathstringYesA uuid.
stepIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
noterequiredstring
staterequiredstring
StatusBodyDescription
200application/json, DocRunViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:write.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
abandonedReasonstring
agentIdstring
completedAtstring (date-time) or null
doneCountrequiredinteger
namedUserIdstring
projectIdstring
publicIdrequiredstring
siteIdstring
startedAtrequiredstring (date-time)
startedByNamestring
staterequiredstring
stepCountrequiredinteger
stepsrequiredarray of DocRunStepView
steps[].articleIdstring
steps[].articleScopestring
steps[].detailstring
steps[].doneAtstring (date-time) or null
steps[].doneByNamestring
steps[].notestring
steps[].optionalrequiredboolean
steps[].publicIdrequiredstring
steps[].sortOrderrequiredinteger
steps[].staterequiredstring
steps[].titlerequiredstring
templateIdrequiredstring
templateNamerequiredstring
templateScoperequiredstring
ticketIdstring
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/docs/processes/runs/<runId>/steps/<stepId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"note": "string",
"state": "string"
}'

GETdocs:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

searchDocs is the documentation console’s own search.

IT SHARES SearchDocs WITH THE BAR and adds what the bar does not model: facets, a scope filter, a layout filter, labels, and a URL somebody can save and send to a colleague. The permission story is unchanged and is the point: each kind answers to the code its own list route is guarded by, so a holder of docs:read cannot reach a credential through this box either. THE CREDENTIAL KIND IS NOT OFFERED HERE AT ALL: it belongs to the vault’s own surface and to the global bar’s credential arm, both guarded on vault:read.

NameInTypeRequiredDescription
kindsquerystringNo
labelsquerystringNo
layoutKeyquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
qquerystringNoFree-text search term.
scopequerystringNo
typeaheadquerystringNo
StatusBodyDescription
200application/json, DocSearchResponseSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
itemsrequiredarray of DocSearchHitView
items[].hrefrequiredstring
items[].idrequiredstring
items[].kindrequiredstring
items[].matchedOnrequiredstring
items[].restrictedrequiredboolean
items[].scorerequirednumber

double.

items[].subtitlerequiredstring
items[].titlerequiredstring
kindsrequiredarray 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/docs/search?kinds=<kinds>&labels=<labels>&layoutKey=<layoutKey>&page=0&pageSize=0&q=<q>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETdocs:readshared facehosteditmspremoteIdempotent

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

Source: [object Object]

Get doc settings

StatusBodyDescription
200application/json, DocSettingsViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
breachCheckEnabledrequiredboolean
breachChecksAvailablerequiredboolean
domainChecksAvailablerequiredboolean
domainMonitorEnabledrequiredboolean
domainMonitorIntervalHoursrequiredinteger
expirationLeadDaysrequiredinteger
expirationSecondLeadDaysrequiredinteger
extensionEnabledrequiredboolean
managedPendingExpiryDaysrequiredinteger
passwordHistoryDepthrequiredinteger
requireJustificationOnRevealrequiredboolean
requireStepUpOnRevealrequiredboolean
seededLayoutsAtstring (date-time) or null
seededProcessesAtstring (date-time) or null
shareDefaultMaxViewsrequiredinteger
shareDeletionGraceDaysrequiredinteger
shareMaxLifetimeHoursrequiredinteger
shareRequireRecipientVerificationrequiredboolean
sharingEnabledrequiredboolean
staleCredentialDaysrequiredinteger
stepUpFreshnessMinutesrequiredinteger
vaultIdleTimeoutMinutesrequiredinteger
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/docs/settings' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PUTdocs:manageshared facehosteditmspremoteIdempotent

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

Source: [object Object]

Put doc settings

Required, sent as application/json.

FieldTypeDescription
breachCheckEnabledboolean or null
domainMonitorEnabledboolean or null
domainMonitorIntervalHoursinteger or null
expirationLeadDaysinteger or null
expirationSecondLeadDaysinteger or null
extensionEnabledboolean or null
managedPendingExpiryDaysinteger or null
passwordHistoryDepthinteger or null
requireJustificationOnRevealboolean or null
requireStepUpOnRevealboolean or null
shareDefaultMaxViewsinteger or null
shareDeletionGraceDaysinteger or null
shareMaxLifetimeHoursinteger or null
shareRequireRecipientVerificationboolean or null
sharingEnabledboolean or null
staleCredentialDaysinteger or null
stepUpFreshnessMinutesinteger or null
vaultIdleTimeoutMinutesinteger or null
StatusBodyDescription
200application/json, DocSettingsViewSuccess.
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 docs:manage.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
503application/problem+json, ProblemDetailsThis Depot has no practice library yet. Finish first-run setup and try again.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
breachCheckEnabledrequiredboolean
breachChecksAvailablerequiredboolean
domainChecksAvailablerequiredboolean
domainMonitorEnabledrequiredboolean
domainMonitorIntervalHoursrequiredinteger
expirationLeadDaysrequiredinteger
expirationSecondLeadDaysrequiredinteger
extensionEnabledrequiredboolean
managedPendingExpiryDaysrequiredinteger
passwordHistoryDepthrequiredinteger
requireJustificationOnRevealrequiredboolean
requireStepUpOnRevealrequiredboolean
seededLayoutsAtstring (date-time) or null
seededProcessesAtstring (date-time) or null
shareDefaultMaxViewsrequiredinteger
shareDeletionGraceDaysrequiredinteger
shareMaxLifetimeHoursrequiredinteger
shareRequireRecipientVerificationrequiredboolean
sharingEnabledrequiredboolean
staleCredentialDaysrequiredinteger
stepUpFreshnessMinutesrequiredinteger
vaultIdleTimeoutMinutesrequiredinteger
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/docs/settings' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"breachCheckEnabled": false,
"domainMonitorEnabled": false,
"domainMonitorIntervalHours": 0,
"expirationLeadDays": 0,
"expirationSecondLeadDays": 0,
"extensionEnabled": false,
"managedPendingExpiryDays": 0,
"passwordHistoryDepth": 0,
"requireJustificationOnReveal": false,
"requireStepUpOnReveal": false,
"shareDefaultMaxViews": 0,
"shareDeletionGraceDays": 0,
"shareMaxLifetimeHours": 0,
"shareRequireRecipientVerification": false,
"sharingEnabled": false,
"staleCredentialDays": 0,
"stepUpFreshnessMinutes": 0,
"vaultIdleTimeoutMinutes": 0
}'

GETdocs:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

listDocVendors is a CLIENT-FACE read and there is no practice-mux twin.

RULED. “DocVendor” is a client-database table, so a vendor is one client’s supplier record even when six clients buy from the same company: their account numbers, their contract dates and their support contacts differ, and a shared row would have to pick one practice’s answer for all of them. The duplication is real and is the smaller cost.

NameInTypeRequiredDescription
dirquerystring, one of asc, descNoSort direction.
expiringWithinDaysquerystringNo
hasContractquerystringNo
monitoredquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
qquerystringNoFree-text search term.
sortquerystring, one of created, expires, name, updatedNoSort key.
vendorIdquerystringNo
StatusBodyDescription
200application/json, DocVendorListResponseSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
itemsrequiredarray of DocVendorView
items[].accountNumberstring
items[].categorystring
items[].contactEmailstring
items[].contactNamestring
items[].contactPhonestring
items[].contractEndOnstring (date-time) or null
items[].contractStartOnstring (date-time) or null
items[].createdAtrequiredstring (date-time)
items[].labelsrequiredarray of string
items[].linkCountrequiredinteger
items[].namerequiredstring
items[].notesstring
items[].publicIdrequiredstring
items[].renewalNoticeDaysrequiredinteger
items[].restrictedrequiredboolean
items[].supportPhonestring
items[].supportUrlstring
items[].updatedAtrequiredstring (date-time)
items[].websiteUrlstring
pagerequiredinteger
pageSizerequiredinteger
totalrequiredinteger
truncatedboolean
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/docs/vendors?dir=asc&expiringWithinDays=<expiringWithinDays>&hasContract=<hasContract>&monitored=<monitored>&page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTdocs:writetenant facehosteditmspremote

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

Source: [object Object]

Create doc vendor

Required, sent as application/json.

FieldTypeDescription
accountNumberstring or null
categorystring or null
contactEmailstring or null
contactNamestring or null
contactPhonestring or null
contractEndOnstring or null
contractStartOnstring or null
labelsrequiredarray of string
namestring or null
notesstring or null
renewalNoticeDaysinteger or null
restrictedboolean or null
supportPhonestring or null
supportUrlstring or null
websiteUrlstring or null
StatusBodyDescription
201application/json, DocVendorViewCreated.
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 docs:write.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

201 response body

FieldTypeDescription
accountNumberstring
categorystring
contactEmailstring
contactNamestring
contactPhonestring
contractEndOnstring (date-time) or null
contractStartOnstring (date-time) or null
createdAtrequiredstring (date-time)
labelsrequiredarray of string
linkCountrequiredinteger
namerequiredstring
notesstring
publicIdrequiredstring
renewalNoticeDaysrequiredinteger
restrictedrequiredboolean
supportPhonestring
supportUrlstring
updatedAtrequiredstring (date-time)
websiteUrlstring
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/docs/vendors' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"accountNumber": "string",
"category": "string",
"contactEmail": "string",
"contactName": "string",
"contactPhone": "string",
"contractEndOn": "string",
"contractStartOn": "string",
"labels": [
"string"
],
"name": "string",
"notes": "string",
"renewalNoticeDays": 0,
"restricted": false,
"supportPhone": "string",
"supportUrl": "string",
"websiteUrl": "string"
}'

GETdocs:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Get doc vendor

NameInTypeRequiredDescription
vendorIdpathstringYesA uuid.
StatusBodyDescription
200application/json, DocVendorViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:read.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
accountNumberstring
categorystring
contactEmailstring
contactNamestring
contactPhonestring
contractEndOnstring (date-time) or null
contractStartOnstring (date-time) or null
createdAtrequiredstring (date-time)
labelsrequiredarray of string
linkCountrequiredinteger
namerequiredstring
notesstring
publicIdrequiredstring
renewalNoticeDaysrequiredinteger
restrictedrequiredboolean
supportPhonestring
supportUrlstring
updatedAtrequiredstring (date-time)
websiteUrlstring
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/docs/vendors/<vendorId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PATCHdocs:writetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Patch doc vendor

NameInTypeRequiredDescription
vendorIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
accountNumberstring or null
categorystring or null
contactEmailstring or null
contactNamestring or null
contactPhonestring or null
contractEndOnstring or null
contractStartOnstring or null
labelsrequiredarray of string
namestring or null
notesstring or null
renewalNoticeDaysinteger or null
restrictedboolean or null
supportPhonestring or null
supportUrlstring or null
websiteUrlstring or null
StatusBodyDescription
200application/json, DocVendorViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:write.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
accountNumberstring
categorystring
contactEmailstring
contactNamestring
contactPhonestring
contractEndOnstring (date-time) or null
contractStartOnstring (date-time) or null
createdAtrequiredstring (date-time)
labelsrequiredarray of string
linkCountrequiredinteger
namerequiredstring
notesstring
publicIdrequiredstring
renewalNoticeDaysrequiredinteger
restrictedrequiredboolean
supportPhonestring
supportUrlstring
updatedAtrequiredstring (date-time)
websiteUrlstring
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/docs/vendors/<vendorId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"accountNumber": "string",
"category": "string",
"contactEmail": "string",
"contactName": "string",
"contactPhone": "string",
"contractEndOn": "string",
"contractStartOn": "string",
"labels": [
"string"
],
"name": "string",
"notes": "string",
"renewalNoticeDays": 0,
"restricted": false,
"supportPhone": "string",
"supportUrl": "string",
"websiteUrl": "string"
}'

DELETEdocs:writetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Delete doc vendor

NameInTypeRequiredDescription
vendorIdpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold docs:write.
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.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.
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/docs/vendors/<vendorId>' \
-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.