Skip to main content

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
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.

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 for details and Files API for API-side file management.