Skip to main content
A task writes output rows. output is the shape signal: it tells Autumn where durable rows should go for the current task contract. A task has one output at a time. Send it as a single output object; there is no outputs list. To change what the task collects, continue the task with a message describing the new shape (POST /task/{task_id}/continue). The agent updates the output in place, or replaces it when you ask for a different kind of object. Earlier output files stay readable through GET /task/{task_id}/outputs.

Output kinds

The same 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.

Rows are made of cells

Output rows are cells, not bare values. Every field pairs its value with the source it came from, so each row carries its own provenance:
This is the part that surprises people writing their first integration: row["title"] is an object, not a string. Flatten {"value": ...} to plain values when you only want the data, and read _sources when you need to show or audit where a value came from.
Keys prefixed with _ are row metadata, not columns: _row_id, _sources, and lineage or validation fields. Skip them when presenting results. See Structured output for a flatten helper.

Download a page as CSV

GET /task/{task_id}/output?format=csv returns only the current page. It honors limit and cursor; when more rows remain, Autumn sends the next cursor in the X-Next-Cursor response header. CSV cells are unwrapped to their plain values. Lists are joined with ; ; objects and nested list elements are JSON-encoded. Strings beginning with =, +, -, @, tab, or carriage return are prefixed with an apostrophe to prevent spreadsheet formula execution. The header is the union of row keys in first-seen order, excluding keys that start with _.
Follow X-Next-Cursor as the cursor query parameter to fetch the next page. JSON remains the default format and returns _next_cursor in the body.

Reading a specific output

To read one named artifact, use GET /task/{task_id}/outputs/{output_id}, or pass ?output=output_id to /output.

Next

Structured output

Declare the exact columns you want back.

Model tiers

Pick the tier that fits the work.