Zum Inhalt springen

Der erste Aufruf mit curl

Mit Schlüssel und curl GET /v1/me und GET /v1/playlists aufrufen, die Antwort und ihre Kopfzeilen ansehen — in fünf Minuten.

3 Minuten LesezeitErste SchritteStand: 25.10.2026

Auf dieser Seite

Bevor Sie loslegen

Für wen
Entwicklerinnen und Entwickler mit einem frisch erzeugten API-Schlüssel
Voraussetzung
ein Schlüssel ak_… mit dem Recht playlist.list (Klasse Nur Lesen genügt) und die Basis-Adresse Ihrer Umgebung — der Ursprung, den auch Ihr Portal anspricht
Ort
Kommandozeile

Nach dieser Anleitung haben Sie mit Ihrem Schlüssel zwei Routen aufgerufen — Ihr eigenes Konto und Ihre Playlisten — und die Kopfzeilen einer Antwort gesehen. Fünf Minuten, keine Installation außer curl.

Schritte

  1. Legen Sie Adresse und Schlüssel in Umgebungsvariablen ab. Der Schlüssel gehört in eine Kopfzeile, nie in die Adresse — Adressen landen in Protokollen, Kopfzeilen nicht.

    export SZENERA_API="https://<basis-adresse-ihrer-umgebung>"
    export SZENERA_API_KEY="ak_…"
    
  2. Rufen Sie Ihr eigenes Konto ab. GET /v1/me liest das Benutzerprofil, dem der Schlüssel gehört — die Antwort hier auf die Felder gekürzt, die zählen:

    curl -sS "$SZENERA_API/v1/me" \
      -H "Authorization: Bearer $SZENERA_API_KEY"
    
    {
      "id": "usr_01KERQ74K0TEAM000000000001",
      "email": "owner@demo.local",
      "tenantId": "tnt_01KERPXZM0DEM0000000000001",
      "status": "active",
      "profile": { "displayName": "Julia Petersen", "locale": "de-DE", "timezone": "Europe/Berlin" },
      "roleAssignments": [
        { "roleId": "rol_01KERPYWXGRECHT00000000001", "assignedAt": "2026-01-12T09:05:00.000Z", "assignedById": "usr_01KERQ74K0TEAM000000000001", "expiresAt": null }
      ]
    }
    

    tenantId ist die Kennung Ihrer Organisation. Steht dort eine andere als erwartet, zeigt der Schlüssel woandershin, als gedacht.

  3. Rufen Sie die Liste Ihrer Playlisten ab. GET /v1/playlists braucht das Recht playlist.list, das die Klassen Nur Lesen, Ausspielsteuerung und Vollzugriff enthalten — ein Schlüssel der Klasse Medien-Automation oder Inhalte-Pflege bekommt hier eine 403. Auch diese Antwort ist auf die wichtigsten Felder gekürzt:

    curl -sS "$SZENERA_API/v1/playlists?limit=5" \
      -H "Authorization: Bearer $SZENERA_API_KEY"
    
    {
      "items": [
        {
          "id": "pll_01KWV91ZS0PRGRAMM000000001",
          "name": "Tagesprogramm",
          "version": 6,
          "createdAt": "2026-07-06T08:35:00.000Z",
          "updatedAt": "2026-07-13T07:52:00.000Z",
          "items": [
            { "id": "pli_01KWV92A70PKT0000000000001", "kind": "scene", "sceneId": "scn_01KJPX8NH0SZENE00000000001", "sceneVersionId": null, "durationMs": 10000, "transition": null, "order": 0 }
          ]
        }
      ],
      "nextCursor": "cGxsOjIwMjYtMDMtMTE",
      "total": 2
    }
    

    Diese Liste nimmt limit zwischen 1 und 200 (Vorgabe 50) und blättert mit cursor weiter; nextCursor fehlt auf der letzten Seite. Die Displays (GET /v1/players) erreichen Sie mit einem Schlüssel genauso — fleet.player.list ist schlüsselfähig. Die Geräte dahinter (GET /v1/devices) nicht: identity.device.list ist nur für Benutzerkonten vorgesehen. Ein Display ist die Fläche, die etwas zeigt; ein Gerät die Maschine mit Zertifikat und Kopplung — und die bleibt Menschen vorbehalten.

  4. Sehen Sie sich die Kopfzeilen an. Mit -i zeigt curl den Status und die Kopfzeilen vor dem Rumpf:

    curl -sSi "$SZENERA_API/v1/me" \
      -H "Authorization: Bearer $SZENERA_API_KEY" | head -n 12
    

    Zwei Zeilen zählen: Content-Type: application/json und X-Trace-Id: trc_…. Die Trace-Kennung ist die Spur dieses einen Aufrufs; notieren Sie sie, wenn etwas nicht stimmt.

Derselbe Aufruf mit der Kommandozeile

Die Kommandozeile szenera nimmt Adresse und Schlüssel aus Umgebungsvariablen und spricht dieselben Routen; ist die Standardausgabe kein Terminal, gibt sie JSON aus. Den Schlüssel liest sie aus demselben SZENERA_API_KEY wie in Schritt 1, die Adresse aus SZENERA_BASE_URL:

SZENERA_BASE_URL="$SZENERA_API" szenera whoami
SZENERA_BASE_URL="$SZENERA_API" szenera playlist list --limit=5

Wie Sie an die Kommandozeile kommen, steht unter Die CLI beziehen.

Ergebnis prüfen

  • Beide Aufrufe antworten mit 200 und einem JSON-Rumpf; Fehler kämen als Rumpf mit code, message und traceId.
  • Die Liste der Playlisten trägt items und, solange weitere Seiten folgen, nextCursor.
  • Im Portal steht der Schlüssel unter Einstellungen › Organisation › API-Schlüssel jetzt mit einem Zeitpunkt in Zuletzt benutzt.

Wenn etwas nicht klappt

Symptom Bedeutung Lösung
401 mit Auth.Required Kopfzeile fehlt, Bearer fehlt, oder der Wert hat kein bekanntes Präfix (Tippfehler im Präfix). Kopfzeile und Variable prüfen; siehe Wenn der erste Aufruf scheitert.
401 mit Auth.TokenMalformed Das Präfix ak_ stimmt, aber der Schlüssel ist abgeschnitten oder enthält ungültige Zeichen. Den Wert vollständig aus dem Geheimnis-Speicher übernehmen: ak_ plus 26 Zeichen.
401 mit Auth.ApiKeyUnknown, Auth.ApiKeyRevoked oder Auth.ApiKeyExpired Der Schlüssel existiert nicht, wurde widerrufen oder ist abgelaufen. Neuen Schlüssel erzeugen.
403 mit Permission.Denied Der Schlüssel trägt das Recht der Operation nicht — oder die Route verlangt ein Recht, das Schlüssel nie tragen (Geräte, Koppeln und Löschen von Displays, Schlüsselverwaltung). Klasse oder Rechte beim Erzeugen anpassen; für diese Routen ein Sitzungstoken verwenden.
404 mit Resource.NotFound Der Pfad trifft keine Route — meist fehlt /v1, oder die Basis-Adresse ist falsch. Adresse und Pfad prüfen.
422 mit Validation.Failed Ein Parameter ist ungültig, etwa limit=500. details.issues lesen und den Wert korrigieren.

Weiterführendes