Create a Task

Hand work to a vetted human: publishing a post, cutting a video, making a phone call. You provide the type and its input (schema from the catalog); you get back a task whose id is the callback ID. Input is validated up front — a bad request fails before any human is engaged.

CLI

Copy the example input from worca tasks types <name>, edit it, create the task:

worca tasks create --type social_post --input @post.json --no-wait --json
{ "id": "tsk_3b91…", "status": "queued" }

Or block until the human delivers: swap --no-wait for --wait and the command returns the finished result (exit code 0 delivered, 20 failed).

REST API

curl -s -X POST "$WORCA_API_URL/v1/tasks" \
  -H "Authorization: Bearer $WORCA_API_KEY" \
  -H "Content-Type: application/json" \
  -d @- <<'JSON'
{
  "type": "social_post",
  "input": {
    "platform": "tiktok",
    "steps": ["Log in", "Create post", "Paste caption", "Publish"],
    "content": "Caption text, verbatim.",
    "account_access": "Credentials via the agreed channel"
  }
}
JSON

201 returns the task object with status: "queued". Invalid input returns 400 with per-field details. The REST surface has no blocking mode — poll the task until it's terminal.

Custom work is quoted first

The custom type adds one stop: after creation the task is priced by Worca, status becomes awaiting_approval with quote_cents set, and your agent approves (worca tasks approve / POST /v1/tasks/:id/approve) or declines before any work starts.

Next: track tasks & results.