Endpointy
Responses
POST /responses: format OpenAI Responses API, w którym client.responses.create działa bez zmian na modelach dostępnych w api14.
Wypróbuj w playgroundEndpoint Responses przyjmuje format OpenAI Responses API, więc client.responses.create(...) w oficjalnych SDK działa bez zmian. Działa na tych samych modelach co Chat completions. api14 przekazuje ciało żądania dalej bez zmian i rozlicza usage, które wraca w odpowiedzi.
POST https://api14.com/api/v1/responses
Authorization: Bearer sk-api14-...
Content-Type: application/json
Żądanie
| Parametr | Typ | Opis |
|---|---|---|
model | string, wymagany | Identyfikator modelu, np. openai/gpt-5-mini. |
input | string | array, wymagany | Prompt jako ciąg znaków lub tablica elementów wejściowych (wiadomości { role, content }, function_call_output, …). |
instructions | string | Instrukcje na poziomie systemowym. |
stream | boolean | Strumieniuje zdarzenia semantyczne (response.output_text.delta, response.completed, …) przez SSE. |
max_output_tokens | integer | Górna granica liczby generowanych tokenów. |
temperature, top_p | number | Parametry próbkowania. |
tools, tool_choice, parallel_tool_calls | Narzędzia funkcyjne. Wyszukiwanie w sieci jest dostępne także jako narzędzie lub przez plugins. | |
text | object | Format wyjścia, np. { "format": { "type": "json_schema", "name": "...", "schema": {...} } }. |
reasoning | object | { "effort": "low" | "medium" | "high" }. Zobacz Rozumowanie. |
provider, models, plugins | Te same rozszerzenia bramki co w chat completions. |
Bramka nie przechowuje Twoich rozmów, więc w każdym wywołaniu przekazuj pełny kontekst w input. Opcje stanowe, takie jak previous_response_id, mogą nie być obsługiwane.
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);
Powyższy przykład używa chat completions. Z SDK dla Node odpowiednik dla Responses wygląda tak:
const response = await client.responses.create({
model: "openai/gpt-5-mini",
input: "Write a haiku about APIs.",
});
console.log(response.output_text);
Odpowiedź
{
"id": "resp-1760000000-abc123",
"object": "response",
"created_at": 1760000000,
"model": "openai/gpt-5-mini",
"status": "completed",
"output": [
{
"type": "message",
"role": "assistant",
"content": [{ "type": "output_text", "text": "Requests in flight,\nJSON answers drifting back,\none key opens all." }]
}
],
"usage": {
"input_tokens": 14,
"output_tokens": 22,
"total_tokens": 36,
"input_tokens_details": { "cached_tokens": 0 },
"output_tokens_details": { "reasoning_tokens": 0 },
"cost": 0.0000475
}
}
Bramka odczytuje usage z obiektu końcowego lub, przy streamingu, ze zdarzenia response.completed i pobiera cost w USD z Twojego salda.
Błędy
Takie same jak w chat completions: 400 model_required, 400 invalid_json, 401 invalid_api_key, 402 insufficient_balance, 403 model_not_allowed / plan_required, 404 model_not_found, 413 payload_too_large, 429 rate_limited / daily_limit_reached, 502 upstream_unavailable. Zobacz Błędy.