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.

Compatibiliteit met de OpenAI-SDK

Aan de slag

Compatibiliteit met de OpenAI-SDK

Gebruik de officiële OpenAI-SDK's ongewijzigd en stap over van OpenAI of een andere compatibele API door alleen base URL en API-key aan te passen.

api14 spreekt de OpenAI-API. Elke officiële OpenAI-SDK, en elke tool die een eigen OpenAI-base-URL accepteert, werkt zonder codewijzigingen, je past alleen de base-URL en de API-key aan.

De twee waarden die je aanpast

InstellingWaarde
Base-URLhttps://api14.com/api/v1
API-keyje sk-api14-...-key
import OpenAI from 'openai'

const client = new OpenAI({
  baseURL: 'https://api14.com/api/v1',
  apiKey: process.env.API14_API_KEY,
})
import os
from openai import OpenAI

client = OpenAI(base_url="https://api14.com/api/v1", api_key=os.environ["API14_API_KEY"])

Veel SDK's lezen ook de omgevingsvariabelen OPENAI_BASE_URL en OPENAI_API_KEY, zodat je kunt overstappen zonder je code ook maar aan te raken.

Wat compatibel is

OpenAI-functieapi14
chat.completions.create incl. stream, tools, response_formatOndersteund voor elk tekstmodel
responses.createOndersteund
completions.createOndersteund
embeddings.createOndersteund
images.generateOndersteund (/images/generations)
audio.speech.createOndersteund
audio.transcriptions.createOndersteund (multipart)
models.list / models.retrieveOndersteund, met prijzen en categorieën
Foutstructuur { error: { message, type, code } }Hetzelfde, SDK's gooien hun gewone APIError

Endpoints die alleen bij OpenAI bestaan (Assistants, Threads, fine-tuning, files, batches, vector stores en moderations) zijn niet beschikbaar.

Overstappen van OpenAI

  1. Zet de base-URL op https://api14.com/api/v1 en gebruik je api14-key.
  2. Zet de provider voor de modelnaam: gpt-5-mini wordt openai/gpt-5-mini, text-embedding-3-small wordt openai/text-embedding-3-small.
  3. Klaar. Je kunt nu ook naar elke andere provider overstappen door de model-id te veranderen, bijvoorbeeld anthropic/claude-sonnet-4.5 of google/gemini-2.5-pro.
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);

Overstappen van een andere OpenAI-compatibele API

Gebruik je al een andere OpenAI-compatibele gateway, dan veranderen alleen de base-URL en de key.

  1. Vervang de base-URL door https://api14.com/api/v1.
  2. Vervang je API-key door je api14-key.
  3. Laat al het andere zoals het is: model-id's, varianten (:free, :online, :nitro, :floor), provider-routing, models-fallbacks, reasoning, plugins, transforms en usage.

Verschillen om rekening mee te houden:

  • Facturering loopt via een USD-saldo. GET /credits geeft total_credits en total_usage in USD terug, plus een veld balance_usd. Zie Saldo- en key-info.
  • Gebruikskosten worden altijd meegegeven. De gateway vraagt de upstream altijd om usage.cost, zodat elke response zijn prijs vermeldt.
  • Headers zoals HTTP-Referer en X-Title worden door de gateway gezet; die hoef je niet mee te sturen.
  • Video-job-URL's verwijzen terug naar api14 (/api/v1/videos/{id}), nooit naar de upstream. Zie Video.

Extra parameters in de SDK's

Velden die de OpenAI-SDK niet kent, kun je toch meesturen:

await client.chat.completions.create({
  model: 'openai/gpt-5-mini',
  messages: [{ role: 'user', content: 'Hi' }],
  // @ts-expect-error api14 extension
  provider: { sort: 'price' },
})
client.chat.completions.create(
    model="openai/gpt-5-mini",
    messages=[{"role": "user", "content": "Hi"}],
    extra_body={"provider": {"sort": "price"}},
)

Zie Provider routing en fallbacks, Reasoning en Web search.