API-referens
DisplayFlows REST API ger dig programmatisk åtkomst till skärmar, platser, media, spellistor och scheman. Alla endpoints är JSON-baserade och authentifieras via session-cookies eller API-nycklar.
Autentisering
Hantera sessioner, organisationer och API-nycklar. Better Auth hanterar all auth via /api/auth/*.
/api/auth/sign-up/emailSkapa konto
Registrera en ny användare med e-post och lösenord. Skickar ett verifieringsmeddelande.
Autentisering: Ingen
Parametrar
email string E-postadress*password string Lösenord (min 8 tecken)*name string Visningsnamn*Kodexempel
curl -X POST https://displayflow.app/api/auth/sign-up/email \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]","password":"hemligt123","name":"Anna Andersson"}'Svar
{
"user": {
"id": "user_abc123",
"email": "[email protected]",
"name": "Anna Andersson"
},
"session": { "id": "sess_xyz", "expiresAt": "..." }
}/api/auth/sign-in/emailLogga in
Loggar in med e-post och lösenord. Returnerar en session via cookie.
Autentisering: Ingen
Parametrar
email string E-postadress*password string Lösenord*Kodexempel
curl -X POST https://displayflow.app/api/auth/sign-in/email \
-H "Content-Type: application/json" \
-c cookies.txt \
-d '{"email":"[email protected]","password":"hemligt123"}'Svar
{
"user": { "id": "user_abc123", "email": "[email protected]" },
"session": { "id": "sess_xyz", "expiresAt": "..." }
}/api/auth/get-sessionHämta session
Returnerar den aktuella sessionen och användaren om cookie är giltig.
Autentisering: Session
Kodexempel
curl https://displayflow.app/api/auth/get-session \
-b cookies.txtSvar
{
"user": { "id": "user_abc123", "email": "[email protected]" },
"session": { "id": "sess_xyz", "expiresAt": "..." }
}/api/auth/sign-outLogga ut
Invaliderar den aktuella sessionen och rensar cookien.
Autentisering: Session
Kodexempel
curl -X POST https://displayflow.app/api/auth/sign-out \
-b cookies.txtSkärmar
Hantera fysiska och virtuella skärmar. Alla endpoints är organisations-scopade.
/api/screensLista skärmar
Hämtar alla skärmar i din organisation. Accepterar ?limit= och ?offset= (standard 50, max 200).
Autentisering: Session eller API-nyckel
Parametrar
limit number? Antal resultat (max 200)offset number? Hoppa över resultatKodexempel
curl https://displayflow.app/api/screens?limit=50 \
-H "Authorization: Bearer df_your_api_key"Svar
[
{
"id": "screen_abc",
"name": "Restaurang Skärm 1",
"status": "online",
"platform": "browser",
"locationId": "loc_xyz",
"organizationId": "org_123",
"lastSeenAt": "2026-08-03T11:00:00.000Z"
}
]/api/screensSkapa skärm
Skapar en ny skärm i din organisation. Returnerar 201 vid framgång.
Autentisering: Session
Parametrar
name string Skärmens namn*organizationId string Organisations-ID*platform string? Plattform (browser, windows, android-tv, raspberry-pi, samsung-tizen, debian-usb)locationId string? Plats-IDKodexempel
curl -X POST https://displayflow.app/api/screens \
-H "Content-Type: application/json" \
-b cookies.txt \
-d '{"name":"Lobby Skärm","organizationId":"org_123","platform":"browser"}'Svar
{
"id": "screen_def",
"name": "Lobby Skärm",
"status": "pending",
"platform": "browser",
"organizationId": "org_123"
}/api/screens/:idHämta skärm
Hämtar en specifik skärm. Returnerar 404 om skärmen inte finns i din organisation.
Autentisering: Session eller API-nyckel
Kodexempel
curl https://displayflow.app/api/screens/screen_abc \
-H "Authorization: Bearer df_your_api_key"/api/screens/:idUppdatera skärm
Uppdaterar en skärms namn, plats eller beskrivning.
Autentisering: Session
Parametrar
name string? Nytt namnlocationId string? Ny platsdescription string? BeskrivningKodexempel
curl -X PATCH https://displayflow.app/api/screens/screen_abc \
-H "Content-Type: application/json" \
-b cookies.txt \
-d '{"name":"Restaurang Skärm 1"}'/api/screens/:idTa bort skärm
Tar bort en skärm permanent. Returnerar 204 vid framgång.
Autentisering: Session
Kodexempel
curl -X DELETE https://displayflow.app/api/screens/screen_abc \
-b cookies.txt/api/screens/:id/rotate-tokenRotera spelartoken
Genererar en ny playerToken för skärmen. Skickar en reload-signal till ansluten enhet.
Autentisering: Session
Kodexempel
curl -X POST https://displayflow.app/api/screens/screen_abc/rotate-token \
-b cookies.txtPlatser
Hantera platser för att gruppera skärmar fysiskt eller logiskt.
/api/locationsLista platser
Hämtar alla platser i din organisation.
Autentisering: Session eller API-nyckel
Kodexempel
curl https://displayflow.app/api/locations \
-H "Authorization: Bearer df_your_api_key"Svar
[
{
"id": "loc_xyz",
"name": "Restaurang Stockholm",
"slug": "restaurang-stockholm",
"organizationId": "org_123"
}
]/api/locationsSkapa plats
Skapar en ny plats. Slug genereras automatiskt. Returnerar 201.
Autentisering: Session
Parametrar
name string Platsens namn*organizationId string Organisations-ID*Kodexempel
curl -X POST https://displayflow.app/api/locations \
-H "Content-Type: application/json" \
-b cookies.txt \
-d '{"name":"Restaurang Göteborg","organizationId":"org_123"}'/api/locations/:idTa bort plats
Tar bort en plats. Skärmar på platsen flyttas till ingen plats. Returnerar 204.
Autentisering: Session
Kodexempel
curl -X DELETE https://displayflow.app/api/locations/loc_xyz -b cookies.txtMedia
Hantera mediabibliotek: bilder, video och dokument. Stöder presigned uploads till R2.
/api/mediaLista media
Hämtar alla mediafiler i din organisation.
Autentisering: Session eller API-nyckel
Kodexempel
curl https://displayflow.app/api/media -H "Authorization: Bearer df_your_api_key"Svar
[
{
"id": "media_abc",
"name": "sommarkampanj.png",
"type": "image",
"status": "ready",
"mimeType": "image/png",
"size": 245678,
"width": 1920,
"height": 1080
}
]/api/mediaSkapa media
Skapar en media-post. Om R2 är konfigurerat returneras en presigned URL för direktuppladdning. Returnerar 201.
Autentisering: Session
Parametrar
name string Filnamn*type string image, video eller document*organizationId string Organisations-ID*mimeType string? MIME-typ (t.ex. image/png)size number? Filstorlek i bytesKodexempel
curl -X POST https://displayflow.app/api/media \
-H "Content-Type: application/json" -b cookies.txt \
-d '{"name":"bild.png","type":"image","organizationId":"org_123","mimeType":"image/png","size":245678}'Svar
{
"media": {
"id": "media_abc",
"name": "bild.png",
"status": "uploading"
},
"presignedUrl": "https://r2.example.com/upload?signature=..."
}/api/media/:idTa bort media
Tar bort en mediafil och alla dess varianter. Returnerar 204.
Autentisering: Session
Kodexempel
curl -X DELETE https://displayflow.app/api/media/media_abc -b cookies.txtSpellistor
Hantera spellistor och deras innehåll. Spellistor kan innehålla bilder, video och dokument.
/api/playlistsLista spellistor
Hämtar alla spellistor i din organisation.
Autentisering: Session eller API-nyckel
Kodexempel
curl https://displayflow.app/api/playlists -H "Authorization: Bearer df_your_api_key"Svar
[
{
"id": "pl_abc",
"name": "Lunchmeny",
"status": "active",
"loop": true,
"shuffle": false,
"itemCount": 12
}
]/api/playlistsSkapa spellista
Skapar en ny spellista. Returnerar 201.
Autentisering: Session
Parametrar
name string Spellistans namn*organizationId string Organisations-ID*description string? BeskrivningKodexempel
curl -X POST https://displayflow.app/api/playlists \
-H "Content-Type: application/json" -b cookies.txt \
-d '{"name":"Kvällsmeny","organizationId":"org_123"}'/api/playlists/:idTa bort spellista
Tar bort en spellista och alla dess objekt. Returnerar 204.
Autentisering: Session
Kodexempel
curl -X DELETE https://displayflow.app/api/playlists/pl_abc -b cookies.txtScheman
Hantera schemaläggning — vilka spellistor som visas på vilka skärmar och när.
/api/schedules/playlist/:playlistIdHämta schema för spellista
Hämtar alla schemaobjekt för en specifik spellista, med populerade skärmnamn.
Autentisering: Session eller API-nyckel
Kodexempel
curl https://displayflow.app/api/schedules/playlist/pl_abc \
-H "Authorization: Bearer df_your_api_key"Svar
[
{
"id": "sched_abc",
"screenId": "screen_abc",
"screenName": "Restaurang Skärm 1",
"playlistId": "pl_abc",
"dayOfWeek": 1,
"startTime": "08:00",
"endTime": "12:00"
}
]/api/schedulesSkapa schema
Skapar ett nytt schemaobjekt. Returnerar 201.
Autentisering: Session
Parametrar
screenId string Skärm-ID*playlistId string Spelliste-ID*dayOfWeek number Veckodag (0=söndag, 6=lördag)*startTime string Starttid (HH:MM)*endTime string Sluttid (HH:MM)*Kodexempel
curl -X POST https://displayflow.app/api/schedules \
-H "Content-Type: application/json" -b cookies.txt \
-d '{"screenId":"screen_abc","playlistId":"pl_abc","dayOfWeek":1,"startTime":"08:00","endTime":"12:00"}'/api/schedules/:idTa bort schema
Tar bort ett schemaobjekt. Returnerar 204.
Autentisering: Session
Kodexempel
curl -X DELETE https://displayflow.app/api/schedules/sched_abc -b cookies.txtParning
Para ihop fysiska enheter med skärmar via 6-siffriga koder.
/api/pairing/startStarta parning
Genererar en 6-siffrig kod och en playerToken. Koden är giltig i 10 minuter.
Autentisering: Session
Kodexempel
curl -X POST https://displayflow.app/api/pairing/start \
-H "Content-Type: application/json" -b cookies.txt \
-d '{"organizationId":"org_123","screenId":"screen_abc"}'Svar
{
"code": "123456",
"playerToken": "pt_xyz789",
"expiresAt": "2026-08-03T11:10:00.000Z"
}/api/pairing/checkKontrollera parningsstatus
Kontrollerar om en parningskod har bekräftats av en enhet.
Autentisering: Session
Parametrar
code string 6-siffrig parningskod*Kodexempel
curl -X POST https://displayflow.app/api/pairing/check \
-H "Content-Type: application/json" -b cookies.txt \
-d '{"code":"123456"}'Fakturering
Hantera prenumerationer och planer via Stripe.
/api/billing/plansLista planer
Hämtar tillgängliga abonnemangsplaner. Publik endpoint, ingen auth krävs.
Autentisering: Ingen
Kodexempel
curl https://displayflow.app/api/billing/plansSvar
{
"starter": { "monthly": 23900, "yearly": 229000 },
"pro": { "monthly": 59900, "yearly": 574000 }
}Hälsa
Övervaka API:ets hälsa och tjänstestatus.
/api/healthHälsokontroll
Kontrollerar status på databas, auth, lagring och fakturering. Publik endpoint.
Autentisering: Ingen
Kodexempel
curl https://displayflow.app/api/healthSvar
{
"status": "ok",
"timestamp": "2026-08-03T11:00:00.000Z",
"checks": {
"database": { "status": "pass" },
"auth": { "status": "pass" },
"storage": { "status": "pass" },
"billing": { "status": "pass" }
}
}