## Create a task `client.tasks.create(TaskCreateParamsbody, RequestOptionsoptions?): Worker` **post** `/api/tasks` Run a new task against an existing worker and wait for the result. Send a `taskId` of a prior task to add a follow-up turn instead of starting a fresh task. Send `multipart/form-data` to attach files; the bytes are bootstrapped into the worker's workspace before the task starts. The task runs to completion on the server even if the connection drops; subscribe to task webhooks for long-running tasks. ### Parameters - `body: TaskCreateParams` - `input: string` - `budget?: "low" | "standard" | "high" | "unlimited"` Compute budget the worker is allowed to spend on the task. Defaults to `standard`. - `"low"` - `"standard"` - `"high"` - `"unlimited"` - `taskId?: string` Optional client-provided task id. Reuse this id to add turns to an existing task. - `workerId?: string` Worker id the task belongs to. If omitted, a new worker is created on-the-fly using the input as instructions. ### Returns - `Worker` - `id: string` - `created_at: number | null` - `error: unknown` - `files: Array` - `filename: string | null` - `mediaType: string` - `url: string` - `size?: number` - `incomplete_details: unknown` - `messages: Array` - `metadata: Record` - `object: "worker"` - `"worker"` - `output: Array` - `id: string` - `content: Array` - `text: string` - `type: "output_text"` - `"output_text"` - `role: "assistant"` - `"assistant"` - `status: "completed"` - `"completed"` - `type: "message"` - `"message"` - `output_text: string` - `running: boolean` - `sources: Array` - `id: string` - `title: string | null` - `type: "url"` - `"url"` - `url: string` - `status: "running" | "completed" | "pending"` - `"running"` - `"completed"` - `"pending"` - `structured_output: Record | null` - `url: string` Web URL of the worker in the Handinger dashboard. - `usage?: Usage` - `durationMs?: number` ### Example ```typescript import Handinger from '@ramensoft/handinger'; const client = new Handinger({ apiKey: process.env['HANDINGER_API_KEY'], // This is the default and can be omitted }); const worker = await client.tasks.create({ input: "What's the weather today in Barcelona?", workerId: 'wrk_vk81XUHKHG-qr4', }); console.log(worker.id); ``` #### Response ```json { "id": "id", "created_at": 0, "error": null, "files": [ { "filename": "filename", "mediaType": "mediaType", "url": "https://example.com", "size": 0 } ], "incomplete_details": null, "messages": [ {} ], "metadata": { "foo": "bar" }, "object": "worker", "output": [ { "id": "id", "content": [ { "text": "text", "type": "output_text" } ], "role": "assistant", "status": "completed", "type": "message" } ], "output_text": "output_text", "running": true, "sources": [ { "id": "id", "title": "title", "type": "url", "url": "url" } ], "status": "running", "structured_output": { "foo": "bar" }, "url": "https://v3.handinger.com/worker/wrk_vk81XUHKHG-qr4", "usage": { "durationMs": 0 } } ```