Skip to main content
POST
The task shares the project’s files and starts in idle. It stays idle until you send the first message with POST /tasks/{id}/messages, which moves it to running. Read its status with GET /tasks/{id} and stop it with POST /tasks/{id}/cancel. model picks the tier the agent runs on. It is fixed when the task is created and cannot be changed afterwards, so start a new task to work on a different tier. Omit it to take the default. Pass initial_messages to skip that second call: the messages are delivered to the task in the order you list them and the agent starts on the last one, reading the ones before it as the conversation so far. The task comes back as running.

Authorizations

Authorization
string
header
required

Requires an API key. See the Authentication guide.

Body

application/json
project_id
string
required
title
string | null
initial_messages
InitialMessage · object[]
Maximum array length: 20
model
enum<string> | null

Model tier for this task: standard (the default balance of speed and capability), fast (lower latency on a lighter model), or max (the highest-capability model).

Available options:
standard,
fast,
max
disable_fallbacks
boolean
default:false

Fail the task instead of switching to a fallback model or provider.

plan_mode
boolean
default:false
auto_mode
boolean
default:false

Response

201 - application/json

Task created.

id
string
required
created_at
string<date-time>
required
status
enum<string>
required
Available options:
idle,
running,
completed,
cancelled,
failed
type
string
default:task
Allowed value: "task"
project_id
string | null
title
string | null
platform
enum<string>
default:api
Available options:
api,
mcp,
web,
desktop,
mobile
reviews
TaskScientificReview · object[] | null