Zaloguj się

Przegląd API

Pełna dokumentacja API do integracji z Cliqer

Client API to dodatek API: plany Presenter, Studio HD i Studio 4K mogą go dokupić, a Studio 8K i Enterprise mają go w pakiecie. Długoterminowe klucze API do bezobsługowego dostępu serwer-serwer do endpointów REST generuje się w planach Studio 8K i Enterprise, zobacz Uwierzytelnianie kluczem API. Porównaj plany.

Pełna dokumentacja API Cliqer obejmująca endpointy REST i komunikację w czasie rzeczywistym przez WebSocket.

Bazowy URL

https://cliqer.io/api

Wszystkie endpointy API są względne wobec bazowego URL serwera Cliqer, z którym się łączysz.

Przykłady kodu: w przykładach curl/Python/Go zastąp $BASE_URL adresem URL swojej instancji Cliqer (np. https://cliqer.io). W przykładach WebSocket zastąp $WS_URL wartością wss://cliqer.io. Przykłady w TypeScript używają ścieżek względnych i działają bez żadnych zmian.

Uwierzytelnianie

Cliqer uwierzytelnia za pomocą ciasteczka sesji httpOnly (session_token), tworzonego przez POST /api/auth/login. Przeglądarki wysyłają je automatycznie, a narzędzia serwer-serwer przechowują je w cookie jar. Zespoły w planach Studio 8K i Enterprise mogą też generować klucze API do żądań REST serwer-serwer, wysyłane jako Authorization: Bearer cliqer_<key> (zarządzanie kluczami wymaga planu Studio 8K lub Enterprise). WebSocket nie przyjmuje kluczy API: łącz się z nim za pomocą tokenu sesji.

# The session cookie is set by /api/auth/login and sent on every subsequent request
Cookie: session_token=YOUR_SESSION_TOKEN

# Or authenticate a server-to-server REST request with a team API key
Authorization: Bearer cliqer_<key>

Kilka endpointów nie wymaga sesji, np. POST /api/licenses/validate, który jest publiczny.

Zajrzyj do sekcji Uwierzytelnianie, gdzie znajdziesz logowanie, rotację sesji i dobre praktyki bezpieczeństwa.

Sekcje API

Uwierzytelnianie

Logowanie, rotacja sesji i dobre praktyki bezpieczeństwa.

WebSocket w czasie rzeczywistym

Steruj pokojem z własnego oprogramowania jak zdalnym pilotem do prezentacji: slajdy, timer, wskaźnik laserowy i wiadomości do gospodarza.

Licencje

Walidacja licencji, aktywacja i zarządzanie urządzeniami.

Cykl życia żądania

Odpowiedzi z błędami

Wszystkie endpointy zwracają standardowe odpowiedzi z błędami:

StatusOpis
400Bad Request: brak parametrów lub nieprawidłowe parametry
401Unauthorized: brak ważnego ciasteczka sesji
403Forbidden: niewystarczające uprawnienia lub niedozwolone źródło (origin)
404Not Found: nie znaleziono zasobu
409Conflict: np. osiągnięto limit stanowisk przy aktywacji licencji
429Too Many Requests: przekroczono limit żądań (zobacz Retry-After)
500Internal Server Error

Format odpowiedzi z błędem:

{
  "statusCode": 400,
  "statusMessage": "Description of the error"
}

Limity żądań

Większość endpointów ma limit żądań na adres IP klienta, liczony w stałym oknie 60 sekund na trzech poziomach. Gdy żądanie przekroczy limit, serwer odpowiada 429 Too Many Requests z nagłówkiem Retry-After: 60. Nie ma progresywnego/wykładniczego blokowania, a nagłówek X-RateLimit-Remaining nie jest zwracany.

NagłówekOpis
Retry-AfterLiczba sekund do zresetowania okna (60, wysyłany tylko przy 429)

Poziomy limitów żądań

PoziomŻądania / 60 sZastosowanie
Ścisły5POST /api/licenses/validate i endpointy logowania (POST /api/auth/login, rejestracja, reset hasła, kroki klucza dostępu i 2FA)
Standardowy30GET /api/licenses/status, POST /api/licenses/deactivate, GET /api/auth/me, POST /api/auth/logout
Łagodny60Endpointy odczytu o dużym natężeniu ruchu

Dwa endpointy stosują drugi limit Ścisły, powiązany z danymi uwierzytelniającymi zamiast z adresem IP, więc jednego celu nie da się zasypywać żądaniami z wielu adresów: POST /api/licenses/validate liczy limit według license_key, a POST /api/auth/login według adresu e-mail.

Po przekroczeniu poziomu serwer zwraca 429 do końca 60-sekundowego okna. Limity żądań są egzekwowane przez sam serwer, zanim endpoint wykona swoją pracę.