Bahasa Indonesia
Kirim Pesan
POST/messageEndpoint andalan Zate. Kirim pesan ke username, user, grup, channel, atau nomor HP, dan udah ngedukung tujuh tipe: teks, gambar, video, audio, dokumen, lokasi, dan kontak. Tiap tipe butuh kolom yang beda, jadi cek tabelnya di bawah ya.
Detail Endpoint
- Base URL:
https://api-zate.azickri.com - Header:
id,session-id, danContent-Type: application/json - Syarat: sesi harus lagi nyambung (
isConnected: true)
Header
| Header | Tipe | Wajib | Keterangan |
|---|---|---|---|
id | string | Ya | id dari Buat Session. |
session-id | string | Ya | sessionId dari Buat Session. |
Request Body
| Kolom | Tipe | Wajib | Keterangan |
|---|---|---|---|
group | string | Salah satu* | ID grup, contohnya -1001234567890, atau username grup publik. |
channel | string | Salah satu* | ID channel, contohnya -1001234567890, atau username channel publik. Akun kamu harus boleh posting di sana. |
user | string | Salah satu* | ID user Telegram, contohnya 123456789. |
username | string | Salah satu* | Username tujuan: azickri, @azickri, atau t.me/azickri. |
phone | string | Salah satu* | Nomor HP format internasional, contohnya 6281234567890. Cuma jalan kalau privasi orangnya ngizinin. |
type | string | Ya | Tipe pesan: text, image, video, audio, document, location, atau contact. |
text | string | Untuk text | Isi pesan. Di tipe image, video, dan document, kolom ini jadi caption (opsional). |
parseMode | string | Tidak | markdown atau html buat format teks dan caption. Kosongin buat kirim apa adanya. Lihat Format Teks. |
image | object | Untuk image | Lihat objek image. |
video | object | Untuk video | Lihat objek video. |
audio | object | Untuk audio | Lihat objek audio. |
document | object | Untuk document | Lihat objek document. |
location | object | Untuk location | Lihat objek location. |
contact | object | Untuk contact | Lihat objek contact. |
* Isi salah satu dari group, channel, user, username, atau phone. Kalau lebih dari satu yang diisi, yang dipakai urutannya group, channel, user, username, lalu phone. Penjelasan lengkapnya ada di Tujuan Pesan.
Objek Media
Media dikirim lewat URL. Zate yang download file-nya, jadi URL-nya harus publik dan langsung ke file. Baca juga Kirim Media dari URL.
| Objek | Kolom | Tipe | Wajib | Keterangan |
|---|---|---|---|---|
image | url | string | Ya | URL gambar. Dikirim ulang sebagai JPEG, maksimal 2560 piksel. |
mimetype | string | Ya | Contohnya image/jpeg. | |
thumbnail | string | Tidak | Nggak dipakai buat gambar. Telegram bikin thumbnail sendiri. | |
video | url | string | Ya | URL video. Paling aman pakai MP4. |
mimetype | string | Ya | Contohnya video/mp4. | |
duration | number | Ya | Durasi video dalam detik, harus lebih dari 0. Kalau durasi asli file-nya kebaca, yang dipakai durasi asli. | |
thumbnail | string | Tidak | URL gambar thumbnail. Kalau kosong, Zate ngambil frame pertama video. | |
audio | url | string | Ya | URL audio. Paling aman pakai MP3. |
mimetype | string | Ya | Contohnya audio/mpeg. | |
duration | number | Ya | Durasi audio dalam detik, harus lebih dari 0. | |
document | url | string | Ya | URL dokumen. |
name | string | Ya | Nama file yang tampil di chat, contohnya invoice.pdf. Ekstensinya nentuin jenis file di Telegram. | |
size | number | Ya | Ukuran file dalam byte, harus lebih dari 0. | |
mimetype | string | Ya | Contohnya application/pdf. |
Audio bukan voice note
Audio dikirim sebagai file audio biasa yang bisa diputar di pemutar musik Telegram, bukan voice note. Audio juga nggak bisa dikasih caption, jadi text diabaikan.
Objek Lokasi dan Kontak
| Objek | Kolom | Tipe | Wajib | Keterangan |
|---|---|---|---|---|
location | latitude | number | Ya | Koordinat lintang, nggak boleh 0. |
longitude | number | Ya | Koordinat bujur, nggak boleh 0. | |
name | string | Tidak | Nama tempat, contohnya Monas. | |
address | string | Tidak | Alamat tempat. | |
contact | name | string | Ya | Nama kontak yang dibagikan. |
phone | string | Ya | Nomor kontak, contohnya 6281234567890. |
Kalau name atau address diisi, lokasinya dikirim sebagai tempat (venue) lengkap dengan nama dan alamat. Kalau dua-duanya kosong, dikirim sebagai titik peta biasa.
Contoh Request
Contoh paling simpel: kirim pesan teks ke satu username.
bash
curl -X POST "https://api-zate.azickri.com/message" \
-H "id: YOUR_ID" \
-H "session-id: YOUR_SESSION_ID" \
-H "Content-Type: application/json" \
-d '{"username":"@azickri","type":"text","text":"Halo dari Zate! 👋"}'javascript
import axios from 'axios';
const response = await axios.post(
'https://api-zate.azickri.com/message',
{
username: '@azickri',
type: 'text',
text: 'Halo dari Zate! 👋',
},
{
headers: {
'id': 'YOUR_ID',
'session-id': 'YOUR_SESSION_ID',
},
},
);
console.log(response.data);javascript
const response = await fetch('https://api-zate.azickri.com/message', {
method: 'POST',
headers: {
'id': 'YOUR_ID',
'session-id': 'YOUR_SESSION_ID',
'Content-Type': 'application/json',
},
body: JSON.stringify({
username: '@azickri',
type: 'text',
text: 'Halo dari Zate! 👋',
}),
});
const data = await response.json();
console.log(data);Contoh Body per Tipe
Ganti body di contoh request di atas sama salah satu dari ini.
json
{
"username": "@azickri",
"type": "text",
"text": "Halo dari Zate! 👋"
}json
{
"username": "@azickri",
"type": "text",
"parseMode": "html",
"text": "Pesanan <b>#1024</b> siap! Cek di <a href=\"https://zate.azickri.com\">sini</a> 🍢"
}json
{
"username": "@azickri",
"type": "image",
"text": "Ini caption-nya, opsional",
"image": {
"url": "https://example.com/image.jpg",
"mimetype": "image/jpeg"
}
}json
{
"username": "@azickri",
"type": "video",
"text": "Caption video",
"video": {
"url": "https://example.com/video.mp4",
"mimetype": "video/mp4",
"duration": 30,
"thumbnail": "https://example.com/video-thumbnail.jpg"
}
}json
{
"username": "@azickri",
"type": "audio",
"audio": {
"url": "https://example.com/audio.mp3",
"mimetype": "audio/mpeg",
"duration": 30
}
}json
{
"username": "@azickri",
"type": "document",
"text": "Invoice bulan ini ya",
"document": {
"url": "https://example.com/invoice.pdf",
"name": "invoice.pdf",
"size": 102400,
"mimetype": "application/pdf"
}
}json
{
"username": "@azickri",
"type": "location",
"location": {
"name": "Monas",
"address": "Gambir, Jakarta Pusat",
"latitude": -6.175392,
"longitude": 106.827153
}
}json
{
"username": "@azickri",
"type": "contact",
"contact": {
"name": "Azickri",
"phone": "6281234567890"
}
}json
{
"group": "-1001234567890",
"type": "text",
"text": "Halo semuanya! 👋"
}json
{
"channel": "-1001234567890",
"type": "text",
"text": "Ada update terbaru nih!"
}json
{
"user": "123456789",
"type": "text",
"text": "Makasih udah pesan! 🙏"
}json
{
"phone": "6281234567890",
"type": "text",
"text": "Halo! Ini dari Zate."
}Response
json
{
"messageId": "1024"
}json
// Tujuan nggak diisi
{
"statusCode": 400,
"message": "invalid phone, username, user, group or channel"
}
// Username atau ID nggak ketemu
{
"statusCode": 400,
"message": "chat not found"
}
// Nomor HP nggak bisa dicari
{
"statusCode": 400,
"message": "phone is not on telegram or hidden by its privacy settings"
}
// Kolom wajib buat tipe itu kosong
{
"statusCode": 400,
"message": "image should not be empty"
}json
{
"statusCode": 404,
"message": "session not found"
}json
// Sesi lagi nggak nyambung
{
"statusCode": 500,
"message": "session not connected"
}
// Media gagal diunduh
{
"statusCode": 500,
"message": "error parser file from url 404 Not Found"
}
// Ditolak Telegram
{
"statusCode": 500,
"message": "403: CHAT_WRITE_FORBIDDEN (caused by messages.SendMessage)"
}| Kolom | Tipe | Keterangan |
|---|---|---|
messageId | string | ID pesan di chat tujuan. |
Pesan dari API nggak masuk webhook
Pesan yang dikirim lewat endpoint ini nggak dikirim ulang ke webhook kamu, soalnya messageId-nya udah ada di response.