API Instagram DM: Balas Direct Message Lewat REST API
Kirim dan terima DM Instagram dari sistem Anda sendiri. Endpoint dan API key yang sama dengan WhatsApp, cukup ganti nilai channel. Berjalan di Instagram API resmi Meta, tanpa login tidak resmi dan tanpa risiko akun dibatasi.
{
"channel": "instagram",
"instagram_username": "pelanggan_anda",
"message_type": "text",
"content": "Halo, pesanan Anda sudah dikirim.",
"instagram_account_id": "IG_ACCOUNT_ID"
}
# Ganti channel jadi "whatsapp" dan
# endpoint yang sama mengirim ke WhatsApp.Dipercaya oleh bisnis di berbagai industri
Dari instansi pemerintah, teknologi, dan pendidikan sampai kesehatan dan telekomunikasi, mencakup 8 sektor industri di seluruh Indonesia.
Yang Bisa Dilakukan API Instagram Ini
Daftar ini sengaja dibatasi pada yang benar-benar berjalan di API publik. Yang belum tersedia kami sebutkan terbuka di bagian berikutnya.
Kirim DM teks dan gambar
Satu endpoint untuk kirim pesan teks sampai 1.000 karakter dan gambar lewat URL publik ke pelanggan yang menghubungi akun Instagram bisnis Anda.
Terima pesan lewat webhook
DM masuk, balasan story, mention story, kiriman yang dibagikan, stiker, reaction, dan read receipt dikirim ke endpoint Anda dengan tanda tangan HMAC.
Satu kontak lintas kanal
Pelanggan yang sama di WhatsApp dan Instagram tercatat sebagai satu kontak, lengkap dengan catatan internal, consent, dan status blacklist.
Status jendela 24 jam
Cek lewat API apakah jendela balasan 24 jam untuk satu pelanggan masih terbuka, beserta waktu kedaluwarsanya, sebelum mencoba mengirim.
Hubungkan akun sendiri
Alur OAuth Instagram Business Login. Pemilik akun menyetujui sendiri, token disimpan terenkripsi dan diperbarui otomatis.
Indikator mengetik dan tanda dibaca
Tampilkan indikator mengetik di percakapan, dan tandai pesan masuk sebagai sudah dibaca sehingga pelanggan melihat centang.
Yang Belum Bisa, dan Kenapa
Instagram bukan WhatsApp. Lebih baik Anda tahu batasnya sekarang daripada setelah berlangganan.
Tanpa broadcast
Broadcast memakai template yang disetujui Meta, dan template hanya ada di WhatsApp. Mengirim pesan massal ke orang yang belum menghubungi Anda juga melanggar kebijakan Meta.
Tanpa tombol dan template
Quick reply, tombol balasan, dan menu daftar belum tersedia untuk Instagram. Pesan keluar berupa teks dan gambar.
Tanpa balas komentar
Integrasi ini berlangganan pada pesan, bukan komentar. Komentar di feed dan mention di postingan memerlukan izin Meta yang berbeda.
Gambar diinangi sendiri
Endpoint unggah media kami melayani WhatsApp. Untuk Instagram, kirim media_url yang bisa diakses publik.
Jendela 24 jam tanpa pengecualian
Di luar 24 jam sejak pesan terakhir pelanggan, Meta menolak pengiriman. Kami tidak menyediakan jalan pintas, dan Anda sebaiknya curiga pada penyedia yang menjanjikannya.
Video dan audio belum di API publik
Keduanya berjalan di dashboard, tapi belum dibuka di API publik. Lewat API, kirim teks atau gambar.
Satu Endpoint, Tiga Kanal
Cara Memakai API Instagram DM
Lewat Instagram Business Login. Izin yang diminta hanya profil dasar dan kelola pesan.
POST ke /messages/send dengan channel instagram. Kode yang sama melayani WhatsApp dan Messenger.
Pesan masuk dikirim ke endpoint Anda, bertanda tangan HMAC SHA256 supaya keasliannya bisa diperiksa.
Panggil window-status sebelum mengirim supaya aplikasi Anda tidak menumpuk penolakan dari Meta.
curl -X POST "https://chat.api.co.id/api/v1/public/messages/send" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"channel":"instagram","instagram_username":"pelanggan", "message_type":"text","content":"Halo!"}'
import requests r = requests.get( "https://chat.api.co.id/api/v1/public/customers/CUST_ID/window-status", headers={"Authorization": "Bearer YOUR_API_KEY"}, ) # balasan memuat status jendela per kanal if r.json()["instagram"]["is_open"]: kirim_dm()
const res = await fetch( "https://chat.api.co.id/api/v1/public/instagram-accounts", { headers: { Authorization: "Bearer YOUR_API_KEY" } } ); // id, username, dan status koneksi tiap akun const { data } = await res.json();
# Yang dikirim ke endpoint webhook Anda { "event": "message.received", "channel": "instagram", "customer_username": "pelanggan", "message_type": "STORY_REPLY", "content": "Masih ada stok?" } # Verifikasi lewat header tanda tangan HMAC SHA256.
Endpoint untuk Kanal Instagram
Semua di bawah base URL dan API key yang sama. Yang bertanda khusus hanya berlaku untuk Instagram, sisanya berbagi dengan kanal lain.
| Metode | Path | Keterangan | Cakupan |
|---|---|---|---|
| GET | /instagram-accounts | Daftar akun Instagram bisnis yang sudah terhubung beserta status koneksinya. | |
| POST | /messages/send | Kirim DM. Pakai channel instagram dengan message_type text atau image. | Semua kanal |
| GET | /conversations?channel=instagram | Daftar percakapan Instagram. | Semua kanal |
| GET | /conversations/{customer_id}/messages | Riwayat pesan satu pelanggan. | Semua kanal |
| POST | /conversations/{ig_username}/typing | Nyalakan indikator mengetik di percakapan Instagram. | |
| POST | /messages/{message_id}/read | Tandai pesan masuk sebagai sudah dibaca. | Semua kanal |
| GET | /customers/{customer_id}/window-status | Cek apakah jendela 24 jam masih terbuka. | Semua kanal |
| GET | /customers | Kelola kontak: buat, ubah, catatan, consent, dan blacklist. | Semua kanal |
| GET | /webhooks | Lihat status endpoint webhook dan aktifkan ulang yang nonaktif otomatis. | Semua kanal |
Jenis pesan masuk yang diurai dari webhook Meta: Teks, Gambar, Video, Audio, Stiker, Balasan story, Mention story, Kiriman dibagikan, Reaction, Read receipt, Postback, Referral.
Instagram Sudah Termasuk
Tidak ada biaya kanal terpisah untuk Instagram dan tidak ada batas jumlah akun Instagram yang bisa dihubungkan. Kanal ini mengikuti langganan API CRM Anda, yang dihitung per nomor WhatsApp.
Pertanyaan Umum API Instagram
Apa bedanya dengan API WhatsApp di Api.co.id?
Endpoint dan API key-nya sama persis, yang berbeda hanya nilai channel. Tapi kemampuannya tidak identik. WhatsApp punya template, broadcast, tombol interaktif, dan unggah media; Instagram tidak punya satu pun dari itu. Instagram mengirim teks dan gambar, dan gambarnya harus Anda inangi sendiri di URL publik.
Apa itu jendela 24 jam dan bisakah dilewati?
Meta hanya mengizinkan Anda membalas dalam 24 jam sejak pesan terakhir pelanggan. Jendela terbuka lagi setiap kali pelanggan mengirim pesan baru. Tidak ada cara melewatinya, dan kami tidak menyediakan jalan pintas apa pun. Endpoint window-status ada supaya aplikasi Anda bisa memeriksa dulu sebelum mencoba mengirim dan kena penolakan.
Apakah bisa broadcast ke banyak pengikut Instagram?
Tidak bisa. Broadcast hanya tersedia untuk WhatsApp karena memakai template yang disetujui Meta. Instagram tidak punya mekanisme serupa, dan mengirim pesan massal ke orang yang tidak lebih dulu menghubungi Anda melanggar kebijakan Meta.
Bisakah membalas komentar di postingan lewat API ini?
Belum bisa. Integrasi ini berlangganan ke pesan, bukan komentar, sehingga yang masuk hanya DM beserta balasan dan mention story. Membalas komentar di feed memerlukan izin Meta yang berbeda dan belum kami minta.
Berapa batas pengirimannya?
Instagram dibatasi 180 pesan per jam per API key, disetel di bawah batas Meta supaya ada jarak aman. Seluruh API publik juga dibatasi 100 request per menit. Sisa kuota dikirim balik di header X-RateLimit pada setiap respons.
Akun Instagram seperti apa yang dibutuhkan?
Akun Instagram Professional, baik Business maupun Creator, dan Anda yang menyetujui sendiri koneksinya lewat Instagram Business Login. Izin yang diminta hanya dua: membaca profil dasar dan mengelola pesan.
Berapa biayanya?
Instagram sudah termasuk dalam langganan Api.co.id CRM tanpa biaya kanal tambahan, dan jumlah akun Instagram yang terhubung tidak dibatasi. Rincian paketnya ada di halaman API CRM.
Bagaimana cara mencobanya?
Daftar di dashboard, hubungkan akun Instagram lewat menu kanal, lalu terbitkan API key. Tersedia koleksi Postman berisi seluruh endpoint termasuk contoh Instagram, jadi request pertama bisa dijalankan tanpa menulis kode.
Hubungkan Instagram Anda Hari Ini
Daftar, sambungkan akun Instagram Professional lewat Instagram Business Login, lalu terbitkan API key. Tersedia koleksi Postman supaya request pertama jalan tanpa menulis kode.
