Device preassignments API

Device preassignments endpoints in the Brix REST API: 3 operations (GET, POST, DELETE), 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/device-preassignments

Bearer token screen.view

List devices pre-assigned to locations in your workspace. Each entry shows the end of the device serial number, the location, the screen name, and whether the device is still waiting to be claimed or has already been claimed. Results are limited to the organization nodes you can see. **Notes.** - Carries available beside data.

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

Response 200 Success.

FieldTypeDescription
dataarray of object
data[].idstring
data[].serialHintstring | nullThe last 4 characters of the serial. The full serial is not stored.
data[].nodeIdstring
data[].locationNamestring | null
data[].locationIdstring | nullThe location's own id (its Location ID), when set.
data[].namestring | null
data[].status"waiting" | "claimed"
data[].claimedAtstring | null
data[].claimedScreenIdstring | null
data[].createdAtstringISO-8601 timestamp (UTC).
availablebooleanFalse when the workspace's data region does not support pre-assignment yet (`data` is then empty).

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.

POST/v1/device-preassignments

Bearer token screen.create

Pre-assign device serial numbers to locations, identified by Location ID or nodeId, so each device pairs automatically into its assigned location the first time it is plugged in. Submit up to 1000 rows in one request; all rows are validated before any are saved. Re-uploading the same rows is safe and does not create duplicates, and dryRun validates rows without saving them. A serial number already assigned to another workspace is refused with a conflict error, and the action is recorded in the activity log.

Request body application/json

FieldTypeRequiredDescription
rowsarray of objectyes
rows[].serialstringyesThe device serial number.
rows[].locationIdstringnoThe location's Location ID (case-insensitive). Give this or `nodeId`.
rows[].nodeIdstringno
rows[].namestringnoScreen name; default: the location name and the serial's last 4 characters.
dryRunbooleannoTrue: check and report, change nothing (answers 200).
curl -X POST "https://api.brixsignage.com/v1/device-preassignments" \
  -H "Authorization: Bearer $BRIX_API_KEY" \
  -H "Content-Type: application/json"

Response 200 Success: a dry run (`dryRun: true`): the same report, nothing changed.

FieldTypeDescription
dataobject
data.dryRunboolean
data.countsobject
data.counts.claimedinteger
data.counts.createdinteger
data.counts.updatedinteger
data.counts.unchangedinteger
data.rowsarray of object
data.rows[].indexinteger
data.rows[].serialstringThe serial's last 4 characters.
data.rows[].outcome"claimed" | "created" | "updated" | "unchanged"
data.rows[].nodeIdstring
data.rows[].locationNamestring
data.rows[].locationIdstring | null
data.rows[].namestring

Response 201 Success.

FieldTypeDescription
dataobject
data.dryRunboolean
data.countsobject
data.counts.claimedinteger
data.counts.createdinteger
data.counts.updatedinteger
data.counts.unchangedinteger
data.rowsarray of object
data.rows[].indexinteger
data.rows[].serialstringThe serial's last 4 characters.
data.rows[].outcome"claimed" | "created" | "updated" | "unchanged"
data.rows[].nodeIdstring
data.rows[].locationNamestring
data.rows[].locationIdstring | null
data.rows[].namestring

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 409 A serial is held by another workspace, or the data region does not support pre-assignment.

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 422 No rows, too many rows, or a row is invalid; `data.errors` lists each by `index` and `code`.

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.

DELETE/v1/device-preassignments/{id}

Bearer token screen.create

Cancel a pending device pre-assignment. If the device has already been claimed and turned into a screen, that screen is not affected. The action is recorded in the activity log.

ParameterInTypeRequiredDescription
idpathstringyesPre-assignment id.
curl -X DELETE "https://api.brixsignage.com/v1/device-preassignments/{id}" \
  -H "Authorization: Bearer $BRIX_API_KEY"

Response 200 Success.

FieldTypeDescription
dataobject
data.idstring
data.deletedtrue

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.