REST API endpoints for milestones

Use the REST API to manage milestones.

Note

Most endpoints use Authorization: Bearer <YOUR-TOKEN> and Accept: application/vnd.github+json headers, plus X-GitHub-Api-Version: 2026-03-10. Curl examples below omit these standard headers for brevity.

List milestones

GET /repos/{owner}/{repo}/milestones

Lists milestones for a repository.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/repos/OWNER/REPO/milestones

Response schema (Status: 200):

Array of Milestone:

Create a milestone

POST /repos/{owner}/{repo}/milestones

Creates a milestone.

Parameters

Headers

Path and query parameters

Body parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X POST \
  https://api.github.com/repos/OWNER/REPO/milestones \
  -d '{
  "title": "v1.0",
  "state": "open",
  "description": "Tracking milestone for version 1.0",
  "due_on": "2012-10-09T23:39:01Z"
}'

Response schema (Status: 201):

Get a milestone

GET /repos/{owner}/{repo}/milestones/{milestone_number}

Gets a milestone using the given milestone number.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/repos/OWNER/REPO/milestones/MILESTONE_NUMBER

Response schema (Status: 200):

Same response schema as Create a milestone.

Update a milestone

PATCH /repos/{owner}/{repo}/milestones/{milestone_number}

Parameters

Headers

Path and query parameters

Body parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X PATCH \
  https://api.github.com/repos/OWNER/REPO/milestones/MILESTONE_NUMBER \
  -d '{
  "title": "v1.0",
  "state": "open",
  "description": "Tracking milestone for version 1.0",
  "due_on": "2012-10-09T23:39:01Z"
}'

Response schema (Status: 200):

Same response schema as Create a milestone.

Delete a milestone

DELETE /repos/{owner}/{repo}/milestones/{milestone_number}

Deletes a milestone using the given milestone number.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X DELETE \
  https://api.github.com/repos/OWNER/REPO/milestones/MILESTONE_NUMBER

Response schema (Status: 204):