API Get All List: Ambil Semua List dari Akun (GET /lists)
Di halaman ini
Panduan ini untuk developer yang perlu mengambil daftar semua list (ID dan nama list) dari akun Mailketing lewat API v2 GET /lists. ID list dari hasil ini dipakai untuk menambah subscriber ke list.
Yang Perlu Disiapkan
- Akun Mailketing dengan saldo kredit (API v2 menolak request jika saldo 0).
- API token dari menu Integrasi → Email Application API.
- Minimal satu list di akun Anda (lihat Cara Membuat List di Mailketing).
Langkah-langkah Mengambil Daftar List
Langkah 1: Ambil API token
- Masuk ke dashboard di be.mailketing.co.id/login.
- Buka menu Integrasi → Email Application API.
- Di kotak Konfigurasi API, klik tombol Salin di samping kolom API Token.
Penting: Tombol Generate Token Baru membuat token pengganti. Token lama langsung tidak berlaku, jadi semua aplikasi yang memakai token lama harus diperbarui. Simpan token di server (misalnya variabel lingkungan), jangan ditaruh di kode JavaScript yang berjalan di browser pengunjung.
Langkah 2: Kirim request ke endpoint
| Bagian | Nilai |
|---|---|
| Method | GET |
| URL | https://api.mailketing.co.id/api/v2/lists |
| Header | Authorization: Bearer TOKEN_ANDA |
| Body | Tidak perlu |
Token juga bisa dikirim dengan cara lain, misalnya lewat query string ?api_token=TOKEN_ANDA. Pilih salah satu:
| Cara mengirim token | Contoh |
|---|---|
Header Authorization (disarankan) | Authorization: Bearer TOKEN_ANDA |
Header X-Api-Token | X-Api-Token: TOKEN_ANDA |
| Query string | ?api_token=TOKEN_ANDA |
| Body JSON | {"api_token": "TOKEN_ANDA"} |
Contoh cURL
curl "https://api.mailketing.co.id/api/v2/lists" \
-H "Authorization: Bearer TOKEN_ANDA"Contoh PHP
<?php
$apiToken = 'TOKEN_ANDA'; // dari menu Integrasi → Email Application API
$ch = curl_init('https://api.mailketing.co.id/api/v2/lists');
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiToken],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$result = json_decode($response, true);
if (!empty($result['success'])) {
foreach ($result['data']['lists'] as $list) {
echo $list['list_id'] . ' - ' . $list['list_name'] . PHP_EOL;
}
} else {
echo 'Gagal (' . $httpCode . '): ' . ($result['message'] ?? $response);
}Contoh JavaScript (Node.js)
// Node.js 18 ke atas (fetch sudah bawaan). Jalankan di server, bukan di browser.
const apiToken = process.env.MAILKETING_TOKEN; // isi dengan token Anda
async function ambilList() {
const res = await fetch('https://api.mailketing.co.id/api/v2/lists', {
headers: { 'Authorization': `Bearer ${apiToken}` },
});
const result = await res.json();
if (result.success) {
for (const list of result.data.lists) {
console.log(list.list_id, list.list_name);
}
} else {
console.error('Gagal', res.status, result.message);
}
}
ambilList();Contoh Python
import os
import requests
api_token = os.environ.get("MAILKETING_TOKEN", "TOKEN_ANDA")
resp = requests.get(
"https://api.mailketing.co.id/api/v2/lists",
headers={"Authorization": f"Bearer {api_token}"},
timeout=30,
)
result = resp.json()
if result.get("success"):
for item in result["data"]["lists"]:
print(item["list_id"], item["list_name"])
else:
print("Gagal", resp.status_code, result.get("message"))Contoh Respons
Semua respons API v2 berbentuk JSON dengan pola yang sama: success (true/false), data (isi hasil, null bila gagal), message (pesan singkat), dan errors (hanya muncul bila ada field yang tidak valid).
Berhasil (HTTP 200)
{
"success": true,
"data": {
"lists": [
{ "list_id": 1, "list_name": "Newsletter" },
{ "list_id": 2, "list_name": "Pelanggan VIP" },
{ "list_id": 3, "list_name": "Leads Facebook" }
]
},
"message": "OK"
}| Field | Tipe | Keterangan |
|---|---|---|
data.lists[].list_id | angka | ID list. Dipakai sebagai list_id di POST /subscribers. |
data.lists[].list_name | teks | Nama list seperti yang tampil di dashboard. |
List internal “ALL CONTACT” tidak ikut ditampilkan.
Contoh token salah (HTTP 401)
{
"success": false,
"data": null,
"message": "Invalid API token"
}| HTTP | Pesan | Penyebab |
|---|---|---|
| 401 | Missing API token / Invalid API token | Token tidak dikirim atau salah. |
| 402 | Insufficient credits | Saldo kredit akun habis. |
| 429 | Rate limit exceeded | Terlalu banyak request gagal dalam satu menit. |
Request yang berhasil tidak dibatasi. Yang dibatasi hanya request yang gagal: maksimal 30 kali gagal per menit per alamat IP. Lewat dari itu, API menjawab HTTP 429 sampai jedanya habis (lihat header Retry-After).
Cara Memastikan Berhasil
Bandingkan hasil API dengan kolom ID List dan nama list di Lists & Subscriber → Lihat Semua List. Keduanya harus sama.
Pertanyaan yang Sering Diajukan
Hasilnya kosong padahal saya punya list.
Pastikan token yang dipakai milik akun yang sama dengan list tersebut. Jika Anda punya beberapa akun, setiap akun punya token sendiri.
List yang baru dibuat belum muncul.
API v2 membaca data langsung, jadi list baru seharusnya langsung muncul. Jika Anda masih memakai API v1, daftar list disimpan sementara (cache) hingga sekitar 10 menit, jadi tunggu lalu coba lagi.
Bagaimana cara melihat email pengirim yang sudah diverifikasi?
Gunakan endpoint GET /senders di API v2. Detailnya ada di dokumentasi interaktif https://api.mailketing.co.id/docs/.
Masih Memakai API v1?
Catatan: API v1 masih berfungsi untuk integrasi lama. Untuk integrasi baru, gunakan API v2 seperti di atas.
| Bagian | Nilai (v1) |
|---|---|
| URL | https://api.mailketing.co.id/api/v1/viewlist |
| Method | POST |
| Parameter | [api_token] dikirim sebagai field form (bukan JSON). Didapatkan di menu Integrasi → Email Application API. |
Contoh PHP (v1)
<?php
$api_token='isi_api_token'; //silahkan copy dari api token mailketing
$params = [
'api_token' => $api_token
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://api.mailketing.co.id/api/v1/viewlist");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec ($ch);
print_r($output);
curl_close ($ch);
?>Respons v1
{"status":"success","lists":[{"list_id":1,"list_name":"contoh"},{"list_id":2,"list_name":"contoh2"}]}list_id dari respons ini bisa digunakan untuk API add subscriber ke list. Jika token salah atau kosong, v1 menjawab {"status":"error","response":"…"}.
Koleksi Postman lama (API v1): Run in Postman.
Pemetaan v1 ke v2
| API v1 | API v2 |
|---|---|
POST /api/v1/viewlist | GET /api/v2/lists |
Token di field form api_token | Token di header Authorization: Bearer atau X-Api-Token |
{"status":"success","lists":[…]} | {"success":true,"data":{"lists":[…]}} |
Error tetap HTTP 200 dengan status: error | Error memakai kode HTTP (401, 402, 429) |
Panduan Terkait
Masih butuh bantuan?
Tim support Mailketing siap membantu setup domain, SMTP, maupun integrasi API melalui WhatsApp atau email.
