---
title: "List the files the session's pull request changed"
method: GET
path: "/o/{org}/p/{project}/sessions/{session}/changes"
tags: ["Results & artifacts"]
---

# List the files the session's pull request changed

`GET /o/{org}/p/{project}/sessions/{session}/changes`

## Request

- Base URL: `https://api.prix.dev`
- URL: `https://api.prix.dev/o/{org}/p/{project}/sessions/{session}/changes`
- Auth: HTTP bearer

Read from the run's GitHub pull request, so it works after the sandbox
is gone. A run with no pull request returns an empty list. When GitHub
cannot be read, the answer is still `200`, with the PR link, no files,
and `code` `CHANGES_NO_INSTALLATION` or `CHANGES_LIST_FAILED`.

## Response `200`

The changed files.

- object
  - `pr_url` string, nullable, required
  - `pr_number` integer, nullable, required
  - `files` object[], required
    - `filename` string, required
    - `status` string, required: GitHub's file status: added, modified, removed, renamed…
    - `additions` integer, required
    - `deletions` integer, required
    - `changes` integer, required
    - `patch` string: The unified diff, when GitHub returns one.
  - `totals` object, required
    - `files` integer, required
    - `additions` integer, required
    - `deletions` integer, required
    - `changes` integer, required
  - `error` string: Present only when the file list could not be read.
  - `code` 'CHANGES_NO_INSTALLATION' | 'CHANGES_LIST_FAILED'

## Other responses

- `401`: No bearer, an unknown, revoked or expired one, or an API key on a route keys cannot call.
- `404`: No such resource for the caller, including one in an org the caller is not in or a Project that is private to someone else.

---

[API](https://skmtc.dev/getrush/apis/rush-api.md) · [All operations](https://skmtc.dev/getrush/apis/rush-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getrush/apis/rush-api/revisions/e351f947926b?raw)
