# Webhooks Create webhook endpoints for MCP-visible events such as generated media, failed jobs, published posts, automation output, and completed tool calls. Canonical: /docs/webhooks.md ## Supported events **Event types** ```txt avatar.generated avatar.failed product_scene.generated product_scene.failed hook.generated hook.failed ai_clone.generated ai_clone.failed video.completed video.failed slideshow.exported scheduled_post.published scheduled_post.failed scheduled_post.cancelled automation.generated tool.completed ``` ## Create a webhook **CLI** ```bash reelsfarm webhooks create \ --url https://example.com/reelsfarm/webhook \ --events scheduled_post.published,scheduled_post.failed \ --agent --yes ``` **SDK** ```ts const webhook = await rf.webhooks.create({ url: "https://example.com/reelsfarm/webhook", events: ["scheduled_post.published", "scheduled_post.failed"], description: "Production publish events", }); ``` > Secret is returned once: The signing secret starts with rfmcpwh_ and is returned only when the webhook is created. Store it immediately. ## Signature headers Webhook deliveries include event metadata and an HMAC signature. Verify the signature before trusting the payload. **Headers** ```http user-agent: ReelsFarm-MCP-Webhooks/1.0 x-reelsfarm-event-id: evt_123 x-reelsfarm-event-type: scheduled_post.published x-reelsfarm-signature: sha256=... ``` ## Inspect activity **CLI** ```bash reelsfarm webhooks list --agent reelsfarm events recent --type scheduled_post.published --agent ``` **SDK** ```ts const webhooks = await rf.webhooks.list(); const events = await rf.events.recent({ type: "scheduled_post.published", limit: 20, }); ```