---
title: "List an Epic's phases"
method: GET
path: "/epics/{epicId}/phases"
tags: ["Phases"]
---

# List an Epic's phases

`GET /epics/{epicId}/phases`

## Request

- Base URL: `https://app.pencil.ink/api/v1`
- URL: `https://app.pencil.ink/api/v1/epics/{epicId}/phases`
- Auth: HTTP bearer

## Response `200`

The Epic's phases in execution order.

- object
  - `data` Phase[]
    - `id` string, required
    - `globalId` string, required
    - `epicId` string, required
    - `name` string, required
    - `description` string, nullable
    - `position` integer, required
    - `gateMode` 'advisory' | 'strict', required
    - `workState` 'empty' | 'planned' | 'active' | 'done', required
    - `gateState` 'open' | 'locked' | 'overridden', required
    - `blockingPhase` object, nullable
      - `id` string
      - `globalId` string
      - `name` string
      - `remainingTaskCount` integer
    - `taskCount` integer, required
    - `completedTaskCount` integer, required
    - `remainingTaskCount` integer, required
    - `targetDate` integer, nullable: Epoch ms.
    - `docUrl` string, uri, nullable
    - `ownerId` string, nullable
    - `gateOverride` object, nullable
      - `at` integer: Epoch ms.
      - `byUserId` string, nullable
      - `byAgent` string, nullable
      - `reason` string, nullable
    - `createdAt` integer: Epoch ms.
    - `updatedAt` integer: Epoch ms.

## Other responses

- `401`: Missing or invalid API key (`unauthorized`).
- `404`: Resource not found in this org (`not_found`).

---

[API](https://skmtc.dev/pencil/apis/pencil-public-api.md) · [All operations](https://skmtc.dev/pencil/apis/pencil-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pencil/apis/pencil-public-api/revisions/2b842698b76d?raw)
