Endpoints
Chat completions
Så använder du POST /chat/completions för att skicka chattmeddelanden till vilken textmodell som helst i OpenAI:s format, med parametrar och svar.
Testa i playgroundEndpointen för chat completions använder OpenAI:s chattformat och fungerar med alla textmodeller i katalogen: GPT, Claude, Gemini, Llama, DeepSeek, Mistral och hundratals till. Anropets body skickas oförändrad till leverantören uppströms. api14 kontrollerar bara din nyckel, modell, gränser och saldo, och registrerar sedan användningen när anropet är klart.
POST https://api14.com/api/v1/chat/completions
Authorization: Bearer sk-api14-...
Content-Type: application/json
Anrop
| Parameter | Typ | Beskrivning |
|---|---|---|
model | string, obligatorisk | Modell-id, t.ex. anthropic/claude-sonnet-4.5. Varianter som :online eller :nitro är tillåtna. Se Modell-id:n. |
messages | array, obligatorisk | Konversationen som { role, content }-objekt. Roller: system, developer, user, assistant, tool. |
models | string[] | Reservmodeller som provas i tur och ordning om den första misslyckas. Se Leverantörsroutning. |
stream | boolean | Strömma tokens som server-sent events. Se Streaming. |
max_tokens / max_completion_tokens | integer | Övre gräns för antalet genererade tokens. |
temperature | number | Samplingstemperatur, oftast 0–2. |
top_p, top_k, min_p, top_a | number | Andra samplingsinställningar. Modeller som inte stöder dem ignorerar dem. |
frequency_penalty, presence_penalty, repetition_penalty | number | Styrning av upprepningar. |
stop | string | string[] | Stoppsekvenser. |
seed | integer | Deterministisk sampling i mån av möjlighet. |
logprobs, top_logprobs | boolean, integer | Returnera log-sannolikheter för tokens när modellen stöder det. |
tools, tool_choice, parallel_tool_calls | Funktionsanrop. Se Verktygsanrop. | |
response_format | object | JSON-läge eller utdata enligt JSON Schema. Se Strukturerade utdata. |
reasoning, include_reasoning | object, boolean | Styrning av tänkandet. Se Resonemang. |
plugins, web_search_options | Webbsökning. Se Webbsökning. | |
provider | object | Önskemål om leverantör uppströms. Se Leverantörsroutning. |
modalities | string[] | t.ex. ["image", "text"] för bildutdata, eller ["text", "audio"] för ljudutdata. |
prediction | object | Förutsagd utdata ({ type: "content", content }) för att minska latensen vid redigeringar. |
transforms | string[] | t.ex. ["middle-out"] för att komprimera prompter som överskrider kontextfönstret. |
user | string | Din egen identifierare för slutanvändaren. |
Meddelandets content kan vara en sträng eller en array av innehållsdelar (text, image_url, file, input_audio). Se Bilder och filer.
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);
Svar
{
"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 är anropets kostnad i USD. api14 drar den från ditt saldo när anropet är klart. id är genererings-id:t, som du senare kan slå upp med Uppslag av generering.
Om debitering
- Du betalar modellens listpris; avgiften returneras i
usage.cost. Se Priser och fakturering. - Du debiteras inte för misslyckade anrop (alla 4xx- eller 5xx-statusar).
- Om anropet innehåller
models: [...]måste varje reservmodell vara tillåten för din nyckel och plan, annars avvisar gatewayen anropet innan det skickas uppströms.
Fel
| Status | Kod | När |
|---|---|---|
| 400 | model_required | model saknas. |
| 400 | invalid_json | Bodyn är inte ett JSON-objekt. |
| 401 | invalid_api_key | Nyckeln saknas, är ogiltig eller har återkallats. |
| 402 | insufficient_balance | Ditt USD-saldo är $0. |
| 403 | model_not_allowed / plan_required | Nyckelns lista över tillåtna modeller eller din plan omfattar inte den här modellen. |
| 404 | model_not_found | Okänt eller inaktiverat modell-id. |
| 413 | payload_too_large | Anropets body är större än 25 MB. |
| 429 | rate_limited / daily_limit_reached | RPM-gränsen eller nyckelns dagliga USD-gräns har nåtts. |
| 502 | upstream_unavailable | Leverantören uppströms gick inte att nå. |
Fel från uppströms, som överskriden kontextlängd eller innehållsmoderering, returneras med sin ursprungliga statuskod och samma felformat. Se Fel.