Einrichtung per API
Ein Token reicht, um ein Projekt aus einem Skript oder von einem KI-Agenten einzurichten: ein Kanal für seine Ereignisse, Monitore für seine Seiten und Jobs, eine Website für seine Besuche und sein Feedback.
Der Token
Erstelle ihn unter Einstellungen, API-Tokens. Er gehört zu einem Workspace, also landet alles Folgende dort. Eine Website hinzuzufügen oder zu ändern erfordert den Token eines Eigentümers oder Admins.
So funktionieren TokensKanal erstellen
Ein Kanal empfängt die Ereignisse deiner App. name ist erforderlich; description, icon, color und isPrivate sind optional.
curl -X POST "https://zenhook.dev/api/channels" \
-H "Authorization: Bearer $ZENHOOK_TOKEN" -H "Content-Type: application/json" \
-d '{"name":"my-app","description":"Sign-ups and errors"}'Die Antwort enthält webhookToken: Deine App sendet an https://zenhook.dev/api/webhook/ gefolgt von diesem Token. Wer diese Adresse hat, kann in den Kanal schreiben, bewahre sie also bei deinen Secrets auf. POST /api/channels/:id/regenerate-token ersetzt sie. Free erlaubt 3 Kanäle: Einer mehr antwortet 403 mit CHANNEL_LIMIT_REACHED.
Adresse überwachen
Zenhook fragt die Adresse ab und benachrichtigt dich, wenn sie ausfällt. url ist erforderlich; name ist standardmäßig der Hostname.
curl -X POST "https://zenhook.dev/api/monitors" \
-H "Authorization: Bearer $ZENHOOK_TOKEN" -H "Content-Type: application/json" \
-d '{"name":"example.com","url":"https://example.com"}'Ein Workspace überwacht jede URL nur einmal: Ein zweiter Monitor darauf antwortet 409. Free erlaubt 3 Monitore und Pro 20: Einer mehr antwortet 403 mit MONITOR_LIMIT_REACHED. Eine Adresse in einem privaten Netzwerk antwortet 400 mit PRIVATE_TARGET_REQUIRES_PUSH: Nutze einen PUSH-Monitor, siehe unten. Monitor-Alerts landen im Kanal Monitore des Workspace, den du nicht auswählst.
Geplanten Job überwachen
Ein PUSH-Monitor arbeitet umgekehrt: Dein Job meldet sich bei Zenhook, und der Monitor fällt aus, wenn die Meldungen ausbleiben. Er deckt auch einen Dienst in einem privaten Netzwerk ab.
curl -X POST "https://zenhook.dev/api/monitors" \
-H "Authorization: Bearer $ZENHOOK_TOKEN" -H "Content-Type: application/json" \
-d '{"name":"Nightly backup","url":"https://backup.example.com/nightly",
"type":"PUSH","heartbeatInterval":3600,"heartbeatGrace":86400}'url bleibt erforderlich und eindeutig, weil sie benennt, was überwacht wird: Zenhook fragt sie nicht ab. heartbeatGrace ist die erlaubte Stille in Sekunden: 60 bis 86400 und nie weniger als das Doppelte von heartbeatInterval (30 bis 3600). Ein Job, der alle 6 Stunden läuft, braucht mehr als 21600.
Die Antwort liefert heartbeatToken, nur einmal, und heartbeatCommand, einen fertigen Befehl, der die url von seinem Standort aus abfragt und das Ergebnis meldet. Oder melde dich am Ende deines Jobs:
curl -X POST "https://zenhook.dev/api/monitors/heartbeat" \
-H "Authorization: Bearer $ZENHOOK_HEARTBEAT_TOKEN" -H "Content-Type: application/json" \
-d '{"status":"UP"}'status ist UP (Standard) oder DOWN. responseTime in Millisekunden, statusCode und errorMessage sind optional. Die Antwort ist 204.
Website hinzufügen
Dieser Aufruf fügt die Domain zu Statistiken hinzu und gibt sie unter site zurück, mit ihrer id und ihrem Schlüssel key. feedback schaltet Feedback ein; analytics ist standardmäßig an. Eine Domain zweimal hinzuzufügen gibt die vorhandene Website zurück. Ein Workspace fasst während der Alpha höchstens 20 Websites.
curl -X POST "https://zenhook.dev/api/sites" \
-H "Authorization: Bearer $ZENHOOK_TOKEN" -H "Content-Type: application/json" \
-d '{"domain":"example.com","feedback":true}'Lies dann, was einzufügen ist, mit der Domain oder der id:
curl "https://zenhook.dev/api/sites/example.com/setup" \
-H "Authorization: Bearer $ZENHOOK_TOKEN"snippet ist die Zeile für den <head> deiner Seiten, buttonSnippet dieselbe Zeile mit unserem Feedback-Button, privacyParagraph der Absatz für deine Datenschutzseite. agentInstructions enthält all das, geschrieben für einen KI-Agenten.
Um eine Website später zu ändern, sende PATCH /api/sites/:id mit analytics oder feedback auf true oder false. Diese Adresse nimmt die id der Website, nicht ihre Domain.
Feedback aller Websites des Workspace landet in seinem einen Kanal Feedback, mit der Website in der Quelle jedes Ereignisses.
Ereignisse, Ziele und das Lesen der Zahlen