content list, next to your text.
The model must accept the file type. Images and audio go to the model directly. PDFs are converted to text first, so every model can read them.
Supported file types
Images
image_url parts to the same message.
PDFs
Send a PDF as afile part with a filename and the file_data. file_data is a public URL or a base64 data URL that starts with data:application/pdf;base64,.
plugins setting that asks for another PDF engine, the endpoint replaces it.
Audio
Send audio as aninput_audio part with base64 data and its format. Audio URLs are not accepted.
Python
Size limit
A request can be at most 30 MB, including all text and files. Base64 makes a file about 33% larger, so the largest file you can send inline is about 22 MB.- For a larger image or PDF, send a URL instead of base64. A URL adds almost nothing to the request size.
- A request over the limit returns
413:
json
Privacy and security
- Your files are not stored. The endpoint forwards each request and does not save your messages or files. If a request fails, our error logs can keep a short excerpt of its text to help us fix the problem. Files are never logged.
- Only providers that do not collect data. The endpoint sends every request only to model providers that do not store or train on your data. You cannot turn this off.
- PDFs are converted by a document parser before the model reads them. The parser gets the PDF only to convert it.
- Use short-lived URLs. The model provider downloads a file URL directly, so the URL must be public. For private files, use a signed URL that expires after a few minutes, such as an S3 or R2 presigned URL.
- Base64 for confidential files. A base64 file travels only inside your HTTPS request, and no public URL exists.
Tips
- Put the text instruction first and the files after it in the same message.
- Every file adds input tokens. For a long PDF, ask about specific sections, or send only the pages you need.
- When you ask several questions about one file, send the file again with each request. The endpoint does not keep files between requests.

