Docs/Workspace
Attach files
What can I attach to a message, which models read it, and what does it cost?
Checked against the code on
The paperclip in the composer gives the model a file with your message: a picture, a PDF, a text or code file, a Word, PowerPoint or Excel document, an audio file or a video. Dropping a file on the chat or pasting one does the same. Uploading is free. A file costs tokens only when a message carries it to a model, at that model's input rate.
What you can attach
| Kind | Formats | Per file | Per message | Per conversation |
|---|---|---|---|---|
| Picture | PNG, JPEG, WebP, GIF | 8 MB, 8,192 pixels a side | 6 | 20 |
| 32 MB | 3 | 6 | ||
| Text and code | Plain text, Markdown, CSV, JSON, HTML, YAML and source code in most languages | 5 MB | 5 | 10 |
| Document | Word (.docx), PowerPoint (.pptx), Excel (.xlsx) | 32 MB | 3 | 6 |
| Audio | MP3, WAV, M4A, OGG, FLAC, WebM | 25 MB, 20 minutes | 2 | 4 |
| Video | MP4, MOV, WebM | 100 MB, 10 minutes | 1 | 2 |
Per conversation counts every file on every message the model is shown in a turn. What a file is comes from its bytes, not its name: a PDF called notes.txt is a PDF. An empty or damaged file is refused when you attach it, before anything is sent.
How a file reaches the model
Every model reads words. Only some read files. So when you send, each file goes to the model in one of two ways, decided per model:
- As the file, where the model's catalogue entry says it takes that kind. A picture goes as a picture, a PDF as a PDF, sound as sound, a clip as a clip.
- As its words, where it does not. The text of a PDF, a document or a text file, or a transcript of an audio file, is put in the message in the file's place, between lines that name the file. The model reads it like anything you typed.
| Kind | Models that take the file | On every other model |
|---|---|---|
| Picture | 212 chat models | Refused. Pick a model that sees pictures. |
| 113 | Its text | |
| Text and code, Word, PowerPoint, Excel | None. They always go as words. | Its text |
| Audio | 32 | A transcript |
| Video | 66 | Refused. Pick a model that watches video. |
Counted on the catalogue on 24 September 2026. So a text file, a PDF or a document can be given to any chat model. The paperclip offers every kind the model you picked can be given, which means pictures and video appear on it only for a model that takes them. The public JSON at /api/models lists each model's input_modalities; the API says the same as inputs on GET /v1/models.
Per kind
- Pictures are resized in your browser before they go: the longest side to 1,568 pixels for a chat, which is the size vision models read at, and re-encoded as JPEG. For an edit on an image model or the start frame of a video, the picture is kept at up to 4,096 pixels. Make images, Make video.
- PDFs of up to 100 pages go as the file to a model that reads files: inline under 8 MB, by a link the provider fetches above it. Over 100 pages a PDF goes as its text on every model, because providers read at most 100 pages natively. A scanned PDF with no text layer has no words to send, so it works only on a model that reads files (code W611 on any other).
- Text, code and documents always go as words. Word is read as its paragraphs, PowerPoint one block per slide, Excel one sheet at a time as CSV. Up to 400,000 characters a file, about 100,000 tokens; a longer file is cut there and the model is told.
- Audio goes as sound to a model that hears when it is an MP3 or a WAV under 8 MB. Anything else, and any audio for a model that cannot hear, goes as a transcript, made once by a speech-to-text model and kept beside the file so a second question does not transcribe it again. If no transcript can be made, the message says so (code W608).
- Video goes as the clip to a model that watches: inline under 8 MB, by a link above it. There is no words version of a video, so on any other model it is refused (code W609).
What it costs
Nothing to upload, nothing to keep. When a message carries a file to a model, the file is input tokens at that model's input rate, like the words around it. The estimate beside Send counts the files in. When you send, the hold reserves the top of what providers bill per unit, and the receipt on the reply settles to the real figure.
| Sent as | Reserved |
|---|---|
| A picture | 1,600 tokens |
| A PDF, as the file | 1,600 tokens a page |
| Audio, as sound | 32 tokens a second |
| Video | 100 tokens a second |
| Words: a text file, a document, a PDF's text, a transcript | The text's own token count |
A 30-page PDF on a model that reads files holds 48,000 tokens; on a model that reads its text it holds whatever the text comes to, often less. Ten seconds of video holds 1,000. Holds and settlement.
Follow-up questions
Ask about a file again and it goes again: the three newest messages of yours that carry files send them in full, so the model has them in front of it. A file on an older message is not re-sent. A one-line note in its place says a file of that name was attached there, so the model knows it existed and you do not pay for it on every reply. To put an old file back in front of the model, attach it again. Files count toward the model's context window with everything else, and a turn that does not fit says so before it runs (code W612).
What is kept, and for how long
- An upload
- On your account, on askr's own storage, served to you. Nothing is public. Nobody at askr reads it, and nothing in it trains a model.
- A file in a chat
- Stays with the chat. Delete the chat and its files go with it; delete all your chats and every file they carried goes too.
- A file in a Collab room
- Belongs to the room and is readable by its members. It stays with the room, not with your chats.
- An upload never sent
- Swept after 7 days.
- The words read from a file
- The extracted text and any transcript are kept beside the file, so they are made once.
- Where a file goes
- Where your words go: to the model's provider, through askr's gateway, for that turn. A file over 8 MB sent as the file is fetched by the provider from a link that expires after an hour.
The Files page
Everything you have uploaded, for chats and Collab rooms, is on Files in the app: name, kind, size, what was read from it (pages, length, characters) and when. Open a file, download it, or delete it. A deleted file cannot be sent again, and a message that still names it says the attachment could not be found (code W607).
For developers
The same store is on the API as /v1/files, the OpenAI way: upload once, then name the file by file_id in a message part. A picture, a PDF, sound or a clip can also go inline in the message. Same limits, same per-model routing, same codes. Files on the API.
If it will not go
Each refusal ends with a code from the list: W604 a kind askr does not take, W605 too large or too long (the message says the limit), W606 too many of one kind, W607 a file that is gone or not yours, W608 audio for a model that cannot hear and no transcript, W609 video for a model that cannot watch, W610 an empty or damaged file, W611 no words in the file and a model that cannot read files, W612 more than the model's window holds. A picture for a model that cannot see is W203. None of them charge anything.