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}$"
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/contentstack-webhook-payload"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.