Proof API

Proof endpoints in the Brix REST API: 2 operations (GET), with auth, permissions and curl examples.

View as Markdown

Base URL https://api.brixsignage.com. Send Authorization: Bearer $BRIX_API_KEY unless an operation says No auth. The permission chip names what the key must hold. See Authentication and scopes, Errors and rate limits and Pagination.

GET/v1/proof

Bearer token playback-log.view

Get proof-of-play totals for a date range, broken down by content item and by screen, including digital-out-of-home verification fields. Use the from and to query parameters to set the date range. Counts what played, where and for how long, over a time window. Only screens the caller can see are counted.

ParameterInTypeRequiredDescription
fromquerystringnoWindow start (ISO-8601). Default: the start of the retention window.
toquerystringnoWindow end (ISO-8601). Default: now.
screenIdquerystringnoOnly this screen.
curl "https://api.brixsignage.com/v1/proof" \
  -H "Authorization: Bearer $BRIX_API_KEY"

Response 200 Success.

FieldTypeDescription
dataProofOfPlayReport
data.totalsobject
data.totals.playsintegerSuccessful plays (neither skipped nor failed).
data.totals.skippedinteger
data.totals.failedinteger
data.totals.eventsintegerEvery playback-end event: plays + skipped + failed.
data.totals.uniqueContentinteger
data.totals.screensReportinginteger
data.byContentarray of objectPer content, most successful plays first.
data.byContent[].contentIdstring`unknown` when the player did not report one.
data.byContent[].contentNamestringFalls back to the id when no name was reported.
data.byContent[].contentKindstring`media`, `app`, `creative`, …; `media` for days read from the daily rollup.
data.byContent[].screenNamestring | nullSet only when exactly one screen played it.
data.byContent[].playedinteger
data.byContent[].skippedinteger
data.byContent[].failedinteger
data.byContent[].screenCountinteger
data.byContent[].totalDurationSecinteger
data.byContent[].firstAtstringISO-8601 timestamp (UTC).
data.byContent[].lastAtstringISO-8601 timestamp (UTC).
data.screensarray of objectScreens that reported in the window, by name.
data.screens[].idstring
data.screens[].namestring
data.fromstringISO-8601 timestamp (UTC).
data.tostringISO-8601 timestamp (UTC).
data.retentionDaysintegerHow far back raw play events exist; older days come from the daily rollup.
data.truncatedbooleanAlways false: the whole window is counted.
data.fromRollupbooleanPart of the window was read from the daily rollup.

Response 401 Missing, expired or revoked bearer token.

FieldTypeDescription
errorstringMachine-readable code: `unauthorized`, `forbidden`, `not_found`, `validation_error`, `conflict`, `rate_limited`, `internal_error`, …
messagestringHuman-readable explanation. Safe to show an operator.
requestIdstringPresent on 5xx: quote it to support.

Response 403 The token lacks the permission this operation needs (see `x-brix-permission`).

FieldTypeDescription
errorstringMachine-readable code: `unauthorized`, `forbidden`, `not_found`, `validation_error`, `conflict`, `rate_limited`, `internal_error`, …
messagestringHuman-readable explanation. Safe to show an operator.
requestIdstringPresent on 5xx: quote it to support.

Response 5XX Server error. The body carries a `requestId` to quote to support.

FieldTypeDescription
errorstringMachine-readable code: `unauthorized`, `forbidden`, `not_found`, `validation_error`, `conflict`, `rate_limited`, `internal_error`, …
messagestringHuman-readable explanation. Safe to show an operator.
requestIdstringPresent on 5xx: quote it to support.

GET/v1/proof/events

Bearer token playback-log.view

List individual playback events, one per play, for a date range. The number of events returned is capped. For totals rolled up by content item and screen, use GET /v1/proof instead.

curl "https://api.brixsignage.com/v1/proof/events" \
  -H "Authorization: Bearer $BRIX_API_KEY"

Response 4XX Client error. 404 rather than 403 for another tenant's resource, so account existence is not leaked.

FieldTypeDescription
errorstringMachine-readable code: `unauthorized`, `forbidden`, `not_found`, `validation_error`, `conflict`, `rate_limited`, `internal_error`, …
messagestringHuman-readable explanation. Safe to show an operator.
requestIdstringPresent on 5xx: quote it to support.

Response 5XX Server error. The body carries a `requestId` to quote to support.

FieldTypeDescription
errorstringMachine-readable code: `unauthorized`, `forbidden`, `not_found`, `validation_error`, `conflict`, `rate_limited`, `internal_error`, …
messagestringHuman-readable explanation. Safe to show an operator.
requestIdstringPresent on 5xx: quote it to support.