Webhooks

Receive a callback when a conversion finishes instead of polling.

Webhooks let you skip polling: register a URL and ConvertMePls will POST to it when a conversion job changes state.

Register an endpoint

Add a webhook in your dashboard, or via the API. You will receive a signing secret used to verify deliveries.

The payload

We send a JSON body:

{
  "event": "conversion.completed",
  "jobId": "8f2b1c9a...",
  "status": "done",
  "downloadUrl": "https://...",
  "createdAt": "2026-06-01T12:00:00.000Z"
}

Events: conversion.completed and conversion.failed.

Verify the signature

Each request includes an X-ConvertMePls-Signature header — an HMAC-SHA256 of the raw body using your signing secret. Recompute it and compare:

import crypto from 'node:crypto';

function verify(rawBody, signature, secret) {
  const expected = crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
  return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signature));
}

Retries

If your endpoint does not return a 2xx, we retry with exponential backoff for up to 24 hours. Use the Test button in the dashboard to send a sample delivery while you build your handler.