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/sdkimport { 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
- Receive results via webhooks instead of polling.
- Connect your own app so a worker can operate it.
- Browse the full API reference.