---
title: "Play a slideshow on a specific screen, checking for conflicts first"
method: POST
path: "/v1/devices/{id}/play"
tags: ["Devices and streams"]
---

# Play a slideshow on a specific screen, checking for conflicts first

`POST /v1/devices/{id}/play`

## Request

- Base URL: `https://infoslides.app`
- URL: `https://infoslides.app/v1/devices/{id}/play`
- Auth: none declared

"Play my Q1 slides on the lobby screen" as one call: checks the slideshow's render state, whether the screen is online, and whether it is already scheduled to something else, then either does it (a takeover when `until` is set, otherwise the default schedule entry) or returns `NeedsClarification` with ready-made choices. Supports `dryRun=true`.

## Path parameters

- `id` string, uuid, required

## Query parameters

- `dryRun` boolean

## Headers

- `Idempotency-Key` string

## Request body

- V1PlayRequest
  - `slideshowId` string, uuid
  - `deviceId` string, uuid, nullable
  - `until` string, date-time, nullable

## Response `200`

OK

---

[API](https://skmtc.dev/infoslides/apis/infoslides-agent-api.md) · [All operations](https://skmtc.dev/infoslides/apis/infoslides-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/infoslides/apis/infoslides-agent-api/revisions/d15bb7f8ee9d?raw)
