Anmelden

Lizenzen

API für Lizenzvalidierung, Aktivierung und Geräteverwaltung

Verwalten Sie Lizenzvalidierung, Aktivierung und Geräteverfolgung.

Ratenbegrenzung: Lizenz-Endpunkte sind pro IP-Adresse über ein festes 60-Sekunden-Fenster ratenbegrenzt. Wird das Limit überschritten, wird 429 Too Many Requests mit dem Header Retry-After: 60 zurückgegeben, bis das Fenster zurückgesetzt wird.

Lizenz validieren

Validiert und aktiviert einen Lizenzschlüssel. Dieser Endpunkt ist auf 5 Anfragen pro Minute pro IP-Adresse begrenzt.

Endpunkt: POST /api/licenses/validate

ParameterTypErforderlichBeschreibung
license_keystringJaZu validierender Lizenzschlüssel
device_idstringJaStabile, eindeutige Kennung für das zu aktivierende Gerät. Senden Sie für ein bestimmtes Gerät jedes Mal denselben Wert, denn damit wird der Lizenzplatz dieses Geräts belegt und erneut beansprucht
curl -X POST "$BASE_URL/api/licenses/validate" \
  -H "Content-Type: application/json" \
  -d '{"license_key":"XXXX-XXXX-XXXX-XXXX","device_id":"device_abc123"}'

Antwort (Erfolg):

{
  "valid": true,
  "license": {
    "id": "uuid",
    "status": "active",
    "product": { "id": "uuid", "name": "studio", "features": ["client_api", "api_keys"] },
    "activation_date": "2024-01-01T00:00:00Z",
    "expiration_date": "2025-12-31T23:59:59Z",
    "current_activations": 1
  }
}

Antwort (Fehler):

{
  "statusCode": 400,
  "statusMessage": "Invalid licence key or validation failed"
}
StatusWann
400license_key oder device_id fehlt, ist leer oder zu lang, oder der Schlüssel ist unbekannt, inaktiv oder abgelaufen
409Alle Lizenzplätze sind bereits durch andere Geräte belegt, und keiner war lange genug ungenutzt, um neu vergeben zu werden
429Ratenlimit überschritten, siehe Ratenbegrenzung
Aus Sicherheitsgründen geben alle Fehler bei der Lizenzvalidierung dieselbe allgemeine Meldung zurück, um Enumerationsangriffe zu verhindern. Ein 400 verrät daher nie, welches Feld fehlerhaft war: Prüfen Sie vor einem erneuten Versuch, ob license_key und device_id vorhanden und nicht leer sind.

Lizenz deaktivieren

Authentifizierung erforderlich

Erfordert das Session-Cookie session_token des Lizenzinhabers (siehe Authentifizierung). Sie können nur Lizenzen deaktivieren, die Ihnen gehören.

Deaktivieren Sie eine Lizenz auf einem bestimmten Gerät oder auf allen Geräten.

Endpunkt: POST /api/licenses/deactivate

ParameterTypErforderlichBeschreibung
license_keystringJaZu deaktivierender Lizenzschlüssel
device_idstringNeinBestimmtes Gerät, das deaktiviert werden soll (weglassen für alle Geräte)
curl -X POST "$BASE_URL/api/licenses/deactivate" \
  -b cookies.txt \
  -H "Content-Type: application/json" \
  -d '{"license_key":"XXXX-XXXX-XXXX-XXXX","device_id":"device_abc123"}'

Antwort:

{
  "success": true,
  "message": "Device deactivated successfully",
  "deactivated_count": 1,
  "remaining_activations": 4
}
Trotz seines Namens gibt remaining_activations die Anzahl der Lizenzplätze an, die nach der Deaktivierung noch belegt sind, also die Anzahl der verschiedenen Geräte, die auf der Lizenz aktiv bleiben. Es ist nicht die Anzahl der freien Plätze. Das Deaktivieren aller Geräte liefert daher 0. Berechnen Sie die freien Plätze als activation_limit - remaining_activations, mit activation_limit aus GET /api/licenses/status. Ohne device_id lautet die Meldung „All devices deactivated successfully“; deactivated_count ist die Anzahl der Lizenzplätze, die dieser Aufruf freigegeben hat.

Lizenzstatus

Authentifizierung erforderlich

Erfordert das Session-Cookie session_token des Lizenzinhabers (siehe Authentifizierung). Sie können nur Lizenzen einsehen, die Ihnen gehören.

Prüfen Sie den aktuellen Status einer Lizenz. Begrenzt auf 30 Anfragen pro Minute pro IP.

Endpunkt: GET /api/licenses/status

ParameterTypErforderlichBeschreibung
license_keyqueryJaZu prüfender Lizenzschlüssel
curl -X GET "$BASE_URL/api/licenses/status?license_key=XXXX-XXXX-XXXX-XXXX" \
  -b cookies.txt

Antwort:

{
  "license": {
    "id": "uuid",
    "license_key": "XXXX-XXXX-XXXX-XXXX",
    "status": "active",
    "purchase_date": "2024-01-01T00:00:00Z",
    "activation_date": "2024-01-01T00:00:00Z",
    "expiration_date": "2025-12-31T23:59:59Z",
    "days_until_expiration": 365,
    "activation_limit": 5,
    "current_activations": 2,
    "available_activations": 3,
    "is_expired": false,
    "is_active": true,
    "product": { "id": "uuid", "name": "Studio 8K", "description": "...", "features": [] },
    "user": { "id": "uuid", "first_name": "Jane", "last_name": "Doe", "email": "user@example.com" }
  },
  "active_devices": [
    {
      "id": "uuid",
      "device_id": "device_abc123",
      "device_name": "Studio Mac",
      "platform": "macos",
      "app_version": "3.1.2",
      "activated_at": "2024-01-01T00:00:00Z",
      "last_seen_at": "2024-01-02T09:00:00Z",
      "ip_address": "192.168.1.1"
    }
  ]
}

Lizenz-Lebenszyklus

Ratenbegrenzung

Lizenz-Endpunkte sind pro IP über ein festes 60-Sekunden-Fenster ratenbegrenzt. Bei einem 429 wird ein Header zurückgegeben:

HeaderBeschreibung
Retry-AfterSekunden bis zum Zurücksetzen des Fensters (immer 60)

Ratenlimits nach Endpunkt

EndpunktAnfragen / 60 sStufe
/api/licenses/validate5Streng
/api/licenses/status30Standard
/api/licenses/deactivate30Standard

POST /api/licenses/validate wendet das strenge Limit zweimal an: einmal pro IP und einmal bezogen auf den übermittelten license_key, sodass ein einzelner Schlüssel nicht von vielen IPs aus massenhaft angefragt werden kann.

Wird ein Limit überschritten, wird für den Rest des 60-Sekunden-Fensters 429 Too Many Requests zurückgegeben. Es gibt keine progressive oder eskalierende Sperrdauer.

Lizenztypen

Eine Lizenz wird einer der aktuellen Tarifstufen zugeordnet. Maßgeblich für die Funktionen und Limits jeder Stufe ist das, was die Preisseite anzeigt, siehe Tarife vergleichen.

StufeZielgruppeWichtige Ergänzungen gegenüber der Stufe darunter
freeDauerhaft kostenloser Tarif, keine Karte, kein AblaufdatumEin einfacher Presenter: ein Raum, ein(e) Vortragende(r), Bildschirmfreigabe mit Wasserzeichen und Stream Deck; alle anderen Funktionen sind gesperrt
presenterVortragendeTimer Pro, Chat, Zeichnen, Multi-Host und NDI
pro (Studio HD)Solo-ProduzentenAnrufer, eigene Räume, Videofreigabe und die Studio-Grundfunktionen
ultra (Studio 4K)Power-User und StreamerUnbegrenzte Räume, gespeicherte Farbthemen für Ihre Marke, Ebenen, ISO-Aufnahme, Replay und der erweiterte Studio-Werkzeugkasten
studio (Studio 8K)ProduktionsteamsRaumlayout-Designer, Whitelabel-Branding, die Client API, API-Schlüssel, eigene Domains, gepoolte Team-Lizenzen pro Platz
enterpriseGroße Organisationen und BeschaffungSSO, SCIM und benutzerdefinierte Teamrollen, Jahresverträge pro Platz
Ältere Lizenzen können noch alte Produktnamen tragen. Diese behalten die Berechtigungen, mit denen sie gekauft wurden, und die API ordnet sie den oben genannten Stufen zu.