Skip to main content
Webhooks let Openlayer notify your systems the moment something happens in your workspace, such as a test being created or a test suite finishing a run. Instead of polling the API, you register an HTTPS endpoint and Openlayer sends it a signed HTTP POST request whenever a subscribed event occurs. Common use cases include:
  • Alerting on-call engineers when tests start failing in production.
  • Triggering CI/CD pipelines or downstream jobs when a test suite finishes.
  • Synchronizing test definitions between Openlayer and your own systems.

How it works

1

Create a subscription

A workspace admin registers an HTTPS endpoint and the event types it should receive. Openlayer returns a signing secret that is shown only once. See Manage webhooks.
2

An event occurs

When a subscribed event happens in your workspace (for example, a test is created), Openlayer builds an event payload and queues it for delivery.
3

Openlayer delivers the event

Openlayer sends an HTTP POST request to your endpoint with the event payload as JSON and a set of signature headers.
4

Your endpoint verifies and responds

Your endpoint verifies the signature, processes the event, and responds with a 2xx status code to acknowledge receipt.

Delivery

Each event is delivered as an HTTP POST request with a JSON body and the following characteristics:
PropertyValue
MethodPOST
Content typeapplication/json
TransportHTTPS only — endpoints served over plain HTTP are never called
Connection timeout5 seconds
Response timeout10 seconds
RedirectsNot followed (a 3xx response is treated as a failure)
Success criterionAny 2xx response status code
Your endpoint should respond quickly with a 2xx status code. If you need to do expensive work, acknowledge the event first and process it asynchronously.

Retries

If a delivery fails — your endpoint returns a non-2xx status code, the connection times out, or the request errors — Openlayer retries the delivery up to 3 times using exponential backoff with jitter:
AttemptApproximate delay after the previous attempt
InitialImmediate
Retry 1~5 seconds
Retry 2~5 minutes
Retry 3~30 minutes
A small random jitter (up to 10%) is added to each delay to avoid synchronized retries. If all retries are exhausted, the event is marked as failed and is not delivered again.
Because deliveries are retried, your endpoint may receive the same event more than once. Use the webhook-id header to deduplicate events. See Verifying signatures.

Delivery logs and retention

Every delivery attempt is recorded, including the HTTP status code, response time, and any error message. You can inspect recent attempts for a subscription through the deliveries endpoint. Webhook events and their delivery records are retained for 90 days, after which they are automatically deleted.

Next steps

Manage webhooks

Create, update, and delete webhook subscriptions from the dashboard or the REST API.

Events and payloads

See the available event types and the shape of each payload.

Verify signatures

Validate that incoming requests genuinely came from Openlayer.

Roles and permissions

Review who can manage webhooks in your workspace.