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

# Files and attachments

> Drop files into a chat. Reuse generated images across messages. Download and share.

## Attaching a file

Click the paperclip icon or drag-and-drop into the message input. Supported types:

* **Images** — PNG, JPEG, WebP, GIF, SVG (up to 20 MB)
* **PDFs** — up to 20 MB; auto-converted to text + page images if the model doesn't support PDF natively
* **Audio** — MP3, WAV, WebM, OGG (up to 25 MB)
* **Text & code** — `.txt`, `.md`, `.csv`, `.json`, `.py`, `.ts`, `.sql`, `.yaml`, `.html`…
* **MS Office & OpenDocument** — `.doc[x]`, `.xls[x]`, `.ppt[x]`, `.odt`, `.ods`, `.odp`

<Tip>
  File type is detected via magic bytes, not the filename extension. If a model doesn't support the file type, you'll get a clear error before the call is billed.
</Tip>

## Reusing a generated image

Generated images carry a **paperclip** icon in the corner. Click it to attach the image to your next message — no re-upload, no lost quality.

The file appears as a small chip above the input zone with a thumbnail and filename. Hover to see a larger preview, download it, or re-attach it with one click.

## File cards in the chat

User-attached images show as compact chips with a hover preview (larger image + download + re-attach icons). Model-generated images render full-size inline so you can judge the output.

## Downloading

Every file in a chat — attached or generated — has a **Download** button that appears on hover. Downloads go through our signed-URL proxy, so the link is safe to share temporarily but not publicly.

## Access and sharing

Files cascade access from the chat they're attached to:

* If you can see the chat, you can see its files (cascade via message references)
* If you uploaded the file, you can always see it (even if it's orphaned — not yet attached anywhere)
* API keys inherit workspace-level access to files uploaded via `/v1/files`; Playground files are separate and follow chat sharing

See [Sharing](/playground/sharing) for details and [Files API](/api-reference/files) for API-side file management.
