Skip to content
Knowledge base
Open dashboard
UAEN
ReferenceUpdated 02/11/2026

Playlists: creation, update, assignment

Endpoints of the playlist controller: list, card, creation, full-body update, binding to screens with the points field, copy with screens, deletion.

Checked on the current dashboard version

The playlistA set of files with a playback schedule that is assigned to screens or networks. controller creates and updates playlists (files with durations plus a schedule: dates, hours, weekdays, periodicity) and binds them to screens in one request via the points field. Base URL http://api.advision.digital, header Authorization: Bearer $ADV_T. The main rule: playlistA set of files with a playback schedule that is assigned to screens or networks./patch is sent with the full body, so first GET, then change, then write.

Method and path

What it does

Important

GET /playlistA set of files with a playback schedule that is assigned to screens or networks.?itemsPerPage=9999

PlaylistA set of files with a playback schedule that is assigned to screens or networks. list

Response key is playlists, not data

GET /playlistA set of files with a playback schedule that is assigned to screens or networks./<PLAYLISTA set of files with a playback schedule that is assigned to screens or networks._ID>

One playlistA set of files with a playback schedule that is assigned to screens or networks. with files, schedule and screenA device running the Advision player that shows content; the cabinet calls it a media device. list

Fields access, points, pointsTotal, expiration are computed: do not send them on write

POST /playlistA set of files with a playback schedule that is assigned to screens or networks./post

Create a playlistA set of files with a playback schedule that is assigned to screens or networks.

Body in the table below; files[].duration is required; points can be passed right away

POST /playlistA set of files with a playback schedule that is assigned to screens or networks./patch/<PLAYLISTA set of files with a playback schedule that is assigned to screens or networks._ID>

Update a playlistA set of files with a playback schedule that is assigned to screens or networks.

Same body as on creation, complete: omitted fields are reset (schedule, source, files)

POST /playlistA set of files with a playback schedule that is assigned to screens or networks./remove-many

Delete playlists: {"ids": [<PLAYLISTA set of files with a playback schedule that is assigned to screens or networks._ID>, ...]}

Irreversible; screens lose this content

POST /playlistA set of files with a playback schedule that is assigned to screens or networks./copy-with-screens/<PLAYLISTA set of files with a playback schedule that is assigned to screens or networks._ID>

Copy together with all screens and channel layout

On large lists the gateway returns 504 after ~50 s, but the copy is created: do not retry, look for <NAME> (copy) in the list

POST /playlistA set of files with a playback schedule that is assigned to screens or networks./copy/<PLAYLISTA set of files with a playback schedule that is assigned to screens or networks._ID>

Copy without screens

No parameter adds screens to the copy

Body of playlist/post and playlist/patch

Minimal body: {"name": "Promo October", "category": null, "type": "BACKGROUND", "filesOrder": "ASC", "fromDate": "2026-10-01 00:00:00", "toDate": "2026-10-31 23:59:59", "fromTime": "08:00:00", "toTime": "22:00:00", "influencePlaylist field: Active goes on air, Passive is only stored.": "ACTIVE", "weekDays": [0,1,2,3,4,5,6], "files": [{"id": <FILE_ID>, "duration": 15}]}

Field

Type

Required

Note

name

string

yes

PlaylistA set of files with a playback schedule that is assigned to screens or networks. name

category

null or number

yes

Usually null

type

string

yes

BACKGROUND plays in the common loop; ADVERTISING is inserted every periodicity seconds; FLOATING is a floating insert

filesOrder

string

yes

ASC, DESC, RANDOM, ONEOF

fromDate, toDate

datetime YYYY-MM-DD HH:MM:SS

yes

Validity period

fromTime, toTime

time HH:MM:SS

yes

Playback hours within the day

fromTime2, toTime2

time

no

Second playback windowA zone of the screen (A to G) with its own size, position and playlists.; returned by the API, pass it unchanged in a patch

weekDays

array

yes

0 = Sunday … 6 = Saturday. An empty array = the playlistA set of files with a playback schedule that is assigned to screens or networks. never enters the schedule

influencePlaylist field: Active goes on air, Passive is only stored.

string

yes

ACTIVE or PASSIVE; use ACTIVE by default

periodicity

number

for ADVERTISING

Seconds between insert starts. Always pass it in a patch, otherwise the period is reset

files[].id

number

yes

File from the media library

files[].duration

number

yes

Seconds on screenA device running the Advision player that shows content; the cabinet calls it a media device.; for video equals the clip length. Without it the request fails with 500 Undefined index: duration

points[].id

number

no

Screens to assign the playlistA set of files with a playback schedule that is assigned to screens or networks. to; the value fully replaces the list

limit, limitType, quotaPerLoop, maxDuration, actionOnEnd, inLeftoversOnly, measureImpressions, pixel, contentTags, source, sourceConfig

various

no

Undocumented fields returned by the API; pass them from GET unchanged in a patch, otherwise they are reset

access, points (in the response), pointsTotal, expiration

various

no

Computed, do not send on write

Create a playlist

curl: curl -s -X POST -H "Authorization: Bearer $ADV_T" -H "Content-Type: application/json" -d @playlistA set of files with a playback schedule that is assigned to screens or networks..json http://api.advision.digital/playlistA set of files with a playback schedule that is assigned to screens or networks./post, where playlistA set of files with a playback schedule that is assigned to screens or networks..json holds the body from the table. The response contains the id of the new playlistA set of files with a playback schedule that is assigned to screens or networks..

Python: body = {"name": "Promo October", "category": None, "type": "ADVERTISING", "filesOrder": "ASC", "fromDate": "2026-10-01 00:00:00", "toDate": "2026-10-31 23:59:59", "fromTime": "08:00:00", "toTime": "22:00:00", "weekDays": [0,1,2,3,4,5,6], "influencePlaylist field: Active goes on air, Passive is only stored.": "ACTIVE", "periodicity": 600, "files": [{"id": FILE_ID, "duration": 15}]}; pid = c.post("/playlistA set of files with a playback schedule that is assigned to screens or networks./post", json=body).json()["id"]

Bind a playlist to screens

Pass the screenA device running the Advision player that shows content; the cabinet calls it a media device. list in the points field of playlistA set of files with a playback schedule that is assigned to screens or networks./patch: one request for any number of screens (0.2–1 s); other playlists and the all-day background on the screens stay untouched. The playlistA set of files with a playback schedule that is assigned to screens or networks. always lands in channel 0; a channel field inside points is ignored.

Python: pl = c.get(f"/playlistA set of files with a playback schedule that is assigned to screens or networks./{pid}").json(); pl = pl.get("playlistA set of files with a playback schedule that is assigned to screens or networks.", pl); body = {k: v for k, v in pl.items() if k not in ("access", "points", "pointsTotal", "expiration")}; body["points"] = [{"id": POINT_ID_1}, {"id": POINT_ID_2}]; c.post(f"/playlistA set of files with a playback schedule that is assigned to screens or networks./patch/{pid}", json=body)

The points list is replaced entirely: send a subset and the remaining screens are unbound; omit points and the list stays as it was. Likewise, a patch with a narrowed points removes the playlistA set of files with a playback schedule that is assigned to screens or networks. from some screens. For screens that need the content in another channel use point/patch from the screens reference.

Replace a clip in a playlist that is already playing

Do not create a new playlistA set of files with a playback schedule that is assigned to screens or networks.: upload the new file version, read the playlistA set of files with a playback schedule that is assigned to screens or networks. with GET /playlistA set of files with a playback schedule that is assigned to screens or networks./<PLAYLISTA set of files with a playback schedule that is assigned to screens or networks._ID>, replace files[] with [{"id": <NEW_FILE_ID>, "duration": 15}] and send POST /playlistA set of files with a playback schedule that is assigned to screens or networks./patch/<PLAYLISTA set of files with a playback schedule that is assigned to screens or networks._ID> with the whole body. The playlistA set of files with a playback schedule that is assigned to screens or networks. stays on all screens and the content updates everywhere after sync.

Copy a playlist

curl: curl -s -X POST -H "Authorization: Bearer $ADV_T" http://api.advision.digital/playlistA set of files with a playback schedule that is assigned to screens or networks./copy-with-screens/<PLAYLISTA set of files with a playback schedule that is assigned to screens or networks._ID> creates a copy with screens and channels (the cabinet calls it «Copy with devices»). The "template" pattern: keep a sample playlistA set of files with a playback schedule that is assigned to screens or networks. with the right screenA device running the Advision player that shows content; the cabinet calls it a media device.-to-channel layout, copy it and patch the copy with new files and a narrowed points: two requests instead of hundreds.