Używamy plików cookie. Pliki cookie i pamięć przeglądarki pozwalają utrzymać logowanie i zapamiętać Twoje preferencje. Za Twoją zgodą mierzymy też, jak korzystasz ze strony. W każdej chwili możesz . Zobacz naszą politykę cookie.

Chat completions

Endpointy

Chat completions

POST /chat/completions: format czatu OpenAI dla każdego modelu tekstowego, z opisem wszystkich parametrów żądania i struktury odpowiedzi.

Wypróbuj w playground

Endpoint chat completions używa formatu czatu OpenAI i działa z każdym modelem tekstowym w katalogu: GPT, Claude, Gemini, Llama, DeepSeek, Mistral i setkami innych. Treść żądania trafia do dostawcy upstream bez zmian. api14 sprawdza jedynie twój klucz, model, limity i saldo, a po zakończeniu żądania rejestruje użycie.

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

Żądanie

ParametrTypOpis
modelstring, wymaganyIdentyfikator modelu, np. anthropic/claude-sonnet-4.5. Dozwolone są warianty takie jak :online czy :nitro. Zobacz Identyfikatory modeli.
messagesarray, wymaganyRozmowa jako obiekty { role, content }. Role: system, developer, user, assistant, tool.
modelsstring[]Modele zapasowe, próbowane po kolei, jeśli pierwszy zawiedzie. Zobacz Routing dostawców.
streambooleanStrumieniuje tokeny jako server-sent events. Zobacz Streaming.
max_tokens / max_completion_tokensintegerGórny limit generowanych tokenów.
temperaturenumberTemperatura próbkowania, zwykle 0–2.
top_p, top_k, min_p, top_anumberInne ustawienia próbkowania. Modele, które ich nie obsługują, ignorują je.
frequency_penalty, presence_penalty, repetition_penaltynumberKontrola powtórzeń.
stopstring | string[]Sekwencje zatrzymania.
seedintegerDeterministyczne próbkowanie w miarę możliwości.
logprobs, top_logprobsboolean, integerZwraca logarytmy prawdopodobieństw tokenów, jeśli model to obsługuje.
tools, tool_choice, parallel_tool_callsWywoływanie funkcji. Zobacz Tool calling.
response_formatobjectTryb JSON lub wynik zgodny z JSON Schema. Zobacz Structured outputs.
reasoning, include_reasoningobject, booleanUstawienia rozumowania. Zobacz Reasoning.
plugins, web_search_optionsWyszukiwanie w sieci. Zobacz Wyszukiwanie w sieci.
providerobjectPreferencje dotyczące dostawcy upstream. Zobacz Routing dostawców.
modalitiesstring[]Np. ["image", "text"] dla wyjścia graficznego lub ["text", "audio"] dla wyjścia audio.
predictionobjectPrzewidywany wynik ({ type: "content", content }), który skraca opóźnienie przy edycjach.
transformsstring[]Np. ["middle-out"], aby skompresować prompty przekraczające okno kontekstu.
userstringTwój własny identyfikator użytkownika końcowego.

content wiadomości może być stringiem lub tablicą części treści (text, image_url, file, input_audio). Zobacz Vision i pliki.

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);

Odpowiedź

{
  "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 to koszt żądania w USD. api14 pobiera go z twojego salda po zakończeniu żądania. id to identyfikator generacji, który możesz później sprawdzić za pomocą Wyszukiwania generacji.

Uwagi o rozliczeniach

  • Płacisz cenę podaną dla modelu; pobrana kwota jest zwracana w usage.cost. Zobacz Cennik i rozliczenia.
  • Za nieudane żądania (dowolny status 4xx lub 5xx) nie płacisz.
  • Jeśli żądanie zawiera models: [...], każdy model zapasowy musi być dozwolony dla twojego klucza i planu, w przeciwnym razie bramka odrzuci żądanie, zanim trafi ono do upstream.

Błędy

StatusKodKiedy
400model_requiredBrakuje model.
400invalid_jsonTreść nie jest obiektem JSON.
401invalid_api_keyKlucza brakuje, jest nieprawidłowy lub unieważniony.
402insufficient_balanceTwoje saldo w USD wynosi $0.
403model_not_allowed / plan_requiredLista dozwolonych modeli klucza lub twój plan nie obejmuje tego modelu.
404model_not_foundNieznany lub wyłączony identyfikator modelu.
413payload_too_largeTreść żądania przekracza 25 MB.
429rate_limited / daily_limit_reachedOsiągnięto limit RPM lub dzienny limit klucza w USD.
502upstream_unavailableNie udało się połączyć z dostawcą upstream.

Błędy upstream, takie jak przekroczenie długości kontekstu czy moderacja treści, wracają z oryginalnym kodem statusu i tą samą strukturą błędu. Zobacz Błędy.