We gebruiken cookies. Cookies en browseropslag houden je ingelogd en onthouden je voorkeuren. Met je toestemming meten we ook hoe de site wordt gebruikt. Je kunt je wanneer je wilt. Zie ons cookiebeleid.

Beeld en bestanden

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 playground

Multimodale 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

DeelVormOpmerkingen
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 400 of 404 terug.
  • Overige fouten zijn dezelfde als bij Chat completions. Zie Fouten.