---
title: "Autocomplete project milestones"
method: GET
path: "/project_milestones/autocomplete"
tags: ["Project milestones"]
---

# Autocomplete project milestones

`GET /project_milestones/autocomplete`

## Request

- Base URL: `https://api.pipelinecrm.com/api/v3`
- URL: `https://api.pipelinecrm.com/api/v3/project_milestones/autocomplete`
- 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`

Search for milestones by name. Returns a list of milestones matching the query string.
If the query string is blank, returns an empty array.

## Query parameters

- `q` string

## Response `200`

Successful Response

- ProjectMilestoneAll[]
  - `id` integer: Unique identifier
  - `project_id` integer: The ID of the parent [project](#tag/projects). Read-only — set by the URL or by `project_id` in the create request body.
  - `created_by_user_id` integer, nullable: The ID of the [user](#tag/users) who created this milestone
  - `project_name` string: The name of the parent project
  - `created_by_user` object, nullable: A convenience object for the [user](#tag/users) who created this milestone
    - `id` integer
    - `first_name` string
    - `last_name` string
  - `status` object: The [milestone status](#tag/project-milestone-statuses) of this milestone
    - `id` integer
    - `name` string
    - `hex_color` string
    - `status_type` 'custom' | 'not_started' | 'in_progress' | 'blocked' | 'done'
  - `project` object: A convenience object for the parent [project](#tag/projects)
    - `id` integer
    - `name` string
    - `description` string
    - `status` 'open' | 'closed'
    - `start_date` string
    - `end_date` string
    - `owner_id` integer
    - `owner` object: The project owner
      - `id` integer
      - `first_name` string
      - `last_name` string
      - `full_name` string
  - `milestone_tasks` object[]: Tasks associated with this milestone
    - `id` integer
    - `type` string: The calendar entry type (always CalendarTask for tasks)
    - `name` string
    - `due_date` string
    - `start_time` string, nullable: Always null for tasks
    - `end_time` string, nullable: Always null for tasks
    - `complete` boolean
    - `owner_id` integer
    - `owner` object
      - `id` integer
      - `full_name` string
  - `milestone_events` object[]: Events associated with this milestone
    - `id` integer
    - `type` string: The calendar entry type (always CalendarEvent for events)
    - `name` string
    - `start_time` string: Combined start datetime
    - `end_time` string: Combined end datetime
    - `start_time_date` string: Date portion of start time (for form editing)
    - `start_time_time` string: Time portion of start time (for form editing)
    - `end_time_date` string: Date portion of end time (for form editing)
    - `end_time_time` string: Time portion of end time (for form editing)
    - `all_day` boolean
    - `complete` boolean
    - `owner_id` integer
    - `owner` object
      - `id` integer
      - `full_name` string
  - `created_at` string: Timestamp when the record was created (time zone in user's time zone).
  - `updated_at` string: Timestamp when the record was last touched (time zone in user's time zone).
  - `name` string: The name of the milestone. Must be unique within the project.
  - `project_milestone_status_id` integer: The ID of the [project milestone status](#tag/project-milestone-statuses). Defaults to the "Not Started" status if not provided.
  - `start_date` string, nullable: The start date of the milestone (YYYY-MM-DD format)
  - `end_date` string, nullable: The end date of the milestone (YYYY-MM-DD format). Must be after start_date.
  - `milestone_tasks_attributes` object[]: Nested task attributes for creating/updating tasks inline with the milestone
    - `id` integer: Task ID (required for updates, omit for new tasks)
    - `name` string
    - `due_date` string
    - `owner_id` integer: The ID of the [user](#tag/users) who owns this task
    - `_destroy` boolean: Set to true to remove this task
  - `milestone_events_attributes` object[]: Nested event attributes for creating/updating events inline with the milestone
    - `id` integer: Event ID (required for updates, omit for new events)
    - `name` string
    - `start_time_date` string: The date portion of the event start time
    - `start_time_time` string: The time portion of the event start time (HH:MM format)
    - `end_time_date` string: The date portion of the event end time
    - `end_time_time` string: The time portion of the event end time (HH:MM format)
    - `all_day` boolean: Whether this is an all-day event
    - `owner_id` integer: The ID of the [user](#tag/users) who owns this event
    - `_destroy` boolean: Set to true to remove this event

## Other responses

- `401`: Missing, invalid, expired or revoked credentials.

---

[API](https://skmtc.dev/pipelinecrm/apis/pipeline-crm-api.md) · [All operations](https://skmtc.dev/pipelinecrm/apis/pipeline-crm-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pipelinecrm/apis/pipeline-crm-api/revisions/53ebfcc83597?raw)
