REST API
Buat link, Smart Links, formulir, dan halaman Multilink dari kode Anda sendiri, dan baca analitiknya, dengan aturan yang sama seperti aplikasi Walink.
Dengan API Walink, sebuah skrip, backend, atau alat no-code apa pun yang mengirim permintaan HTTP bisa melakukan apa yang Anda lakukan di aplikasi. Setiap permintaan melewati aturan aplikasi itu sendiri, jadi alamat, kuota, dan kepemilikan diperiksa dengan cara yang sama, dan setiap pembuatan menghasilkan draf, kecuali link gratis, jadi tidak ada yang aktif tanpa sengaja.
Halaman ini mengantar Anda sampai panggilan pertama. Setiap endpoint dan kolom ada di referensi API lengkap, yang juga punya konsol untuk mencoba permintaan.
Yang bisa Anda otomatiskan
| Resource | Yang dilakukan API |
|---|---|
Link Premium (/v1/links) |
Menampilkan daftar, membuat draf, mengedit, memublikasikan, membatalkan publikasi, menghapus, mengatur gaya QR |
Smart Links (/v1/smart-links) |
Sama, dengan tujuan dan routing |
Formulir (/v1/forms) |
Sama, ditambah respons yang dikirim orang |
Halaman Multilink (/v1/multilinks) |
Sama |
Link gratis (/v1/free-links) |
Menampilkan daftar, membuat, membaca, menghapus |
Analitik (/v1/analytics) |
Angka dan rincian menurut negara, sumber, perangkat, dan lainnya |
Akun (/v1/account) |
Profil, kuota yang terpakai, link gratis yang dimiliki |
Akun Walink mana pun bisa memakai API. Draf gratis. Memublikasikan memakai kuota langganan Anda dan analitik memerlukan langganan, seperti di aplikasi.
Buat token
- Masuk ke Walink, buka menu akun (tombol bulat di kanan atas) dan pilih Developers.
- Di bawah API Tokens, pilih Create token (buat token).
- Beri Name (nama), seperti "Skrip laporan", dan pilih kapan token itu Expires after (kedaluwarsa setelah): 30 days, 90 days, 1 year (default), atau No expiration (tanpa kedaluwarsa).
- Di bawah Scopes (cakupan), centang hanya yang dibutuhkan token. Quick presets (preset cepat) mengisi Read only (hanya baca) atau Full access (akses penuh). Scope tidak bisa diubah nanti.
- Pilih Create token. Jendela Save your token (simpan token Anda) menampilkannya satu kali: salin ke tempat yang aman, seperti pengelola kata sandi, lalu pilih I've saved it (sudah saya simpan).
Token diawali wlk_live_, dan satu akun bisa punya 25 token aktif. Di tabel token, Rotate memberi Anda token baru dengan nama dan scope yang sama, sementara token lama tetap berfungsi selama 7 hari. Revoke menghentikan token untuk selamanya, dalam 30 detik.
Scope
write mencakup read. Tidak ada yang mencakup publish, delete, atau responses:read: masing-masing diberikan tersendiri, dan tidak ada yang aktif secara default.
| Scope | Mengizinkan |
|---|---|
links:read |
Membaca Link Premium, Smart Links, dan link gratis |
links:write |
Membuat dan mengedit draf |
links:publish |
Memublikasikan, membatalkan publikasi, mengedit apa pun yang sudah dipublikasikan, membuat link gratis |
links:delete |
Menghapus |
forms:*, multilinks:* |
Empat scope yang sama untuk formulir dan halaman Multilink |
account:read |
Profil, kuota, dan pemakaian |
analytics:read |
Analitik |
responses:read |
Respons formulir, yang memuat data pribadi yang dikirim orang kepada Anda |
analytics:read dan multilinks:read juga menampilkan nama link, Smart Link, dan formulir Anda yang dipublikasikan, bahkan tanpa scope baca masing-masing.
Permintaan pertama Anda
URL dasarnya adalah https://api.walink.com/v1. Kirim token sebagai Authorization: Bearer <token> dan isi permintaan sebagai JSON. Contoh-contoh di sini membaca token dari variabel lingkungan WALINK_API_TOKEN, jadi token tidak tertulis di kode Anda.
Tampilkan daftar Link Premium Anda (memerlukan links:read):
curl https://api.walink.com/v1/links \
-H "Authorization: Bearer $WALINK_API_TOKEN"
{
"data": [
{
"id": "lnk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77",
"title": "Tienda Luna orders",
"handle": "tienda-luna",
"plan": "chat",
"status": "published",
"url": "https://wa.link/tienda-luna",
"created_at": "2026-11-05T14:32:07.000Z",
"updated_at": "2026-11-05T14:32:07.000Z"
}
],
"has_more": false,
"next_cursor": null
}
Daftar diurutkan dari yang terbaru. Daftar menerima limit (default 25, maksimal 100) dan cursor: kirim next_cursor untuk mendapatkan halaman berikutnya.
Buat draf
Pembuatan selalu menghasilkan draf (memerlukan links:write). Yang ini membuka chat dengan nomor AS:
curl -X POST https://api.walink.com/v1/links \
-H "Authorization: Bearer $WALINK_API_TOKEN" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: tienda-luna-promo-1" \
-d '{
"handle": "tienda-luna-promo",
"plan": "chat",
"title": "Tienda Luna promo",
"phone": "4155550123",
"country_code": "1",
"country_alpha": "US",
"message": "Hello Tienda Luna, I saw your promo"
}'
Jawabannya adalah 201 dengan data lengkapnya, id-nya, dan "status": "draft".
handleadalah alamat setelahwa.link/. Alamat tidak bisa diubah setelah link dibuat, dan draf tidak memesannya: akun pertama yang memublikasikan di alamat itu yang mendapatkannya.planadalah jenis link:chat,catalog,channel, ataugroup.Idempotency-Keymembuat percobaan ulang aman selama 24 jam: kunci dan isi yang sama mengembalikan jawaban pertama, bukan draf kedua.
Publikasikan
Publikasi adalah panggilan tersendiri, dan memerlukan links:publish:
curl -X POST https://api.walink.com/v1/links/lnk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77/publish \
-H "Authorization: Bearer $WALINK_API_TOKEN"
Seperti Publish di aplikasi, panggilan ini memakai satu unit dari kuota Link Premium Anda ($9 USD per tahun per link). Tanpa unit yang bebas, jawabannya adalah 402 pool_exhausted, dengan angkanya di details. Tambah kuota di halaman Billing aplikasi (cara kerja penagihan).
POST .../publish-checkadalah uji coba tanpa perubahan: apa yang masih menghalangi publikasi dan berapa kuota yang akan dipakainya.POST .../unpublishmenonaktifkan link dan membebaskan unitnya. Alamatnya berhenti berfungsi, termasuk kode QR yang sudah dicetak, dan akun lain kemudian bisa mengambilnya.PATCH /v1/links/{id}hanya mengubah kolom yang Anda kirim. Pada link yang dipublikasikan perubahan langsung aktif, jadi juga memerlukanlinks:publish.
Smart Links, formulir, dan halaman Multilink mengikuti langkah yang sama di path masing-masing. Smart Links memakai scope links.
Link gratis di API
/v1/free-links membuat link gratis yang bisa dimiliki setiap akun, hingga 5. Cara kerjanya berbeda:
- Link gratis langsung aktif begitu dibuat, tidak pernah berupa draf. Karena itulah membuatnya memerlukan
links:publish, bukanlinks:write. - Walink yang memilih alamat acaknya. Anda mengirim nomor telepon atau nama pengguna WhatsApp, pesan opsional, dan
titlepribadi opsional, yang tidak bisa diubah nanti. - Link ini bisa ditampilkan dalam daftar, dibaca, dan dihapus, tidak pernah diedit. Id-nya diawali
fln_, dan/v1/linkstidak pernah menampilkannya. - Mengeditnya atau melihat analitiknya memerlukan upgrade ke Premium di aplikasi, yang mengubah id-nya menjadi
lnk_.
Jika sudah ada 5, pembuatan dijawab dengan 409 free_link_limit_reached, dan menghapus satu link membebaskan slotnya. Selengkapnya di link gratis.
Kesalahan dan batas permintaan
Setiap kesalahan punya bentuk yang sama:
{
"error": {
"code": "insufficient_scope",
"message": "This token needs the links:publish scope.",
"param": null,
"doc_url": "https://api.walink.com/docs#description/errors",
"request_id": "req_4f1c9a0b7d2e4c8f9a1b3c5d7e9f0a2b",
"details": { "required": ["links:publish"] }
}
}
| Status | Kode yang umum | Artinya |
|---|---|---|
| 401 | invalid_token |
Token tidak ada, kedaluwarsa, atau dicabut |
| 402 | pool_exhausted, past_due_locked, subscription_required |
Kuota atau penagihan, diselesaikan di aplikasi |
| 403 | insufficient_scope |
details.required menyebutkan scope-nya |
| 404 | not_found |
Juga untuk id milik akun lain |
| 409 | handle_taken, free_link_limit_reached |
Alamat sudah dipakai, atau sebuah batas tercapai |
| 422 | validation_failed, handle_immutable |
Permintaan tidak valid. details.fields mencantumkan masalahnya |
| 429 | rate_limited |
Tunggu selama Retry-After detik |
| Permintaan | Batas |
|---|---|
| Pembacaan | 120 per menit per token |
| Pembuatan, pengeditan, publikasi, dan penghapusan | 30 per menit per akun |
| Analitik | 10 per menit per akun |
| Pemeriksaan alamat | 30 per menit per akun |
Batas ini bersifat perkiraan, dan kehabisan kuota tidak pernah dijawab dengan 429. Lewat API, satu akun bisa punya hingga 500 draf per produk. Setiap respons membawa header Request-Id: sebutkan saat Anda menghubungi dukungan.
Referensi lengkap
- Referensi API: setiap endpoint dan kolom, dengan konsol.
- Dokumen OpenAPI 3.1 serta enum dan batasan, tanpa perlu token.
- llms.txt: aturan API, untuk alat AI.
Token yang sama juga menghubungkan asisten AI: lihat Hubungkan asisten AI.