Skip to content

Depot tvdisplay

Registers the TV page’s public routes.

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

GETNo permission neededpublic facehosteditmspremoteIdempotent

Source: [object Object]

tvBoard is the paired display’s board: its name, refresh and the playlist items the activating user may see right now.

Display cookie only.

NameInTypeRequiredDescription
slugpathstringYes
StatusBodyDescription
200application/json, TvBoardViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/json, objectThe request was refused.
404application/problem+json, ProblemDetailsNo TV board has this address.
500application/problem+json, ProblemDetailsThe request failed.

200 response body

FieldTypeDescription
itemsrequiredarray of TvItemView
items[].definitionrequiredDefinition

Definition is the stored dashboard ("Dashboard"."DefinitionJson").

items[].definition.rangerequiredRange

Range is a preset, or custom with RFC3339 From and To.

items[].definition.range.fromstring
items[].definition.range.presetrequiredstring
items[].definition.range.tostring
items[].definition.versionrequiredinteger
items[].definition.widgetsrequiredarray of Widget
items[].definition.widgets[].chartstring
items[].definition.widgets[].comparestring
items[].definition.widgets[].drillboolean or null
items[].definition.widgets[].idrequiredstring
items[].definition.widgets[].kindrequiredstring
items[].definition.widgets[].layoutrequiredLayout

Layout is library-neutral, on 12 columns (D16).

items[].definition.widgets[].mineboolean
items[].definition.widgets[].rangeRange

Range is a preset, or custom with RFC3339 From and To.

items[].definition.widgets[].sourcerequiredSource

Source is one struct with a Type discriminator (D2).

items[].definition.widgets[].targetnumber or null

double.

items[].definition.widgets[].thresholdsThresholds

Thresholds (D4).

items[].definition.widgets[].titlerequiredstring
items[].facerequiredstring
items[].indexrequiredinteger
items[].secondsrequiredinteger
items[].titlerequiredstring
namerequiredstring
refreshSecondsrequiredinteger
Terminal window
# This operation is public. It takes no credentials.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/tv/<slug>/board' \
-H 'Accept: application/json'

GETNo permission neededpublic facehosteditmspremoteIdempotent

Source: [object Object]

tvBoardData is one playlist item’s data (the D7 shape) for the paired display, read as the activating user with no drill-downs and no ticket subjects.

Display cookie only.

NameInTypeRequiredDescription
slugpathstringYes
itemquerystringNo
StatusBodyDescription
200application/json, DataSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/json, objectThe request was refused.
404application/problem+json, ProblemDetailsNo TV board has this address.
500application/problem+json, ProblemDetailsThe request failed.

200 response body

FieldTypeDescription
fleetEmptyboolean
generatedAtrequiredstring (date-time)
rangerequiredDataRange

DataRange is the resolved dashboard range.

range.fromrequiredstring (date-time)
range.torequiredstring (date-time)
scoperequiredDataScope

DataScope drives the "9 of 12 clients" banner.

scope.clientNamestring
scope.clientsrequiredinteger
scope.kindrequiredstring, one of client, practice
scope.unavailableClientsrequiredarray of string
widgetsrequiredobject
Terminal window
# This operation is public. It takes no credentials.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/tv/<slug>/data?item=<item>' \
-H 'Accept: application/json'

POSTNo permission neededpublic facehosteditmspremote

Source: [object Object]

startTvPairing starts pairing a TV with a board: a six-digit code to show on screen (and a QR of the activation link), and a device secret the TV polls with.

Public.

NameInTypeRequiredDescription
slugpathstringYes
StatusBodyDescription
200application/json, PairingStartSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
404application/problem+json, ProblemDetailsNo TV board has this address.
429application/problem+json, ProblemDetailsToo many pairing requests. Try again in a minute.
500application/problem+json, ProblemDetailsThe request failed.

200 response body

FieldTypeDescription
activationUrlrequiredstring
boardNamerequiredstring
deviceSecretrequiredstring
expiresInrequiredinteger
intervalrequiredinteger
qrPngrequiredstring
userCoderequiredstring
Terminal window
# This operation is public. It takes no credentials.
curl -X POST 'https://depot.example.com/api/v1/tv/<slug>/pairing' \
-H 'Accept: application/json'

POSTNo permission neededpublic facehosteditmspremote

Source: [object Object]

pollTvPairing reports whether the pairing was approved.

On approval it pairs the TV: the display cookie is set and the pairing is spent. Public; the device secret is the credential.

NameInTypeRequiredDescription
slugpathstringYes

Required, sent as application/json.

FieldTypeDescription
deviceSecretrequiredstring
StatusBodyDescription
200application/json, PairingPollSuccess.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
404application/problem+json, ProblemDetailsNo TV board has this address.
500application/problem+json, ProblemDetailsThe request failed.

200 response body

FieldTypeDescription
statusrequiredstring
Terminal window
# This operation is public. It takes no credentials.
curl -X POST 'https://depot.example.com/api/v1/tv/<slug>/pairing/poll' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data '{
"deviceSecret": "string"
}'

Content is licensed CC BY 4.0. Code samples are MIT. Outpost and the Outpost mark are trademarks of Outpost Business Solutions, PBC and are not covered by either license.