Celebration entries API
Celebration entries endpoints in the Brix REST API: 6 operations (GET, POST, PATCH, DELETE). Each lists its path, auth, required permission and a curl example.
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/celebration-entriesPOST /v1/celebration-entriesGET /v1/celebration-entries/{id}PATCH /v1/celebration-entries/{id}DELETE /v1/celebration-entries/{id}POST /v1/celebration-entries/{id}/restore
GET/v1/celebration-entries
Return the roster of birthdays, anniversaries, and other occasions that the Celebrations app displays. **Notes.** - Only entries at locations the caller can see.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
limit | query | integer | no | Page size. Omit to get every row; pass it to page by `cursor`. |
cursor | query | string | no | The `nextCursor` of the previous page. |
count | query | "1" | no | With `limit`: also return `total`, the number of matching rows. |
usableAt | query | string | no | Location id: only rows usable at that location (homed there, at the workspace root, or shared to it). |
curl "https://api.brixsignage.com/v1/celebration-entries" \
-H "Authorization: Bearer $BRIX_API_KEY" Response 200 Success.
| Field | Type | Description |
|---|---|---|
data | array of CelebrationEntry | |
data[].id | string | |
data[].spaceId | string | |
data[].nodeId | string | null | Home location; null = workspace root. Follows the data source's location when not set. |
data[].sourceId | string | null | The data source it came from, if any. |
data[].name | string | |
data[].photoUrl | string | null | |
data[].occasionType | "birthday" | "anniversary" | "custom" | |
data[].occasionMonth | integer | null | 1–12. |
data[].occasionDay | integer | null | 1–31. |
data[].occasionYear | integer | null | The start year for an anniversary. |
data[].department | string | null | |
data[].title | string | null | |
data[].location | string | null | |
data[].customMessage | string | null | |
data[].externalId | string | null | The id in the source system, for de-duplication. |
data[].createdAt | string | ISO-8601 timestamp (UTC). |
data[].updatedAt | string | ISO-8601 timestamp (UTC). |
data[].deletedAt | string | null | |
nextCursor | string | null | Present when `?limit` was passed. Send it back as `?cursor=` for the next page; null on the last page. |
total | integer | Total matching rows, when the route computes it. |
Response 401 Missing, expired or revoked bearer token.
| 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. |
Response 403 The token lacks the permission this operation needs (see `x-brix-permission`).
| 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. |
Response 5XX Server error. The body carries a `requestId` to quote to support.
| 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. |
POST/v1/celebration-entries
Add an entry to the celebration roster. Requires name; also accepts occasionType, occasionMonth, occasionDay, occasionYear, photoUrl, department, title, location, customMessage, sourceId, and externalId, all optional.
**Notes.**
- The 201 body is the row as written, not re-read from the database, so columns the create does not set (for example lastSnapshotAt) are absent rather than null. GET returns every column.
Request body application/json
| Field | Type | Required | Description |
|---|---|---|---|
name | string | yes | |
sourceId | string | null | no | |
photoUrl | string | null | no | |
occasionType | "birthday" | "anniversary" | "custom" | no | Default `birthday`. |
occasionMonth | integer | null | no | |
occasionDay | integer | null | no | |
occasionYear | integer | null | no | |
department | string | null | no | |
title | string | null | no | |
location | string | null | no | |
customMessage | string | null | no | |
externalId | string | null | no | |
nodeId | string | null | no |
curl -X POST "https://api.brixsignage.com/v1/celebration-entries" \
-H "Authorization: Bearer $BRIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Sam Rivera","occasionType":"birthday","occasionMonth":10,"occasionDay":4,"department":"Kitchen"}' Response 201 Success.
| Field | Type | Description |
|---|---|---|
data | object | |
data.id | string | |
data.spaceId | string | |
data.nodeId | string | null | Home location; null = workspace root. Follows the data source's location when not set. |
data.sourceId | string | null | The data source it came from, if any. |
data.name | string | |
data.photoUrl | string | null | |
data.occasionType | "birthday" | "anniversary" | "custom" | |
data.occasionMonth | integer | null | 1–12. |
data.occasionDay | integer | null | 1–31. |
data.occasionYear | integer | null | The start year for an anniversary. |
data.department | string | null | |
data.title | string | null | |
data.location | string | null | |
data.customMessage | string | null | |
data.externalId | string | null | The id in the source system, for de-duplication. |
data.createdAt | string | ISO-8601 timestamp (UTC). |
data.updatedAt | string | ISO-8601 timestamp (UTC). |
data.deletedAt | string | null |
Response 401 Missing, expired or revoked bearer token.
| 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. |
Response 403 You do not hold `integration.create` at the location.
| 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. |
Response 422 `name` is missing, or a location or data source outside this workspace.
| 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. |
Response 5XX Server error. The body carries a `requestId` to quote to support.
| 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/celebration-entries/{id}
Return one entry from the celebration roster.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes | Celebration entry id. |
curl "https://api.brixsignage.com/v1/celebration-entries/{id}" \
-H "Authorization: Bearer $BRIX_API_KEY" Response 200 Success.
| Field | Type | Description |
|---|---|---|
data | CelebrationEntry | A person's birthday, work anniversary or other occasion for the Celebrations app. |
data.id | string | |
data.spaceId | string | |
data.nodeId | string | null | Home location; null = workspace root. Follows the data source's location when not set. |
data.sourceId | string | null | The data source it came from, if any. |
data.name | string | |
data.photoUrl | string | null | |
data.occasionType | "birthday" | "anniversary" | "custom" | |
data.occasionMonth | integer | null | 1–12. |
data.occasionDay | integer | null | 1–31. |
data.occasionYear | integer | null | The start year for an anniversary. |
data.department | string | null | |
data.title | string | null | |
data.location | string | null | |
data.customMessage | string | null | |
data.externalId | string | null | The id in the source system, for de-duplication. |
data.createdAt | string | ISO-8601 timestamp (UTC). |
data.updatedAt | string | ISO-8601 timestamp (UTC). |
data.deletedAt | string | null |
Response 401 Missing, expired or revoked bearer token.
| 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. |
Response 403 The token lacks the permission this operation needs (see `x-brix-permission`).
| 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. |
Response 404 No such entry in this workspace.
| 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. |
Response 5XX Server error. The body carries a `requestId` to quote to support.
| 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. |
PATCH/v1/celebration-entries/{id}
Edit one entry in the celebration roster. Accepts any of the fields used when creating an entry.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes | Celebration entry id. |
Request body application/json
| Field | Type | Required | Description |
|---|---|---|---|
name | string | no | |
sourceId | string | null | no | |
photoUrl | string | null | no | |
occasionType | "birthday" | "anniversary" | "custom" | no | Default `birthday`. |
occasionMonth | integer | null | no | |
occasionDay | integer | null | no | |
occasionYear | integer | null | no | |
department | string | null | no | |
title | string | null | no | |
location | string | null | no | |
customMessage | string | null | no | |
externalId | string | null | no | |
nodeId | string | null | no |
curl -X PATCH "https://api.brixsignage.com/v1/celebration-entries/{id}" \
-H "Authorization: Bearer $BRIX_API_KEY" \
-H "Content-Type: application/json" Response 200 Success.
| Field | Type | Description |
|---|---|---|
data | CelebrationEntry | A person's birthday, work anniversary or other occasion for the Celebrations app. |
data.id | string | |
data.spaceId | string | |
data.nodeId | string | null | Home location; null = workspace root. Follows the data source's location when not set. |
data.sourceId | string | null | The data source it came from, if any. |
data.name | string | |
data.photoUrl | string | null | |
data.occasionType | "birthday" | "anniversary" | "custom" | |
data.occasionMonth | integer | null | 1–12. |
data.occasionDay | integer | null | 1–31. |
data.occasionYear | integer | null | The start year for an anniversary. |
data.department | string | null | |
data.title | string | null | |
data.location | string | null | |
data.customMessage | string | null | |
data.externalId | string | null | The id in the source system, for de-duplication. |
data.createdAt | string | ISO-8601 timestamp (UTC). |
data.updatedAt | string | ISO-8601 timestamp (UTC). |
data.deletedAt | string | null |
Response 401 Missing, expired or revoked bearer token.
| 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. |
Response 403 You do not hold `integration.edit` at the destination location.
| 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. |
Response 404 No such entry in this workspace.
| 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. |
Response 5XX Server error. The body carries a `requestId` to quote to support.
| 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. |
DELETE/v1/celebration-entries/{id}
Remove an entry from the celebration roster. The entry moves to the recycle bin and can be brought back with the restore operation.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes | Celebration entry id. |
curl -X DELETE "https://api.brixsignage.com/v1/celebration-entries/{id}" \
-H "Authorization: Bearer $BRIX_API_KEY" Response 200 Success.
| Field | Type | Description |
|---|---|---|
data | object | |
data.id | string | |
data.deleted | true |
Response 401 Missing, expired or revoked bearer token.
| 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. |
Response 403 The token lacks the permission this operation needs (see `x-brix-permission`).
| 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. |
Response 404 No such entry in this workspace.
| 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. |
Response 5XX Server error. The body carries a `requestId` to quote to support.
| 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. |
POST/v1/celebration-entries/{id}/restore
Bring back a deleted celebration entry so it appears again in the celebration app's roster.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes | Celebration entry id. |
curl -X POST "https://api.brixsignage.com/v1/celebration-entries/{id}/restore" \
-H "Authorization: Bearer $BRIX_API_KEY" Response 200 Success.
| Field | Type | Description |
|---|---|---|
data | object | |
data.id | string | |
data.restored | true |
Response 401 Missing, expired or revoked bearer token.
| 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. |
Response 403 The token lacks the permission this operation needs (see `x-brix-permission`).
| 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. |
Response 404 No such entry in this workspace, or it was purged.
| 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. |
Response 409 `not_deleted`: the entry is not in the recycle bin.
| 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. |
Response 5XX Server error. The body carries a `requestId` to quote to support.
| 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. |