Source: https://ailoot.ai/docs/nb/api/chat-completions/
Canonical: https://ailoot.ai/docs/nb/api/chat-completions/
Language: nb

[API](https://ailoot.ai/docs/nb/) 

# Chat Completions

[Markdown](https://ailoot.ai/docs/nb/api/chat-completions/index.md)

Modellens svar på en samtale i OpenAI-format. Det vanligste formatet: nesten alle klienter støtter det.

POST`https://api.ailoot.ai/v1/chat/completions`

Chat Completions

```bash
curl https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5-5",
    "messages": [
      {"role": "user", "content": "Forklar med to setninger hva et API er."}
    ]
  }' 
```

```python
from openai import OpenAI
import os

client = OpenAI(max_retries=0, 
    base_url="https://api.ailoot.ai/v1",
    api_key=os.environ["AILOOT_API_KEY"],
)

resp = client.chat.completions.create(
    model="claude-sonnet-5-5",
    messages=[{"role": "user", "content": "Forklar med to setninger hva et API er."}],
)
print(resp.choices[0].message.content)
```

```js
import OpenAI from "openai";

const client = new OpenAI({ maxRetries: 0,
  baseURL: "https://api.ailoot.ai/v1",
  apiKey: process.env.AILOOT_API_KEY,
});

const resp = await client.chat.completions.create({
  model: "claude-sonnet-5-5",
  messages: [{ role: "user", content: "Forklar med to setninger hva et API er." }],
});
console.log(resp.choices[0].message.content);
```

200 OK

```json
{
  "id": "chatcmpl-8f2c…",
  "object": "chat.completion",
  "created": 1790812800,
  "model": "claude-sonnet-5-5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "API er en avtale om hvordan ett program ber et annet om å gjøre noe…"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 21,
    "completion_tokens": 48,
    "total_tokens": 69
  }
}
```

## Autentisering

| Parameter | Type | Påkrevd | Beskrivelse |
| --- | --- | --- | --- |
| `Authorization` | header | påkrevd | Nøkkel i formatet `Bearer sk-…`. Du kan også bruke headerne `x-api-key` eller `x-goog-api-key`. |

## Forespørselskropp

| Parameter | Type | Påkrevd | Beskrivelse |
| --- | --- | --- | --- |
| `model` | string | påkrevd | Modell-ID fra [katalogen](https://ailoot.ai/models/nb/), for eksempel `claude-sonnet-5-5`. Modellen må støtte OpenAI Chat-formatet. |
| `messages` | array | påkrevd | Samtalehistorikk: objekter med `role` (`system`, `developer`, `user`, `assistant`, `tool`) og `content` — en streng eller en liste med deler (tekst, `image_url`). |
| `stream` | boolean | valgfri | Svar i Server-Sent Events-format. Standardverdien er `false`. Betalt tekst leveres som én blokk etter at kostnaden er beregnet, ikke ord for ord. |
| `stream_options` | object | valgfri | `{"include_usage": true}` — send endelig `usage` som den siste hendelsen i strømmen. |
| `max_tokens` | integer | valgfri | Maksimalt antall svartokener. Det nye navnet er `max_completion_tokens`. Hvis ingen grense er angitt, setter Ailoot inn 4096 (eller mindre hvis modellens svargrense er lavere; Grok har sin egen grense). Angi grensen eksplisitt for lange svar, ellers stopper svaret ved 4096 tokener med `finish_reason: "length"`. Grensen inngår i reservasjonen: jo høyere den er, desto større tilgjengelig saldo trenger du. |
| `temperature` | number | valgfri | Tilfeldighet i svaret, vanligvis fra 0 til 2. Kan ignoreres av resonnerende modeller. |
| `top_p` | number | valgfri | Alternativ til temperature: andelen av sannsynlighetsmassen som brukes til å velge tokener. |
| `stop` | string \| array | valgfri | Strenger som stopper genereringen. |
| `tools` | array | valgfri | Beskrivelser av funksjoner modellen kan kalle. Formatet er som hos OpenAI: `{"type": "function", "function": {...}}`. |
| `tool_choice` | string \| object | valgfri | `auto`, `none`, `required` eller en bestemt funksjon. |
| `response_format` | object | valgfri | `{"type": "json_object"}` eller `{"type": "json_schema", ...}` for et strukturert svar — hvis modellen støtter det. |
| `reasoning_effort` | string | valgfri | Resonneringsdybde for resonnerende modeller: `low`, `medium`, `high`. |

Andre OpenAI-parametere videresendes uendret; modellutvikleren avgjør om den enkelte modellen støtter dem.

## Svar

| Parameter | Type | Påkrevd | Beskrivelse |
| --- | --- | --- | --- |
| `choices[].message` | object |  | Modellens svar: `content`, ved verktøykall — `tool_calls`. |
| `choices[].finish_reason` | string |  | `stop` — svaret er ferdig; `length` — nådde grensen i `max_tokens` (et slikt svar regnes likevel som komplett og belastes etter faktisk forbruk); `tool_calls` — modellen kaller et verktøy. |
| `usage` | object |  | `prompt_tokens`, `completion_tokens`, `total_tokens` — disse brukes til å beregne belastningen. |

Flere spørsmål? Send Request ID og en beskrivelse, så hjelper vi deg.[Kontakt brukerstøtte](mailto:support@ailoot.ai)

## Ailoot · Selskapet og dets prosjektportefølje





Ailoot bygger på etablert driftserfaring, en stor kundebase, stabil tjeneste og løpende KPI-kontroll.





Selskapet og dets prosjektportefølje: millioner av kunder; månedlig salg for milliarder.





Ailoot bruker denne driftserfaringen til API-tilgang til AI-funksjoner i kundenes produkter, agenter, applikasjoner og automatiseringer.
