Pengantar
Ringkasan API publik AdForm — apa yang bisa dan belum bisa dilakukan hari ini, base URL, format response, dan cara integrasi yang paling umum.
AdForm adalah platform landing page + form order untuk penjual online di Indonesia. Satu akun (tenant) punya katalog produk, form order yang bisa ditempel di mana saja, dashboard pesanan, otomasi CS WhatsApp, dan integrasi pembayaran.
Halaman ini untuk developer di luar AdForm — tim CRM, tool otomasi, agency, atau staf teknis tenant AdForm sendiri — yang mau menyambungkan produknya ke AdForm.
#Base URL
https://adform.idSemua endpoint API ada di bawah /api/. Tidak ada prefix versi (/v1/) — API ini belum diversikan. Kalau nanti ada perubahan yang tidak backward-compatible, kami umumkan lewat halaman ini dulu.
Response selalu JSON (Content-Type: application/json). Status HTTP dipakai apa adanya: 200/201 sukses, 4xx kesalahan dari sisi pemanggil, 5xx kesalahan di sisi kami.
#Yang bisa dilakukan API hari ini
Permukaan API dengan API key ada tiga operasi, di dua berkas endpoint.
| Operasi | Method | Endpoint | Scope |
|---|---|---|---|
| Ambil data + snippet embed produk | GET | /api/products.php?action=embed&id={id} | products:read |
| Duplikat produk | POST | /api/products.php?action=duplicate&id={id} | products:write |
| Cari pelanggan lewat nomor telepon | POST | /api/customer_lookup.php | customers:read |
Detail lengkap ada di API Produk dan Pencarian Pelanggan. Cara memperoleh dan memakai key ada di Autentikasi.
Dua operasi produk menjawab pola integrasi yang paling sering diminta: tool eksternal menyalin produk template jadi produk baru, lalu langsung dapat URL form + snippet iframe yang siap dipasang.
Pencarian pelanggan menjawab pola yang berbeda: CRM atau aplikasi CS menerima chat WhatsApp masuk, menanyakan nomornya ke AdForm, lalu tahu siapa pengirimnya dan pesanan apa yang sedang berjalan. Di luar itu, AdForm juga bisa mengirim data pesanan ke server Anda — lihat Webhook Keluar.
#Yang BELUM bisa dilakukan API
Kami tulis eksplisit supaya Anda tidak membangun di atas asumsi yang salah:
- Tidak ada CRUD produk lewat API key. Tidak bisa list produk, ambil detail lengkap, membuat produk dari nol, mengubah, atau menghapus. Verb
POST/PATCH/DELETEbiasa di/api/products.phpdipakai dashboard dan butuh sesi login dashboard, bukan API key. - Tidak ada API pesanan. Tidak ada endpoint untuk membaca daftar pesanan, membuat, atau mengubah pesanan dengan API key. Data pesanan hanya mengalir keluar lewat Webhook Keluar, dan lewat Pencarian Pelanggan untuk satu nomor telepon per permintaan.
- Tidak ada API pelanggan untuk menelusuri daftar. Yang ada hanya pencarian satu nomor persis. Tidak ada
q=,limit,page, atau pencocokan sebagian — endpoint itu memang dirancang supaya tidak bisa dipakai menarik basis pelanggan. - Tidak ada API tim / CS. Belum tersedia untuk pihak ketiga.
- Belum ada sandbox / environment test terpisah. Semua panggilan mengenai data produksi tenant. Saat mengembangkan, pakai produk uji coba, jangan produk yang sedang dipakai jualan.
Kalau butuh sesuatu di daftar ini, kabari kami (lihat bagian paling bawah) — permintaan nyata dari integrator yang menentukan urutan pengerjaan.
#Cara integrasi yang paling umum
Untuk sebagian besar kasus, Anda tidak butuh API sama sekali — cukup pasang form order AdForm sebagai iframe di halaman Anda:
<iframe src="https://adform.id/t/12/kaos-polos-hitam"
style="width:100%;min-height:700px;border:none;"
loading="eager" scrolling="no" frameborder="0"></iframe>
<script src="https://adform.id/embed.js"></script>embed.js bertugas menyesuaikan tinggi iframe otomatis, meneruskan parameter iklan (fbclid, gclid, utm_*) dari halaman induk ke form, dan menyalakan Meta Pixel / GTM sesuai setelan produk. Snippet persis untuk tiap produk — termasuk tenant_id dan slug yang benar — bisa diambil lewat ?action=embed, jadi Anda tidak perlu merangkainya sendiri.
Form ini menerima order langsung dari browser pengunjung. Pengiriman order dari server ke server tanpa form AdForm belum punya kontrak publik yang kami dokumentasikan.
#Autentikasi singkat
API key dikirim di header X-API-Key. Key selalu diawali adk_.
curl -H "X-API-Key: adk_0123456789abcdef0123456789abcdef0123456789abcdef" \
"https://adform.id/api/products.php?action=embed&id=12"Satu key terikat ke satu tenant. Semua data yang Anda akses dengan key itu adalah data tenant tersebut, tidak pernah tenant lain. Baca Autentikasi untuk format key, scope, error, dan rate limit.
#Batasan yang perlu Anda tahu sejak awal
- Rate limit-nya berbeda per endpoint.
/api/products.phpdibatasi 60 request per menit per alamat IP, dihitung bersama trafik lain dari IP yang sama./api/customer_lookup.phpdibatasi per API key (30 per menit, 600 per jam, 4.000 per hari). Rancang integrasi Anda dengan asumsi ini. - Key adalah rahasia server. Jangan pernah menaruh API key di kode frontend, aplikasi mobile, atau repo publik. Tidak ada pembatasan origin/domain pada key.
- Rupiah dalam bilangan bulat. Semua harga adalah integer rupiah tanpa desimal (
150000= Rp150.000).
#Yang sedang disiapkan
Tanpa janji tanggal:
- Halaman self-service di dashboard untuk membuat dan mencabut API key sendiri.
- Endpoint baca katalog produk untuk API key.
Kami sengaja tidak mendokumentasikan kontrak yang belum final. Kalau ada di dokumentasi ini, artinya sudah jalan di produksi hari ini.
#Butuh bantuan atau butuh endpoint baru?
Hubungi tim AdForm lewat Pusat Bantuan. Sertakan nama produk/perusahaan Anda, alur integrasi yang diinginkan, dan endpoint apa yang Anda butuhkan. Untuk kebutuhan integrasi partner, sebutkan juga volume request perkiraan per hari.