Webhooks: events and signature verification

Get notified when jobs, batches and workflows finish, and verify that requests really come from ClearCut.

Set up an endpoint

In Developers → Webhooks, add your HTTPS URL and choose events. Copy the signing secret: it's shown only once. Use Send test to try it. You can also pass webhook_url on a single /removebg or /remove-video-bg request.

Events

EventWhen
job.created, job.started, job.processingA video job is queued, picked up, and starts processing
job.completed / job.failedAny job finishes or fails
batch.created, batch.completed, batch.partially_completed, batch.failedBatch progress
workflow.started, workflow.awaiting_approval, workflow.completed, workflow.failedWorkflow runs
asset.approved, asset.rejected, review.comment_addedReview decisions and comments
credits.low, credits.reserved, credits.releasedCredit balance changes
subscription.updatedPlan changes
api_key.rate_limitedA key hit its limit

Verify the signature

Every delivery has an X-ClearCut-Signature header like t=1780000000,v1=5257a8….

  1. Compute HMAC-SHA256 of {t}.{raw request body} with your signing secret.
  2. Compare it with v1 using a constant-time comparison.
  3. Reject requests whose t is more than 5 minutes old.

Delivery and retries

Respond with any 2xx status within 10 seconds. Failed deliveries are retried up to 3 times with increasing delays. You can see every attempt under the endpoint's deliveries. Webhook URLs must be public addresses.

Still need help?

Contact support