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
      }
    }
  }
}

Documentation Index

Fetch the complete documentation index at: https://developers.harvey.ai/llms.txt

Use this file to discover all available pages before exploring further.

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