Overview
A small, real admin surface
Base URL: https://api.ilysign.com/v1. The public API is intentionally narrow:
list locations, screens, groups, playlists, and assets; claim screens; publish playlists.
Device bootstrap and player-private routes stay outside /v1.
Included endpoints
GET /v1/locationsGET /v1/screensPOST /v1/screens/claimGET /v1/groupsGET /v1/playlistsPOST /v1/playlists/{id}/publishGET /v1/assets
OpenAPI
Use the machine-readable contract when building with Cursor, Claude, ChatGPT, Copilot, or your own generator.
https://ilysign.com/openapi/ilysign-admin-v1.yaml
Auth
Named API keys
Create keys in Console → Settings → Developers. The plaintext secret is shown once. Only the hash is stored server-side. Keys can be scoped per capability, and can optionally be restricted to specific locations.
Request header
Authorization: Bearer ilys_key_...
Available scopes:
locations:read,
screens:read,
screens:write,
groups:read,
playlists:read,
playlists:write,
assets:read.
Limits
Plan gating
API access requires an active trial or paid plan. Free plans are rejected even if a key already exists. Organization members need Owner or Admin access to create and revoke keys in the console.
Assets
Library metadata + view URLs
GET /v1/assets returns your asset library with metadata and temporary signed
URLs for viewing. Assets remain organization-level resources.
curl -sS https://api.ilysign.com/v1/assets \
-H "Authorization: Bearer ilys_key_..."
Playlists
List and publish
GET /v1/playlists returns playlist definitions. Publishing is a separate
action: POST /v1/playlists/{id}/publish. The response includes the updated
playlist and the transfer bytes metered for that publish.
curl -sS -X POST https://api.ilysign.com/v1/playlists/PLAYLIST_ID/publish \
-H "Authorization: Bearer ilys_key_..."
Screens
Status and claiming
GET /v1/screens includes the effective publish status for each screen:
live, waiting, offline, or revoked.
POST /v1/screens/claim claims a pending pairing code into the organization.
curl -sS -X POST https://api.ilysign.com/v1/screens/claim \
-H "Authorization: Bearer ilys_key_..." \
-H "Content-Type: application/json" \
-d '{"code":"ABC123","name":"Lobby TV"}'
Groups
Bulk-control visibility
GET /v1/groups returns screen groups and member counts. If a key is
restricted to specific locations, group membership counts are filtered to the screens that
key can see.
Errors
Consistent JSON errors
Every error returns JSON with error and code. Common codes are
bad_request, unauthorized, forbidden,
not_found, and internal.
{
"error": "api key missing required scope: playlists:write",
"code": "forbidden"
}