Create a pipeline
Create a pipeline, optionally with its stages in display order. Stage colours are assigned automatically, the same way the app does.
POST
https://api.centerfy.ai/webhooks/inbound/pipelines Headers
| Header | Required | Value | Description |
|---|---|---|---|
x-api-key | Yes | your sub-account API key (cfy_…) | Authenticates the request; or use Authorization: Bearer <key>. |
Body parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
name | string | Yes | — | Pipeline name. |
stages | string[] | No | — | Stage names in display order (max 50). |
Request body
{
"name": "Sales",
"stages": [
"New",
"Won"
]
}Example
curl -X POST "https://api.centerfy.ai/webhooks/inbound/pipelines" \
-H "x-api-key: $CENTERFY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Sales",
"stages": [
"New",
"Won"
]
}' import { CenterfyClient } from "@centerfy/sdk";
const centerfy = new CenterfyClient({ apiKey: process.env.CENTERFY_API_KEY! });
const result = await centerfy.pipelines.create({
"name": "Sales",
"stages": [
"New",
"Won"
]
});
console.log(result); centerfy pipelines create '{"name":"Sales","stages":["New","Won"]}' MCP tool: centerfy_pipelines_create (see MCP server)
Response
{
"status": "success",
"pipeline": {
"id": "7d2e9f10-4b3c-4a1d-9e8f-2a3b4c5d6e7f",
"name": "Sales",
"created_at": "2026-10-01T10:00:00.000Z",
"updated_at": "2026-10-01T10:00:00.000Z",
"stages": [
{
"id": "0b6f2c1e-3a4d-4e5f-8a9b-1c2d3e4f5a60",
"pipeline_id": "7d2e9f10-4b3c-4a1d-9e8f-2a3b4c5d6e7f",
"name": "New",
"position": 0,
"color": "#3B82F6",
"created_at": "2026-10-01T10:00:00.000Z",
"updated_at": "2026-10-01T10:00:00.000Z"
},
{
"id": "1c7a3d2f-4b5e-4f60-9a1b-2c3d4e5f6a71",
"pipeline_id": "7d2e9f10-4b3c-4a1d-9e8f-2a3b4c5d6e7f",
"name": "Won",
"position": 1,
"color": "#8B5CF6",
"created_at": "2026-10-01T10:00:00.000Z",
"updated_at": "2026-10-01T10:00:00.000Z"
}
]
}
}Errors
400— if name is empty.
Notes
Returns 201. If a stage can’t be created the pipeline is not left behind.