---
title: "List Insight Workflow Files"
method: GET
path: "/api/v1/insights/workflows/{workflow_id}/files"
tags: ["insights.workflows"]
---

# List Insight Workflow Files

`GET /api/v1/insights/workflows/{workflow_id}/files`

## Request

- Base URL: `https://api.syllable.cloud`
- URL: `https://api.syllable.cloud/api/v1/insights/workflows/{workflow_id}/files`
- Auth: API key in header `Syllable-API-Key`

List the uploaded files under a workflow, one row per file, with each
tool's results grouped into a ``results`` dict keyed by tool name.

Files come from the workflow's execution queue, so pending, processing and
failed files show up too, not just completed ones. A file that was queued
more than once appears only once. Insights reused from another workflow
still show up here.

## Path parameters

- `workflow_id` integer, required

## Query parameters

- `page` integer, nullable: The page number from which to start (0-based)
- `limit` integer: The maximum number of items to return
- `search_fields` string[]: String names of fields to search. Correspond by index to search field values
- `search_field_values` string[]: Values of fields to search. Correspond by index to search fields. Unless field name contains "list", an individual search field value cannot be a list
- `order_by` 'upload_file_id' | 'status' | 'started_at' | 'created_at', nullable: The field whose value should be used to order the results
- `order_by_direction` 'asc' | 'desc': The direction in which to order list results, either ascending or descending.
- `start_datetime` string, nullable: The start datetime for filtering results
- `end_datetime` string, nullable: The end datetime for filtering results

## Response `200`

Successful Response

- ListResponseWorkflowFileRow
  - `items` WorkflowFileRow[], required: List of items returned from the query
    - `upload_file_id` integer, required: Upload file ID
    - `filename` string, nullable: Name of the uploaded file; null only when the file is entirely deleted
    - `analyzed_at` string, date-time, nullable: When the workflow execution started processing this file; null while the row is still PENDING
    - `queued_at` string, date-time, required: When the file was queued for this workflow
    - `status` string, required: Execution status of this file under the workflow
    - `error_message` string, nullable: Error message from the last processing attempt, if any
    - `results` object: Results per tool, keyed by tool name then insight_key. Each insight_key holds a list of values: a single value comes back as a one-item list.
  - `page` integer, required: The page number of the results (0-based)
  - `page_size` integer, required: The number of items returned per page
  - `total_pages` integer, nullable: The total number of pages of results given the indicated page size
  - `total_count` integer, nullable: The total number of items returned from the query

## Other responses

- `422`: Validation Error

## Changes

> 279 revisions in range; 1 not diffed.

- **2026-09-15** `b8d32437e584`: 2 info
  - added the enum value `filename` to the property `items/` of the `query` request parameter `search_fields`
  - added the enum value `status` to the property `items/` of the `query` request parameter `search_fields`
- **2026-09-15** `a800cf78dd72`: 1 info
  - added the optional property `items/items/filename` to the response with the `200` status
- **2026-09-09** `69c0592019ec`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/asksyllable/apis/syllablesdk/changes/api/v1/insights/workflows/:workflow_id/files/get.md)

---

[API](https://skmtc.dev/asksyllable/apis/syllablesdk.md) - [All operations](https://skmtc.dev/asksyllable/apis/syllablesdk/llms.txt) - [OpenAPI document](https://skmtc.dev/asksyllable/apis/syllablesdk/revisions/879e5c81a183?raw)
