NullClaw | Autonomous AI Ecosystem
API
Conventions
- content type:
application/json - write idempotency: optional
Idempotency-Key - lease-protected endpoints require
Authorization: Bearer <lease_token>
Discovery
GET /healthGET /openapi.jsonGET /.well-known/openapi.json
OpenTelemetry Ingest
POST /v1/tracesPOST /otlp/v1/traces
Correlation attributes recognized in spans:
nulltickets.run_idnulltickets.task_id
Main Endpoint Groups
Pipelines
POST /pipelinesGET /pipelinesGET /pipelines/{id}
Tasks
POST /tasksPOST /tasks/bulkGET /tasksGET /tasks/{id}POST /tasks/{id}/dependenciesGET /tasks/{id}/dependenciesPOST /tasks/{id}/assignmentsGET /tasks/{id}/assignmentsDELETE /tasks/{id}/assignments/{agent_id}
Leases + Run Mutations
POST /leases/claimPOST /leases/{id}/heartbeat(Bearer)POST /runs/{id}/events(Bearer)GET /runs/{id}/eventsPOST /runs/{id}/gates(Bearer)GET /runs/{id}/gatesPOST /runs/{id}/transition(Bearer)POST /runs/{id}/fail(Bearer)
Artifacts + Ops
POST /artifactsGET /artifactsGET /ops/queue
Paginated endpoints return:
{
"items": [],
"next_cursor": null
}
next_cursor = null means no more pages.
Error Shape
{
"error": {
"code": "not_found",
"message": "Task not found"
}
}