Skip to main content
GET
get_file

Authorizations

X-API-Key
string
header
required

Path Parameters

file_id
string<uuid>
required
workspace_id
string<uuid>
required

Workspace identifier.

Response

Successful Response

A source file plus short-lived presigned URLs for its bytes.

No separate GET .../content route: a presigned URL keeps raw bytes off the API path and avoids charging for a second network hop inside the platform. Both URLs expire after DOWNLOAD_URL_TTL_SECONDS seconds; fetch them promptly.

The two differ only in the response headers S3 returns: download_url saves to disk, preview_url renders in place under the file's real media type. One URL cannot do both — a browser decides from the headers.

created_at
string<date-time>
required
download_url
string
required

Time-limited presigned GET URL that saves the file's bytes to disk.

download_url_expires_at
string<date-time>
required

When the presigned URLs stop being valid.

file_id
string<uuid>
required
file_name
string
required
file_type
string
required
ingestion_status
enum<string>
required

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
observed_hash
string
required
path
string
required
preview_url
string
required

Time-limited presigned GET URL that a browser renders inline.

size_bytes
integer
required
updated_at
string<date-time>
required
version
integer
required

Starts at 1; increments on every content replacement.

workspace_id
string<uuid>
required
access_label
string | null

Exactly one label, or null when the workspace declares none.

access_label_source
enum<string> | null

Which mechanism produced a document's label.

The default_label fallback records as inherited, so an audit can tell a real classification from a fallback.

Available options:
inherited,
classified,
mirrored
category
string | null

Null until categorised.

expires_at
string<date-time> | null

When derived material for this file ages out.

graph_inclusion
enum<string>
default:auto

This file's knowledge-graph inclusion policy, not its effective membership. 'auto' defers to the workspace's KG exclusion rules; 'include'/'exclude' override them for this one file. A file excluded by a workspace rule still reads 'auto' here, so this does not on its own tell an excluded file from one whose graph is not built yet — read representations.knowledge_graph for whether a build has covered it.

Available options:
auto,
include,
exclude
ingested_at
string<date-time> | null
ingested_hash
string | null

Content hash at the last successful ingestion. Null with ingested_at means never ingested.

labels
Labels · object

Caller-supplied metadata.