Halaman ini mencatat perubahan pada dokumentasi ini dan pada kontrak API publik AdForm. Perubahan yang merusak diumumkan di sini **sebelum** berlaku — lihat [kebijakan perubahan kontrak](/docs/konvensi-api#bagaimana-perubahan-kontrak-diumumkan). ## 2026-07-27 — Halaman konvensi, galat, batas, dan panduan pemasangan Penambahan dokumentasi. **Tidak ada perubahan pada kode atau perilaku API.** Semua yang ditulis menggambarkan perilaku yang sudah berjalan sebelum tanggal ini. Halaman baru: - **[Mulai Cepat](/docs/mulai-cepat)** — lima langkah dari nol sampai satu panggilan API yang berhasil. - **[Pasang Form Order](/docs/pasang-form-embed)** — cara memasang form order di situs sendiri: snippet iframe, `embed.js`, atribut kontainer `data-ef-product`, pengaturan ukuran, dan cara menangkap kejadian setelah form terkirim. - **[Konvensi API](/docs/konvensi-api)** — aturan lintas-endpoint: bentuk request dan response, header, CORS, tanggal dan zona waktu, format nomor telepon, format rupiah, idempotensi, dan kebijakan perubahan kontrak. - **[Kode Error](/docs/kode-error)** — daftar lengkap status HTTP dan pesan galat yang benar-benar dikembalikan, beserta tindakan yang tepat untuk masing-masing. - **[Batas Penggunaan](/docs/batas-penggunaan)** — angka pembatasan laju yang berlaku, dihitung per apa, dan apa yang dikembalikan saat terlampaui. Tiga hal yang sebelumnya tidak tertulis dan sekarang tercatat hitam di atas putih: 1. **`X-API-Key` tidak bisa dipakai dari browser.** Header itu tidak ada di daftar `Access-Control-Allow-Headers`, jadi preflight lintas-origin selalu gagal. API key memang hanya untuk pemanggilan dari server. 2. **Body request harus JSON.** Server membaca body mentah sebagai JSON. Body `application/x-www-form-urlencoded` diabaikan diam-diam dan memunculkan galat validasi yang menyesatkan. 3. **Tidak ada header sisa kuota.** Tidak ada `X-RateLimit-Remaining` atau sejenisnya. Satu-satunya sinyal batas laju adalah `Retry-After` yang menyertai `429`. Urutan menu diubah supaya halaman lintas-endpoint berada sebelum referensi endpoint. ## 2026-07-27 — Rilis awal situs dokumentasi - Pipeline dokumentasi statis pertama berjalan di `dev.adform.id`. - Setiap halaman punya kembaran Markdown mentah dengan menambahkan `.md` pada URL-nya. - Indeks untuk agen otomatis tersedia di `/llms.txt` dan `/llms-full.txt`. - Halaman awal: [Pengantar](/docs/introduction), [Autentikasi](/docs/authentication), [API Produk](/docs/api-products), dan [Webhook](/docs/webhooks). ## Keadaan API publik per hari ini Ditulis supaya tidak ada yang membangun di atas asumsi yang salah. | Hal | Status | |---|---| | Endpoint yang memeriksa API key | Satu berkas: `/api/products.php`. | | Operasi yang tersedia | Dua: `action=embed` (baca) dan `action=duplicate` (tulis). | | Scope yang benar-benar ditegakkan | `products:read`, `products:write`, dan wildcard `*`. | | Scope lain | Dicadangkan, belum ada endpoint yang memeriksanya. Memilikinya tidak memberi akses apa pun. | | API pesanan | Belum ada. | | API pelanggan | Belum ada. | | API tim / CS | Belum ada. | | Daftar produk lewat API key | Belum ada. ID produk harus didapat dari pemilik akun. | | Webhook keluar | Belum ada. Lihat [Webhook](/docs/webhooks). | | Halaman self-service pembuatan API key | Belum ada. Key diterbitkan atas permintaan. | | Versi API (`/v1/`) | Belum ada. API belum diversikan. | | Lingkungan sandbox untuk pihak ketiga | Belum ada. Semua panggilan mengenai data produksi. | Kami sengaja tidak menerbitkan kontrak yang belum final. Kalau sesuatu ada di dokumentasi ini, artinya sudah berjalan di produksi. Kalau tidak ada, artinya memang belum ada. Butuh salah satu yang berstatus "belum ada"? Sampaikan lewat [Pusat Bantuan](https://adform.id/pusat-bantuan.html) dengan alur yang Anda inginkan dan perkiraan volumenya. Permintaan konkret dari integrator yang menentukan urutan pengerjaan.