Zaloguj się

Licencje

API do weryfikacji i aktywacji licencji oraz zarządzania urządzeniami

Zarządzaj weryfikacją i aktywacją licencji oraz śledzeniem urządzeń.

Limity żądań: endpointy licencji mają limity żądań na adres IP w stałym, 60-sekundowym oknie. Przekroczenie limitu zwraca 429 Too Many Requests z nagłówkiem Retry-After: 60 aż do zresetowania okna.

Weryfikacja licencji

Zweryfikuj i aktywuj klucz licencyjny. Ten endpoint ma limit 5 żądań na minutę na adres IP.

Endpoint: POST /api/licenses/validate

ParametrTypWymaganyOpis
license_keystringTakKlucz licencyjny do zweryfikowania
device_idstringTakStabilny, unikalny identyfikator aktywowanego urządzenia. Wysyłaj za każdym razem tę samą wartość dla danego urządzenia: to dzięki niej urządzenie zajmuje i ponownie odzyskuje swoje miejsce w licencji
curl -X POST "$BASE_URL/api/licenses/validate" \
  -H "Content-Type: application/json" \
  -d '{"license_key":"XXXX-XXXX-XXXX-XXXX","device_id":"device_abc123"}'

Odpowiedź (sukces):

{
  "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
  }
}

Odpowiedź (błąd):

{
  "statusCode": 400,
  "statusMessage": "Invalid licence key or validation failed"
}
StatusKiedy
400Brakuje license_key lub device_id, wartość jest pusta lub za długa albo klucz jest nieznany, nieaktywny lub wygasły
409Wszystkie miejsca w licencji są już zajęte przez inne urządzenia i żadne nie było nieaktywne wystarczająco długo, by można je było odzyskać
429Przekroczono limit żądań, zobacz Limity żądań
Ze względów bezpieczeństwa wszystkie błędy weryfikacji licencji zwracają ten sam ogólny komunikat, aby zapobiec atakom enumeracyjnym. Dlatego odpowiedź 400 nigdy nie wskazuje, które pole było błędne: przed ponowną próbą upewnij się, że license_key i device_id są obecne i niepuste.

Dezaktywacja licencji

Wymagane uwierzytelnienie

Wymaga ciasteczka sesji session_token właściciela licencji (zobacz Uwierzytelnianie): możesz dezaktywować tylko licencję, której jesteś właścicielem.

Dezaktywuj licencję na konkretnym urządzeniu lub na wszystkich urządzeniach.

Endpoint: POST /api/licenses/deactivate

ParametrTypWymaganyOpis
license_keystringTakKlucz licencyjny do dezaktywacji
device_idstringNieKonkretne urządzenie do dezaktywacji (pomiń, aby objąć wszystkie urządzenia)
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"}'

Odpowiedź:

{
  "success": true,
  "message": "Device deactivated successfully",
  "deactivated_count": 1,
  "remaining_activations": 4
}
Wbrew nazwie remaining_activations to liczba miejsc nadal używanych po dezaktywacji, czyli liczba różnych urządzeń, które pozostają aktywne w licencji. Nie jest to liczba wolnych miejsc. Dezaktywacja wszystkich urządzeń zwraca więc 0. Liczbę wolnych miejsc oblicz jako activation_limit - remaining_activations, używając activation_limit z GET /api/licenses/status. Bez device_id komunikat brzmi „All devices deactivated successfully”; deactivated_count to liczba miejsc zwolnionych przez to wywołanie.

Status licencji

Wymagane uwierzytelnienie

Wymaga ciasteczka sesji session_token właściciela licencji (zobacz Uwierzytelnianie): możesz sprawdzać tylko licencję, której jesteś właścicielem.

Sprawdź bieżący status licencji. Limit wynosi 30 żądań na minutę na adres IP.

Endpoint: GET /api/licenses/status

ParametrTypWymaganyOpis
license_keyqueryTakKlucz licencyjny do sprawdzenia
curl -X GET "$BASE_URL/api/licenses/status?license_key=XXXX-XXXX-XXXX-XXXX" \
  -b cookies.txt

Odpowiedź:

{
  "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"
    }
  ]
}

Cykl życia licencji

Limity żądań

Endpointy licencji mają limity żądań na adres IP w stałym, 60-sekundowym oknie. Przy odpowiedzi 429 zwracany jest jeden nagłówek:

NagłówekOpis
Retry-AfterLiczba sekund do zresetowania okna (zawsze 60)

Limity żądań według endpointu

EndpointŻądania / 60 sPoziom
/api/licenses/validate5Ścisły
/api/licenses/status30Standardowy
/api/licenses/deactivate30Standardowy

POST /api/licenses/validate stosuje limit Ścisły dwukrotnie: raz na adres IP i raz według przesłanego license_key, dzięki czemu pojedynczego klucza nie da się zasypywać żądaniami z wielu adresów IP.

Przekroczenie limitu zwraca 429 Too Many Requests przez pozostałą część 60-sekundowego okna. Czas blokady nie jest stopniowo wydłużany ani zwiększany.

Typy licencji

Licencja odpowiada jednemu z bieżących poziomów planów. Wiążący zestaw funkcji i limitów dla każdego poziomu to ten, który pokazuje strona z cennikiem, zobacz Porównaj plany.

PoziomDla kogoNajważniejsze dodatki względem niższego poziomu
freeStały darmowy plan, bez karty, bez daty wygaśnięciaProsty pilot do prezentacji: jeden pokój, jeden prezenter, udostępnianie ekranu ze znakiem wodnym i Stream Deck; wszystkie pozostałe funkcje są zablokowane
presenterPrezenterzyTimer Pro, czat, rysowanie, wielu hostów i NDI
pro (Studio HD)Samodzielni producenciRozmówcy, własne pokoje, udostępnianie wideo i podstawowe funkcje Studio
ultra (Studio 4K)Zaawansowani użytkownicy i streamerzyNieograniczona liczba pokoi, zapisane motywy kolorystyczne marki, warstwy, nagrywanie ISO, powtórki i szerszy zestaw narzędzi Studio
studio (Studio 8K)Zespoły produkcyjneProjektant układu pokoju, branding whitelabel, Client API, klucze API, własne domeny, zespołowe licencje na miejsca ze wspólnej puli
enterpriseDuże organizacje i działy zakupówSSO, SCIM i niestandardowe role zespołowe, roczne umowy rozliczane za miejsce
Starsze licencje mogą nadal nosić dawne nazwy produktów. Zachowują one uprawnienia, z którymi zostały kupione, a API przypisuje je do powyższych poziomów.