# ChatGPT (chatgpt.com) — Zapi reference > ChatGPT (mode anonim, tanpa login) dari OpenAI. Endpoint kompatibel OpenAI Chat Completions (stream & non-stream). **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/chatgpt - 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 --- ## ChatGPT (chatgpt.com) **Category:** ai · **Slug:** `chatgpt` **Detail page:** https://zpi.web.id/api/ai/chatgpt ChatGPT (mode anonim, tanpa login) dari OpenAI. Endpoint kompatibel OpenAI Chat Completions (stream & non-stream). **Tags:** ai, chat, llm, openai, gpt, chatgpt ### Chat Completions Kirim percakapan (OpenAI-format messages) ke ChatGPT anonim. Dukung stream (SSE delta) & non-stream. - **Method:** `POST` - **Endpoint:** `https://api.zpi.web.id/v1/ai:chatgpt/chat` **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `messages` | array | body | yes | OpenAI-format message history. Multi-turn penuh: system + riwayat user/assistant + pertanyaan terbaru semua dikirim sebagai konteks. System message dihormati untuk behavior (gaya/peran), bukan spoof identitas. VISION (gambar): kirim part image_url di content user, mis. content:[{"type":"text","text":"Baca teks di gambar"},{"type":"image_url","image_url":{"url":"https://.../foto.png"}}] (URL http(s) atau data:image base64 dua-duanya jalan). Vision REAL (OCR akurat). Model & tier anonim fixed (tak bisa dipilih). | | `stream` | boolean | query | no | Stream balasan via SSE (OpenAI delta, token real-time). Default false | | `model` | string | body | no | Diabaikan (anonymous tier fixed). Diterima untuk kompat SDK OpenAI. | **cURL:** ```bash curl -X POST "https://api.zpi.web.id/v1/ai:chatgpt/chat" \ -H "x-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "messages": [ { "role": "system", "content": "Kamu adalah Zapi AI, asisten yang ramah, ringkas, dan menjawab dalam Bahasa Indonesia." }, { "role": "user", "content": "Halo, aku lagi belajar HTTP." }, { "role": "assistant", "content": "Tentu! HTTP itu protokol request-response. Mau mulai dari mana?" }, { "role": "user", "content": "Jelaskan beda 401 dan 403 dalam satu kalimat masing-masing." } ], "model": "VALUE" }' ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/ai:chatgpt/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, asisten yang ramah, ringkas, dan menjawab dalam Bahasa Indonesia." }, { "role": "user", "content": "Halo, aku lagi belajar HTTP." }, { "role": "assistant", "content": "Tentu! HTTP itu protokol request-response. Mau mulai dari mana?" }, { "role": "user", "content": "Jelaskan beda 401 dan 403 dalam satu kalimat masing-masing." } ], "model": "VALUE" }) }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.post("https://api.zpi.web.id/v1/ai:chatgpt/chat", headers={"x-api-key": "YOUR_API_KEY"}, json={ "messages": [ { "role": "system", "content": "Kamu adalah Zapi AI, asisten yang ramah, ringkas, dan menjawab dalam Bahasa Indonesia." }, { "role": "user", "content": "Halo, aku lagi belajar HTTP." }, { "role": "assistant", "content": "Tentu! HTTP itu protokol request-response. Mau mulai dari mana?" }, { "role": "user", "content": "Jelaskan beda 401 dan 403 dalam satu kalimat masing-masing." } ], "model": "VALUE" }) data = r.json() ``` **Example response:** ```json { "id": "chatcmpl-QR1esXzhQuXQeEEuu5hCj", "model": "chatgpt", "usage": { "total_tokens": 116, "prompt_tokens": 60, "completion_tokens": 56 }, "object": "chat.completion", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "401 berarti klien belum terautentikasi atau kredensialnya salah sehingga akses ditolak karena harus login terlebih dahulu. 403 berarti klien sudah terautentikasi tetapi tidak memiliki izin untuk mengakses resource tersebut." }, "finish_reason": "stop" } ], "created": 1782118631 } ``` --- _Generated: 2026-08-02T14:26:05.054Z_