Overview

The Duraton HTTP API - base URL, authentication, conventions, and the full endpoint map.

Everything the console does goes through Duraton'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 DURATON_ENGINE_URL (for example https://run.duraton.dev). 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 "$DURATON_ENGINE_URL/runs" \
  -H "Authorization: Bearer $DURATON_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.

ResponseWhen
401 UnauthorizedThe key is missing or unknown.
403 ForbiddenA public (read-only) key attempted a write.

Conventions

  • Request and response bodies are JSON. Send POST bodies as a JSON object.
  • A successful POST /events returns 202 Accepted; reads return 200. Errors return a JSON { "error": "..." } body with the status code.
  • Listings are newest-first and bounded; GET /runs uses keyset pagination via the X-Next-Cursor header.

Endpoints

Method + pathPurpose
POST /eventsTrigger workflows by sending an event.
GET /runsList and filter runs.
GET /runs/statsAggregate run counts for a filter.
GET /runs/{id}One run, with its input and result.
GET /runs/{id}/stepsA run's steps, in order.
POST /runs/{id}/cancelCancel a run.
POST /runs/{id}/pausePause a run.
POST /runs/{id}/resumeResume a paused run.
POST /runs/{id}/replayReplay a finished run as a new run.
GET /eventsRead the event log.
GET /events/{id}One event log record.
GET /events/streamLive event tail (Server-Sent Events).
POST /webhooks/{slug}Public: a signature-verified inbound webhook mapped onto an event.
GET /webhook-deliveriesThe outbound delivery log, newest first.
GET /webhook-deliveries/{id}One delivery with its attempt log.
GET /webhook-endpoints GET /webhook-receiversThe outbound/inbound configs (no secrets).
GET /workflowsList registered workflows, each with its flowControl config.
GET /appsList registered apps.
GET /runnersList connected runners with their metadata and liveness.
GET /flow-stateLive flow-control buffers (debounce, batch).

The runner protocol (POST /register, the invoke call, GET /connect) is documented separately in the wire protocol.

On this page