Delete a stage
Delete a stage. Remaining stages are renumbered.
DELETE
https://api.centerfy.ai/webhooks/inbound/pipelines/:id/stages/:stageId Headers
| Header | Required | Value | Description |
|---|---|---|---|
x-api-key | Yes | your sub-account API key (cfy_…) | Authenticates the request; or use Authorization: Bearer <key>. |
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | Yes | The pipeline id. |
stageId | string (uuid) | Yes | The stage id (must belong to the pipeline). |
Query parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
move_to_stage_id | string (uuid) | No | — | Required when the stage still holds opportunities: they are moved to this stage (same pipeline) before the stage is deleted. |
Example
curl -X DELETE "https://api.centerfy.ai/webhooks/inbound/pipelines/{id}/stages/{stageId}" \
-H "x-api-key: $CENTERFY_API_KEY" import { CenterfyClient } from "@centerfy/sdk";
const centerfy = new CenterfyClient({ apiKey: process.env.CENTERFY_API_KEY! });
const result = await centerfy.pipelines.deleteStage("<pipelineId>", "<stageId>");
console.log(result); centerfy pipelines delete-stage <pipelineId> <stageId> MCP tool: centerfy_pipelines_delete_stage (see MCP server)
Response
{
"status": "success",
"deleted": true,
"stage_id": "2d8b4e30-5c6f-4071-8b2c-3d4e5f6a7b82",
"opportunities_moved": 3
}Errors
409— with opportunity_count while the stage holds opportunities and move_to_stage_id is missing.400— if move_to_stage_id is the same stage.