Dokumentasi API

Dua endpoint: kirim reaction emoji ke post channel WhatsApp, dan AI chat.

Endpoint

POST https://domainmu.com/api/v1/react

Header

HeaderKeterangan
x-api-keyAPI key dari dashboard (wajib)
Content-Typeapplication/json

Body

ParameterTipeKeterangan
urlstringLink post channel, format https://whatsapp.com/channel/<id>/<post>
emojisstring / arrayEmoji dipisah koma, atau array. Maksimal sesuai tier

Contoh

cURL

curl -X POST https://domainmu.com/api/v1/react \
  -H "Content-Type: application/json" \
  -H "x-api-key: zx_xxxxxxxxxxxxxxxx" \
  -d '{
    "url": "https://whatsapp.com/channel/0029VbXXXXXXXXXXXX/123",
    "emojis": "🥳,👍,❤️,🔥"
  }'

JavaScript

const res = await fetch("https://domainmu.com/api/v1/react", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.ZREACT_KEY,
  },
  body: JSON.stringify({
    url: "https://whatsapp.com/channel/0029VbXXXXXXXXXXXX/123",
    emojis: "🥳,👍,❤️,🔥",
  }),
});
console.log(await res.json());

Python

import requests

r = requests.post(
    "https://domainmu.com/api/v1/react",
    headers={"x-api-key": "zx_xxxxxxxxxxxxxxxx"},
    json={
        "url": "https://whatsapp.com/channel/0029VbXXXXXXXXXXXX/123",
        "emojis": "🥳,👍,❤️,🔥",
    },
    timeout=30,
)
print(r.json())

Response

Sukses (200)

{
  "success": true,
  "message": "Reaction masuk antrean",
  "reactions": ["🥳", "👍", "❤️", "🔥"],
  "quota": { "tier": "free", "type": "total", "limit": 200, "remaining": 187 }
}

Gagal

{
  "success": false,
  "code": "quota_exhausted",
  "message": "Kuota habis. Undang teman untuk menambah kuota"
}
codeHTTPArti
invalid_url400URL bukan link post channel WhatsApp
invalid_emojis400Parameter emojis kosong atau tidak valid
emoji_limit400Jumlah emoji melebihi batas tier
invalid_message400Parameter message kosong atau lebih dari 3000 karakter (endpoint AI)
invalid_model400Model tidak tersedia (endpoint AI)
invalid_image400Parameter image harus berupa URL https (endpoint AI)
ai_disabled403Fitur AI belum tersedia untuk tier kamu
invalid_key401API key tidak ada atau salah
key_disabled403API key atau akun dinonaktifkan
quota_exhausted403Kuota Trial/Free habis, undang teman untuk menambah kuota
burst_limit429Terlalu banyak request dalam waktu singkat (lihat header Retry-After)
hourly_limit429Kuota per jam habis, khusus VIP (lihat header Retry-After)
upstream_error502Layanan bermasalah, kuota otomatis dikembalikan
upstream_timeout504Layanan tidak merespons, kuota otomatis dikembalikan

Request yang gagal karena layanan (502/504) tidak memotong kuota. Setiap response sukses menyertakan header X-RateLimit-Limit dan X-RateLimit-Remaining.

Endpoint AI

POST https://domainmu.com/api/v1/ai

Header sama seperti endpoint reaction (x-api-key). Jawaban dikirim setelah selesai, bisa sampai satu menit. Request yang gagal di layanan tidak memotong kuota.

ParameterTipeKeterangan
messagestringPertanyaan atau perintah (wajib, maks 3000 karakter)
modelstringOpsional. Jika kosong dipakai model default
imagestringOpsional. URL https gambar yang ingin dianalisis
thinkingbooleanOpsional. true menyertakan ringkasan proses berpikir di field thinking

cURL

curl -X POST https://domainmu.com/api/v1/ai \
  -H "Content-Type: application/json" \
  -H "x-api-key: zx_xxxxxxxxxxxxxxxx" \
  -d '{
    "message": "Jelaskan perbedaan REST API dan GraphQL",
    "thinking": false
  }'

JavaScript

const res = await fetch("https://domainmu.com/api/v1/ai", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.ZREACT_KEY,
  },
  body: JSON.stringify({ message: "Jelaskan perbedaan REST API dan GraphQL" }),
});
const { content } = await res.json();

Response sukses (200)

{
  "success": true,
  "content": "# Perbedaan REST API dan GraphQL ...",
  "quota": { "tier": "free", "type": "total", "limit": 200, "remaining": 199 }
}

Tier & limit

TierSyaratKuotaBurstEmoji / request
TrialOtomatis setelah daftar10 request (tidak reset)2 / 10 dtk5
FreeUndang 5 pengguna aktif. Tiap 5 undangan berikutnya +200 kuota200 kuota (tidak reset)5 / 10 dtk5
VIPHubungi admin1000 request / jam20 / 10 dtk30

Satu request reaction dihitung satu kuota, berapa pun jumlah emojinya; request AI memotong kuota sesuai biaya yang berlaku (default 1). Kuota Trial dan Free adalah kuota total yang tidak reset; tambahannya didapat dengan mengundang teman (tiap 5 undangan aktif = +200 kuota). Kuota VIP reset setiap jam.