Skip to content

Depot feedback

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

POSTfeedback:submitshared facehosteditmspremoteIdempotent

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

Source: [object Object]

submit queues one submission and answers 202.

ALWAYS 202 when it is accepted, never 201, and never a status that depends on Core. The row is written and the drain nudged; whether Outpost is reachable right now is not something the person pressing send has any way to act on, and making them find out would be the surest way to lose the report.

Required, sent as application/json.

FieldTypeDescription
bodyrequiredstring
consoleRouterequiredstring
kindrequiredstring
scoreinteger or null
StatusBodyDescription
202application/json, FeedbackAcceptedAccepted.
400application/problem+json, ProblemDetailsMalformed request body.
401application/problem+json, ProblemDetailsAuthentication is required.
403application/problem+json, ProblemDetailsYour account could not be resolved, so feedback cannot be sent under it.
404application/problem+json, ProblemDetailsNo such organization.
409application/problem+json, ProblemDetailsYour account has no email address, and Outpost cannot reply to feedback without one.
500application/problem+json, ProblemDetailsCould not record your feedback.
503application/problem+json, ProblemDetailsFeedback is unavailable on this deployment.

202 response body

FieldTypeDescription
publicIdrequiredstring
staterequiredstring
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X POST 'https://depot.example.com/api/v1/feedback' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"body": "string",
"consoleRoute": "string",
"kind": "string",
"score": 0
}'

GETfeedback:submitshared facehosteditmspremoteIdempotentNot 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]

get relays one submitter-scoped read to Core and returns the answer as it stands: status, content type and bytes.

THE SUBMITTER ID IS INJECTED, NOT FORWARDED. It comes from the session on every call and the caller’s own query string is dropped entirely, so there is no request a browser can compose that reads somebody else’s thread. Core checks the same thing from its side and answers 404; this is the near half of that pair, and it is the half that decides whose id is being asked about.

StatusBodyDescription
200NoneSuccess. The body shape was not resolved; see x-outpost-unresolved.
401application/problem+json, ProblemDetailsAuthentication is required.
403application/problem+json, ProblemDetailsThe identity does not hold feedback:submit.
404application/problem+json, ProblemDetailsNot found.
502application/problem+json, ProblemDetailsCould not reach Outpost. Please try again.
503application/problem+json, ProblemDetailsFeedback is unavailable: this deployment is not connected to Outpost.
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/feedback/mine' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETfeedback:submitshared facehosteditmspremoteIdempotentNot 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]

get relays one submitter-scoped read to Core and returns the answer as it stands: status, content type and bytes.

THE SUBMITTER ID IS INJECTED, NOT FORWARDED. It comes from the session on every call and the caller’s own query string is dropped entirely, so there is no request a browser can compose that reads somebody else’s thread. Core checks the same thing from its side and answers 404; this is the near half of that pair, and it is the half that decides whose id is being asked about.

NameInTypeRequiredDescription
publicIdpathstringYes
StatusBodyDescription
200NoneSuccess. The body shape was not resolved; see x-outpost-unresolved.
401application/problem+json, ProblemDetailsAuthentication is required.
403application/problem+json, ProblemDetailsThe identity does not hold feedback:submit.
404application/problem+json, ProblemDetailsNot found.
502application/problem+json, ProblemDetailsCould not reach Outpost. Please try again.
503application/problem+json, ProblemDetailsFeedback is unavailable: this deployment is not connected to Outpost.
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/feedback/mine/<publicId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/feedback/mine/{publicId}/replies

Section titled “POST /api/v1/feedback/mine/{publicId}/replies”

POSTfeedback:submitshared facehosteditmspremoteNot 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]

post relays a reply or a seen mark, with the submitter id stamped into the body the same way get stamps it into the query.

The request body is DECODED AND REBUILT rather than forwarded. It is the only way to guarantee the id Core reads is the one from the session: a body passed through would carry whatever submitterUserPublicId the browser put in it, and Core has no way to tell that apart from one this side vouched for.

NameInTypeRequiredDescription
publicIdpathstringYes
StatusBodyDescription
200NoneSuccess. The body shape was not resolved; see x-outpost-unresolved.
400application/problem+json, ProblemDetailsMalformed request body.
401application/problem+json, ProblemDetailsAuthentication is required.
403application/problem+json, ProblemDetailsThe identity does not hold feedback:submit.
404application/problem+json, ProblemDetailsNot found.
502application/problem+json, ProblemDetailsCould not reach Outpost. Please try again.
503application/problem+json, ProblemDetailsFeedback is unavailable: this deployment is not connected to Outpost.
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/feedback/mine/<publicId>/replies' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/feedback/mine/{publicId}/seen

Section titled “POST /api/v1/feedback/mine/{publicId}/seen”

POSTfeedback:submitshared facehosteditmspremoteNot 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]

post relays a reply or a seen mark, with the submitter id stamped into the body the same way get stamps it into the query.

The request body is DECODED AND REBUILT rather than forwarded. It is the only way to guarantee the id Core reads is the one from the session: a body passed through would carry whatever submitterUserPublicId the browser put in it, and Core has no way to tell that apart from one this side vouched for.

NameInTypeRequiredDescription
publicIdpathstringYes
StatusBodyDescription
200NoneSuccess. The body shape was not resolved; see x-outpost-unresolved.
400application/problem+json, ProblemDetailsMalformed request body.
401application/problem+json, ProblemDetailsAuthentication is required.
403application/problem+json, ProblemDetailsThe identity does not hold feedback:submit.
404application/problem+json, ProblemDetailsNot found.
502application/problem+json, ProblemDetailsCould not reach Outpost. Please try again.
503application/problem+json, ProblemDetailsFeedback is unavailable: this deployment is not connected to Outpost.
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/feedback/mine/<publicId>/seen' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETfeedback:submitshared facehosteditmspremoteIdempotent

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

Source: [object Object]

queued lists this person’s own outbox rows, so My feedback shows what is still in flight while Core is down.

Scoped by the signed-in submitter and by nothing else, which is the whole of the guarantee that two people on one Depot cannot read each other’s queue. The id is never taken from the request.

NameInTypeRequiredDescription
dirquerystring, one of asc, descNoSort direction.
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
qquerystringNoFree-text search term.
sortquerystring, one of created, stateNoSort key.
StatusBodyDescription
200application/json, objectSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsAuthentication is required.
403application/problem+json, ProblemDetailsThe identity does not hold feedback:submit.
500application/problem+json, ProblemDetailsCould not read your feedback queue.
503application/problem+json, ProblemDetailsFeedback is unavailable on this deployment.
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/feedback/queued?dir=asc&page=0&pageSize=0&q=<q>&sort=created' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETfeedback:submitshared facehosteditmspremoteIdempotentNot 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]

get relays one submitter-scoped read to Core and returns the answer as it stands: status, content type and bytes.

THE SUBMITTER ID IS INJECTED, NOT FORWARDED. It comes from the session on every call and the caller’s own query string is dropped entirely, so there is no request a browser can compose that reads somebody else’s thread. Core checks the same thing from its side and answers 404; this is the near half of that pair, and it is the half that decides whose id is being asked about.

StatusBodyDescription
200NoneSuccess. The body shape was not resolved; see x-outpost-unresolved.
401application/problem+json, ProblemDetailsAuthentication is required.
403application/problem+json, ProblemDetailsThe identity does not hold feedback:submit.
404application/problem+json, ProblemDetailsNot found.
502application/problem+json, ProblemDetailsCould not reach Outpost. Please try again.
503application/problem+json, ProblemDetailsFeedback is unavailable: this deployment is not connected to Outpost.
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/feedback/unread-count' \
-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.