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

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

# Chat Completions

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

Respons model terhadap percakapan dalam format OpenAI. Format paling umum: dipahami oleh hampir semua klien.

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": "Jelaskan apa itu API dalam dua kalimat."}
    ]
  }' 
```

```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": "Jelaskan apa itu API dalam dua kalimat."}],
)
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: "Jelaskan apa itu API dalam dua kalimat." }],
});
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 adalah kesepakatan tentang cara satu program meminta program lain melakukan sesuatu…"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 21,
    "completion_tokens": 48,
    "total_tokens": 69
  }
}
```

## Autentikasi

| Parameter | Tipe | Wajib | Deskripsi |
| --- | --- | --- | --- |
| `Authorization` | header | wajib | Kunci dalam format `Bearer sk-…`. Header yang juga dapat digunakan: `x-api-key` atau `x-goog-api-key`. |

## Isi permintaan

| Parameter | Tipe | Wajib | Deskripsi |
| --- | --- | --- | --- |
| `model` | string | wajib | ID model dari [katalog](https://ailoot.ai/models/id/), misalnya `claude-sonnet-5-5`. Model harus mendukung format OpenAI Chat. |
| `messages` | array | wajib | Riwayat percakapan: objek dengan `role` (`system`, `developer`, `user`, `assistant`, `tool`) dan `content` — berupa string atau array bagian (teks, `image_url`). |
| `stream` | boolean | opsional | Respons dalam format Server-Sent Events. Nilai defaultnya `false`. Teks berbayar dikirim sekaligus setelah biaya dihitung, bukan kata demi kata. |
| `stream_options` | object | opsional | `{"include_usage": true}` — kirim hasil akhir `usage` sebagai peristiwa terakhir dalam aliran. |
| `max_tokens` | integer | opsional | Jumlah maksimum token respons. Nama barunya — `max_completion_tokens`. Jika batas tidak ditentukan, Ailoot menetapkan 4096 (atau lebih rendah jika batas respons model lebih rendah; Grok memiliki batas tersendiri). Untuk respons panjang, tetapkan batas secara eksplisit; jika tidak, respons akan berhenti pada 4096 token dengan `finish_reason: "length"`. Batas ini termasuk dalam saldo yang ditahan: makin tinggi nilainya, makin besar saldo bebas yang diperlukan. |
| `temperature` | number | opsional | Tingkat keacakan respons, biasanya dari 0 hingga 2. Dapat diabaikan oleh model penalaran. |
| `top_p` | number | opsional | Alternatif untuk temperature: proporsi massa probabilitas yang digunakan untuk memilih token. |
| `stop` | string \| array | opsional | String yang akan menghentikan proses generasi. |
| `tools` | array | opsional | Deskripsi fungsi yang dapat dipanggil model. Formatnya sama dengan OpenAI: `{"type": "function", "function": {...}}`. |
| `tool_choice` | string \| object | opsional | `auto`, `none`, `required` atau fungsi tertentu. |
| `response_format` | object | opsional | `{"type": "json_object"}` atau `{"type": "json_schema", ...}` untuk respons terstruktur — jika model mendukungnya. |
| `reasoning_effort` | string | opsional | Kedalaman penalaran untuk model penalaran: `low`, `medium`, `high`. |

Parameter OpenAI lainnya diteruskan apa adanya; dukungan masing-masing model ditentukan oleh pengembang model tersebut.

## Respons

| Parameter | Tipe | Wajib | Deskripsi |
| --- | --- | --- | --- |
| `choices[].message` | object |  | Respons model: `content`, saat memanggil alat — `tool_calls`. |
| `choices[].finish_reason` | string |  | `stop` — respons selesai; `length` — mencapai batas `max_tokens` (respons seperti ini tetap dianggap lengkap dan ditagih berdasarkan pemakaian aktual); `tool_calls` — model memanggil alat. |
| `usage` | object |  | `prompt_tokens`, `completion_tokens`, `total_tokens` — dasar perhitungan pendebitan. |

Masih ada pertanyaan? Kirim Request ID dan penjelasannya — kami akan membantu.[Hubungi dukungan](mailto:support@ailoot.ai)

## Ailoot · Perusahaan dan portofolio proyeknya





Ailoot bertumpu pada pengalaman operasional yang teruji, basis pelanggan yang besar, layanan yang stabil, dan pemantauan KPI berkelanjutan.





Perusahaan dan portofolio proyeknya: jutaan pelanggan; penjualan miliaran setiap bulan.





Ailoot memanfaatkan pengalaman operasional ini untuk akses API ke fitur AI dalam produk pelanggan, agen, aplikasi, dan otomatisasi.
