Endpoints
Chat completions
Usa POST /chat/completions con el formato de chat de OpenAI para llamar a todos los modelos de texto: parámetros, streaming, respuesta y errores.
Pruébalo en el playgroundEl endpoint de chat completions usa el formato de chat de OpenAI y funciona con todos los modelos de texto del catálogo: GPT, Claude, Gemini, Llama, DeepSeek, Mistral y cientos más. El cuerpo de la petición llega sin cambios al proveedor upstream. api14 solo comprueba tu clave, el modelo, los límites y el saldo, y registra el uso cuando termina la petición.
POST https://api14.com/api/v1/chat/completions
Authorization: Bearer sk-api14-...
Content-Type: application/json
Petición
| Parámetro | Tipo | Descripción |
|---|---|---|
model | string, obligatorio | Id del modelo, p. ej. anthropic/claude-sonnet-4.5. Se admiten variantes como :online o :nitro. Consulta Ids de modelo. |
messages | array, obligatorio | La conversación como objetos { role, content }. Roles: system, developer, user, assistant, tool. |
models | string[] | Modelos de respaldo que se prueban en orden si falla el primero. Consulta Enrutamiento de proveedores. |
stream | boolean | Transmite los tokens como server-sent events. Consulta Streaming. |
max_tokens / max_completion_tokens | integer | Límite superior de tokens generados. |
temperature | number | Temperatura de muestreo, normalmente 0–2. |
top_p, top_k, min_p, top_a | number | Otros controles de muestreo. Los modelos que no los admiten los ignoran. |
frequency_penalty, presence_penalty, repetition_penalty | number | Controles de repetición. |
stop | string | string[] | Secuencias de parada. |
seed | integer | Muestreo determinista en la medida de lo posible. |
logprobs, top_logprobs | boolean, integer | Devuelve las log-probabilidades de los tokens cuando el modelo lo admite. |
tools, tool_choice, parallel_tool_calls | Llamadas a funciones. Consulta Llamadas a herramientas. | |
response_format | object | Modo JSON o salida con JSON Schema. Consulta Salidas estructuradas. |
reasoning, include_reasoning | object, boolean | Controles de razonamiento. Consulta Razonamiento. |
plugins, web_search_options | Búsqueda web. Consulta Búsqueda web. | |
provider | object | Preferencias de proveedor upstream. Consulta Enrutamiento de proveedores. |
modalities | string[] | p. ej. ["image", "text"] para salida de imagen, o ["text", "audio"] para salida de audio. |
prediction | object | Salida predicha ({ type: "content", content }) para reducir la latencia en ediciones. |
transforms | string[] | p. ej. ["middle-out"] para comprimir prompts que superan la ventana de contexto. |
user | string | Tu propio identificador de usuario final. |
El content de un mensaje puede ser un string o un array de partes de contenido (text, image_url, file, input_audio). Consulta Visión y archivos.
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);
Respuesta
{
"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 es el coste de la petición en USD. api14 lo descuenta de tu saldo cuando termina la petición. El id es el id de generación, que puedes consultar más tarde con Consulta de generaciones.
Notas de facturación
- Pagas el precio publicado del modelo; el cargo se devuelve en
usage.cost. Consulta Precios y facturación. - Las peticiones fallidas (cualquier estado 4xx o 5xx) no se cobran.
- Si la petición incluye
models: [...], todos los modelos de respaldo deben estar permitidos para tu clave y tu plan; de lo contrario, la pasarela rechaza la petición antes de enviarla al upstream.
Errores
| Estado | Código | Cuándo |
|---|---|---|
| 400 | model_required | Falta model. |
| 400 | invalid_json | El cuerpo no es un objeto JSON. |
| 401 | invalid_api_key | La clave falta, no es válida o está revocada. |
| 402 | insufficient_balance | Tu saldo en USD es de $0. |
| 403 | model_not_allowed / plan_required | La lista de modelos permitidos de tu clave o tu plan no cubre este modelo. |
| 404 | model_not_found | Id de modelo desconocido o desactivado. |
| 413 | payload_too_large | El cuerpo de la petición supera los 25 MB. |
| 429 | rate_limited / daily_limit_reached | Se alcanzó el límite de RPM o el límite diario en USD de la clave. |
| 502 | upstream_unavailable | No se pudo contactar con el proveedor upstream. |
Los errores del upstream, como exceder la longitud de contexto o la moderación de contenido, se devuelven con su código de estado original y el mismo formato de error. Consulta Errores.