Skip to main content
POST
file_metadata

Authorizations

X-API-Key
string
header
required

Path Parameters

workspace_id
string<uuid>
required

Workspace identifier.

Body

application/json

Request body for file-metadata. path names an uploaded source file.

path
string
required
Required string length: 1 - 1024

Response

Successful Response

Response body for file-metadata — everything about one uploaded file, with no workspace-internal path anywhere.

summary is the file's primary segment's — the first logical document's for the document lane, the first summarized sheet's for tables — capped at FILE_SUMMARY_MAX_CHARS, never a concatenation across components (each component still carries its own).

total_chars is a real character count and is only present when every text component carries one (new ingests); total_approx_bytes is the byte-based fallback that is always honest about being an estimate. An un-ingested file answers 200 with its ingestion_status and no components; a failed one additionally carries ingestion_error — metadata is exactly what a caller needs to decide what to do next with such a file.

file_id
string<uuid>
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
path
string
required
size_bytes
integer
required

Byte size of the uploaded source object.

components
(FileComponentInfo · object | MediaComponentInfo · object)[]

One public component of an uploaded file: a pdf section, a spreadsheet tab, an image, or the raw upload itself.

readable / queryable are the capability flags that say which content tool applies to this component. char_count is a real character count when ingestion measured one; approx_bytes is the honest byte fallback (the size of the component's text representation) — the two are never conflated. error passes through a per-tab ingestion degradation: such a component stays visible but has no readable or queryable content.

ingestion_error
string | null

Why ingestion failed, when the ledger recorded a reason.

kind
string | null

Ingestion lane (document / table / media), when known.

page_count
integer | null
summary
string
default:""
tab_count
integer | null
total_approx_bytes
integer | null
total_chars
integer | null