Installer par API
Un seul jeton suffit pour installer un projet depuis un script ou un agent IA : un canal pour ses événements, des moniteurs pour ses pages et ses tâches, un site pour ses visites et ses avis.
Le jeton
Créez-le dans Paramètres, Jetons API. Il appartient à un espace de travail : tout ce qui suit y arrive. Ajouter ou modifier un site demande le jeton d'un propriétaire ou d'un administrateur.
Comment fonctionnent les jetonsCréer un canal
Un canal reçoit les événements de votre app. name est obligatoire ; description, icon, color et isPrivate sont facultatifs.
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"}'La réponse contient webhookToken : votre app poste sur https://zenhook.dev/api/webhook/ suivi de ce jeton. Toute personne qui a cette adresse peut poster dans le canal, gardez-la donc avec vos secrets. POST /api/channels/:id/regenerate-token la remplace. Free permet 3 canaux : un de plus répond 403 avec CHANNEL_LIMIT_REACHED.
Surveiller une adresse
Zenhook interroge l'adresse et vous alerte quand elle tombe. url est obligatoire ; name vaut par défaut le nom d'hôte.
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"}'Un espace de travail surveille chaque URL une seule fois : un second moniteur dessus répond 409. Free permet 3 moniteurs et Pro 20 : un de plus répond 403 avec MONITOR_LIMIT_REACHED. Une adresse sur un réseau privé répond 400 avec PRIVATE_TARGET_REQUIRES_PUSH : utilisez un moniteur PUSH, ci-dessous. Les alertes des moniteurs arrivent dans le canal Moniteurs de l'espace de travail, que vous ne choisissez pas.
Surveiller une tâche planifiée
Un moniteur PUSH fonctionne dans l'autre sens : votre tâche se signale à Zenhook, et le moniteur tombe quand les signaux s'arrêtent. Il couvre aussi un service sur un réseau privé.
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 reste obligatoire et unique, car elle nomme ce qui est surveillé : Zenhook ne l'interroge pas. heartbeatGrace est le silence permis, en secondes : de 60 à 86400, et jamais moins de deux fois heartbeatInterval (de 30 à 3600). Une tâche qui tourne toutes les 6 heures demande plus de 21600.
La réponse donne heartbeatToken, une seule fois, et heartbeatCommand, une commande prête qui interroge l'url depuis l'endroit où elle tourne et envoie le résultat. Ou signalez-vous à la fin de votre tâche :
curl -X POST "https://zenhook.dev/api/monitors/heartbeat" \
-H "Authorization: Bearer $ZENHOOK_HEARTBEAT_TOKEN" -H "Content-Type: application/json" \
-d '{"status":"UP"}'status vaut UP (par défaut) ou DOWN. responseTime en millisecondes, statusCode et errorMessage sont facultatifs. La réponse est 204.
Ajouter un site
Cet appel ajoute le domaine à Statistiques et le renvoie sous site, avec son id et sa clé key. feedback active les avis ; analytics est actif par défaut. Ajouter deux fois un domaine renvoie le site existant. Un espace de travail compte au plus 20 sites pendant l'alpha.
curl -X POST "https://zenhook.dev/api/sites" \
-H "Authorization: Bearer $ZENHOOK_TOKEN" -H "Content-Type: application/json" \
-d '{"domain":"example.com","feedback":true}'Lisez ensuite ce qu'il faut coller, avec le domaine ou l'id :
curl "https://zenhook.dev/api/sites/example.com/setup" \
-H "Authorization: Bearer $ZENHOOK_TOKEN"snippet est la ligne pour le <head> de vos pages, buttonSnippet la même ligne avec notre bouton d'avis, privacyParagraph le paragraphe pour votre page de confidentialité. agentInstructions contient tout cela, écrit pour un agent IA.
Pour modifier un site plus tard, envoyez PATCH /api/sites/:id avec analytics ou feedback à true ou false. Cette adresse prend l'id du site, pas son domaine.
Les avis de tous les sites de l'espace de travail arrivent dans son unique canal Feedback, avec le site dans la source de chaque événement.
Les événements, les objectifs et la lecture des chiffres