Endpoints
Beeld en bestanden
Stuur afbeeldingen, pdf's, audio en video als contentdelen in een bericht naar multimodale modellen, met voorbeelden, limieten en foutcodes.
Probeer het in de playgroundMultimodale modellen accepteren afbeeldingen, pdf's, audio en video in een gebruikersbericht. Geef content mee als array van delen in plaats van als string. Om te zien wat een model accepteert, controleer je architecture.input_modalities in Modellen (image, file, audio, video).
Contentdelen
| Deel | Vorm | Opmerkingen |
|---|---|---|
| Tekst | { "type": "text", "text": "..." } | |
| Afbeelding | { "type": "image_url", "image_url": { "url": "https://..." | "data:image/png;base64,...", "detail": "auto" } } | PNG, JPEG, WebP, GIF. URL of base64-data-URL. |
| Pdf / bestand | { "type": "file", "file": { "filename": "doc.pdf", "file_data": "https://..." | "data:application/pdf;base64,..." } } | Werkt met elk model. Modellen zonder native bestandsondersteuning krijgen geparste tekst. |
| Audio | { "type": "input_audio", "input_audio": { "data": "<base64>", "format": "wav" } } | Alleen base64. wav, mp3 en andere, afhankelijk van het model. |
| Video | { "type": "video_url", "video_url": { "url": "https://..." } } | Ondersteund door sommige modellen, bijv. Gemini. |
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.chat.completions.create({
"model": "openai/gpt-5-mini",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://upload.wikimedia.org/wikipedia/commons/3/3a/Cat03.jpg"
}
}
]
}
]
});
console.log(result.choices[0].message.content);
Voorbeeld met een afbeelding
{
"model": "google/gemini-2.5-flash",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "What is in this picture?" },
{ "type": "image_url", "image_url": { "url": "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg" } }
]
}
]
}
Voorbeeld met een pdf
{
"model": "anthropic/claude-sonnet-4.5",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "Summarize this contract in five bullets." },
{ "type": "file", "file": { "filename": "contract.pdf", "file_data": "data:application/pdf;base64,JVBERi0xLjcK..." } }
]
}
],
"plugins": [{ "id": "file-parser", "pdf": { "engine": "pdf-text" } }]
}
De optionele plugin file-parser bepaalt hoe een pdf wordt gelezen: pdf-text (gratis tekstextractie), mistral-ocr (OCR voor scans, per pagina gefactureerd) of native (het model leest het bestand zelf). De parsekosten maken deel uit van usage.cost.
Response
De response is een gewone chat completion. Invoer van afbeeldingen, bestanden en audio telt als invoertokens, en de kosten staan in usage.cost:
{
"choices": [{ "index": 0, "finish_reason": "stop", "message": { "role": "assistant", "content": "A close-up of an ant on a leaf." } }],
"usage": { "prompt_tokens": 1290, "completion_tokens": 12, "total_tokens": 1302, "cost": 0.000417 }
}
Limieten en fouten
- Een requestbody mag maximaal 25 MB zijn. Base64 maakt bestanden ongeveer 33% groter. Grotere requests geven
413 payload_too_large. Gebruik voor grote afbeeldingen openbare URL's. - Een model dat een invoertype niet accepteert, geeft een upstream
400of404terug. - Overige fouten zijn dezelfde als bij Chat completions. Zie Fouten.