Endpoints
Responses
POST /responses: het formaat van de OpenAI Responses API, met parameters, response, kosten en foutcodes voor elk tekstmodel.
Probeer het in de playgroundHet Responses-endpoint accepteert het formaat van de OpenAI Responses API, dus client.responses.create(...) in de officiële SDK's werkt zonder wijzigingen. Het draait op dezelfde modellen als Chat completions. api14 stuurt de body ongewijzigd upstream door en factureert de usage die terugkomt.
POST https://api14.com/api/v1/responses
Authorization: Bearer sk-api14-...
Content-Type: application/json
Request
| Parameter | Type | Beschrijving |
|---|---|---|
model | string, verplicht | Model-id, bijv. openai/gpt-5-mini. |
input | string | array, verplicht | Een promptstring of een array van invoeritems ({ role, content }-berichten, function_call_output, …). |
instructions | string | Instructies op systeemniveau. |
stream | boolean | Stream semantische events (response.output_text.delta, response.completed, …) via SSE. |
max_output_tokens | integer | Bovengrens voor het aantal gegenereerde tokens. |
temperature, top_p | number | Samplingparameters. |
tools, tool_choice, parallel_tool_calls | Functietools. Webzoeken is ook beschikbaar als tool of via plugins. | |
text | object | Uitvoerformaat, bijv. { "format": { "type": "json_schema", "name": "...", "schema": {...} } }. |
reasoning | object | { "effort": "low" | "medium" | "high" }. Zie Reasoning. |
provider, models, plugins | Dezelfde gateway-uitbreidingen als bij chat completions. |
De gateway slaat je gesprekken niet op, dus geef bij elke aanroep de volledige context mee in input. Stateful opties zoals previous_response_id worden mogelijk niet ondersteund.
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);
Het bovenstaande voorbeeld gebruikt chat completions. Met de Node-SDK ziet het Responses-equivalent er zo uit:
const response = await client.responses.create({
model: "openai/gpt-5-mini",
input: "Write a haiku about APIs.",
});
console.log(response.output_text);
Response
{
"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
}
}
De gateway leest usage uit het eindobject, of bij streaming uit het event response.completed, en schrijft cost in USD van je saldo af.
Fouten
Hetzelfde als bij 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. Zie Fouten.