---
title: "Get the delivery report"
method: GET
path: "/v1/flows/{flowId}/report"
tags: ["flows"]
---

# Get the delivery report

`GET /v1/flows/{flowId}/report`

## Request

- Base URL: `https://api.flowral.app`
- URL: `https://api.flowral.app/v1/flows/{flowId}/report`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (client credentials, token URL `https://api.flowral.app/v1/oauth/token`, scopes: `flows:read`)

Completion, effort remaining, workload per member, the tasks blocking the most work, and what is unestimated or orphaned. The same figures the Reporting view shows.

## Path parameters

- `flowId` string, required

## Response `200`

SUCCESS

- Report: The delivery health of a flow: what is done, what is left, what is holding it up, and who is carrying it.
  - `flowId` string, required
  - `flowName` string
  - `completion` number, required: 0–1.
  - `tasksTotal` integer, required
  - `tasksDone` integer
  - `tasksReady` integer
  - `tasksBlocked` integer
  - `hoursEstimated` number, nullable
  - `hoursRemaining` number, nullable
  - `unestimatedTasks` string[]: Task ids with no estimate — the reason a projection is soft.
  - `orphanedTasks` string[]: Tasks nothing depends on and that depend on nothing.
  - `workload` object[]
    - `memberId` string
    - `name` string
    - `openTasks` integer
    - `hoursRemaining` number, nullable
  - `topBlockers` object[]
    - `taskId` string
    - `taskName` string
    - `blocking` integer

## Other responses

- `401`: UNAUTHORIZED
- `403`: FORBIDDEN · PLAN_REQUIRED · INSUFFICIENT_SCOPE
- `404`: NOT_FOUND
- `429`: RATE_LIMITED

---

[API](https://skmtc.dev/flowral/apis/flowral-api.md) · [All operations](https://skmtc.dev/flowral/apis/flowral-api/llms.txt) · [OpenAPI document](https://skmtc.dev/flowral/apis/flowral-api/revisions/6cd2337b682c?raw)
