> ## Documentation Index
> Fetch the complete documentation index at: https://eomer.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Forecast output

> The columns, timestamp format and download formats of a completed forecast job.

`GET /jobs/{job_id}/download` returns the forecast as a table with one row per
series and forecast step.

## Columns

| Column                 | Type      | Meaning                                                                         |
| ---------------------- | --------- | ------------------------------------------------------------------------------- |
| `item_id`              | string    | The series identifier from your input                                           |
| `timestamp`            | timestamp | The forecasted step                                                             |
| `mean`                 | float     | Point forecast                                                                  |
| `0.1`, `0.5`, `0.9`, … | float     | One column per requested quantile level (`quantile_levels`), named by the level |

Columns appear in that order. If you did not pass `quantile_levels`, the
model's default levels are included.

## Rendering options

Two optional form fields on `POST /forecast` (and JSON fields on the
storage-object and batch variants) change how the table is rendered.
Defaults preserve the output exactly as it has always been produced.

| Field                   | Values              | Default  | Effect                                                                                                               |
| ----------------------- | ------------------- | -------- | -------------------------------------------------------------------------------------------------------------------- |
| `timestamp_format`      | `pandas`, `iso8601` | `pandas` | `pandas` renders `2026-01-01 00:00:00`; `iso8601` renders `2026-01-01T00:00:00+00:00` (timestamps are UTC)           |
| `quantile_column_style` | `raw`, `prefixed`   | `raw`    | `raw` names quantile columns `0.1`; `prefixed` names them `q0.1` (friendlier for tools that dislike numeric headers) |

## Download formats

`GET /jobs/{job_id}/download?format=…`

| `format`  | Response                                                                                                                                                                |
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| omitted   | The default: a `307` redirect to a short-lived signed URL when the result is one published file, otherwise the CSV itself, or a zip when the job produced several files |
| `csv`     | The CSV streamed through the API (`text/csv`)                                                                                                                           |
| `parquet` | The same table as Parquet (`application/octet-stream`)                                                                                                                  |
| `zip`     | Every output file bundled as `results_{job_id}.zip`                                                                                                                     |
| `presign` | Always a `307` redirect to a signed URL (single-file results only)                                                                                                      |

An unsupported combination — for example `presign` on a multi-file result —
is a `400` with `error_code: validation_error` and a `detail` naming the
format to use instead.
