Screens from your own code

Pro

List screens, choose what each plays, take one over with Show it now, and read their health.

You need a key that can do Screens. It can’t pair or unpair TVs; those stay in the console.

List and read

curl https://dqeiiqecdxqguwrilond.supabase.co/functions/v1/api/v1/screens \
  -H "Authorization: Bearer dsk_YOUR_KEY"
  • GET /screens (add ?location_id= for one location) and GET /screens/SCREEN_ID: id, name, rotation, location, last_seen_at, and content, what it plays now.
  • A screen is online when last_seen_at is within the last 12 minutes.
  • GET /locations, /playlists, /signs, /tags and /walls: to find the ids to choose from.
  • GET /health: every screen with its downloads and free space, and the offline and stuck alerts of the last 30 days.

Choose what a screen plays

curl -X PUT https://dqeiiqecdxqguwrilond.supabase.co/functions/v1/api/v1/screens/SCREEN_ID/content \
  -H "Authorization: Bearer dsk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type": "playlist", "playlist_id": "PLAYLIST_ID"}'

The body is one of {"type": "playlist", "playlist_id"}, {"type": "sign", "sign_id"}, {"type": "media", "media_id", "fit": "fit"} (or "fill") or {"type": "nothing"}. The TV changes within seconds, once the files are downloaded. PATCH /screens/SCREEN_ID renames it (name) or sets how it’s mounted (rotation: 0, 90, 180 or 270).

Show it now

curl -X PUT https://dqeiiqecdxqguwrilond.supabase.co/functions/v1/api/v1/screens/SCREEN_ID/show-now \
  -H "Authorization: Bearer dsk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type": "sign", "sign_id": "SIGN_ID", "minutes": 30}'

Takes the screen over for minutes (up to 1,440), or until stopped with null; then it goes back to its own content. DELETE /screens/SCREEN_ID/show-now stops it early.

POST /screens/SCREEN_ID/resync asks the TV to check in now (answers 202). TVs are told about every change anyway, so you rarely need it.

Still stuck?

Email support@dislab.app, or send us a message. If it’s about a screen, tell us its name. We answer within one business day.

Contact us