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.

Chat completions

Endpoints

Chat completions

POST /chat/completions is het OpenAI-chatformaat voor elk tekstmodel: parameters, streaming, tools, responsestructuur, kosten en foutcodes.

Probeer het in de playground

Het chat-completions-endpoint gebruikt het OpenAI-chatformaat en werkt met elk tekstmodel in de catalogus: GPT, Claude, Gemini, Llama, DeepSeek, Mistral en honderden andere. De request-body gaat ongewijzigd naar de upstream-provider. api14 controleert alleen je key, model, limieten en saldo, en registreert het gebruik zodra de request klaar is.

POST https://api14.com/api/v1/chat/completions
Authorization: Bearer sk-api14-...
Content-Type: application/json

Request

ParameterTypeBeschrijving
modelstring, verplichtModel-id, bijv. anthropic/claude-sonnet-4.5. Varianten zoals :online of :nitro zijn toegestaan. Zie Model-id's.
messagesarray, verplichtHet gesprek als { role, content }-objecten. Rollen: system, developer, user, assistant, tool.
modelsstring[]Fallback-modellen die op volgorde worden geprobeerd als het eerste faalt. Zie Provider routing.
streambooleanStream tokens als server-sent events. Zie Streaming.
max_tokens / max_completion_tokensintegerBovengrens voor het aantal gegenereerde tokens.
temperaturenumberSampling-temperatuur, meestal 0–2.
top_p, top_k, min_p, top_anumberAndere sampling-instellingen. Modellen die ze niet ondersteunen, negeren ze.
frequency_penalty, presence_penalty, repetition_penaltynumberInstellingen tegen herhaling.
stopstring | string[]Stopsequenties.
seedintegerZo goed mogelijk deterministische sampling.
logprobs, top_logprobsboolean, integerGeef log-waarschijnlijkheden van tokens terug als het model dat ondersteunt.
tools, tool_choice, parallel_tool_callsFunction calling. Zie Tool calling.
response_formatobjectJSON-modus of output volgens een JSON Schema. Zie Structured outputs.
reasoning, include_reasoningobject, booleanInstellingen voor het denkproces. Zie Reasoning.
plugins, web_search_optionsWeb search. Zie Web search.
providerobjectVoorkeuren voor de upstream-provider. Zie Provider routing.
modalitiesstring[]Bijv. ["image", "text"] voor beeldoutput, of ["text", "audio"] voor audio-output.
predictionobjectVoorspelde output ({ type: "content", content }) om de latency bij bewerkingen te verlagen.
transformsstring[]Bijv. ["middle-out"] om prompts te comprimeren die groter zijn dan het contextvenster.
userstringJe eigen identificatie van de eindgebruiker.

De content van een bericht kan een string zijn of een array van content parts (text, image_url, file, input_audio). Zie Vision en bestanden.

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": "Explain vector databases in two sentences."
    }
  ]
});
console.log(result.choices[0].message.content);

Response

{
  "id": "gen-1760000000-abc123",
  "object": "chat.completion",
  "created": 1760000000,
  "model": "anthropic/claude-sonnet-4.5",
  "provider": "Anthropic",
  "choices": [
    {
      "index": 0,
      "finish_reason": "stop",
      "message": { "role": "assistant", "content": "Hello! How can I help you today?" }
    }
  ],
  "usage": {
    "prompt_tokens": 12,
    "completion_tokens": 9,
    "total_tokens": 21,
    "prompt_tokens_details": { "cached_tokens": 0 },
    "completion_tokens_details": { "reasoning_tokens": 0 },
    "cost": 0.000171
  }
}

usage.cost zijn de kosten van de request in USD. api14 schrijft dit bedrag van je saldo af zodra de request klaar is. De id is de generatie-id, die je later kunt opzoeken met Generatie opzoeken.

Over facturering

  • Je betaalt de vermelde prijs van het model; het bedrag staat in usage.cost. Zie Prijzen en facturering.
  • Mislukte requests (elke 4xx- of 5xx-status) worden niet in rekening gebracht.
  • Bevat de request models: [...], dan moet elk fallback-model toegestaan zijn voor je key en abonnement; anders weigert de gateway de request nog vóór die naar de upstream gaat.

Fouten

StatusCodeWanneer
400model_requiredmodel ontbreekt.
400invalid_jsonDe body is geen JSON-object.
401invalid_api_keyDe key ontbreekt, is ongeldig of is ingetrokken.
402insufficient_balanceJe USD-saldo is $0.
403model_not_allowed / plan_requiredDe allowlist van je key of je abonnement dekt dit model niet.
404model_not_foundOnbekende of uitgeschakelde model-id.
413payload_too_largeDe request-body is groter dan 25 MB.
429rate_limited / daily_limit_reachedDe RPM-limiet of de dagelijkse USD-limiet van de key is bereikt.
502upstream_unavailableDe upstream-provider was niet bereikbaar.

Upstream-fouten, zoals een overschreden contextlengte of contentmoderatie, komen terug met hun oorspronkelijke statuscode en dezelfde foutstructuur. Zie Fouten.