Documentation
Un seul endpoint suffit pour envoyer des événements à Honk, et cette page en fait le tour. Les bibliothèques envoient la même requête, avec en plus les nouvelles tentatives et des helpers.
Démarrage rapide
-
Obtenir un compte
Pour l’instant, Honk est sur invitation. Demandez un accès : l’invitation arrive par e-mail, et vous vous connectez avec un code à 6 chiffres.
-
Créer un projet et une clé
Dans l’app web, ouvrez Projets, créez-en un, puis ouvrez son onglet Clés et créez une clé d’ingestion. La clé (
honk_…) ne s’affiche qu’une fois : notez-la tout de suite en lieu sûr. -
Envoyer un événement
Envoyez du JSON en POST, avec la clé comme jeton Bearer. Une réponse
202signifie que Honk a enregistré l’événement.Terminal curl -sS https://honk-me.app/v1/messages \ -H "Authorization: Bearer $HONK_KEY" \ -H "Idempotency-Key: backup-$(date +%Y%m%d)" \ -H "Content-Type: application/json" \ -d '{ "title": "Backup failed", "message": "pg_dump exited with 1", "severity": "long", "group_key": "db/backup", "event_type": "problem" }' # → 202 {"id":"msg_…","status":"accepted","duplicate":false,"received_at":"…"} -
Recevoir le push
Installez Honk pour iPhone ou activez les notifications dans l’app web, sous Appareils, puis envoyez un test avec Klaxonnez-moi.
La requête
POST https://honk-me.app/v1/messages avec Content-Type: application/json et Authorization: Bearer <ingestion key>. Les champs inconnus sont refusés avec 422. Le corps ne doit pas dépasser 16 Kio.
Champs
-
message - Obligatoire. De 1 à 8 192 octets d’UTF-8 ; les retours à la ligne sont conservés.
-
title - Une ligne, 160 caractères au maximum. Par défaut, la première ligne du message.
-
severity info,success,warning,error,critical, ou les noms de klaxonlight,beep,loud,long,blast. Par défaut :info.-
priority low,normal,highouurgent. Par défaut :normal.urgentnécessite une clé qui l’autorise.-
group_key - 128 caractères au maximum. Les événements qui partagent cette clé (ainsi que le projet, l’environnement, la source et le canal) forment un groupe.
-
event_type event,problemourecovery. Un rétablissement nécessite unegroup_keyet clôt le problème ouvert.-
source,environment,channel - Respectivement 64, 32 et 64 caractères au maximum. Par défaut :
api,defaultetgeneral. -
category infrastructure,security,backups,deployments,payments,customers,sales,automation,personalouother.-
url - Un lien
https://affiché sous la forme « Ouvrir le lien », ouvert seulement à votre demande. -
image_url - Une image
https://que le serveur récupère et affiche avec la notification (jusqu’à 1 Mo avec Free, 5 Mo avec Pro et Team). -
actions - Jusqu’à 3 boutons, dans l’ordre d’affichage (le premier est le principal), par exemple
[{"title": "Reply by email", "url": "mailto:[email protected]"}, {"title": "Call", "url": "tel:+12025550147"}]. Un titre compte de 1 à 40 caractères ; une URL commence parhttps://,mailto:,tel:ousms:et ne s’ouvre qu’à votre demande. -
metadata - 16 clés au maximum, avec des valeurs de type texte, nombre ou booléen. Les règles peuvent s’en servir comme conditions.
-
occurred_at - Le moment où l’événement s’est produit à la source, au format RFC 3339.
-
ttl_seconds - Combien de temps un push peut encore être distribué, de 60 à 86 400 secondes. Par défaut : 3 600.
-
source_sequence - Un nombre croissant par source : un rétablissement retardé ne clôt jamais un problème plus récent.
Réponses
| 202 | Enregistré. { "id", "status": "accepted", "duplicate", "received_at" }. Cela ne veut pas dire que l’événement a été envoyé en push ni lu. |
|---|---|
| 401 | invalid_key : la clé est incorrecte ou révoquée. |
| 403 | priority_not_allowed, project_suspended ou workspace_suspended. |
| 409 | idempotency_conflict : la même clé a été utilisée avec un contenu différent. |
| 413, 415, 422 | Trop volumineux, pas du JSON, ou invalide : error.fields liste chaque problème. |
| 429 | quota_exceeded (la limite quotidienne de messages) ou rate_limited, avec Retry-After. |
| 503 | Honk ne peut pas confirmer pour le moment que l’événement a été enregistré. Réessayez avec la même clé après Retry-After. |
Réessayer sans risque
Envoyez un en-tête Idempotency-Key (128 caractères ASCII imprimables au maximum) qui reste le même pour un même événement, par exemple deploy-4812-finished. Pendant 24 heures, la même clé avec le même contenu renvoie l’identifiant d’origine avec duplicate: true ; la même clé avec un contenu différent donne un 409. Ne réessayez qu’en cas d’erreur réseau, de 429 ou de 5xx, et respectez Retry-After. Les bibliothèques officielles font tout cela pour vous.
Gravité et échelle Honk
Les noms de klaxon sont des alias. Honk enregistre la valeur standard : "loud" et "warning" sont donc équivalents, y compris pour l’idempotence. error et critical sont toujours envoyés en priorité Haute au minimum.
| Petit coup de klaxon | info · light |
|---|---|
| Bip-bip | success · beep |
| Coup de klaxon appuyé | warning · loud |
| Long coup de klaxon | error · long |
| Klaxon continu | critical · blast |
Concepts
Référence
- L’API d’envoi d’événements, sous forme de document OpenAPI 3.1 (
openapi.yaml) - Un plan de cette documentation en texte brut, pour les assistants de code (
llms.txt) - Les README des bibliothèques sur GitHub: Node.js , PHP / Laravel , Go + CLI , Swift , Kotlin / Java , Rust , n8n
Seule l’API d’envoi d’événements est publique. Le reste sert aux apps Honk et peut changer d’une version à l’autre.