---
title: "Add an epic"
method: POST
path: "/projects/{project}/epics"
tags: ["Planning"]
---

# Add an epic

`POST /projects/{project}/epics`

## Request

- Base URL: `https://api.yokka.ai/api/v1`
- URL: `https://api.yokka.ai/api/v1/projects/{project}/epics`
- Auth: HTTP bearer

Create an epic: a larger piece of work (a feature, a migration) whose cards can sit in any swimlane. Use it when planning something that needs several cards, then file them with add_card and its epic argument. Check get_board first so you don't duplicate an existing epic.

Needs a read-and-write token. Same as the MCP tool `add_epic`.

## Path parameters

- `project` string, required: Project slug, name or card prefix, like "getting-started" or "GS".

## Headers

- `X-Client-Name` string
- `Idempotency-Key` string

## Request body

- object
  - `name` string, required: Short name, like "Checkout v2".
  - `brief` string: Optional markdown: the goal and what done means.

## Response `201`

Created. The tool's result.

- object
  - `epic` string, required

## Other responses

- `400`: The arguments aren't valid, or the change isn't possible as asked.
- `401`: The token is missing, invalid, revoked or expired.
- `403`: The token can't do this, or a plan or board limit was reached.
- `404`: Something it names wasn't found, or isn't visible to this token.
- `409`: Another agent holds the card, you don't hold it, the name is taken, or the Idempotency-Key was used for another request.
- `413`: The request body is too large.
- `429`: Too many calls: retry after `Retry-After` seconds.

---

[API](https://skmtc.dev/yokka/apis/yokka-rest-api.md) · [All operations](https://skmtc.dev/yokka/apis/yokka-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/yokka/apis/yokka-rest-api/revisions/19083353485e?raw)
