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

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

# Chat Completions

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

Antwoord van het model op een gesprek in OpenAI-formaat. Het meest gebruikte formaat: vrijwel alle clients ondersteunen het.

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": "Leg in twee zinnen uit wat een API is."}
    ]
  }' 
```

```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": "Leg in twee zinnen uit wat een API is."}],
)
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: "Leg in twee zinnen uit wat een API is." }],
});
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": "Een API is een afspraak over hoe het ene programma een ander programma vraagt iets te doen…"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 21,
    "completion_tokens": 48,
    "total_tokens": 69
  }
}
```

## Authenticatie

| Parameter | Type | Verplicht | Beschrijving |
| --- | --- | --- | --- |
| `Authorization` | header | verplicht | Sleutel in de vorm `Bearer sk-…`. Ook de headers `x-api-key` of `x-goog-api-key`. |

## Verzoekbody

| Parameter | Type | Verplicht | Beschrijving |
| --- | --- | --- | --- |
| `model` | string | verplicht | Model-ID uit de [catalogus](https://ailoot.ai/models/nl/), bijvoorbeeld `claude-sonnet-5-5`. Het model moet het OpenAI Chat-formaat ondersteunen. |
| `messages` | array | verplicht | Gespreksgeschiedenis: objecten met `role` (`system`, `developer`, `user`, `assistant`, `tool`) en `content` — een string of een array van onderdelen (tekst, `image_url`). |
| `stream` | boolean | optioneel | Antwoord in Server-Sent Events-formaat. Standaard `false`. Betaalde tekst komt na de kostenberekening als één blok binnen, niet woord voor woord. |
| `stream_options` | object | optioneel | `{"include_usage": true}` — stuur de uiteindelijke `usage` als laatste gebeurtenis in de stream. |
| `max_tokens` | integer | optioneel | Maximumaantal antwoordtokens. De nieuwe naam is `max_completion_tokens`. Als geen limiet is opgegeven, vult Ailoot 4096 in (of minder als de antwoordlimiet van het model lager is; Grok heeft een eigen limiet). Geef voor lange antwoorden expliciet een limiet op, anders stopt het antwoord bij 4096 tokens met `finish_reason: "length"`. De limiet telt mee in de reservering: hoe hoger de limiet, hoe meer vrij saldo nodig is. |
| `temperature` | number | optioneel | Willekeurigheid van het antwoord, meestal van 0 tot 2. Kan bij redeneermodellen worden genegeerd. |
| `top_p` | number | optioneel | Alternatief voor temperature: het aandeel van de kansmassa dat bij de tokenselectie wordt gebruikt. |
| `stop` | string \| array | optioneel | Strings waarbij de generatie stopt. |
| `tools` | array | optioneel | Beschrijvingen van functies die het model kan aanroepen. Het formaat is hetzelfde als bij OpenAI: `{"type": "function", "function": {...}}`. |
| `tool_choice` | string \| object | optioneel | `auto`, `none`, `required` of een specifieke functie. |
| `response_format` | object | optioneel | `{"type": "json_object"}` of `{"type": "json_schema", ...}` voor een gestructureerd antwoord — als het model dit ondersteunt. |
| `reasoning_effort` | string | optioneel | Redeneerdiepte voor redeneermodellen: `low`, `medium`, `high`. |

De overige OpenAI-parameters worden ongewijzigd doorgegeven; de ontwikkelaar van het model bepaalt of dat specifieke model ze ondersteunt.

## Antwoord

| Parameter | Type | Verplicht | Beschrijving |
| --- | --- | --- | --- |
| `choices[].message` | object |  | Antwoord van het model: `content`, bij het aanroepen van tools: `tool_calls`. |
| `choices[].finish_reason` | string |  | `stop` — het antwoord is voltooid; `length` — de limiet is bereikt: `max_tokens` (dit antwoord is nog steeds volledig en wordt naar daadwerkelijk verbruik afgerekend); `tool_calls` — het model roept een tool aan. |
| `usage` | object |  | `prompt_tokens`, `completion_tokens`, `total_tokens` — hiermee wordt de afschrijving berekend. |

Nog vragen? Stuur de Request ID en een beschrijving — we helpen je verder.[Contact opnemen met support](mailto:support@ailoot.ai)

## Ailoot · Het bedrijf en zijn projectenportefeuille





Ailoot bouwt op opgebouwde operationele ervaring, een groot klantenbestand, een stabiele dienst en doorlopende KPI-controle.





Het bedrijf en zijn projectenportefeuille: miljoenen klanten; maandelijkse verkopen in de miljarden.





Ailoot gebruikt die operationele ervaring voor API-toegang tot AI-functies in klantproducten, agents, applicaties en automatiseringen.
