Canaux
Créer un canal
/v1/channelswebhook,discord,slack,email: créés immédiatement (201). L’URL d’un webhook doit être enhttpset ne désigner que des adresses publiques : les adresses privées, de bouclage, de lien local, de métadonnées cloud et réservées, les noms d’hôte locaux et les URL avec identifiants sont refusés avec422 url_not_allowed(le DNS est revérifié à chaque envoi). Le secret de signature du webhook (webhook_secret) est renvoyé une seule fois, dans cette réponse.telegram,hellome: reliés par invitation (202). Ouvrezinvite.linken tant qu’administrateur du groupe dans les 10 minutes ; interrogez l’URL deLocation(GET /v1/channel-invites/{token}) pour obtenir l’identifiant du canal.
Contrôles de l’offre : types de canaux (403 channel_kind_not_in_plan) et nombre de canaux (403 plan_limit_reached).
- Rejouable sans risque avec l’en-tête Idempotency-Key : voir Idempotence.
En-têtes#
Idempotency-KeystringPermet de relancer le POST sans risque pendant 24 heures.
Corps de la requête#
kindstringobligatoirenamestringpeut valoir nullRefusé pour telegram et hellome.
rolestringRefusé pour telegram et hellome.
localestringurlstringwebhook (https, hôte public), discord (
https://discord.com/api/webhooks/…), slack (https://hooks.slack.com/services/…).emailstableau de string · emailemail seulement.
Réponses#
En-têtes de réponse
LocationstringIdempotent-Replayedstringtruequand la réponse est le rejeu d’une requête précédente de mêmeIdempotency-Key.
Champs de l’objet
idstring · uuidkindstringnamestringpeut valoir nullstatestringrolestringtargetstringpeut valoir nullDestination masquée, par exemple
https://hooks.example.com/aicscan,a***@example.com.created_atstring · date-timedisabled_atstring · date-timepeut valoir nulldisabled_reasonstringpeut valoir nulllast_success_atstring · date-timepeut valoir nulllinked_atstring · date-timepeut valoir nullwebhook_secretstringpeut valoir nullWebhook seulement : secret de signature HMAC-SHA256 (
whsec_…), affiché une seule fois. VérifiezX-SignaturesurX-Timestampet le corps ; refusez les horodatages de plus de 5 minutes.nulldans un rejeu idempotent.
En-têtes de réponse
Locationstring/v1/channel-invites/{token}
Champs de l’objet
kindstringstatusstringinviteobjectChamps de l’objet
tokenstringlinkstring · uriexpires_atstring · date-timeexpires_in_minutesinteger
Erreur au format standard : voir Erreurs.