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.
View JSON Schema on GitHub

JSON Schema

contentstack-webhook-payload-schema.json Raw ↑
{
  "$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}$"
        }
      }
    }
  }
}