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.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 withversion and fixed for the life of the task.
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. Theprompt 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
/task when you only have a user request and want Beanstalk to infer the task contract.
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:
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.Read Status And Output
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.
/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.