contentstack · Schema
Contentstack Webhook Payload
Schema for the HTTP POST payload delivered by Contentstack to configured webhook endpoints. Payloads are sent when content lifecycle events occur in a stack, including entry and asset publish, unpublish, create, update, and delete operations.
Properties
| Name | Type | Description |
|---|---|---|
| event | string | The specific action that triggered the webhook. |
| module | string | The Contentstack content module that generated the event. |
| api_key | string | The API key of the Contentstack stack where the event occurred. |
| uid | string | The UID of the primary resource that triggered the event. |
| triggered_at | string | ISO 8601 UTC timestamp of when the event was triggered and the webhook was dispatched. |
| data | object | Event-specific data payload containing the resource details and event context. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://contentstack.com/schemas/contentstack/webhook-payload.json",
"title": "Contentstack Webhook Payload",
"description": "Schema for the HTTP POST payload delivered by Contentstack to configured webhook endpoints. Payloads are sent when content lifecycle events occur in a stack, including entry and asset publish, unpublish, create, update, and delete operations.",
"type": "object",
"required": ["event", "module", "api_key"],
"properties": {
"event": {
"type": "string",
"description": "The specific action that triggered the webhook.",
"enum": [
"publish",
"unpublish",
"create",
"update",
"delete",
"workflow_stage_change",
"deploy"
]
},
"module": {
"type": "string",
"description": "The Contentstack content module that generated the event.",
"enum": [
"entry",
"asset",
"content_type",
"global_field",
"release",
"workflow",
"bulk_job",
"taxonomy",
"branch"
]
},
"api_key": {
"type": "string",
"description": "The API key of the Contentstack stack where the event occurred.",
"pattern": "^[a-zA-Z0-9]{16,}$"
},
"uid": {
"type": "string",
"description": "The UID of the primary resource that triggered the event."
},
"triggered_at": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 UTC timestamp of when the event was triggered and the webhook was dispatched."
},
"data": {
"description": "Event-specific data payload containing the resource details and event context.",
"oneOf": [
{
"$ref": "#/$defs/EntryEventData"
},
{
"$ref": "#/$defs/AssetEventData"
},
{
"$ref": "#/$defs/ContentTypeEventData"
},
{
"$ref": "#/$defs/WorkflowEventData"
},
{
"$ref": "#/$defs/BulkJobEventData"
},
{
"$ref": "#/$defs/ReleaseEventData"
}
]
}
},
"$defs": {
"EntryEventData": {
"type": "object",
"description": "Data payload for entry-related webhook events.",
"properties": {
"entry": {
"type": "object",
"description": "The entry resource that triggered the event.",
"properties": {
"uid": {
"type": "string",
"description": "Unique identifier of the entry."
},
"title": {
"type": "string",
"description": "Title of the entry."
},
"locale": {
"type": "string",
"description": "Locale code of the entry version."
},
"_version": {
"type": "integer",
"description": "Version number of the entry.",
"minimum": 1
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 timestamp when the entry was created."
},
"updated_at": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 timestamp when the entry was last updated."
}
}
},
"content_type": {
"$ref": "#/$defs/ContentTypeRef"
},
"environments": {
"type": "array",
"description": "Environments affected by this event. Populated for publish and unpublish events.",
"items": {
"$ref": "#/$defs/EnvironmentRef"
}
},
"locales": {
"type": "array",
"description": "Locales affected by this event.",
"items": {
"$ref": "#/$defs/LocaleRef"
}
}
}
},
"AssetEventData": {
"type": "object",
"description": "Data payload for asset-related webhook events.",
"properties": {
"asset": {
"type": "object",
"description": "The asset resource that triggered the event.",
"properties": {
"uid": {
"type": "string",
"description": "Unique identifier of the asset."
},
"title": {
"type": "string",
"description": "Display title of the asset."
},
"url": {
"type": "string",
"format": "uri",
"description": "CDN URL of the asset file."
},
"filename": {
"type": "string",
"description": "Original filename of the uploaded asset."
},
"content_type": {
"type": "string",
"description": "MIME type of the asset file."
},
"file_size": {
"type": "string",
"description": "File size of the asset in bytes."
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 timestamp when the asset was created."
},
"updated_at": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 timestamp when the asset was last updated."
}
}
},
"environments": {
"type": "array",
"description": "Environments affected by this event.",
"items": {
"$ref": "#/$defs/EnvironmentRef"
}
}
}
},
"ContentTypeEventData": {
"type": "object",
"description": "Data payload for content type lifecycle events.",
"properties": {
"content_type": {
"type": "object",
"description": "The content type resource involved in the event.",
"properties": {
"uid": {
"type": "string",
"description": "Unique identifier of the content type."
},
"title": {
"type": "string",
"description": "Display name of the content type."
},
"schema": {
"type": "array",
"description": "Array of field definitions for the content type schema.",
"items": {
"type": "object"
}
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 timestamp when the content type was created."
},
"updated_at": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 timestamp when the content type schema was last updated."
}
}
}
}
},
"WorkflowEventData": {
"type": "object",
"description": "Data payload for workflow stage change events.",
"properties": {
"entry": {
"type": "object",
"description": "The entry that changed workflow stage.",
"properties": {
"uid": {
"type": "string",
"description": "UID of the entry."
},
"title": {
"type": "string",
"description": "Title of the entry."
}
}
},
"content_type": {
"$ref": "#/$defs/ContentTypeRef"
},
"workflow": {
"type": "object",
"description": "Workflow transition details.",
"properties": {
"uid": {
"type": "string",
"description": "UID of the workflow."
},
"name": {
"type": "string",
"description": "Name of the workflow."
},
"current_stage": {
"$ref": "#/$defs/WorkflowStageRef"
},
"previous_stage": {
"$ref": "#/$defs/WorkflowStageRef"
}
}
}
}
},
"BulkJobEventData": {
"type": "object",
"description": "Data payload for bulk job completion events.",
"properties": {
"job": {
"type": "object",
"description": "Summary information about the completed bulk job.",
"properties": {
"uid": {
"type": "string",
"description": "Unique identifier of the bulk job."
},
"type": {
"type": "string",
"description": "Type of bulk operation that was performed.",
"enum": ["bulk_publish", "bulk_unpublish"]
},
"status": {
"type": "string",
"description": "Final completion status of the bulk job.",
"enum": ["complete", "partial", "failed"]
},
"total_count": {
"type": "integer",
"description": "Total number of items included in the bulk job.",
"minimum": 0
},
"success_count": {
"type": "integer",
"description": "Number of items that were successfully processed.",
"minimum": 0
},
"failed_count": {
"type": "integer",
"description": "Number of items that failed to process.",
"minimum": 0
}
}
},
"environments": {
"type": "array",
"description": "Target environments for the bulk operation.",
"items": {
"$ref": "#/$defs/EnvironmentRef"
}
}
}
},
"ReleaseEventData": {
"type": "object",
"description": "Data payload for release deployment events.",
"properties": {
"release": {
"type": "object",
"description": "The deployed release.",
"properties": {
"uid": {
"type": "string",
"description": "Unique identifier of the release."
},
"name": {
"type": "string",
"description": "Display name of the release."
},
"description": {
"type": "string",
"description": "Optional description of the release contents."
}
}
},
"environments": {
"type": "array",
"description": "Environments the release was deployed to.",
"items": {
"$ref": "#/$defs/EnvironmentRef"
}
}
}
},
"ContentTypeRef": {
"type": "object",
"description": "A reference to a content type.",
"properties": {
"uid": {
"type": "string",
"description": "UID of the content type."
},
"title": {
"type": "string",
"description": "Display name of the content type."
}
}
},
"EnvironmentRef": {
"type": "object",
"description": "A reference to a deployment environment.",
"properties": {
"uid": {
"type": "string",
"description": "UID of the environment."
},
"name": {
"type": "string",
"description": "Display name of the environment."
}
}
},
"LocaleRef": {
"type": "object",
"description": "A reference to a locale.",
"properties": {
"code": {
"type": "string",
"description": "BCP 47 locale code (e.g., en-us, fr-fr).",
"pattern": "^[a-z]{2}(-[A-Z]{2})?$"
},
"name": {
"type": "string",
"description": "Human-readable locale name."
}
}
},
"WorkflowStageRef": {
"type": "object",
"description": "A reference to a workflow stage.",
"properties": {
"uid": {
"type": "string",
"description": "UID of the workflow stage."
},
"title": {
"type": "string",
"description": "Display name of the workflow stage."
},
"color": {
"type": "string",
"description": "Hex color code for the workflow stage indicator.",
"pattern": "^#[0-9A-Fa-f]{6}$"
}
}
}
}
}