Langsung ke konten

API Get All List: Ambil Semua List dari Akun (GET /lists)

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

  1. Masuk ke dashboard di be.mailketing.co.id/login.
  2. Buka menu Integrasi → Email Application API.
  3. 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

BagianNilai
MethodGET
URLhttps://api.mailketing.co.id/api/v2/lists
HeaderAuthorization: Bearer TOKEN_ANDA
BodyTidak perlu

Token juga bisa dikirim dengan cara lain, misalnya lewat query string ?api_token=TOKEN_ANDA. Pilih salah satu:

Cara mengirim tokenContoh
Header Authorization (disarankan)Authorization: Bearer TOKEN_ANDA
Header X-Api-TokenX-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"
}
FieldTipeKeterangan
data.lists[].list_idangkaID list. Dipakai sebagai list_id di POST /subscribers.
data.lists[].list_nameteksNama 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"
}
HTTPPesanPenyebab
401Missing API token / Invalid API tokenToken tidak dikirim atau salah.
402Insufficient creditsSaldo kredit akun habis.
429Rate limit exceededTerlalu 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.

BagianNilai (v1)
URLhttps://api.mailketing.co.id/api/v1/viewlist
MethodPOST
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 v1API v2
POST /api/v1/viewlistGET /api/v2/lists
Token di field form api_tokenToken di header Authorization: Bearer atau X-Api-Token
{"status":"success","lists":[…]}{"success":true,"data":{"lists":[…]}}
Error tetap HTTP 200 dengan status: errorError memakai kode HTTP (401, 402, 429)

Panduan Terkait

Apakah artikel ini membantu?

Masih butuh bantuan?

Tim support Mailketing siap membantu setup domain, SMTP, maupun integrasi API melalui WhatsApp atau email.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *