Skip to main content
GET
list_files

Authorizations

X-API-Key
string
header
required

Path Parameters

workspace_id
string<uuid>
required

Workspace identifier.

Query Parameters

path_prefix
string | null

Restrict to paths starting with this prefix.

ingestion_status
enum<string>[] | null

Restrict to these ingestion statuses.

The only thing that says whether a file is searchable.

expired cannot be derived from the hash pair: retention clears ingested_hash, so an aged-out file and a never-ingested file look identical. They call for different customer actions, so the status carries the distinction the hashes cannot.

Available options:
discovered,
queued,
ingesting,
ingested,
stale,
expired,
failed,
not_required
categories
string[] | null

Restrict to these categories.

file_types
string[] | null

Restrict to these file extensions.

modified_after
string<date-time> | null

Only files updated after this timestamp.

modified_before
string<date-time> | null

Only files updated before this timestamp.

cursor
string | null

Opaque cursor from a previous page's next_cursor. Omit for the first page.

limit
integer
default:50

Rows per page.

Required range: 1 <= x <= 200

Response

Successful Response

A page of source files plus the access honesty block.

coverage reports how many candidates the access gate withheld and which labels would have been needed to see them. A workspace that declares no access labels always has an empty coverage; total_count is always exact after filtering.

items
File · object[]
required
total_count
integer
required

Exact, and filtered by the caller's access predicate.

coverage
Coverage · object

What the access gate withheld, in counts and label names only.

Never a name, path, or fragment of withheld content. Naming the labels leaks nothing the caller cannot already read from the workspace config, and it turns "some results were withheld" into an actionable request.

next_cursor
string | null

Opaque; null means the last page.