nodestash
Pipelines

Delete a pipeline stage

Permanently deletes a stage from a pipeline. Cannot delete the last `won` or `lost` stage — every pipeline must have at least one of each. Cannot delete a stage that still has deals — move deals to another stage first.

DELETE
/pipelines/{id}/stages/{stageId}
AuthorizationBearer <token>

API key from your nodestash dashboard. Pass as a Bearer token in the Authorization header.

In: header

Path Parameters

id*string

Pipeline ID (prefixed with pp_).

Match^pp_
stageId*string

Pipeline stage ID (prefixed with ps_).

Match^ps_

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X DELETE "https://api.nodestash.io/v1/pipelines/pp_8rT4mK9pQsVwXyZaB2cD4/stages/ps_4kT9mN2qRsYvAzCeB2cD4"
Empty
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Request validation failed",
    "details": [
      {
        "field": "email",
        "message": "Invalid email"
      }
    ]
  },
  "meta": {
    "request_id": "req_abc123def456"
  }
}
{
  "error": {
    "code": "INVALID_API_KEY",
    "message": "Missing or invalid Authorization header"
  },
  "meta": {
    "request_id": "req_abc123def456"
  }
}
{
  "error": {
    "code": "NOT_FOUND",
    "message": "Contact not found"
  },
  "meta": {
    "request_id": "req_abc123def456"
  }
}
{
  "error": {
    "code": "CONFLICT",
    "message": "A contact with email 'jane@acme.com' already exists in this workspace"
  },
  "meta": {
    "request_id": "req_abc123def456"
  }
}
{
  "error": {
    "code": "RATE_LIMITED",
    "message": "Rate limit exceeded"
  },
  "meta": {
    "request_id": "req_abc123def456"
  }
}