---
title: "Assign screens to billing group"
method: POST
path: "/v1/billing-groups/{id}/screens"
tags: ["billing-groups"]
---

# Assign screens to billing group

`POST /v1/billing-groups/{id}/screens`

## Request

- Base URL: `https://api.brixsignage.com`
- URL: `https://api.brixsignage.com/v1/billing-groups/{id}/screens`
- Auth: HTTP bearer

Assigns a batch of screens to a billing group. This updates the destination group, every group the screens are moving from, and the workspace subscription, so screen counts and billing stay in sync.

## Path parameters

- `id` string, required

## Request body

- object
  - `screenIds` string[], required: Up to 500 are read; more are ignored. Ids that are not live screens are skipped.

## Response `200`

Success.

- object
  - `data` object, required
    - `id` string, required
    - `assigned` integer, required: Screens moved into the group.
    - `skipped` integer, required: Ids not moved (unknown, or already in the group).
    - `screenCount` integer, required

## Other responses

- `401`: Missing, expired or revoked bearer token.
- `403`: You lack `billing.edit` at one of the screens' locations (the response names them in `screenIds`); nothing changes. Also: You do not hold the permission for the whole workspace (a grant at one location is not enough).
- `404`: No such group, or none of the ids is a live screen.
- `422`: `screenIds` missing or empty.
- `5XX`: Server error. The body carries a `requestId` to quote to support.

---

[API](https://skmtc.dev/brixsignage/apis/brix-api.md) · [All operations](https://skmtc.dev/brixsignage/apis/brix-api/llms.txt) · [OpenAPI document](https://skmtc.dev/brixsignage/apis/brix-api/revisions/02fd3665dc7d?raw)
