Skip to main content
The Task API is the canonical HTTP surface for Autumn. Every task is backed by one sandbox and one Beanstalk agent.
Autumn also accepts Authorization: Bearer YOUR_AUTUMN_API_KEY. Use GET /task/metaprompt when another agent or app needs to generate a clean task.json-style spec before calling /task/start.

Core Ideas

One task

Store the returned task_id. It is the handle for status, streaming, continuation, files, and output.

Two start modes

Start from a prompt with /task, or start from a task.json-style spec with /task/start.

One planning flag

clarify:false plans without asking. clarify:true allows a blocking planning question.

Request Fields

Use clarify:false for API automations. Use clarify:true only when the caller is present and a wrong assumption would be more expensive than a short question.

Start From A Prompt

Use this when your app has natural language and wants Autumn to infer the task shape.
Set clarify:true when you want Autumn to pause in plan mode if the task has a genuinely blocking ambiguity.

Model Tiers

Every task runs on one model tier, chosen at start with version and fixed for the life of the task.
Reach for scout on bounded, well-specified work where latency matters more than depth, and stay on ranger for open-ended research. Read the tier back from GET /task/{task_id} as tier. version only applies to the start routes. /task/{task_id}/continue and /task/{task_id}/execute stay on the tier the task started with. Any value other than ranger or scout is rejected with 403 and {"error": "forbidden"}: pinned selectors such as scout@<build_id> address internal builds and are not available on customer accounts.

Start From A Task Spec

Use this when your app already knows the task shape. The prompt field is optional and is appended to the task brief before the agent starts. Choose /task/start when you have enough structure to avoid schema inference:
  • enrichment jobs with known people or companies
  • workflows generated by your own app
  • repeatable research jobs with a known output schema
  • tasks restored from a saved task.json
Choose /task when you only have a user request and want Beanstalk to infer the task contract.
With clarify:true, Autumn initializes the task in plan mode and can ask before execution.

Outputs

output is the shape signal. It tells Beanstalk where durable rows should go for the current task contract. Keep it singular; if the desired artifact changes later, continue in plan mode and replan the task before executing again. The same Beanstalk agent loop plans, executes, writes files, and streams events for every output kind. GET /task/{task_id}/output returns the task output rows, and GET /task/{task_id}/outputs lists known row artifacts for readback and compatibility.

Stream Events

Use /stream variants for the active turn, or subscribe to an existing task:
Useful event names: GET /task/{task_id}/stream is task-specific. It only streams events for that task_id. If the current turn is already active, recent events are replayed. When the turn emits done, the stream can close; reconnect later only if you need the next active turn. Polling remains supported with GET /task/{task_id} and GET /task/{task_id}/output. To read a specific output, use GET /task/{task_id}/outputs/{output_id} or pass ?output=output_id to /output.

Continue A Task

Send new instructions to the same sandboxed task. Use this for refinements, more rows, fixes, or follow-up constraints.
Streaming form:

Read Status And Output

Status responses include the task phase/status, credit usage, compatibility, and last event metadata. Output responses return rows from the active output file. Internal lineage and validation metadata may exist in storage, but downloads and UI exports should not expose internal fields unless explicitly requested by an internal tool.

Stop

Stop a task when the caller explicitly cancels it.

Attach A CSV Or Text File

Autumn accepts .csv, .txt, .md, and .markdown uploads up to 10 MB and 10,000 rows. Uploading is three calls: create a task to attach to, presign, then validate.
Send the PUT to upload_url without X-API-Key or Authorization. The presigned URL carries its own signature and an extra auth header will be rejected.
/validate-upload converts a CSV to task-local JSONL and returns the filename to pass as input_files:
Autumn reserves _row_id for its own row identity. A CSV that already has a _row_id column keeps its values under _row_id_2. Then reference the file when you start the task:
/upload-url is rate limited per account. Exceeding it returns 429 with a message; retry after a short pause.

Route Map