---
title: "Update an ad slot"
method: PATCH
path: "/v1/ad-slots/{id}"
tags: ["ad-slots"]
---

# Update an ad slot

`PATCH /v1/ad-slots/{id}`

## Request

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

Edit an ad slot's name, node, or exchange configuration, or turn ad requesting on and off. Enabling a slot is what allows it to start spending, so this action is recorded in the activity log.

## Path parameters

- `id` string, required

## Request body

- object
  - `name` string
  - `enabled` boolean
  - `nodeId` string, nullable: Move the slot; you need `integration.edit` at the destination too.
  - `config` object: Replaces the settings (missing fields take their defaults). A change to `provider`, `endpoint` or `credsRef` deletes the stored secrets (except for Vistar); set them again with `PUT /v1/ad-slots/:id/secrets`.
    - `provider` 'vast' | 'vistar' | 'broadsign' | 'hivestack', required
    - `endpoint` string, required
    - `credsRef` string: The name of the secret (set with `PUT /v1/ad-slots/:id/secrets`) that holds the ad server credential.
    - `venueId` string, nullable
    - `deviceTypeId` string, nullable
    - `minSeconds` integer: Shortest ad to accept, 1–300 (default 5).
    - `maxSeconds` integer: Longest ad to accept, at least `minSeconds`.
    - `podSeconds` integer: Seconds of ads per break, at least `maxSeconds`.
    - `allowAudio` boolean
    - `vistar` object: Vistar settings. Only for `provider` = `vistar`. The endpoint is fixed by `environment`.
      - `environment` 'staging' | 'production', required: Which Vistar network the slot talks to. Staging and production use separate credentials.
      - `spots` integer, required: Open spots requested per visit to the pod, 1–12. Each spot is one request and at most one ad.
      - `staticSeconds` integer, required: Seconds a still image plays, 1–60.

## Response `200`

Success.

- object
  - `data` AdSlot, required: A slot that fills airtime from a programmatic ad server.
    - `id` string, required
    - `spaceId` string, required
    - `name` string, required
    - `enabled` boolean, required
    - `nodeId` string, nullable, required: Home location; null = workspace root.
    - `createdAt` string, required: ISO-8601 timestamp (UTC).
    - `updatedAt` string, required: ISO-8601 timestamp (UTC).
    - `config` AdSlotConfig, required
      - `provider` 'vast' | 'vistar' | 'broadsign' | 'hivestack', required
      - `endpoint` string, required: The ad server URL (http or https, a public host).
      - `credsRef` string, required: The name of the secret (set with `PUT /v1/ad-slots/:id/secrets`) that holds the ad server credential.
      - `venueId` string, nullable
      - `deviceTypeId` string, nullable
      - `minSeconds` integer, required: Shortest ad to accept, 1–300 (default 5).
      - `maxSeconds` integer, required: Longest ad to accept, at least `minSeconds`.
      - `podSeconds` integer, required: Seconds of ads per break, at least `maxSeconds`.
      - `allowAudio` boolean, required
      - `vistar` object: Vistar settings. Only for `provider` = `vistar`. The endpoint is fixed by `environment`.
        - `environment` 'staging' | 'production', required: Which Vistar network the slot talks to. Staging and production use separate credentials.
        - `spots` integer, required: Open spots requested per visit to the pod, 1–12. Each spot is one request and at most one ad.
        - `staticSeconds` integer, required: Seconds a still image plays, 1–60.
    - `secretRefs` string[], required: Secret names that hold a value. Values are never returned. The single-slot reads fill this; the list answers `[]`.

## Other responses

- `401`: Missing, expired or revoked bearer token.
- `403`: You do not hold `integration.edit` at the destination.
- `404`: No such ad slot in this workspace.
- `409`: `conflict`: a `config` change found the slot settings or secrets changed while this request ran. Nothing was saved; read the slot again and resend.
- `422`: An empty `name`, or an invalid `config`.
- `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/7c2741bcdb16?raw)
