Inloggen

API en integraties

Bedien een Cliqer Timer-ruimte via HTTP vanuit je eigen tools en ontvang een ondertekende webhook zodra de show verdergaat.

Elke ruimte heeft een HTTP-API. Start en stop timers, toon berichten, voeg tijd toe en lees de rundown uit vanuit een script, een showcontrolsysteem of alles wat een webverzoek kan doen. Een webhook laat je systeem weten wanneer een timer start of afloopt.

De pagina API-sleutels met een knop Sleutel aanmaken en nog geen sleutels
API-sleutels van je account, onder Team in je dashboard.

Aan de slag

Een API-sleutel aanmaken

Open API-sleutels en klik op Sleutel aanmaken. Kopieer hem meteen: hij wordt maar één keer getoond. Zie Team en API-sleutels.

De ruimte-id vinden

Dat is het deel na /timer/r/ in het adres van de regieruimte, bijvoorbeeld https://cliqer.io/timer/r/<room>/control.

Een aanroep doen

Stuur de sleutel mee met elk verzoek. ping controleert of de ruimte bestaat.

De API bedient dezelfde ruimte als de regieruimte: een aanroep vanuit je tool verschijnt tegelijk op elk scherm.

Verzoeken

Elke aanroep gaat naar https://cliqer.io/api/timer/v1/<room>/<action>. GET, POST, PUT en PATCH werken allemaal. Parameters gaan in de querystring, of in een JSON-body bij POST, PUT en PATCH; de body wint als beide er een hebben. Streepjes in de actienaam werken ook, dus add-time is add_time. /api/timer/v0/ accepteert dezelfde aanroepen.

Stuur de sleutel mee op een van deze manieren, gecontroleerd in deze volgorde:

WaarVoorbeeld
Authorization-headerAuthorization: Bearer <key>
x-api-key-headerx-api-key: <key>
api_key-query?api_key=<key>. Vermijd dit waar je kunt: adressen belanden in logs.
curl -X POST https://cliqer.io/api/timer/v1/<room>/add_time \
  -H "Authorization: Bearer $CLIQER_KEY" \
  -H "content-type: application/json" \
  -d '{"timer_id": "<timer>", "amount": "2m"}'

Sleutels en rechten

De API-sleutel van je account kan alles in ruimtes die van jou zijn. Een ruimte kan ook eigen sleutels hebben, elk met een of meer van drie rechten:

RechtStaat toe
LezenDe get_-acties en export.
Show aansturenTransport, tijd, blackout, on air en berichten.
BewerkenVerwijderen, importeren, ruwe intents en de webhook.

Een aanroep die een recht nodig heeft dat de sleutel mist, krijgt 401. Het geheim van een ruimtesleutel wordt één keer getoond, bij het aanmaken. Om de API überhaupt te gebruiken moet de API in je abonnement zitten, zie Abonnementen en limieten.

Acties

timer_id kiest een timer op zijn id; index kiest hem op positie, geteld vanaf 1. Als beide worden meegestuurd, wint timer_id. Laat beide weg om de huidige timer aan te sturen.

ActieGeeft terug
get_roomTitel, datum, tijdzone en instellingen.
get_statusWat er nu loopt.
get_timersDe rundown.
get_messagesDe berichten.
get_questionsVragen uit het publiek.
get_connectionsVerbonden apparaten.
get_logsHet logboek van de ruimte. limit, offset.
exportDe hele ruimte als download cliqer-timer-<room>.json.

Hoeveelheden zijn 30s, 5m, 1h, 250ms of een kaal aantal seconden. seconds werkt in plaats van amount, en met een minteken ga je terug. Schakelaars zoals on, autostart en replace lezen 0, false, off en no als uit en al het andere als aan. Laat on weg bij blackout om hem om te schakelen.

Antwoorden

Elk antwoord is JSON: {"ok": true, "message": "<action>", "data": ...} bij succes, {"ok": false, "message": "...", "code": "..."} bij een fout.

StatusBerichtWaarom
400Either timer_id OR index are requiredselect zonder timer.
400amount is required, like 30s, 5m or 1hOntbrekende of onleesbare hoeveelheid.
400Refused: invalidDe ruimte kon het niet toepassen.
401Access Denied: Valid API key requiredGeen sleutel, een verkeerde sleutel of een ontbrekend recht.
403The API is not in this planHet abonnement van de ruimte bevat geen API.
403Refused: forbidden, Refused: readOnly, Refused: limitReachedNiet toegestaan, een alleen-lezen ruimte of een abonnementslimiet.
404Room not found, Unknown action <name>, Timer not foundControleer de ruimte-id, de actie of de timer-id.
409Refused: staleEpochDe ruimte is tijdens de aanroep veranderd. Stuur hem opnieuw.
429Too many requests. Please try again later.Snelheidslimiet.
503Refused: authorityOfflineDe ruimte staat in de prullenbak. Zet hem eerst terug.

Snelheidslimiet: 100 aanroepen per minuut per sleutel; aanroepen zonder sleutel tellen per adres. Elk antwoord bevat RateLimit-Limit, RateLimit-Remaining en RateLimit-Reset (het aantal seconden tot de minuut opnieuw begint).

Webhooks

Het adres instellen

Roep webhook aan met een https-url. Het antwoord bevat een secret dat begint met whsec_. Bewaar het: het wordt maar één keer getoond.

Events ontvangen

Cliqer Timer stuurt een POST naar dat adres wanneer er iets in de ruimte gebeurt.

De handtekening controleren

Verifieer elk verzoek voordat je het vertrouwt.

Het adres wissen

Roep webhook aan zonder url. Het adres en het bijbehorende geheim worden allebei verwijderd.

EventWanneer
timerStartedEen timer start.
timerEndedEen timer bereikt nul.
wrapUpYellowEen timer bereikt zijn gele afrondingspunt.
wrapUpRedEen timer bereikt zijn rode afrondingspunt.
messageShownEr wordt een bericht getoond.

De body is {"event", "roomId", "timestamp", "payload"}. De header x-cliqer-timestamp bevat de Unix-tijd in seconden, en x-cliqer-signature bevat sha256= gevolgd door de hexadecimale HMAC-SHA256 van <timestamp>.<body>, met je geheim als sleutel.

# Recompute the signature of a saved body.
printf '%s.%s' "$TIMESTAMP" "$(cat body.json)" \
  | openssl dgst -sha256 -hmac "$WHSEC" -hex

Bereken de handtekening over de ruwe body, precies zoals die binnenkwam en vóór enige JSON-parsing. Het venster van vijf minuten is je eigen keuze; het voorkomt dat een oud verzoek opnieuw wordt afgespeeld.

Bezorging gebeurt in één poging met een time-out van 5 seconden. Omleidingen worden niet gevolgd, en een adres dat naar een privénetwerk verwijst, wordt overgeslagen. Is een gemist event belangrijk, lees dan get_status uit om weer bij te zijn.

GET https://cliqer.io/api/timer/link/<code> zet een korte-linkcode om in de bijbehorende ruimte: {"ok": true, "data": {"roomId", "link"}}, of 404 Link not found bij een onbekende, ingetrokken of verlopen code of een verkeerd wachtwoord. Stuur bij een link met wachtwoord het wachtwoord mee in de header x-link-password, nooit in het adres.

Companion en Stream Deck

Er is geen Companion-module of Stream Deck-plug-in voor Cliqer Timer-ruimtes. De Generic HTTP-module van Bitfocus Companion kan de acties hierboven aanroepen. De eigen timer van de Cliqer-desktopapp heeft een eigen REST API en ondersteuning voor Stream Deck, zie Timer (desktop) en Host-timer.

Veelgestelde vragen

Volgende stappen

Offline en betrouwbaarheid

Wat er gebeurt als het netwerk wegvalt.

Abonnementen en limieten

Welke abonnementen de API bevatten.