Usamos cookies. Las cookies y el almacenamiento del navegador mantienen tu sesión iniciada y recuerdan tus preferencias. Con tu permiso, también medimos cómo se usa el sitio. Puedes en cualquier momento. Consulta nuestra política de cookies.

Chat completions

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 playground

El 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ámetroTipoDescripción
modelstring, obligatorioId del modelo, p. ej. anthropic/claude-sonnet-4.5. Se admiten variantes como :online o :nitro. Consulta Ids de modelo.
messagesarray, obligatorioLa conversación como objetos { role, content }. Roles: system, developer, user, assistant, tool.
modelsstring[]Modelos de respaldo que se prueban en orden si falla el primero. Consulta Enrutamiento de proveedores.
streambooleanTransmite los tokens como server-sent events. Consulta Streaming.
max_tokens / max_completion_tokensintegerLímite superior de tokens generados.
temperaturenumberTemperatura de muestreo, normalmente 0–2.
top_p, top_k, min_p, top_anumberOtros controles de muestreo. Los modelos que no los admiten los ignoran.
frequency_penalty, presence_penalty, repetition_penaltynumberControles de repetición.
stopstring | string[]Secuencias de parada.
seedintegerMuestreo determinista en la medida de lo posible.
logprobs, top_logprobsboolean, integerDevuelve las log-probabilidades de los tokens cuando el modelo lo admite.
tools, tool_choice, parallel_tool_callsLlamadas a funciones. Consulta Llamadas a herramientas.
response_formatobjectModo JSON o salida con JSON Schema. Consulta Salidas estructuradas.
reasoning, include_reasoningobject, booleanControles de razonamiento. Consulta Razonamiento.
plugins, web_search_optionsBúsqueda web. Consulta Búsqueda web.
providerobjectPreferencias de proveedor upstream. Consulta Enrutamiento de proveedores.
modalitiesstring[]p. ej. ["image", "text"] para salida de imagen, o ["text", "audio"] para salida de audio.
predictionobjectSalida predicha ({ type: "content", content }) para reducir la latencia en ediciones.
transformsstring[]p. ej. ["middle-out"] para comprimir prompts que superan la ventana de contexto.
userstringTu 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

EstadoCódigoCuándo
400model_requiredFalta model.
400invalid_jsonEl cuerpo no es un objeto JSON.
401invalid_api_keyLa clave falta, no es válida o está revocada.
402insufficient_balanceTu saldo en USD es de $0.
403model_not_allowed / plan_requiredLa lista de modelos permitidos de tu clave o tu plan no cubre este modelo.
404model_not_foundId de modelo desconocido o desactivado.
413payload_too_largeEl cuerpo de la petición supera los 25 MB.
429rate_limited / daily_limit_reachedSe alcanzó el límite de RPM o el límite diario en USD de la clave.
502upstream_unavailableNo 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.