WhatsApp
Cutie Gateway QR Scan
Login

API Documentation

Dokumentasi pesan langsung, media, dan pesan terjadwal
Dashboard

Syarat Langganan API

Semua endpoint pengiriman dan schedule hanya dapat digunakan ketika langganan aktif dan sender berstatus connected.

HTTP 403
{
  "success": false,
  "code": "SUBSCRIPTION_REQUIRED | SUBSCRIPTION_EXPIRED",
  "message": "Alasan langganan tidak aktif"
}

Lakukan pembayaran/perpanjangan, kemudian tekan Hubungkan Kembali pada Dashboard.

Send Message API

Endpoint kompatibel dengan format API kamu. Gunakan device yang sudah berstatus connected.

Nomor wajib tersimpan: nomor tujuan harus sudah tersimpan di sistem sebelum dapat menerima pesan. Nomor akan tersimpan otomatis setelah penerima chat ke nomor bot terlebih dahulu. Jika belum tersimpan, API mengembalikan NUMBER_NOT_SAVED dan pesan tidak dikirim.

Method POST atau GET
Endpoint /send-message

Parameters

Parameter Type Required Description
api_key string Yes API key user
sender string Yes Nomor device yang connected
number string Yes Nomor tujuan, contoh 62888xxxx
message string Yes Pesan yang dikirim

POST JSON

POST /send-message
Content-Type: application/json

{
  "api_key": "1234567890",
  "sender": "62888xxxx",
  "number": "62888xxxx",
  "message": "Hello World"
}

GET URL

/send-message?api_key=1234567890&sender=62888xxxx&number=62888xxxx&message=Hello%20World

Send Media API

Endpoint ini digunakan untuk mengirim media dari URL direct link. Pastikan URL bukan link Google Drive, Dropbox preview, atau cloud storage yang butuh halaman perantara.

Method POST atau GET
Endpoint /send-media

Media Parameters

Parameter Type Required Description
api_key string Yes API key user
sender string Yes Nomor device yang connected
number string Yes Nomor tujuan, contoh 62888xxxx
media_type string Yes Allowed: image, video, audio, pdf, xls, xlsx, doc, docx, zip
caption string No Akan tampil untuk media type image dan video.
url string Yes URL media. Wajib direct link.
ppt boolean No Digunakan untuk type audio. true = voice note, false = audio biasa.

Note: Pastikan url adalah direct link, bukan link dari Google Drive atau cloud storage yang membuka halaman preview.

Example JSON Request

POST /send-media
Content-Type: application/json

{
  "api_key": "1234567890",
  "sender": "62888xxxx",
  "number": "62888xxxx",
  "media_type": "image",
  "caption": "Hello World",
  "url": "https://example.com/image.jpg"
}

Example URL Request

/send-media?api_key=1234567890&sender=62888xxxx&number=62888xxxx&media_type=image&caption=Hello%20World&url=https%3A%2F%2Fexample.com%2Fimage.jpg

Example Audio Voice Note

POST /send-media
Content-Type: application/json

{
  "api_key": "1234567890",
  "sender": "62888xxxx",
  "number": "62888xxxx",
  "media_type": "audio",
  "url": "https://example.com/audio.mp3",
  "ppt": true
}

Schedule Message API

Jadwal disimpan di database panel dan dieksekusi otomatis oleh scheduler. Gunakan header X-API-Key agar API key tidak masuk ke access log URL.

MethodPOST
Endpoint/schedule-message

Schedule Parameters

ParameterTypeRequiredDescription
senderstringYesDevice milik user.
numberstringYes*Satu nomor tujuan.
numbersarray/stringYes*Banyak nomor; dapat berupa array, koma, atau baris baru.
messagestringYesIsi pesan.
scheduled_atstringYesISO 8601. Tanpa offset dianggap WIB.
timezonestringNoDefault Asia/Jakarta. Untuk zona lain gunakan offset pada waktu.
request_idstringNoKunci idempotensi agar request yang sama tidak membuat jadwal ganda.

* Gunakan salah satu: number atau numbers.

Contoh Membuat Jadwal

POST /schedule-message
X-API-Key: API_KEY_USER
Content-Type: application/json

{
  "sender": "62888xxxx",
  "numbers": ["62811xxxx", "62812xxxx"],
  "message": "Pesan ini dikirim sesuai jadwal.",
  "scheduled_at": "2026-07-27T09:30:00+07:00",
  "request_id": "invoice-reminder-20260727"
}

Cek, Daftar, dan Batalkan Jadwal

GET /schedule-message/JOB_ID
X-API-Key: API_KEY_USER

GET /scheduled-messages?limit=30
X-API-Key: API_KEY_USER

POST /schedule-message/JOB_ID/cancel
X-API-Key: API_KEY_USER