Webhooks
Configure webhooks to receive real-time notifications about post status changes, account events, and incoming messages. **Available Events:** - `post.scheduled` - When a post is successfully scheduled - `post.published` - When a post is successfully published - `post.failed` - When a post fails to publish on all platforms - `post.partial` - When a post publishes to some platforms but fails on others - `account.connected` - When a social account is successfully connected - `account.disconnected` - When a social account is disconnected (token expired/revoked) - `message.received` - When a new DM is received (Instagram, Telegram) **Security:** - Optional HMAC-SHA256 signature sent in `X-Late-Signature` header - Configure a secret key in webhook settings to enable signature verification - Custom headers can be added to webhook requests for additional authentication
List all webhooks
Retrieve all configured webhooks for the authenticated user. Supports up to 10 webhooks per user.
API key authentication - use your Late API key as a Bearer token
In: header
Response Body
application/json
application/json
curl -X GET "https://getlate.dev/api/v1/webhooks/settings"{
"webhooks": [
{
"_id": "507f1f77bcf86cd799439011",
"name": "My Production Webhook",
"url": "https://example.com/webhook",
"events": [
"post.published",
"post.failed"
],
"isActive": true,
"lastFiredAt": "2024-01-15T10:30:00Z",
"failureCount": 0
},
{
"_id": "507f1f77bcf86cd799439012",
"name": "Slack Notifications",
"url": "https://hooks.slack.com/services/xxx",
"events": [
"post.failed",
"account.disconnected"
],
"isActive": true,
"failureCount": 0
}
]
}{
"error": "Unauthorized"
}Create a new webhook
Create a new webhook configuration. Maximum 10 webhooks per user.
Note: Webhooks are automatically disabled after 10 consecutive delivery failures.
API key authentication - use your Late API key as a Bearer token
In: header
Webhook name (max 50 characters)
length <= 50Webhook endpoint URL (must be HTTPS in production)
uriSecret key for HMAC-SHA256 signature verification
Events to subscribe to
Enable or disable webhook delivery
Custom headers to include in webhook requests
Response Body
application/json
application/json
curl -X POST "https://getlate.dev/api/v1/webhooks/settings" \ -H "Content-Type: application/json" \ -d '{ "name": "My Production Webhook", "url": "https://example.com/webhook", "secret": "your-secret-key", "events": [ "post.scheduled", "post.published", "post.failed", "post.partial", "account.connected", "account.disconnected", "message.received" ], "isActive": true }'{
"success": true,
"webhook": {
"_id": "string",
"name": "string",
"url": "http://example.com",
"secret": "string",
"events": [
"post.scheduled"
],
"isActive": true,
"lastFiredAt": "2019-08-24T14:15:22Z",
"failureCount": 0,
"customHeaders": {
"property1": "string",
"property2": "string"
}
}
}{
"error": "Unauthorized"
}Delete a webhook
Permanently delete a webhook configuration.
API key authentication - use your Late API key as a Bearer token
In: header
Query Parameters
Webhook ID to delete
Response Body
application/json
application/json
curl -X DELETE "https://getlate.dev/api/v1/webhooks/settings?id=string"{
"success": true
}{
"error": "Unauthorized"
}Update a webhook
Update an existing webhook configuration. All fields except _id are optional - only provided fields will be updated.
Note: Webhooks are automatically disabled after 10 consecutive delivery failures.
API key authentication - use your Late API key as a Bearer token
In: header
Webhook ID to update (required)
Webhook name (max 50 characters)
length <= 50Webhook endpoint URL (must be HTTPS in production)
uriSecret key for HMAC-SHA256 signature verification
Events to subscribe to
Enable or disable webhook delivery
Custom headers to include in webhook requests
Response Body
application/json
application/json
curl -X PUT "https://getlate.dev/api/v1/webhooks/settings" \ -H "Content-Type: application/json" \ -d '{ "_id": "507f1f77bcf86cd799439011", "url": "https://new-example.com/webhook", "events": [ "post.published", "post.failed" ] }'{
"success": true,
"webhook": {
"_id": "string",
"name": "string",
"url": "http://example.com",
"secret": "string",
"events": [
"post.scheduled"
],
"isActive": true,
"lastFiredAt": "2019-08-24T14:15:22Z",
"failureCount": 0,
"customHeaders": {
"property1": "string",
"property2": "string"
}
}
}{
"error": "Unauthorized"
}Send test webhook
Send a test webhook to verify your endpoint is configured correctly.
The test payload includes event: "webhook.test" to distinguish it from real events.
API key authentication - use your Late API key as a Bearer token
In: header
ID of the webhook to test
Response Body
application/json
application/json
application/json
curl -X POST "https://getlate.dev/api/v1/webhooks/test" \ -H "Content-Type: application/json" \ -d '{ "webhookId": "507f1f77bcf86cd799439011" }'{
"success": true,
"message": "Test webhook sent successfully"
}{
"error": "Unauthorized"
}{
"success": false,
"message": "Test webhook failed"
}Get webhook delivery logs
Retrieve webhook delivery history. Logs are automatically deleted after 7 days.
API key authentication - use your Late API key as a Bearer token
In: header
Query Parameters
Maximum number of logs to return (max 100)
501 <= value <= 100Filter by delivery status
"success" | "failed"Filter by event type
"post.scheduled" | "post.published" | "post.failed" | "post.partial" | "account.connected" | "account.disconnected" | "message.received" | "webhook.test"Filter by webhook ID
Response Body
application/json
application/json
curl -X GET "https://getlate.dev/api/v1/webhooks/logs"{
"logs": [
{
"_id": "string",
"webhookId": "string",
"webhookName": "string",
"event": "post.scheduled",
"url": "http://example.com",
"status": "success",
"statusCode": 0,
"requestPayload": {},
"responseBody": "string",
"errorMessage": "string",
"attemptNumber": 0,
"responseTime": 0,
"createdAt": "2019-08-24T14:15:22Z"
}
]
}{
"error": "Unauthorized"
}Reviews
Unified inbox API for managing reviews on Facebook Pages and Google Business accounts. All endpoints aggregate data from multiple social accounts in a single API call. Requires Inbox addon.
Logs
Publishing logs for transparency and debugging. Shows detailed records of all post publishing attempts. **Log Data Includes:** - Platform API endpoint called - HTTP status code - Request body (content preview, media URLs) - Response body (platform post ID/URL or error details) - Duration and retry attempts **Retention:** Logs are automatically deleted after 7 days via TTL index.