Skip to main content
A chat request can read a PDF on lume-omni. Attach a file you already uploaded, or send the PDF in the request. The reply is still text, in choices[0].message.content. Managing files is the upload. The other models take text. Messages does not accept a PDF block. That call is HTTP 400, and the message is Unsupported content block type.

A file you uploaded

POST /v1/chat/completions needs the scope chat:completions. A file_id also needs files:read. Send the ID inside a file content part, with the question in the same user message.
The success body is a normal chat completion. finish_reason is stop when the model finishes inside max_tokens. The response includes X-Request-Id. A request can name up to five file IDs. Together they can be at most 25 MiB. One stored file over 25 MiB, or a set that adds up past that, comes back as HTTP 400. The messages are File input is too large and Combined file inputs are too large. If the ID is missing, expired, or on another account, you’ll get HTTP 404. The message is File not found. An ID in the wrong shape is HTTP 400, with Invalid file ID.
On a model other than lume-omni, the same part is HTTP 400. The message is Parameter 'messages.0.content.1.file.file_id' is not supported for model 'lume-3.5', and the code is unsupported_feature.

A PDF in the request

You can skip the upload and send the PDF as file_data. Use that or file_id, not both. Raw base64 needs filename, and the name ends in .pdf. A data URL starts with data:application/pdf;base64, and does not send a filename.
Each inline PDF can be up to 25 MiB. A larger one is HTTP 413, with the message File input is too large. The whole request body is still capped at 40 MiB.

Next

Managing files

Upload the PDF and keep the ID.

Generate text

Continue the conversation from here.