Real-time notifications for article events. Secure, reliable delivery with automatic retries.
Event Types
5 Events
Retry Policy
5 Attempts
Security
HMAC-SHA256
Example Payload:
{
"articleId": "art_123",
"title": "10 Tips for Better SEO",
"status": "draft",
"projectId": "proj_456",
"createdAt": "2024-01-15T10:30:00Z"
}Example Payload:
{
"articleId": "art_123",
"title": "10 Tips for Better SEO",
"status": "published",
"publishedUrl": "https://yoursite.com/10-tips-seo",
"projectId": "proj_456",
"publishedAt": "2024-01-15T10:35:00Z"
}Example Payload:
{
"articleId": "art_123",
"error": "Content policy violation",
"projectId": "proj_456",
"failedAt": "2024-01-15T10:30:00Z"
}Example Payload:
{
"projectId": "proj_456",
"title": "My Tech Blog",
"domain": "techblog.com",
"createdAt": "2024-01-15T10:00:00Z"
}Example Payload:
{
"currentCredits": 15,
"totalCredits": 100,
"percentage": 15,
"projectId": "proj_456"
}Always verify webhook signatures to prevent spoofing attacks
Your webhook secret is generated when you create a webhook endpoint in your dashboard.
Each webhook request includes a `x-autoblog-signature` header containing an HMAC-SHA256 signature.
Compute the HMAC-SHA256 of the request body using your secret and compare it to the signature header.
If signatures don't match, reject the request with a 401 status code.
const crypto = require('crypto');
function verifyWebhook(payload, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(JSON.stringify(payload))
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected)
);
}If your webhook endpoint returns a non-2xx response or times out, we'll retry delivery up to 5 times with exponential backoff.
Check out our complete API documentation for more details.