Kami menggunakan cookie. Cookie dan penyimpanan browser menjaga Anda tetap masuk dan mengingat preferensi Anda. Dengan izin Anda, kami juga mengukur cara situs digunakan. Anda dapat kapan saja. Lihat kebijakan cookie kami.

Chat completions

Endpoint

Chat completions

POST /chat/completions memakai format chat OpenAI untuk semua model teks: parameter request, format respons, streaming, dan penanganan error.

Coba di playground

Endpoint chat completions memakai format chat OpenAI dan bekerja dengan semua model teks di katalog: GPT, Claude, Gemini, Llama, DeepSeek, Mistral, dan ratusan lainnya. Body request diteruskan ke penyedia upstream tanpa perubahan. api14 hanya memeriksa key, model, batas, dan saldo Anda, lalu mencatat pemakaian saat request selesai.

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

Request

ParameterTipeDeskripsi
modelstring, wajibModel id, misalnya anthropic/claude-sonnet-4.5. Varian seperti :online atau :nitro diperbolehkan. Lihat Model id.
messagesarray, wajibPercakapan sebagai objek { role, content }. Role: system, developer, user, assistant, tool.
modelsstring[]Model fallback yang dicoba secara berurutan jika model pertama gagal. Lihat Provider routing.
streambooleanStream token sebagai server-sent events. Lihat Streaming.
max_tokens / max_completion_tokensintegerBatas atas token yang dihasilkan.
temperaturenumberTemperatur sampling, biasanya 0–2.
top_p, top_k, min_p, top_anumberKontrol sampling lainnya. Model yang tidak mendukungnya akan mengabaikannya.
frequency_penalty, presence_penalty, repetition_penaltynumberKontrol pengulangan.
stopstring | string[]Stop sequence.
seedintegerSampling deterministik sebisa mungkin (best-effort).
logprobs, top_logprobsboolean, integerMengembalikan log probabilitas token jika model mendukungnya.
tools, tool_choice, parallel_tool_callsFunction calling. Lihat Tool calling.
response_formatobjectMode JSON atau output JSON Schema. Lihat Structured outputs.
reasoning, include_reasoningobject, booleanKontrol thinking. Lihat Reasoning.
plugins, web_search_optionsPencarian web. Lihat Pencarian web.
providerobjectPreferensi penyedia upstream. Lihat Provider routing.
modalitiesstring[]Misalnya ["image", "text"] untuk output gambar, atau ["text", "audio"] untuk output audio.
predictionobjectOutput yang diprediksi ({ type: "content", content }) untuk memangkas latensi saat mengedit.
transformsstring[]Misalnya ["middle-out"] untuk memampatkan prompt yang melebihi context window.
userstringIdentifier end-user milik Anda sendiri.

content pada pesan bisa berupa string atau array content part (text, image_url, file, input_audio). Lihat Vision & file.

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 adalah biaya request dalam USD. api14 memotongnya dari saldo Anda setelah request selesai. id adalah generation id, yang bisa Anda cari nanti dengan Pencarian generation.

Catatan penagihan

  • Anda membayar sesuai harga yang tercantum untuk model tersebut; tagihannya dikembalikan di usage.cost. Lihat Harga & penagihan.
  • Anda tidak ditagih untuk request yang gagal (status 4xx atau 5xx apa pun).
  • Jika request menyertakan models: [...], setiap model fallback harus diizinkan untuk key dan paket Anda; jika tidak, gateway menolak request sebelum dikirim ke upstream.

Error

StatusKodeKapan
400model_requiredmodel tidak ada.
400invalid_jsonBody bukan objek JSON.
401invalid_api_keyKey tidak ada, tidak valid, atau sudah dicabut.
402insufficient_balanceSaldo USD Anda $0.
403model_not_allowed / plan_requiredAllowlist key atau paket Anda tidak mencakup model ini.
404model_not_foundModel id tidak dikenal atau dinonaktifkan.
413payload_too_largeBody request lebih besar dari 25 MB.
429rate_limited / daily_limit_reachedBatas RPM atau batas USD harian key telah tercapai.
502upstream_unavailablePenyedia upstream tidak dapat dihubungi.

Error dari upstream, seperti context length terlampaui atau moderasi konten, dikembalikan dengan kode status aslinya dan format error yang sama. Lihat Error.