---
title: "Get Project Tree"
method: GET
path: "/api/projects/{project_id}/tree"
---

# Get Project Tree

`GET /api/projects/{project_id}/tree`

## Request

- Base URL: `https://app.pharos.bio` (the document declares no server; this is the origin it was published from)
- URL: `https://app.pharos.bio/api/projects/{project_id}/tree`
- Auth: none declared

Return every file in the project's output directory as a flat list.

This backs the All-data browser: a fallback view of the run's real
directory structure, so a file is reachable even when no gallery
classifies it. Local disk and S3 are merged — a run that has been evicted
from local cache still lists from S3, and an in-flight run lists files that
have not been uploaded yet.

Dot-directories (``.venv``, ``.git``, ``.claude``, …) and their non-dot
equivalents are always skipped — they are machine noise, never run output.

Paths are relative to the project's ``output/`` root, matching what
``GET /api/projects/{id}/files/{path}`` expects.

## Path parameters

- `project_id` string, required

## Headers

- `authorization` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/pharos/apis/agentic-data-scientist.md) - [All operations](https://skmtc.dev/pharos/apis/agentic-data-scientist/llms.txt) - [OpenAPI document](https://skmtc.dev/pharos/apis/agentic-data-scientist/revisions/7c77a7fe3870?raw)
