> ## Documentation Index
> Fetch the complete documentation index at: https://docs.titletrackr.com/llms.txt
> Use this file to discover all available pages before exploring further.

# File Metadata & Processing

> Understand the fields returned for uploaded files.

Each uploaded file is returned with the following fields.

<ResponseField name="id" type="integer">
  The File Vault file id.
</ResponseField>

<ResponseField name="filename" type="string">
  Original file name.
</ResponseField>

<ResponseField name="file_type" type="string">
  The file extension, e.g. `pdf`, `docx`.
</ResponseField>

<ResponseField name="mime_type" type="string">
  The content type of the upload, e.g. `application/pdf`.
</ResponseField>

<ResponseField name="page_count" type="integer | null">
  Number of pages for PDFs; `null` for non-PDF files.
</ResponseField>

<ResponseField name="file_size" type="integer">
  Size in bytes.
</ResponseField>

<ResponseField name="file_size_human" type="string">
  Human-readable size, e.g. `242.3 KB`.
</ResponseField>

<ResponseField name="folder_id" type="integer | null">
  The folder the file lives in, or `null` for the root.
</ResponseField>

<ResponseField name="is_processing" type="boolean">
  Whether the file is still being indexed for search. Newly uploaded files are
  not processed until search is enabled in-app.
</ResponseField>

<ResponseField name="download_url" type="string">
  A token-authenticated endpoint for retrieving the file's bytes. Call it with
  your API key (`Authorization: Bearer ...`); it redirects to a short-lived
  pre-signed URL you can follow in a browser or with `curl -L`.
</ResponseField>

<ResponseField name="created_at" type="string">
  ISO-8601 upload timestamp.
</ResponseField>

<Note>
  Search indexing and OCR are not triggered automatically on API upload. Files
  are stored and available immediately; enabling search is a separate in-app
  action today.
</Note>
