# List an issue's decisions

> The decision records on an issue (with those on its pull requests) or on a pull request, oldest first: each with its kind (proposal, claim, integration_failure, integration_passed, fix, approval, merge or note), its confidence (claimed: someone said so; tested: a check or a combination of pull requests proved it; approved: a person approved it), who recorded it (absent for g1t), its summary and its evidence.

<div class="g1t-endpoint"><span class="g1t-method" data-method="get">GET</span><code>/repos/{owner}/{name}/issues/{number}/decisions</code></div>

Issues and pull requests share numbers, so number names either.

`GET /repos/{owner}/{name}/issues/{number}/decisions` lists an issue's, with those on its pull requests.

- **Authentication:** Optional. Public data can be read without a token; send one to see what is private.
- **MCP tool:** [`pull_request`](/reference/mcp/#pull_request) with `action` `list_decisions`, and the same inputs
- **Scope:** An access token needs [`pull_requests:read`](/guides/authentication/#scopes).
- **Also at:** [`GET /repos/{owner}/{name}/pulls/{number}/decisions`](/reference/api/decisions-and-why/list-decisions/)

## Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `owner` | string | Yes | The workspace that owns the repository. |
| `name` | string | Yes | The repository's name. |
| `number` | integer | Yes | The number shown after the #. Issues and pull requests share one sequence. |

## Example request

```sh
curl https://api.g1t.sh/repos/flagon-io/hello/issues/12/decisions \
  -H "Authorization: Bearer $G1T_TOKEN"
```

## Example response

A successful request answers `200` with:

```json
[
  {
    "id": "dec_01kpz8m2q4r6s8t0v2w4x6y8za",
    "issue": 9,
    "pull": 14,
    "session_id": null,
    "actor": null,
    "kind": "integration_failure",
    "confidence": "tested",
    "summary": "#14 failed in the merge queue together with #12: `CI / merge_group` failed when they were combined.",
    "evidence": {
      "commit": "4be1c0d9a2f3e4b5c6d7e8f90a1b2c3d4e5f6a7b",
      "check": {
        "name": "CI / merge_group",
        "conclusion": "failure",
        "url": "https://g1t.sh/acme/web/actions/runs/run_01kpz8k0"
      },
      "combination": [
        11,
        12,
        14
      ],
      "other_pulls": [
        11,
        12
      ],
      "suspects": [
        12
      ],
      "bisected": true,
      "landed": []
    },
    "created_at": "2026-10-12T15:04:11.204Z"
  },
  {
    "id": "dec_01kpz9a1b3c5d7e9f1g3h5j7kb",
    "issue": 9,
    "pull": 14,
    "session_id": "ses_01kpz7x9y1z3a5b7c9d1e3f5gh",
    "actor": "ana",
    "kind": "fix",
    "confidence": "claimed",
    "summary": "Renamed the config key #12 also introduced, so both read retry_limit.",
    "evidence": {
      "commit": "7d3e9a1c5b2f4e6a8c0d2e4f6a8b0c2d4e6f8a0b"
    },
    "created_at": "2026-10-12T15:31:40.019Z"
  }
]
```

## Errors

A failed request answers with one of these statuses and a body like `{"error": {"code": "not_found", "message": "Repository not found."}}`. See [errors](/reference/api/#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 a token without the scope it needs. |
| 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. |
