Storyblok · Schema
Storyblok Webhook Payload
The payload delivered by Storyblok to registered webhook endpoint URLs when subscribed events occur in a space. Payloads are delivered as HTTP POST requests with Content-Type: application/json. An optional webhook-signature HMAC-SHA1 header is included when a webhook secret is configured.
CMSContent DeliveryContent ManagementHeadless CMSImage OptimizationREST APIVisual EditorWebhooks
Properties
| Name | Type | Description |
|---|---|---|
| action | string | The event action that triggered the webhook delivery. Identifies the type of event and the affected resource type. |
| space_id | integer | Numeric ID of the Storyblok space in which the event occurred. |
| text | string | Human-readable description of the event including the resource name, ID, and action performed. |
| story_id | integer | Numeric ID of the story that triggered the event. Present for story.published, story.unpublished, story.deleted, and story.moved events. |
| full_slug | string | Full URL slug of the affected story at the time of the event. Present for story.published and story.moved events. |
| asset_id | integer | Numeric ID of the asset that triggered the event. Present for asset.created and asset.deleted events. |
| datasource_id | integer | Numeric ID of the datasource whose entries were updated. Present for datasource.entries_updated events. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://storyblok.com/schemas/webhook-payload.json",
"title": "Storyblok Webhook Payload",
"description": "The payload delivered by Storyblok to registered webhook endpoint URLs when subscribed events occur in a space. Payloads are delivered as HTTP POST requests with Content-Type: application/json. An optional webhook-signature HMAC-SHA1 header is included when a webhook secret is configured.",
"type": "object",
"required": ["action", "space_id", "text"],
"properties": {
"action": {
"type": "string",
"description": "The event action that triggered the webhook delivery. Identifies the type of event and the affected resource type.",
"enum": [
"published",
"unpublished",
"deleted",
"moved",
"created",
"entries_updated"
]
},
"space_id": {
"type": "integer",
"description": "Numeric ID of the Storyblok space in which the event occurred."
},
"text": {
"type": "string",
"description": "Human-readable description of the event including the resource name, ID, and action performed."
},
"story_id": {
"type": "integer",
"description": "Numeric ID of the story that triggered the event. Present for story.published, story.unpublished, story.deleted, and story.moved events."
},
"full_slug": {
"type": "string",
"description": "Full URL slug of the affected story at the time of the event. Present for story.published and story.moved events."
},
"asset_id": {
"type": "integer",
"description": "Numeric ID of the asset that triggered the event. Present for asset.created and asset.deleted events."
},
"datasource_id": {
"type": "integer",
"description": "Numeric ID of the datasource whose entries were updated. Present for datasource.entries_updated events."
}
},
"oneOf": [
{
"$ref": "#/$defs/StoryPublishedPayload"
},
{
"$ref": "#/$defs/StoryUnpublishedPayload"
},
{
"$ref": "#/$defs/StoryDeletedPayload"
},
{
"$ref": "#/$defs/StoryMovedPayload"
},
{
"$ref": "#/$defs/AssetEventPayload"
},
{
"$ref": "#/$defs/DatasourceEventPayload"
}
],
"$defs": {
"StoryPublishedPayload": {
"type": "object",
"description": "Webhook payload for the story.published event, delivered when a story is published.",
"required": ["action", "story_id", "space_id", "text", "full_slug"],
"properties": {
"action": {
"type": "string",
"const": "published",
"description": "Always published for this event type."
},
"story_id": {
"type": "integer",
"description": "ID of the story that was published."
},
"space_id": {
"type": "integer",
"description": "ID of the space containing the published story."
},
"full_slug": {
"type": "string",
"description": "Full URL slug of the published story."
},
"text": {
"type": "string",
"description": "Human-readable description of the publication event."
}
}
},
"StoryUnpublishedPayload": {
"type": "object",
"description": "Webhook payload for the story.unpublished event, delivered when a story is removed from public access.",
"required": ["action", "story_id", "space_id", "text"],
"properties": {
"action": {
"type": "string",
"const": "unpublished",
"description": "Always unpublished for this event type."
},
"story_id": {
"type": "integer",
"description": "ID of the story that was unpublished."
},
"space_id": {
"type": "integer",
"description": "ID of the space containing the story."
},
"text": {
"type": "string",
"description": "Human-readable description of the unpublish event."
}
}
},
"StoryDeletedPayload": {
"type": "object",
"description": "Webhook payload for the story.deleted event, delivered when a story is permanently removed from the space.",
"required": ["action", "story_id", "space_id", "text"],
"properties": {
"action": {
"type": "string",
"const": "deleted",
"description": "Always deleted for this event type."
},
"story_id": {
"type": "integer",
"description": "ID of the story that was deleted."
},
"space_id": {
"type": "integer",
"description": "ID of the space from which the story was deleted."
},
"text": {
"type": "string",
"description": "Human-readable description of the deletion event."
}
}
},
"StoryMovedPayload": {
"type": "object",
"description": "Webhook payload for the story.moved event, delivered when a story is moved to a different folder.",
"required": ["action", "story_id", "space_id", "text"],
"properties": {
"action": {
"type": "string",
"const": "moved",
"description": "Always moved for this event type."
},
"story_id": {
"type": "integer",
"description": "ID of the story that was moved."
},
"space_id": {
"type": "integer",
"description": "ID of the space containing the story."
},
"text": {
"type": "string",
"description": "Human-readable description of the move event."
}
}
},
"AssetEventPayload": {
"type": "object",
"description": "Webhook payload for asset events including asset.created and asset.deleted.",
"required": ["action", "asset_id", "space_id", "text"],
"properties": {
"action": {
"type": "string",
"enum": ["created", "deleted"],
"description": "The asset action: created when a new asset is uploaded, deleted when an asset is removed."
},
"asset_id": {
"type": "integer",
"description": "ID of the asset that was created or deleted."
},
"space_id": {
"type": "integer",
"description": "ID of the space containing the asset."
},
"text": {
"type": "string",
"description": "Human-readable description of the asset event."
}
}
},
"DatasourceEventPayload": {
"type": "object",
"description": "Webhook payload for datasource.entries_updated events, delivered when datasource entries change.",
"required": ["action", "datasource_id", "space_id", "text"],
"properties": {
"action": {
"type": "string",
"const": "entries_updated",
"description": "Always entries_updated for datasource events."
},
"datasource_id": {
"type": "integer",
"description": "ID of the datasource whose entries were updated."
},
"space_id": {
"type": "integer",
"description": "ID of the space containing the datasource."
},
"text": {
"type": "string",
"description": "Human-readable description of the datasource update event."
}
}
}
}
}