---
title: "GET /public/chat/{chat_session_id}/latest-workflow"
method: GET
path: "/public/chat/{chat_session_id}/latest-workflow"
tags: ["public_sessions"]
---

# GET /public/chat/{chat_session_id}/latest-workflow

`GET /public/chat/{chat_session_id}/latest-workflow`

## Path parameters

- `chat_session_id` string, uuid, required

## Response `200`

Successfully retrieved latest workflow DAG.

- WorkflowDAG
  - `aborted` boolean, required
  - `dag_ready_at` string, date-time, nullable
  - `dashboard_layout` Dashboard — A page is the top-level container with title/description Can contain multiple dashboards with different datasets
    - `dashboards` DashboardPage[], required — One or more dashboards on this page
      - `components` DashboardComponent[], required — Components (charts) in this dashboard
        - `description` string, nullable — Description (optional, can override viz node's description)
        - `mosaic` MosaicQuerySpec
          - `bin` BinConfig
            - `as` string, required
            - `field` string, required
            - `step` number, double, required
          - `fields` object, required
          - `groupBy` string[], nullable
          - `limit` integer, nullable
          - `orderBy` string, nullable
          - `table` string, nullable — Table name - optional, derived from datasetNodeName in dashboard config
        - `node_name` string, required — Function name of the viz node that outputs the chart spec
        - `span` integer, nullable — Grid span: 1 (quarter), 2 (half), 3 (three-quarters), 4 (full width)
        - `title` string, required — Display title (overrides viz node title)
      - `controls` DashboardControl[], nullable — Control filters (dropdowns, checkboxes, ranges) for this dashboard
        - union
          - object
            - `default_value` string, nullable
            - `field` string, required
            - `id` string, required
            - `label` string, required
            - `options` ControlOption[], required
              - …
            - `type` 'dropdown', required
          - object
            - `default_value` number[], nullable
            - `field` string, required
            - `id` string, required
            - `label` string, required
            - `max` number, double, required
            - `min` number, double, required
            - `step` number, double, nullable
            - `type` 'range', required
          - object
            - `default_value` string[], nullable
            - `field` string, required
            - `id` string, required
            - `label` string, required
            - `options` ControlOption[], required
              - …
            - `type` 'checkbox', required
      - `datasetNodeName` string, nullable — Function name of the node that returns the dataset (DataFrame/Parquet). If None, no cross-filtering is available.
      - `description` string, nullable — Optional description
      - `title` string, required — Title for this dashboard section
    - `description` string, nullable — Optional page description
    - `title` string, required — Page title
  - `edges` WorkflowSessionEdge[], required
    - `created_at` string, date-time, required
    - `id` string, uuid, required
    - `session_id` string, uuid, required
    - `source_node_id` string, uuid, required
    - `target_node_id` string, uuid, required
  - `error` string, nullable
  - `error_traceback` string, nullable
  - `is_ready` boolean, required
  - `nodes` WorkflowSessionNode[], required
    - `code` string, nullable
    - `code_md5_hash` string, required
    - `confirmation_status` string, nullable
    - `connector_id` string, uuid
    - `created_at` string, date-time, nullable
    - `docstring` string, required
    - `error_message` string, nullable
    - `error_traceback` string, nullable
    - `estimated_cost` integer, nullable
    - `execution_status` 'Unexecuted' | 'Success' | 'Failure' | 'Running' | 'Aborted' | 'PendingConfirmation', required
    - `execution_time_ms` integer, nullable
    - `function_name` string, required
    - `id` string, uuid, required
    - `input_row_count` integer, nullable
    - `node_index` integer, required
    - `node_name` string, required
    - `original_node` string, uuid
    - `output_blob_name` string, nullable
    - `output_schema` unknown
    - `progress` unknown
    - `reviewed` boolean, required
    - `session_id` string, uuid, required
    - `updated_at` string, date-time, required
    - `visualization_output` unknown
  - `session_id` string, uuid, required

## Other responses

- `404` — Chat session not found or no workflow sessions.

## Changes

- **2026-01-21** `57ab04a36bcc` — 2 info
  - added `#/components/schemas/Dashboard` to the `dashboard_layout` response property `allOf` list for the response status `200`
  - removed `#/components/schemas/DashboardLayout` from the `dashboard_layout` response property `allOf` list for the response status `200`
- **2026-01-21** `45952f7cb8cb` — 2 info
  - added `#/components/schemas/DashboardLayout` to the `dashboard_layout` response property `allOf` list for the response status `200`
  - removed `#/components/schemas/Dashboard` from the `dashboard_layout` response property `allOf` list for the response status `200`
- **2026-01-20** `f0df1f89b82b` — 2 info
  - added `#/components/schemas/Dashboard` to the `dashboard_layout` response property `allOf` list for the response status `200`
  - removed `#/components/schemas/DashboardLayout` from the `dashboard_layout` response property `allOf` list for the response status `200`

[Change history](https://skmtc.dev/structifyai/apis/structify/changes/public/chat/:chat_session_id/latest-workflow/get.md)

---

[API](https://skmtc.dev/structifyai/apis/structify.md) · [All operations](https://skmtc.dev/structifyai/apis/structify/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/structifyai/structify/revisions/1364930b6980/schema)
