Usiamo i cookie. Cookie e memoria del browser ti mantengono connesso e ricordano le tue preferenze. Con il tuo consenso misuriamo anche come viene usato il sito. Puoi in qualsiasi momento. Consulta la nostra cookie policy.

Chat completions

Endpoint

Chat completions

Usa POST /chat/completions, il formato chat di OpenAI, per inviare messaggi a qualsiasi modello di testo con parametri, risposte e streaming.

Provalo nel playground

L'endpoint chat completions usa il formato chat di OpenAI e funziona con tutti i modelli di testo del catalogo: GPT, Claude, Gemini, Llama, DeepSeek, Mistral e centinaia di altri. Il corpo della richiesta arriva al provider upstream senza modifiche. api14 si limita a verificare chiave, modello, limiti e saldo, e registra l'utilizzo al termine della richiesta.

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

Richiesta

ParametroTipoDescrizione
modelstring, obbligatorioId del modello, ad es. anthropic/claude-sonnet-4.5. Sono ammesse varianti come :online o :nitro. Vedi Id dei modelli.
messagesarray, obbligatorioConversazione sotto forma di oggetti { role, content }. Ruoli: system, developer, user, assistant, tool.
modelsstring[]Modelli di fallback da provare in ordine se il primo fallisce. Vedi Instradamento dei provider.
streambooleanTrasmette i token come server-sent events. Vedi Streaming.
max_tokens / max_completion_tokensintegerLimite massimo di token generati.
temperaturenumberTemperatura di campionamento, di solito 0–2.
top_p, top_k, min_p, top_anumberAltri controlli di campionamento. I modelli che non li supportano li ignorano.
frequency_penalty, presence_penalty, repetition_penaltynumberControlli sulle ripetizioni.
stopstring | string[]Sequenze di stop.
seedintegerCampionamento deterministico, per quanto possibile.
logprobs, top_logprobsboolean, integerRestituisce le log-probabilità dei token quando il modello le supporta.
tools, tool_choice, parallel_tool_callsFunction calling. Vedi Tool calling.
response_formatobjectModalità JSON o output con JSON Schema. Vedi Output strutturati.
reasoning, include_reasoningobject, booleanControlli sul ragionamento. Vedi Ragionamento.
plugins, web_search_optionsRicerca web. Vedi Ricerca web.
providerobjectPreferenze sul provider upstream. Vedi Instradamento dei provider.
modalitiesstring[]ad es. ["image", "text"] per output di immagini, o ["text", "audio"] per output audio.
predictionobjectOutput previsto ({ type: "content", content }) per ridurre la latenza nelle modifiche.
transformsstring[]ad es. ["middle-out"] per comprimere i prompt che superano la finestra di contesto.
userstringIl tuo identificatore dell'utente finale.

Il content del messaggio può essere una stringa o un array di parti di contenuto (text, image_url, file, input_audio). Vedi Visione e file.

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

Risposta

{
  "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 è il costo della richiesta in USD. api14 lo addebita sul tuo saldo al termine della richiesta. L'id è l'id della generazione, che puoi consultare in seguito con la Consultazione delle generazioni.

Note sulla fatturazione

  • Paghi il prezzo di listino del modello; l'addebito viene restituito in usage.cost. Vedi Prezzi e fatturazione.
  • Le richieste non riuscite (qualsiasi stato 4xx o 5xx) non vengono addebitate.
  • Se la richiesta include models: [...], tutti i modelli di fallback devono essere consentiti per la tua chiave e il tuo piano, altrimenti il gateway rifiuta la richiesta prima di inviarla all'upstream.

Errori

StatoCodiceQuando
400model_requiredmodel è mancante.
400invalid_jsonIl corpo non è un oggetto JSON.
401invalid_api_keyLa chiave è mancante, non valida o revocata.
402insufficient_balanceIl tuo saldo in USD è $0.
403model_not_allowed / plan_requiredLa lista di modelli consentiti della chiave o il tuo piano non includono questo modello.
404model_not_foundId del modello sconosciuto o disattivato.
413payload_too_largeIl corpo della richiesta supera i 25 MB.
429rate_limited / daily_limit_reachedÈ stato raggiunto il limite RPM o il limite giornaliero in USD della chiave.
502upstream_unavailableImpossibile raggiungere il provider upstream.

Gli errori dell'upstream, come il superamento della lunghezza del contesto o la moderazione dei contenuti, vengono restituiti con il codice di stato originale e lo stesso formato di errore. Vedi Errori.