webhooks/SKILL.md
Webhook notifications for render completion and file processing events. Configure endpoints, verify HMAC signatures, and handle real-time status payloads.
npx skillsauth add editframe/skills webhooksInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Receive real-time HTTP notifications when renders complete, files finish processing, or other asynchronous events occur in your Editframe account.
// 1. Create an API key with webhook configuration
const apiKey = await createApiKey({
name: "My App",
webhookUrl: "https://your-app.com/webhooks/editframe",
webhookEvents: ["render.completed", "render.failed"]
});
// 2. Store the webhook secret for signature verification
const webhookSecret = apiKey.webhook_secret;
// 3. Handle webhook requests
app.post("/webhooks/editframe", async (req, res) => {
const signature = req.headers["x-webhook-signature"];
const payload = JSON.stringify(req.body);
// Verify signature
const expectedSignature = crypto
.createHmac("sha256", webhookSecret)
.update(payload)
.digest("hex");
if (signature !== expectedSignature) {
return res.status(401).send("Invalid signature");
}
// Process event
const { topic, data } = req.body;
if (topic === "render.completed") {
console.log(`Render ${data.id} completed!`);
console.log(`Download: ${data.download_url}`);
}
res.status(200).send("OK");
});
Webhooks are triggered for specific event topics:
render.created — Render job createdrender.pending — Render queued for processingrender.rendering — Render is actively processingrender.completed — Render successfully finishedrender.failed — Render encountered an errorfile.created — File record createdfile.uploading — File is being uploadedfile.processing — File is being processed (video only)file.ready — File is ready for usefile.failed — File processing failedFile event payloads include expires_at (null for permanent uploads, or an ISO 8601 datetime). See references/events.md and editframe-api references/files.md for retention rules.
unprocessed_file.created — Unprocessed file created (deprecated)Configure webhooks when creating or updating an API key:
Webhook URL: The HTTPS endpoint where Editframe will send POST requests Webhook Events: Array of event topics you want to receive Webhook Secret: Auto-generated HMAC secret for signature verification
See references/getting-started.md for detailed setup instructions.
All webhook requests include an X-Webhook-Signature header containing an HMAC-SHA256 signature. Always verify this signature before processing webhook payloads.
See references/security.md for signature verification implementation.
Test your webhook endpoint before going live:
# Use the Editframe dashboard to send test webhooks
# Or trigger test events via the API
See references/testing.md for testing strategies including local development with ngrok.
Common issues and solutions:
See references/troubleshooting.md for detailed debugging guidance.
tools
Vite integration for Editframe development with local video transcoding, asset serving, file API endpoints, and visual regression testing.
development
Build video editing interfaces with Editframe's GUI components. Assemble timeline, scrubber, filmstrip, preview, playback controls, and transform handles.
tools
Scaffold new Editframe video projects from templates. Generates project structure, installs dependencies, and sets up composition tooling to start immediately.
tools
Command-line tools for Editframe video development. Render compositions to MP4 locally, preview in the browser, transcribe audio, and deploy to the cloud.