Skip to main content
GET
/
api
/
v1
/
vault
/
projects
/
{project_id}
/
files
List Files in a Vault Project
curl --request GET \
  --url https://api.harvey.ai/api/v1/vault/projects/{project_id}/files \
  --header 'Authorization: Bearer <token>'
{
  "response": {
    "content": {
      "files": [
        {
          "id": "018e38dc-8726-7bc2-af5d-bdd5d04c84ec",
          "name": "engagement_letter.pdf",
          "content_type": "application/pdf",
          "processing_status": "READY_TO_QUERY",
          "size": 184320,
          "uploaded_at": 1767225600
        },
        {
          "id": "0199c5c1-50d9-7d60-93aa-cd65c3b7d5a9",
          "name": "merger_agreement.docx",
          "content_type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
          "processing_status": "PROCESSING",
          "size": 521447,
          "uploaded_at": 1767139200
        }
      ],
      "pagination": {
        "page_size": 20,
        "has_more": true,
        "next_cursor": "eyJsYXN0X2ZpbGVfaWQiOiAiMDE5OWM1YzEtNTBkOS03ZDYwLTkzYWEtY2Q2NWMzYjdkNWE5In0=",
        "total_count": 137
      }
    }
  }
}

Permissions

Requires Vault API permission and access to the specified vault project.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

project_id
string<uuid>
required

The unique identifier of the vault project

Query Parameters

cursor
string

Opaque pagination cursor returned in the previous response's next_cursor field. Omit on the first request.

Maximum string length: 2048
limit
integer
default:20

Maximum number of files to return per page.

Required range: 1 <= x <= 100
name
string

Case-insensitive substring match on file name. % and _ are treated as literals, not SQL LIKE wildcards.

Maximum string length: 256
content_type
string[]

Filter by MIME type. Repeat the query parameter to match any of multiple values (e.g. ?content_type=application/pdf&content_type=text/plain). Up to 20 values, each at most 256 characters.

Maximum array length: 20
Maximum string length: 256
processing_status
enum<string>[]

Filter by processing status. Repeat the query parameter to match any of multiple values. Accepted case-insensitively (READY_TO_QUERY and ready_to_query are equivalent). Internal-only statuses are rejected. Up to 20 values.

Maximum array length: 20
Available options:
UPLOADED,
PROCESSING,
READY_TO_QUERY,
READY_TO_REVIEW,
RECOVERABLE_FAILURE,
UNRECOVERABLE_FAILURE
uploaded_after
integer<int64>

Inclusive lower bound on the file's upload time, as a UTC Unix epoch timestamp in seconds. Must be strictly less than uploaded_before when both are provided.

uploaded_before
integer<int64>

Inclusive upper bound on the file's upload time, as a UTC Unix epoch timestamp in seconds.

sort_by
enum<string>
default:uploaded_at

Field to sort the results by. Accepted case-insensitively.

Available options:
name,
uploaded_at,
size
sort_order
enum<string>
default:desc

Sort direction. Accepted case-insensitively. Results include the file id as a deterministic tiebreaker so cursor-paginated ordering is stable across pages.

Available options:
asc,
desc

Response

Successfully retrieved project files

response
object