Overview
The Durablex HTTP API - base URL, authentication, conventions, and the full endpoint map.
Everything the console does goes through the engine's HTTP API, and so can you. It is plain JSON over HTTP - no SDK required to trigger events, read runs, or control them.
Base URL
Your workspace's engine URL is shown in the console, and is also the value of DURABLEX_ENGINE_URL
(for example https://dx-engine.tarqeem.cloud). All paths below are relative to it.
Authentication
Every request needs an API key, presented as a Bearer token. Issue one in the console under API Keys:
curl "$DURABLEX_ENGINE_URL/runs" \
-H "Authorization: Bearer $DURABLEX_API_KEY"Keys carry a scope. A public (read-only) key can call the GET endpoints; writes (every POST,
plus the /connect upgrade) need a secret key.
| Response | When |
|---|---|
401 Unauthorized | The key is missing or unknown. |
403 Forbidden | A public (read-only) key attempted a write. |
The health probes (/healthz, /readyz) always bypass auth.
Conventions
- Request and response bodies are JSON. Send
POSTbodies as a JSON object. - A successful
POST /eventsreturns202 Accepted; reads return200. Errors return a JSON{ "error": "..." }body with the status code. - Listings are newest-first and bounded;
GET /runsuses keyset pagination via theX-Next-Cursorheader.
Endpoints
| Method + path | Purpose |
|---|---|
POST /events | Trigger workflows by sending an event. |
GET /runs | List and filter runs. |
GET /runs/stats | Aggregate run counts for a filter. |
GET /runs/{id} | One run, with its input and result. |
GET /runs/{id}/steps | A run's steps, in order. |
POST /runs/{id}/cancel | Cancel a run. |
POST /runs/{id}/pause | Pause a run. |
POST /runs/{id}/resume | Resume a paused run. |
POST /runs/{id}/replay | Replay a finished run as a new run. |
GET /events | Read the event log. |
GET /events/{id} | One event log record. |
GET /events/stream | Live event tail (Server-Sent Events). |
POST /webhooks/{slug} | Public: a signature-verified inbound webhook mapped onto an event. |
GET /webhook-deliveries | The outbound delivery log, newest first. |
GET /webhook-deliveries/{id} | One delivery with its attempt log. |
GET /webhook-endpoints GET /webhook-receivers | The outbound/inbound configs (no secrets). |
GET /workflows | List registered workflows, each with its flowControl config. |
GET /apps | List registered apps. |
GET /runners | List connected runners with their metadata and liveness. |
GET /flow-state | Live flow-control buffers (debounce, batch). |
GET /healthz GET /readyz | Liveness and readiness. |
The engine-to-runner protocol (POST /register, the invoke call, GET /connect) is documented
separately in the wire protocol.