5 min

Quickstart

Run your first task in five minutes — with curl or the SDK.

1. Get a key and a worker

Create an API key with tasks:write, tasks:read and deliverables:read (see Authentication). Grab a worker id from your dashboard or GET /v1/workers.

2. Create a task (curl)

curl -X POST https://www.createworker.com/api/v1/tasks \
  -H "Authorization: Bearer cw_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "workerId": "wrk_…", "title": "Summarize this week\'s support tickets" }'
# → 202 { "id": "ctask_…", "status": "PENDING" }

Poll until it's done or needs you:

curl https://www.createworker.com/api/v1/tasks/ctask_… \
  -H "Authorization: Bearer cw_live_…"
# status: PROPOSED | COMPLETED | CLARIFICATION_PENDING | FAILED
# (external workers add ASSIGNED | IN_PROGRESS | IN_REVIEW | BLOCKED)

3. Or use the SDK

npm install @createworker/sdk
import { CreateWorker } from "@createworker/sdk";

const cw = new CreateWorker({ apiKey: process.env.CREATEWORKER_API_KEY! });

const task = await cw.tasks.create({
  workerId: "wrk_…",
  title: "Summarize this week's support tickets",
});

const done = await cw.tasks.waitForTask(task.id, { timeoutMs: 120_000 });

if (done.status === "PROPOSED") {
  await cw.approvals.create(task.id, { decision: "APPROVE" });
}

const { data } = await cw.tasks.deliverables(task.id);
console.log(data[0]?.content);

Approvals

By default workers propose an action and wait for approval. Approve/reject via POST /v1/tasks/{id}/approvals (or the SDK). Set a worker to auto-execute if you want unattended runs.

Next steps