---
title: "Set what a screen plays"
method: POST
path: "/v1/screens/{id}/assign"
tags: ["screens"]
---

# Set what a screen plays

`POST /v1/screens/{id}/assign`

## Request

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

Assign content to a screen using `contentKind` and `contentId`. Pass `null` to clear the current assignment. The content is validated to confirm it exists, can be used at the screen's organization node, and has no unfilled layout zones, before the screen is updated to play it.

Assigns content to one screen (null clears it). The screen is told to reload immediately.

## Path parameters

- `id` string, required

## Request body

- object
  - `contentKind` 'playlist' | 'schedule' | 'layout' | 'creative' | 'app' | 'media' | 'signage', nullable, required: What to assign; null clears the assignment.
  - `contentId` string: Required unless `contentKind` is null.

## Response `200`

Success.

- object
  - `data` object, required
    - `id` string, required
    - `contentKind` 'playlist' | 'schedule' | 'layout' | 'creative' | 'app' | 'media' | 'signage', nullable, required
    - `contentId` string, nullable, required

## Other responses

- `401`: Missing, expired or revoked bearer token.
- `403`: `not_shared`: the content is not shared to this screen's location.
- `404`: No such screen or content in this workspace.
- `422`: Invalid kind, a layout with unbound zones, or content that cannot play (empty playlist, unprocessed media).
- `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)
