Skip to main content
Give us an HTTPS address and we send it a signing secret. When a screening finishes, the API sends POST to your address:
data.screening is the full screening, as GET /v1/screenings/{id} returns it. The event types are screening.completed and screening.failed.

Verify the signature

Each request has a Verify-Signature header:
  1. Take t and the raw request body.
  2. Compute the HMAC-SHA256 of {t}.{body} with your signing secret, as hex.
  3. Accept the request if any v1 value matches. While we rotate your secret, the header carries one v1 for each valid secret.
  4. Reject the request if t is more than five minutes old.

Retries

Reply with any 2xx status to accept an event. Otherwise the API tries again after 30 seconds, doubling the wait each time up to an hour, for 24 hours. A retry sends the same event id, so ignore an id you have already processed. Polling always works too, which suits systems such as Salesforce that cannot easily receive webhooks.