Endpoints
API Responses
Use o endpoint POST /responses do api14, compatível com a OpenAI Responses API, com parâmetros, formato da resposta, streaming e erros.
Teste no playgroundO endpoint Responses aceita o formato da OpenAI Responses API, então client.responses.create(...) nos SDKs oficiais funciona sem alterações. Ele roda nos mesmos modelos de Chat completions. O api14 encaminha o corpo da requisição ao provedor sem modificá-lo e cobra o usage que retorna.
POST https://api14.com/api/v1/responses
Authorization: Bearer sk-api14-...
Content-Type: application/json
Requisição
| Parâmetro | Tipo | Descrição |
|---|---|---|
model | string, obrigatório | Id do modelo, por exemplo openai/gpt-5-mini. |
input | string | array, obrigatório | Uma string de prompt ou um array de itens de entrada (mensagens { role, content }, function_call_output, …). |
instructions | string | Instruções em nível de sistema. |
stream | boolean | Transmite eventos semânticos (response.output_text.delta, response.completed, …) por SSE. |
max_output_tokens | integer | Limite superior de tokens gerados. |
temperature, top_p | number | Controles de amostragem. |
tools, tool_choice, parallel_tool_calls | Ferramentas de função. A busca na web também está disponível como ferramenta ou por meio de plugins. | |
text | object | Formato de saída, por exemplo { "format": { "type": "json_schema", "name": "...", "schema": {...} } }. |
reasoning | object | { "effort": "low" | "medium" | "high" }. Veja Raciocínio. |
provider, models, plugins | As mesmas extensões do gateway usadas em chat completions. |
O gateway não armazena suas conversas, então envie o contexto completo em input a cada chamada. Opções com estado, como previous_response_id, podem não ser suportadas.
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);
O exemplo acima usa chat completions. Com o SDK do Node, o equivalente em Responses fica assim:
const response = await client.responses.create({
model: "openai/gpt-5-mini",
input: "Write a haiku about APIs.",
});
console.log(response.output_text);
Resposta
{
"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
}
}
O gateway lê usage do objeto final, ou do evento response.completed ao usar streaming, e debita cost em USD do seu saldo.
Erros
Os mesmos de 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. Veja Erros.