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 playgroundEndpoint 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
| Parametr | Typ | Opis |
|---|---|---|
model | string, wymagany | Identyfikator modelu, np. anthropic/claude-sonnet-4.5. Dozwolone są warianty takie jak :online czy :nitro. Zobacz Identyfikatory modeli. |
messages | array, wymagany | Rozmowa jako obiekty { role, content }. Role: system, developer, user, assistant, tool. |
models | string[] | Modele zapasowe, próbowane po kolei, jeśli pierwszy zawiedzie. Zobacz Routing dostawców. |
stream | boolean | Strumieniuje tokeny jako server-sent events. Zobacz Streaming. |
max_tokens / max_completion_tokens | integer | Górny limit generowanych tokenów. |
temperature | number | Temperatura próbkowania, zwykle 0–2. |
top_p, top_k, min_p, top_a | number | Inne ustawienia próbkowania. Modele, które ich nie obsługują, ignorują je. |
frequency_penalty, presence_penalty, repetition_penalty | number | Kontrola powtórzeń. |
stop | string | string[] | Sekwencje zatrzymania. |
seed | integer | Deterministyczne próbkowanie w miarę możliwości. |
logprobs, top_logprobs | boolean, integer | Zwraca logarytmy prawdopodobieństw tokenów, jeśli model to obsługuje. |
tools, tool_choice, parallel_tool_calls | Wywoływanie funkcji. Zobacz Tool calling. | |
response_format | object | Tryb JSON lub wynik zgodny z JSON Schema. Zobacz Structured outputs. |
reasoning, include_reasoning | object, boolean | Ustawienia rozumowania. Zobacz Reasoning. |
plugins, web_search_options | Wyszukiwanie w sieci. Zobacz Wyszukiwanie w sieci. | |
provider | object | Preferencje dotyczące dostawcy upstream. Zobacz Routing dostawców. |
modalities | string[] | Np. ["image", "text"] dla wyjścia graficznego lub ["text", "audio"] dla wyjścia audio. |
prediction | object | Przewidywany wynik ({ type: "content", content }), który skraca opóźnienie przy edycjach. |
transforms | string[] | Np. ["middle-out"], aby skompresować prompty przekraczające okno kontekstu. |
user | string | Twó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
| Status | Kod | Kiedy |
|---|---|---|
| 400 | model_required | Brakuje model. |
| 400 | invalid_json | Treść nie jest obiektem JSON. |
| 401 | invalid_api_key | Klucza brakuje, jest nieprawidłowy lub unieważniony. |
| 402 | insufficient_balance | Twoje saldo w USD wynosi $0. |
| 403 | model_not_allowed / plan_required | Lista dozwolonych modeli klucza lub twój plan nie obejmuje tego modelu. |
| 404 | model_not_found | Nieznany lub wyłączony identyfikator modelu. |
| 413 | payload_too_large | Treść żądania przekracza 25 MB. |
| 429 | rate_limited / daily_limit_reached | Osiągnięto limit RPM lub dzienny limit klucza w USD. |
| 502 | upstream_unavailable | Nie 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.