Skip to main content
This section documents the implemented local API surface in /apps/clawcontrol/app/api/**.

Base URL

http://127.0.0.1:3000
The API is local-only and not designed for internet exposure.

Response Conventions

All endpoints return JSON. Successful responses typically return one of:
  • { "data": ... }
  • { "data": ..., "meta": ... }
Error responses always include an error string and may also include code, details, or policy depending on the endpoint.

Common Status Codes

  • 200 success
  • 201 created
  • 400 invalid input
  • 403 forbidden (policy/gate)
  • 404 not found
  • 428 typed confirmation required (some routes)
  • 500 server error
  • 502/503 upstream OpenClaw/gateway unavailable patterns

Policy Errors (Typed Confirm / Approval)

Typed-confirm failures use error codes such as:
  • TYPED_CONFIRM_REQUIRED
  • TYPED_CONFIRM_INVALID
Depending on the route, missing typed confirmation may return 403 or 428. Example (wrapper-style error shape):
{
  "error": "Typed confirmation required for \"Ship work order\"",
  "code": "TYPED_CONFIRM_REQUIRED",
  "details": {
    "actionKind": "work_order.ship",
    "confirmMode": "WO_CODE",
    "required": "WO-1234"
  }
}
Example (policy-only error shape):
{
  "error": "TYPED_CONFIRM_REQUIRED",
  "policy": {
    "riskLevel": "danger",
    "confirmMode": "CONFIRM",
    "requiresApproval": false
  }
}

cURL-first Example

curl -sS "http://127.0.0.1:3000/api/work-orders?limit=10"

Grouped API Pages

Last updated

2026-02-13