Project milestones API

Use project milestones with the REST API. There’s a separate group milestones API page.

List project milestones

Returns a list of project milestones.

GET /projects/:id/milestones
GET /projects/:id/milestones?iids[]=42
GET /projects/:id/milestones?iids[]=42&iids[]=43
GET /projects/:id/milestones?state=active
GET /projects/:id/milestones?state=closed
GET /projects/:id/milestones?title=1.0
GET /projects/:id/milestones?search=version

Parameters:

AttributeTypeRequiredDescription
idinteger or stringyesThe ID or URL-encoded path of the project owned by the authenticated user
iids[]integer arrayoptionalReturn only the milestones having the given iid (Note: ignored if include_parent_milestones is set as true)
statestringoptionalReturn only active or closed milestones
titlestringoptionalReturn only the milestones having the given title
searchstringoptionalReturn only milestones with a title or description matching the provided string
include_parent_milestonesbooleanoptionalInclude group milestones from parent group and its ancestors. Introduced in GitLab 13.4
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/milestones"

Example Response:

[
  {
    "id": 12,
    "iid": 3,
    "project_id": 16,
    "title": "10.0",
    "description": "Version",
    "due_date": "2013-11-29",
    "start_date": "2013-11-10",
    "state": "active",
    "updated_at": "2013-10-02T09:24:18Z",
    "created_at": "2013-10-02T09:24:18Z",
    "expired": false
  }
]

Get single milestone

Gets a single project milestone.

GET /projects/:id/milestones/:milestone_id

Parameters:

AttributeTypeRequiredDescription
idinteger or stringyesThe ID or URL-encoded path of the project owned by the authenticated user
milestone_idintegeryesThe ID of the project’s milestone

Create new milestone

Creates a new project milestone.

POST /projects/:id/milestones

Parameters:

AttributeTypeRequiredDescription
idinteger or stringyesThe ID or URL-encoded path of the project owned by the authenticated user
titlestringyesThe title of a milestone
descriptionstringnoThe description of the milestone
due_datestringnoThe due date of the milestone
start_datestringnoThe start date of the milestone

Edit milestone

Updates an existing project milestone.

PUT /projects/:id/milestones/:milestone_id

Parameters:

AttributeTypeRequiredDescription
idinteger or stringyesThe ID or URL-encoded path of the project owned by the authenticated user
milestone_idintegeryesThe ID of the project’s milestone
titlestringnoThe title of a milestone
descriptionstringnoThe description of the milestone
due_datestringnoThe due date of the milestone
start_datestringnoThe start date of the milestone
state_eventstringnoThe state event of the milestone (close or activate)

Delete project milestone

Changed the minimum user role from Developer to Reporter in GitLab 15.0.

Only for users with at least the Reporter role in the project.

DELETE /projects/:id/milestones/:milestone_id

Parameters:

AttributeTypeRequiredDescription
idinteger or stringyesThe ID or URL-encoded path of the project owned by the authenticated user
milestone_idintegeryesThe ID of the project’s milestone

Get all issues assigned to a single milestone

Gets all issues assigned to a single project milestone.

GET /projects/:id/milestones/:milestone_id/issues

Parameters:

AttributeTypeRequiredDescription
idinteger or stringyesThe ID or URL-encoded path of the project owned by the authenticated user
milestone_idintegeryesThe ID of the project’s milestone

Get all merge requests assigned to a single milestone

Gets all merge requests assigned to a single project milestone.

GET /projects/:id/milestones/:milestone_id/merge_requests

Parameters:

AttributeTypeRequiredDescription
idinteger or stringyesThe ID or URL-encoded path of the project owned by the authenticated user
milestone_idintegeryesThe ID of the project’s milestone

Promote project milestone to a group milestone

Changed the minimum user role from Developer to Reporter in GitLab 15.0.

Only for users with at least the Reporter role in the group.

POST /projects/:id/milestones/:milestone_id/promote

Parameters:

AttributeTypeRequiredDescription
idinteger or stringyesThe ID or URL-encoded path of the project owned by the authenticated user
milestone_idintegeryesThe ID of the project’s milestone

Get all burndown chart events for a single milestone

Version history
  • Introduced in GitLab 12.1
  • Moved to GitLab Premium in 13.9.

Gets all burndown chart events for a single milestone.

GET /projects/:id/milestones/:milestone_id/burndown_events

Parameters:

AttributeTypeRequiredDescription
idinteger or stringyesThe ID or URL-encoded path of the project owned by the authenticated user
milestone_idintegeryesThe ID of the project’s milestone