Project milestones

Create project milestone

Create a project milestone. project_id must be provided to identify the project the milestone belongs to — either as a top-level body field (shown here) or as a property of the nested project_milestone object. Use POST /projects/{project_id}/project_milestones if you prefer to pass the project via the URL.

post/project_milestones

Request

  • Base URL: https://api.pipelinecrm.com/api/v3
  • URL: https://api.pipelinecrm.com/api/v3/project_milestones
  • Auth: one of:
    • HTTP bearer
    • HTTP bearer and API key in header app-key
    • API key in query parameter api_key and API key in query parameter app_key

Request body

project_idinteger required

The ID of the project this milestone belongs to

Example request

{
  "project_id": 1,
  "project_milestone": {
    "created_at": "2026-09-01 14:22:07",
    "updated_at": "2026-09-01 14:22:07",
    "name": "Phase 1 - Discovery",
    "project_milestone_status_id": 1,
    "start_date": "2025-01-15",
    "end_date": "2025-02-28",
    "milestone_tasks_attributes": [
      {
        "name": "Research competitors",
        "due_date": "2025-01-20",
        "owner_id": 13473
      }
    ],
    "milestone_events_attributes": [
      {
        "name": "Kickoff meeting",
        "start_time_date": "2025-01-16",
        "start_time_time": "09:00",
        "end_time_date": "2025-01-16",
        "end_time_time": "10:00",
        "owner_id": 13473
      }
    ]
  }
}

Response

Successful Response

idinteger

Unique identifier

project_idinteger

The ID of the parent project. Read-only — set by the URL or by project_id in the create request body.

created_by_user_idinteger nullable

The ID of the user who created this milestone

project_namestring

The name of the parent project

created_atstring

Timestamp when the record was created (time zone in user's time zone).

updated_atstring

Timestamp when the record was last touched (time zone in user's time zone).

namestring

The name of the milestone. Must be unique within the project.

project_milestone_status_idinteger

The ID of the project milestone status. Defaults to the "Not Started" status if not provided.

start_datestring nullable

The start date of the milestone (YYYY-MM-DD format)

end_datestring nullable

The end date of the milestone (YYYY-MM-DD format). Must be after start_date.

Example response

{
  "id": 1,
  "project_id": 1,
  "created_by_user_id": 13473,
  "project_name": "Website Redesign",
  "created_by_user": {
    "id": 13473,
    "first_name": "John",
    "last_name": "Smith"
  },
  "status": {
    "id": 1,
    "name": "Not Started",
    "hex_color": "#9CA3AF",
    "status_type": "not_started"
  },
  "project": {
    "id": 1,
    "name": "Website Redesign",
    "description": "Complete redesign of the company website",
    "status": "open",
    "start_date": "2025-01-15",
    "end_date": "2025-06-30",
    "owner_id": 13473,
    "owner": {
      "id": 13473,
      "first_name": "John",
      "last_name": "Smith",
      "full_name": "John Smith"
    }
  },
  "milestone_tasks": [
    {
      "id": 1,
      "type": "CalendarTask",
      "name": "Research competitors",
      "due_date": "2025-01-20",
      "owner_id": 13473,
      "owner": {
        "id": 13473,
        "full_name": "John Smith"
      }
    }
  ],
  "milestone_events": [
    {
      "id": 2,
      "type": "CalendarEvent",
      "name": "Kickoff meeting",
      "start_time": "2025-01-16 09:00:00",
      "end_time": "2025-01-16 10:00:00",
      "start_time_date": "2025-01-16",
      "start_time_time": "09:00",
      "end_time_date": "2025-01-16",
      "end_time_time": "10:00",
      "owner_id": 13473,
      "owner": {
        "id": 13473,
        "full_name": "John Smith"
      }
    }
  ],
  "created_at": "2026-09-01 14:22:07",
  "updated_at": "2026-09-01 14:22:07",
  "name": "Phase 1 - Discovery",
  "project_milestone_status_id": 1,
  "start_date": "2025-01-15",
  "end_date": "2025-02-28",
  "milestone_tasks_attributes": [
    {
      "name": "Research competitors",
      "due_date": "2025-01-20",
      "owner_id": 13473
    }
  ],
  "milestone_events_attributes": [
    {
      "name": "Kickoff meeting",
      "start_time_date": "2025-01-16",
      "start_time_time": "09:00",
      "end_time_date": "2025-01-16",
      "end_time_time": "10:00",
      "owner_id": 13473
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.