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

