Search API
Search endpoints in the Brix REST API for digital signage: 1 operation (GET). Each lists its path, auth, required permission and a curl example.
View as Markdown · For AI agents: the full docs index is at /llms.txt
Base URL https://api.brixsignage.com. Send Authorization: Bearer $BRIX_API_KEY unless an operation says Auth: none or Auth: no API key. The Permission line names what the key must hold. See Authentication and scopes, Errors and rate limits and Pagination.
Every 4xx and 5xx response below returns this body:
| Field | Type | Description |
|---|---|---|
error | string | Machine-readable code: unauthorized, forbidden, not_found, validation_error, conflict, rate_limited, internal_error, … |
message | string | Human-readable explanation. Safe to show an operator. |
requestId | string | Present on 5xx: quote it to support. |
GET /v1/search
Search across media, playlists, screens, and creatives using the q query parameter. Supports bare terms, prefix matching with *, the operators AND, OR, and NOT, and column filters such as name:dashboard. Results are scoped to the current space.
Full-text search by name. Each list holds only kinds the caller may view (the others come back empty), best match first. A query under 2 characters returns empty lists.
Notes.
- The route is gated by media.view (the route-registry description says screen.view): a key without media.view is refused even if it could see screens.
- A failing index query is swallowed and returns an empty list for that kind, so an empty result is not proof of no match.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
q | query | string | yes | Search text (2+ characters). The last word matches as a prefix. |
limit | query | integer | no | Hits per kind (default 10, max 20). |
curl "https://api.brixsignage.com/v1/search" \
-H "Authorization: Bearer $BRIX_API_KEY" Response 200: Success.
| Field | Type | Description |
|---|---|---|
data | object | |
data.media | array of object | |
data.media[].id | string | |
data.media[].name | string | The item's name. |
data.media[].snippet | string | Matched text with <b>…</b> around the hit. |
data.playlists | array of object | |
data.playlists[].id | string | |
data.playlists[].name | string | The item's name. |
data.playlists[].snippet | string | Matched text with <b>…</b> around the hit. |
data.screens | array of object | |
data.screens[].id | string | |
data.screens[].name | string | The item's name. |
data.screens[].snippet | string | Matched text with <b>…</b> around the hit. |
data.creatives | array of object | |
data.creatives[].id | string | |
data.creatives[].name | string | The item's name. |
data.creatives[].snippet | string | Matched text with <b>…</b> around the hit. |
Response 401: Missing, expired or revoked bearer token.
Response 403: The token lacks the permission this operation needs (see x-brix-permission).
Response 5XX: Server error. The body carries a requestId to quote to support.