Get a milestone
A milestone, with every issue and pull request in it, newest first.
GET
/repos/{owner}/{name}/milestones/{milestone}- Authentication: Optional. Public data can be read without a token; send one to see what is private.
- MCP tool:
repositorywithactionget_milestone, and the same inputs - Scope: An access token needs
repo:read.
Path parameters
Section titled “Path parameters”| Name | Type | Required | Description |
|---|---|---|---|
owner |
string | Yes | The workspace that owns the repository. |
name |
string | Yes | The repository’s name. |
milestone |
integer | Yes | The milestone’s number, from list_milestones. |
Example request
Section titled “Example request”curl https://api.g1t.sh/repos/flagon-io/hello/milestones/3 \ -H "Authorization: Bearer $G1T_TOKEN"Example response
Section titled “Example response”A successful request answers 200 with:
{ "milestone": { "number": 3, "title": "Launch", "description": "Everything that has to land before the launch on October 14.", "due_on": "2026-10-14", "state": "open", "open_items": 5, "closed_items": 12, "created_at": "2026-09-20T09:00:00.000Z", "updated_at": "2026-10-06T16:12:40.118Z", "closed_at": null }, "issues": [ { "id": "iss_01m43shrzpfe49x74ga7sj1c6v", "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr", "number": 12, "title": "Greeting should name the caller", "body": "Take a name from the first argument; fall back to world.", "labels": [ "feature", "good first issue" ], "state": "open", "reason": null, "resolved_by": null, "author": { "id": "usr_01kkntcg1eeb98j62xjm7eh09p", "username": "syntaqx", "display_username": "syntaqx", "kind": "user", "verified": false, "workspaces": [] }, "requested_by": null, "created_at": "2026-10-01T18:04:11.482Z", "updated_at": "2026-10-01T18:09:47.305Z", "closed_at": null, "pull_count": 0, "comment_count": 0, "assignees": [ "syntaqx" ], "blocked_by": [], "queued": false, "agent": null, "milestone": { "number": 3, "title": "Launch" } } ], "pulls": [ { "id": "pr_01m43smh3vexsr5pmp60qwv0vs", "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr", "number": 14, "issue": 12, "title": "Greeting should name the caller", "body": "Reads a name from the first argument. `hello ana` prints \"Hello, ana!\".", "agent": "claude-code", "runtime": "external", "status": "open", "fork": { "namespace": "pulls", "name": "pr_01m43smh3vexsr5pmp60qwv0vs" }, "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e", "branch": null, "head_commit": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13", "merge_base": null, "merged_by": null, "merged_at": null, "superseded_by": null, "check_status": "passed", "files": [ { "path": "src/main.rs", "additions": 6, "deletions": 2 } ], "assignees": [], "reviewers": [ "ana" ], "labels": [], "milestone": { "number": 3, "title": "Launch" }, "base": "main", "author": { "id": "usr_01kkntcg1eeb98j62xjm7eh09p", "username": "syntaqx", "display_username": "syntaqx", "kind": "user", "verified": false, "workspaces": [] }, "requested_by": null, "created_at": "2026-10-01T18:20:02.117Z", "updated_at": "2026-10-01T18:35:44.902Z", "confidence": null } ]}Errors
Section titled “Errors”A failed request answers with one of these statuses and a body like {"error": {"code": "not_found", "message": "Repository not found."}}. See errors.
| Status | Code | When |
|---|---|---|
| 401 | unauthenticated |
A token is required, or the one sent is not valid. |
| 403 | forbidden |
The token is valid but not allowed to do this, such as a member-only change or an agent token outside its repository. |
| 404 | not_found |
It does not exist, or you cannot see it. |
| 422 | invalid |
The input is not valid. message says which field and why. |