Intégration Webhook
Avec les webhooks, vous pouvez informer de manière proactive n'importe quel système des prochaines dates de collecte – sans interrogation. müll.io envoie un HTTP POST à votre URL dès qu'une collecte est due dans le nombre de jours configuré.
Les webhooks peuvent être créés et supprimés directement via l'API. Cas d'utilisation : automatisations n8n / Make, bots Discord ou Slack, messages ntfy.sh, systèmes d'automatisation de la maison ou applications personnalisées.
1. Créer une clé API
Pour créer des webhooks, vous avez d'abord besoin d'une clé API. Enregistrez votre adresse e-mail et vous recevrez votre clé par e-mail.
2. Créer un webhook
Envoyez une requête POST à /api/webhook avec votre clé API dans l'en-tête. L'adresse est transmise directement dans le corps de la requête.
curl -X POST https://müll.io/api/webhook \
-H "Authorization: API-KEY <dein-api-key>" \
-H "Content-Type: application/json" \
-d '{
"url": "https://mein-server.example/webhook",
"daysBeforeCollection": 1,
"street": "Musterstraße",
"houseNumber": "1a",
"zip": "12345",
"city": "Musterstadt",
"country": "DE"
}'
La réponse contient l'id et le secret du webhook :
{
"id": "018f1e2a-3b4c-7d5e-8f9a-0b1c2d3e4f56",
"url": "https://mein-server.example/webhook",
"secret": "a3f8b1c2d4e5...",
"daysBeforeCollection": 1,
"active": true
}
3. Payload & vérification de signature
müll.io envoie quotidiennement à 18h00 un POST à tous les webhooks actifs lorsqu'une collecte est due dans le nombre de jours configuré :
{
"event": "upcoming_collection",
"sent_at": "2024-01-14T18:00:00+00:00",
"days_until": 1,
"address": {
"street": "Musterstraße",
"houseNumber": "1a",
"zip": "12345",
"city": "Musterstadt",
"country": "DE"
},
"collections": [
{ "type": "Restmüll", "date": "2024-01-15" },
{ "type": "Papier", "date": "2024-01-15" }
]
}
Chaque requête contient l'en-tête X-Muell-Signature: sha256=<hmac>. Vérification en Node.js :
const crypto = require('crypto');
function verifySignature(body, secret, signatureHeader) {
const expected = 'sha256=' + crypto
.createHmac('sha256', secret)
.update(body)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(signatureHeader)
);
}
4. Supprimer le webhook
curl -X DELETE https://müll.io/api/webhook/018f1e2a-3b4c-7d5e-8f9a-0b1c2d3e4f56 \
-H "Authorization: API-KEY <dein-api-key>"
En cas de succès, le serveur répond avec HTTP 204 (sans corps).
← Aperçu des intégrations · Documentation API complète (ouvre dans un nouvel onglet)