Endpoint
Responses
Usa POST /responses con il formato della Responses API di OpenAI sugli stessi modelli di chat completions, con parametri, risposta, streaming ed errori.
Provalo nel playgroundL'endpoint Responses accetta il formato della Responses API di OpenAI, quindi client.responses.create(...) negli SDK ufficiali funziona senza modifiche. Gira sugli stessi modelli di Chat completions. api14 inoltra il corpo all'upstream senza modificarlo e fattura l'usage restituito.
POST https://api14.com/api/v1/responses
Authorization: Bearer sk-api14-...
Content-Type: application/json
Richiesta
| Parametro | Tipo | Descrizione |
|---|---|---|
model | string, obbligatorio | Id del modello, ad es. openai/gpt-5-mini. |
input | string | array, obbligatorio | Una stringa di prompt o un array di elementi di input (messaggi { role, content }, function_call_output, …). |
instructions | string | Istruzioni a livello di sistema. |
stream | boolean | Riceve eventi semantici (response.output_text.delta, response.completed, …) via SSE. |
max_output_tokens | integer | Limite massimo di token generati. |
temperature, top_p | number | Controlli di campionamento. |
tools, tool_choice, parallel_tool_calls | Strumenti di tipo funzione. La ricerca web è disponibile anche come strumento o tramite plugins. | |
text | object | Formato di output, ad es. { "format": { "type": "json_schema", "name": "...", "schema": {...} } }. |
reasoning | object | { "effort": "low" | "medium" | "high" }. Vedi Reasoning. |
provider, models, plugins | Le stesse estensioni del gateway di chat completions. |
Il gateway non memorizza le tue conversazioni, quindi passa il contesto completo in input a ogni chiamata. Le opzioni stateful come previous_response_id potrebbero non essere supportate.
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);
L'esempio qui sopra usa chat completions. Con l'SDK Node, l'equivalente per Responses è questo:
const response = await client.responses.create({
model: "openai/gpt-5-mini",
input: "Write a haiku about APIs.",
});
console.log(response.output_text);
Risposta
{
"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
}
}
Il gateway legge usage dall'oggetto finale, o dall'evento response.completed in streaming, e scala cost in USD dal tuo saldo.
Errori
Gli stessi di 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. Vedi Errori.