Video Automation

Webhooks

Instead of asking for the status again and again, let us call your server as soon as something happens – signed and retried until it arrives.

Status: Live

Works today for every account.

Start free trial

What it can do

Events:

  • upload_completed – one platform of a post finished, with success or the error, the post URL and your request_id, job_id and external_id.
  • social_account_connected – an account was connected (also by your client through a connect link).
  • social_account_disconnected – an account was removed.
  • social_account_reauth_required – access expired or was withdrawn; the account must be reconnected.

Every request is a JSON POST with these headers:

  • X-VA-Signature and X-Upload-Post-Signature: sha256= + HMAC-SHA256 of "<timestamp>.<raw body>" with your signing secret
  • X-Upload-Post-Timestamp, X-Upload-Post-Event, X-Upload-Post-Delivery

Checking the signature in Node.js:

const expected = 'sha256=' + crypto.createHmac('sha256', secret)
  .update(`${req.headers['x-upload-post-timestamp']}.${rawBody}`).digest('hex');
const ok = crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(req.headers['x-va-signature']));

Limits

  • Retries: if your server does not answer with a 2xx status, we try again up to 6 times with growing gaps.
  • Number of webhooks per workspace depends on your plan (1 in the trial).
  • Webhook addresses must be public https URLs; private network addresses are refused.
  • Answer quickly (within a few seconds) and do the heavy work afterwards.
  • Reject requests whose timestamp is older than a few minutes to block replays.

Setup

  1. Open API & webhooks in the app and click New webhook.
  2. Enter your https address and choose the events (all are selected by default).
  3. Copy the signing secret – it is shown only once.
  4. Click Send test event and check that your server receives it.
  5. Recent deliveries and their status codes are listed below the webhook.

Via the Upload-Post compatible API: POST /api/uploadposts/users/notifications with webhook_url and webhook_events. More: webhooks help.

FAQ

I lost the signing secret.

Delete the webhook and create a new one, or rotate the secret with POST /api/uploadposts/users/webhook-secret.

Do I get one event per platform or per post?

One upload_completed per platform. A video to three platforms sends three events with the same request_id.

Can I use webhooks with n8n, Make or Zapier?

Yes. Use their webhook trigger URL as the address. See the n8n, Make and Zapier pages.

Other integrations