Usamos cookies. Cookies e o armazenamento do navegador mantêm você conectado e lembram suas preferências. Com sua permissão, também medimos como o site é usado. Você pode a qualquer momento. Veja nossa política de cookies.

Chat completions

Endpoints

Chat completions

Referência de POST /chat/completions: o formato de chat da OpenAI para todos os modelos de texto, com mensagens, parâmetros, respostas e exemplos.

Teste no playground

O endpoint de chat completions usa o formato de chat da OpenAI e funciona com todos os modelos de texto do catálogo: GPT, Claude, Gemini, Llama, DeepSeek, Mistral e centenas de outros. O corpo da requisição vai para o provedor upstream sem alterações. O api14 apenas verifica sua chave, modelo, limites e saldo, e depois registra o uso quando a requisição termina.

POST https://api14.com/api/v1/chat/completions
Authorization: Bearer sk-api14-...
Content-Type: application/json

Requisição

ParâmetroTipoDescrição
modelstring, obrigatórioId do modelo, ex.: anthropic/claude-sonnet-4.5. Variantes como :online ou :nitro são permitidas. Veja Ids de modelo.
messagesarray, obrigatórioConversa como objetos { role, content }. Papéis: system, developer, user, assistant, tool.
modelsstring[]Modelos de fallback a tentar em ordem se o primeiro falhar. Veja Roteamento de provedores.
streambooleanTransmite tokens como server-sent events. Veja Streaming.
max_tokens / max_completion_tokensintegerLimite máximo de tokens gerados.
temperaturenumberTemperatura de amostragem, geralmente 0–2.
top_p, top_k, min_p, top_anumberOutros controles de amostragem. Modelos que não os suportam os ignoram.
frequency_penalty, presence_penalty, repetition_penaltynumberControles de repetição.
stopstring | string[]Sequências de parada.
seedintegerAmostragem determinística na base do melhor esforço.
logprobs, top_logprobsboolean, integerRetorna as log-probabilidades dos tokens quando o modelo suporta.
tools, tool_choice, parallel_tool_callsChamada de funções. Veja Chamada de ferramentas.
response_formatobjectModo JSON ou saída com JSON Schema. Veja Saídas estruturadas.
reasoning, include_reasoningobject, booleanControles de raciocínio. Veja Raciocínio.
plugins, web_search_optionsBusca na web. Veja Busca na web.
providerobjectPreferências de provedor upstream. Veja Roteamento de provedores.
modalitiesstring[]ex.: ["image", "text"] para saída de imagem, ou ["text", "audio"] para saída de áudio.
predictionobjectSaída prevista ({ type: "content", content }) para reduzir a latência em edições.
transformsstring[]ex.: ["middle-out"] para comprimir prompts que excedem a janela de contexto.
userstringSeu próprio identificador de usuário final.

O content da mensagem pode ser uma string ou um array de partes de conteúdo (text, image_url, file, input_audio). Veja Visão e arquivos.

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);

Resposta

{
  "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 é o custo da requisição em USD. O api14 o debita do seu saldo depois que a requisição termina. O id é o id da geração, que você pode consultar depois com a Consulta de geração.

Notas sobre cobrança

  • Você paga o preço listado do modelo; a cobrança é retornada em usage.cost. Veja Preços e cobrança.
  • Requisições com falha (qualquer status 4xx ou 5xx) não são cobradas.
  • Se a requisição incluir models: [...], todos os modelos de fallback precisam estar permitidos para sua chave e plano, ou o gateway rejeita a requisição antes de enviá-la ao upstream.

Erros

StatusCódigoQuando
400model_requiredmodel está ausente.
400invalid_jsonO corpo não é um objeto JSON.
401invalid_api_keyA chave está ausente, é inválida ou foi revogada.
402insufficient_balanceSeu saldo em USD é $0.
403model_not_allowed / plan_requiredA lista de permitidos da sua chave ou o seu plano não cobre este modelo.
404model_not_foundId de modelo desconhecido ou desativado.
413payload_too_largeO corpo da requisição é maior que 25 MB.
429rate_limited / daily_limit_reachedO limite de RPM ou o limite diário em USD da chave foi atingido.
502upstream_unavailableNão foi possível acessar o provedor upstream.

Erros do upstream, como limite de contexto excedido ou moderação de conteúdo, voltam com o código de status original e o mesmo formato de erro. Veja Erros.