AI API

AI endpoints in the Brix REST API for digital signage: 4 operations (GET). Each lists its path, auth, required permission and a curl example.

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/ai/events

Bearer token audit-log.view

Return the workspace's record of every AI-powered call it made, including the feature, model, outcome, actor, duration, and number of redactions. Calls that were refused, for example because the feature is disabled or a usage limit was reached, also appear as entries, since a blocked request is only evidenced by a record of the refusal. The prompt and output text are never stored. Only events at locations where the caller holds the audit log view permission are returned, as in the audit log. The actor is returned in full only where the caller also holds the user view permission; otherwise only its kind, for example user or staff. Results are paginated and can be filtered by feature, outcome, and a starting point in time; a page can hold fewer entries than the limit. **Notes.** - nextCursor sits beside data, outside the usual envelope. - Only events where the caller's audit-log.view reaches the event's location are returned, so a page can hold fewer than limit events while nextCursor is still set.

ParameterInTypeRequiredDescription
featurequerystringnoOnly this feature (an unknown value is ignored).
outcomequery"ok" | "blocked" | "error" | "quota" | "disabled"noOnly this outcome (an unknown value is ignored).
sincequerystringnoOnly events at or after this ISO 8601 time.
cursorquerystringno`nextCursor` from the previous page.
limitqueryintegernoPage size.
curl "https://api.brixsignage.com/v1/ai/events" \
  -H "Authorization: Bearer $BRIX_API_KEY"

Response 200 Success.

FieldTypeDescription
dataarray of AiEvent
data[].idstring
data[].spaceIdstring
data[].nodeIdstring | nullThe location of the content the call was about; null for the workspace root.
data[].actorstringWho made the call. An actor reference: `user:<id>`, `apikey:<id>`, `staff:<email>`, `partner:<email>` or `system…`. Without `user.view` at the event's location, only the kind (`user`, `staff`, …).
data[].featurestring`tags`, `alt-text`, `moderation`, `transcription`, `translation`, `focal-region`, `embedding`, …
data[].featureLabelstringThe feature's display name (the raw key for an unknown feature).
data[].sendsstring | nullWhat the feature sends to the model; null for an unknown feature.
data[].modelstring
data[].providerstring
data[].outcome"ok" | "blocked" | "error" | "quota" | "disabled"
data[].durationMsnumber | null
data[].inputKindstring | null`image`, `text` or `audio`: what was sent, never the content.
data[].redactionsintegerPersonal-data patterns masked before the call.
data[].detailstring | null
data[].createdAtstringISO-8601 timestamp (UTC).
nextCursorstring | nullPass as `cursor` for the next (older) page; null on the last page.

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/ai/events.csv

Bearer token audit-log.view

Return the same AI activity data as a CSV file, suitable for sharing or importing elsewhere. It applies the same filters, the same location scope and the same actor rule as the JSON list, so the export always matches what the list view shows. **Notes.** - One page, as a file (content-disposition: attachment). Columns: when, feature, model, provider, outcome, actor, duration_ms, input, redactions, detail. There is no next-page cursor: page with since or the JSON list.

ParameterInTypeRequiredDescription
featurequerystringnoOnly this feature (an unknown value is ignored).
outcomequery"ok" | "blocked" | "error" | "quota" | "disabled"noOnly this outcome (an unknown value is ignored).
sincequerystringnoOnly events at or after this ISO 8601 time.
cursorquerystringno`nextCursor` from the previous page.
limitqueryintegernoRows (default and maximum: the largest page).
curl "https://api.brixsignage.com/v1/ai/events.csv" \
  -H "Authorization: Bearer $BRIX_API_KEY"

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/ai/models

Bearer token settings.view

Return which AI model powers each AI feature, when it was adopted, what it replaced, and the safe-use guidance shown to users at the point of use. This reflects the exact configuration currently enforced, so it cannot drift out of step with actual behavior.

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

Response 200 Success.

FieldTypeDescription
dataobject
data.fingerprintstringChanges whenever any model below changes.
data.providersarray of string
data.firstPartystringA plain statement of who runs the models.
data.safeUsearray of stringThe safe-use guidance shown with AI features.
data.featuresarray of object
data.features[].featurestring
data.features[].labelstring
data.features[].sendsstring
data.features[].modelstring
data.features[].providerstring
data.features[].sincestringWhen this model started running the feature (a date).
data.features[].whatstring
data.features[].previousarray of object
data.features[].previous[].modelstring
data.features[].previous[].untilstring
data.features[].previous[].whystring
data.features[].fallbackobject
data.features[].fallback.modelstring
data.features[].fallback.providerstring
data.features[].fallback.whenstring
data.features[].configuredBystring
data.safetyarray of objectModels that screen text before it is sent.
data.safety[].keystring
data.safety[].modelstring
data.safety[].providerstring
data.safety[].sincestringWhen this model started running the feature (a date).
data.safety[].whatstring
data.safety[].runsWhenstring
data.rollbackstring

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/ai/summary

Bearer token audit-log.view

Return counts of AI calls grouped by feature, model, and outcome over a time window that defaults to 30 days. Totals separate calls that ran successfully, calls that failed, and calls that were refused due to policy or usage limits, so a refusal is never confused with a failure. Only calls at locations where the caller holds the audit log view permission are counted. **Notes.** - blocked calls count in no total but appear in byFeature.

ParameterInTypeRequiredDescription
daysqueryintegernoWindow in days, 1–365 (default 30).
curl "https://api.brixsignage.com/v1/ai/summary" \
  -H "Authorization: Bearer $BRIX_API_KEY"

Response 200 Success.

FieldTypeDescription
dataobject
data.windowDaysinteger
data.sincestringISO-8601 timestamp (UTC).
data.totalsobject
data.totals.raninteger
data.totals.failedinteger
data.totals.refusedByPolicyinteger
data.totals.refusedByLimitinteger
data.totals.redactionsinteger
data.byFeaturearray of objectOne row per feature, model and outcome.
data.byFeature[].featurestring
data.byFeature[].featureLabelstring
data.byFeature[].modelstring
data.byFeature[].outcomestring
data.byFeature[].callsinteger
data.byFeature[].redactionsinteger

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.