Project milestones API

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

Use this API to manage project milestones.

For group milestones, use the group milestones API.

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 GET /projects/:id/milestones?updated_before=2013-10-02T09%3A24%3A18Z GET /projects/:id/milestones?updated_after=2013-10-02T09%3A24%3A18Z

Parameters:

AttributeTypeRequiredDescription
idinteger or stringyesThe ID or URL-encoded path of the project
iids[]integer arraynoReturn only the milestones having the given iid. Ignored if include_ancestors is true.
statestringnoReturn only active or closed milestones
titlestringnoReturn only the milestones having the given title
searchstringnoReturn only milestones with a title or description matching the provided string
include_parent_milestonesbooleannoDeprecated in GitLab 16.7. Use include_ancestors instead.
include_ancestorsbooleannoInclude milestones from all parent groups.
updated_beforedatetimenoReturn only milestones updated before the given datetime. Expected in ISO 8601 format (2019-03-15T08:00:00Z). Introduced in GitLab 15.10
updated_afterdatetimenoReturn only milestones updated after the given datetime. Expected in ISO 8601 format (2019-03-15T08:00:00Z). Introduced in GitLab 15.10
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
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
titlestringyesThe title of a milestone
descriptionstringnoThe description of the milestone
due_datestringnoThe due date of the milestone (YYYY-MM-DD)
start_datestringnoThe start date of the milestone (YYYY-MM-DD)

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
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 (YYYY-MM-DD)
start_datestringnoThe start date of the milestone (YYYY-MM-DD)
state_eventstringnoThe state event of the milestone (close or activate)

Delete project milestone

Only for users with at least the Planner role for the project.

DELETE /projects/:id/milestones/:milestone_id

Parameters:

AttributeTypeRequiredDescription
idinteger or stringyesThe ID or URL-encoded path of the project
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
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
milestone_idintegeryesThe ID of the project’s milestone

Promote project milestone to a group milestone

Only for users with at least the Planner role for the group.

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

Parameters:

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

Get all burndown chart events for a single milestone

  • Tier: Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

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
milestone_idintegeryesThe ID of the project’s milestone