# Chatex — Zapi reference > Chatex chat — OpenAI-compatible chat completions. **Base URL:** `https://api.zpi.web.id` **Auth:** Send `x-api-key: YOUR_KEY` header on every request. Get a free key at https://zpi.web.id/dashboard/keys. **Response envelope:** `{ status, message, content }` **Rate limit:** 60 req/min on free tier. **Related:** - Detail page: https://zpi.web.id/api/ai/chatex - Endpoint catalog: https://zpi.web.id/category/ai - Concise index: https://zpi.web.id/llms.txt - Full reference: https://zpi.web.id/llms-full.txt --- ## Chatex **Category:** ai · **Slug:** `chatex` **Detail page:** https://zpi.web.id/api/ai/chatex Chatex chat — OpenAI-compatible chat completions. **Tags:** chat, ai, llm ### Chatex Chat OpenAI-compatible chat completions (dual mode stream/non-stream). - **Method:** `POST` - **Endpoint:** `https://api.zpi.web.id/v1/ai:chatex/chat` **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `messages` | array | body | yes | OpenAI-format messages array. Mendukung multi-turn (riwayat dijaga). `system` role memakai PERSONA OVERRIDE - bisa mengganti identitas default upstream. Min 1 item, harus ada role user. | | `stream` | boolean | body | no | Stream OpenAI delta SSE. Default false | **cURL:** ```bash curl -X POST "https://api.zpi.web.id/v1/ai:chatex/chat" \ -H "x-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "messages": [ { "role": "system", "content": "Kamu adalah Zapi AI buatan Zapi (Zest API), asisten pintar. Selalu jawab bahasa Indonesia." }, { "role": "user", "content": "Siapa nama kamu dan pakai model apa?" } ], "stream": true }' ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/ai:chatex/chat", { method: "POST", headers: { "x-api-key": process.env.ZAPI_KEY, "Content-Type": "application/json" }, body: JSON.stringify({ "messages": [ { "role": "system", "content": "Kamu adalah Zapi AI buatan Zapi (Zest API), asisten pintar. Selalu jawab bahasa Indonesia." }, { "role": "user", "content": "Siapa nama kamu dan pakai model apa?" } ], "stream": true }) }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.post("https://api.zpi.web.id/v1/ai:chatex/chat", headers={"x-api-key": "YOUR_API_KEY"}, json={ "messages": [ { "role": "system", "content": "Kamu adalah Zapi AI buatan Zapi (Zest API), asisten pintar. Selalu jawab bahasa Indonesia." }, { "role": "user", "content": "Siapa nama kamu dan pakai model apa?" } ], "stream": true }) data = r.json() ``` **Example response:** ```json { "id": "chatcmpl-2Z4jj1j65Xj4jXzUjQBbQ", "model": "openai/gpt-5.4", "usage": { "total_tokens": 193, "prompt_tokens": 159, "completion_tokens": 34 }, "object": "chat.completion", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "Saya **Zapi AI**, asisten pintar buatan **Zapi (Zest API)**. \nSoal “pakai model apa”, saya menjawab sesuai persona ini: **Zapi AI**." }, "finish_reason": "stop" } ], "created": 1782118433 } ``` --- _Generated: 2026-08-02T14:24:17.749Z_