Appearance
Webhook Payload
When a collection is updated, registered webhook endpoints receive an HTTP POST with the following format.
Headers
| Header | Description | Example |
|---|---|---|
Content-Type | Always application/json | application/json |
X-Webhook-Event | The event type | COLLECTION_UPDATED |
X-Webhook-Delivery-Timestamp | ISO 8601 delivery timestamp | 2026-01-18T10:35:01.000Z |
X-Webhook-Signature | HMAC-SHA256 signature — see Signature Verification | sha256=a1b2c3d4e5f6... |
Body
json
{
"event": "COLLECTION_UPDATED",
"collectionId": "col_abc123",
"timestamp": "2026-01-18T10:35:00Z",
"data": {
"id": "col_abc123",
"name": "Match Day Social Feed",
"contentType": "SOCIAL_POST",
"stagingContentCount": 0,
"liveContentCount": 2,
"createdDate": "2026-01-10T08:00:00.000Z",
"lastModifiedDate": "2026-01-18T10:35:00.000Z",
"stagingContents": [],
"liveContents": [
{
"id": "content_001",
"fullName": "Sophie Hammer",
"username": "sophiehammer",
"source": "FACEBOOK",
"message": "What a strike! Absolutely incredible goal",
"profileImageUrl": "https://graph.facebook.com/sophie_h/picture",
"media": [
{
"mediaUrl": "https://media.dizplai.com/social-media/2026/01/fb/0.jpg",
"mediaType": "image/jpeg"
}
],
"publishedAt": "2026-01-18T10:30:00.000Z",
"lastModifiedDate": "2026-01-18T10:35:00.000Z"
},
{
"id": "content_003",
"fullName": "Premier League",
"username": "@premierleague",
"source": "INSTAGRAM",
"message": "GOAL! What a way to open the scoring",
"profileImageUrl": "https://instagram.com/pl_avatar.jpg",
"media": [
{
"mediaUrl": "https://media.dizplai.com/social-media/2026/01/ig/goal.mp4",
"mediaType": "video/mp4"
}
],
"publishedAt": "2026-01-18T10:25:00.000Z",
"lastModifiedDate": "2026-01-18T10:35:00.000Z"
}
]
}
}Payload fields
Top-level
| Field | Type | Description |
|---|---|---|
event | string | Event type — always COLLECTION_UPDATED |
collectionId | string | The ID of the updated collection |
timestamp | string | ISO 8601 timestamp of when the event occurred |
data | object | Full collection data (same schema as the REST API response) |
data object
The data object contains the same fields as the GET /v1/collections/:id response, without the meta field. It uses stagingContents and liveContents arrays instead of a single contents array. See JSON Schema Reference for full field definitions.
Responding to webhooks
Your endpoint must return a 2xx status code within a reasonable time to acknowledge receipt.
| Response | Behaviour |
|---|---|
200–299 | Delivery marked as successful |
429 | Retried with exponential backoff |
400–499 (except 429) | Delivery marked as failed, no retry |
500–599 | Retried with exponential backoff |
| Timeout / network error | Retried with exponential backoff |
See Retry Policy for full retry details.
Payload size
The payload size depends on the number of content items in the collection. A typical collection with 20 social posts produces a payload of approximately 5–15 KB.

