List workers
const url = 'https://app.everruns.com/api/v1/durable/workers';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://app.everruns.com/api/v1/durable/workersParameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”Filter by status
Filter by worker group
Responses
Section titled “ Responses ”List of workers
Workers list response
object
Page of items returned by this query.
Worker response
object
Whether the worker is currently accepting new task assignments. Disabled briefly during drains or backpressure.
Activity types this worker accepts. Tasks with other activity types skip this worker.
Average task duration in milliseconds across recent activity.
Human-readable reason the worker is rejecting tasks, when accepting_tasks is false.
Number of tasks currently executing on this worker.
Hostname / pod name the worker is running on. Operator hint; not used for routing.
Opaque durable worker identifier (defaults to worker-<uuid>).
Timestamp of the most recent heartbeat from this worker (RFC 3339).
Maximum number of tasks the worker will run concurrently.
Free-form worker-reported metadata (deployment, capabilities flag set, etc.).
Timestamp when this worker started accepting tasks (RFC 3339).
Current lifecycle status (running, draining, stopped, etc.).
Total tasks this worker has completed successfully.
Total tasks this worker has failed (including retries that were ultimately abandoned).
Build version of the worker binary.
Logical group this worker belongs to (used for routing). None for ungrouped workers.
Workers summary stats
object
Workers in running state, accepting tasks.
Workers in draining state, finishing in-flight tasks but not accepting new ones.
Workers in stopped state, neither running nor draining.
Sum of max_concurrency across all active + draining workers.
Total tasks currently in flight across all workers.
Total number of items matching the query, across all pages.
Example generated
{ "data": [ { "accepting_tasks": true, "activity_types": [ "example" ], "avg_task_duration_ms": 1, "backpressure_reason": "example", "current_load": 1, "hostname": "example", "id": "example", "last_heartbeat_at": "2026-04-15T12:00:00Z", "max_concurrency": 1, "metadata": "example", "started_at": "2026-04-15T12:00:00Z", "status": "example", "tasks_completed": 1, "tasks_failed": 1, "version": "example", "worker_group": "example" } ], "summary": { "active": 1, "draining": 1, "stopped": 1, "total_capacity": 1, "total_load": 1 }, "total": 1}Internal server error
Standard error response.
Wire shape is RFC 9457 Problem Details:
every error response includes title and status, and may include
detail, code, allowed_actions, retry_after_seconds, instance,
and type. The content type is rewritten to application/problem+json
by [problem_json_content_type].
object
Recovery actions the caller can take next.
Agent-actionable recovery hint attached to an error response.
object
Short, agent-readable hint (e.g. “Shorten ‘name’ to <= 200 chars.”).
Optional absolute or relative URL the caller may invoke directly.
OpenAPI operationId the caller should invoke to recover.
Link relation describing the action (e.g. retry, get-existing,
unarchive, retry-later).
Stable, machine-readable error code (snake_case).
Human-readable explanation specific to this occurrence.
Request URI for this occurrence.
Seconds the caller should wait before retrying (429 / transient 503).
HTTP status code; mirrors the response status line.
Short, human-readable summary of the problem (e.g. “Not Found”).
RFC 9457 problem type URI. Optional; identifies the problem class.
Example generated
{ "allowed_actions": [ { "hint": "example", "href": "example", "operation_id": "example", "rel": "example" } ], "code": "example", "detail": "example", "instance": "example", "retry_after_seconds": 1, "status": 1, "title": "example", "type": "example"}