Jelajahi dokumentasi REST API

REST API

Buat link, Smart Links, formulir, dan halaman Multilink dari kode Anda sendiri, dan baca analitiknya, dengan aturan yang sama seperti aplikasi Walink.

Diperbarui 11 November 2026 Lihat sebagai Markdown

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

  1. Masuk ke Walink, buka menu akun (tombol bulat di kanan atas) dan pilih Developers.
  2. Di bawah API Tokens, pilih Create token (buat token).
  3. 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).
  4. 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.
  5. 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".

  • handle adalah alamat setelah wa.link/. Alamat tidak bisa diubah setelah link dibuat, dan draf tidak memesannya: akun pertama yang memublikasikan di alamat itu yang mendapatkannya.
  • plan adalah jenis link: chat, catalog, channel, atau group.
  • Idempotency-Key membuat 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-check adalah uji coba tanpa perubahan: apa yang masih menghalangi publikasi dan berapa kuota yang akan dipakainya.
  • POST .../unpublish menonaktifkan 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 memerlukan links:publish.

Smart Links, formulir, dan halaman Multilink mengikuti langkah yang sama di path masing-masing. Smart Links memakai scope links.

/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, bukan links:write.
  • Walink yang memilih alamat acaknya. Anda mengirim nomor telepon atau nama pengguna WhatsApp, pesan opsional, dan title pribadi opsional, yang tidak bisa diubah nanti.
  • Link ini bisa ditampilkan dalam daftar, dibaca, dan dihapus, tidak pernah diedit. Id-nya diawali fln_, dan /v1/links tidak 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

Token yang sama juga menghubungkan asisten AI: lihat Hubungkan asisten AI.