---
title: "Add a stage to a deal pipeline"
method: POST
path: "/pipelines/{id}/stages"
tags: ["Reference Data"]
---

# Add a stage to a deal pipeline

`POST /pipelines/{id}/stages`

Adds a new stage to an existing pipeline. Returns the created stage with its ID (dps_).

## Path parameters

- `id` string, required

## Request body

- PipelineStageInput
  - `name` string, required — Stage name
  - `position` number, required — Display order in the pipeline (lower comes first)
  - `probability` number — Win probability percentage (0-100). Defaults to 0.
  - `rottingInDays` number — Days a deal can sit in this stage before it is flagged as rotting. Defaults to 0 (disabled).
  - `type` 'ACTIVE' | 'WON' | 'LOST' — Stage type. Defaults to ACTIVE. A pipeline must have at least one of each.

## Response `200`

OK

- PipelineStage
  - `id` string, required — Pipeline stage ID (dps_ prefix)
  - `name` string, required — Stage name
  - `position` number, required — Display order in the pipeline
  - `probability` number, required — Win probability percentage
  - `type` 'ACTIVE' | 'WON' | 'LOST', required — Stage type. Moving a deal to a WON or LOST stage updates deal status.

## Other responses

- `400` — Validation error or bad request
- `401` — Missing or invalid API key
- `403` — Insufficient permission
- `404` — Resource not found
- `429` — Rate limit exceeded

---

[API](https://skmtc.dev/heffl/apis/heffl-api-v2-beta.md) · [All operations](https://skmtc.dev/heffl/apis/heffl-api-v2-beta/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/heffl/heffl-api-v2-beta/revisions/27006cfef4d8/schema)
