Dokumentasi API Mailketing: Cara Kirim Email Transaksional & Marketing untuk Developer

Di artikel ini
API Mailketing adalah layanan pengiriman email berbasis REST API untuk developer yang membutuhkan kecepatan tinggi, keamanan reputasi domain, dan biaya efisien. Panduan dokumentasi API Mailketing v2 ini merangkum endpoint, autentikasi, parameter, format respons, kode error, dan contoh kodenya.
Gunakan endpoint https://api.mailketing.co.id/api/v2/send dengan metode POST dan body JSON untuk mengirim email OTP, notifikasi, invoice, hingga email marketing. Base URL API v2 adalah https://api.mailketing.co.id/api/v2.
API ini dilengkapi Auto-Filter untuk bounce, bad address, dan invalid email, serta menyediakan 200 credit gratis untuk testing awal. Harga mulai dari Rp0,6 per email.
Mengapa API Mailketing Lebih Baik dari SMTP Biasa?
Bagi developer, integrasi API memberikan kontrol yang lebih presisi dibandingkan SMTP tradisional. Setiap request mengembalikan respons JSON yang jelas, termasuk kode HTTP dan pesan error, sehingga mudah ditangani di aplikasi.
Keunggulan Utama API Mailketing
- Auto-Filter Otomatis
Sistem Mailketing menyaring email disposable, invalid, dan berisiko bounce sebelum dikirim. - Reputasi Domain Terjaga
Pengiriman hanya ke alamat berkualitas membantu menjaga domain Anda dari blacklist Gmail & Yahoo. - Efisiensi Kredit
Kredit tidak terbuang untuk email palsu atau tidak valid. - Latency Rendah (Server Lokal Indonesia)
Pengiriman email transaksional seperti OTP dan notifikasi lebih cepat diproses.
Dokumentasi Teknis API Mailketing v2
Endpoint API
- Base URL:
https://api.mailketing.co.id/api/v2 - Kirim email:
POST /send - Format:
application/json(headerContent-Type: application/json)
Endpoint lain yang tersedia di API v2:
| Method | Endpoint | Fungsi |
|---|---|---|
| POST | /send | Mengirim email transaksional/marketing |
| GET | /credits | Cek sisa kredit akun |
| GET | /senders | Daftar email pengirim yang sudah diverifikasi |
| GET | /lists | Daftar list subscriber (untuk mendapatkan list_id) |
| POST | /subscribers | Menambahkan subscriber ke list |
Autentikasi API Token
API token diambil dari menu Integration (API Integration) di dashboard Mailketing. Di API v2, token sebaiknya dikirim lewat header, bukan di body:
Authorization: Bearer <token>(prioritas pertama)X-Api-Token: <token>- Query parameter
?api_token=<token> - Field
api_tokendi body JSON
Jika lebih dari satu cara dipakai, urutan di atas menentukan token mana yang dibaca lebih dulu. Simpan token di environment variable server, jangan ditulis di kode front-end.
Daftar Parameter API (POST /send)
| Parameter | Wajib | Keterangan |
|---|---|---|
| from_name | Ya | Nama pengirim yang tampil di inbox (maks. 255 karakter) |
| from_email | Ya | Email pengirim, domainnya harus sudah diverifikasi di Mailketing |
| recipient | Ya | Email tujuan |
| subject | Ya | Subjek email (maks. 998 karakter) |
| content | Ya | Isi email (Text / HTML). Konten HTML (mengandung <html>) tidak dibatasi, plain text maks. 300KB |
| attach1–3 | Tidak | URL lampiran; file diunduh server lalu dilampirkan ke email |
Catatan: message_id tidak bisa diisi sendiri, Mailketing selalu membuatnya otomatis (format <api.{acak}@domain-pengirim>) dan dikembalikan di respons. Simpan nilai tersebut di database Anda bila perlu melacak email tertentu.
Contoh body JSON:
{
"from_name": "Admin Toko",
"from_email": "[email protected]",
"recipient": "[email protected]",
"subject": "Invoice #1024",
"content": "<html><body><p>Terima kasih atas pesanan Anda.</p></body></html>",
"attach1": "https://domainanda.com/invoice/1024.pdf"
}
Contoh Implementasi API Mailketing
1. PHP (cURL)
<?php
$token = 'isi_api_token_anda';
$payload = [
'from_name' => 'Admin Toko',
'from_email' => '[email protected]',
'recipient' => '[email protected]',
'subject' => 'Test Email API',
'content' => '<html><body><h1>Halo!</h1><p>Email dikirim via API Mailketing.</p></body></html>',
];
$ch = curl_init('https://api.mailketing.co.id/api/v2/send');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Authorization: Bearer ' . $token,
],
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$result = json_decode($response, true);
if ($status === 200 && !empty($result['success'])) {
echo 'Terkirim, message_id: ' . $result['data']['message_id'];
} else {
echo 'Gagal (' . $status . '): ' . ($result['message'] ?? 'unknown error');
}
2. Node.js (Axios)
const axios = require('axios');
axios.post(
'https://api.mailketing.co.id/api/v2/send',
{
from_name: 'Support',
from_email: '[email protected]',
recipient: '[email protected]',
subject: 'Notifikasi Login',
content: 'Ada login baru ke akun Anda.'
},
{
headers: {
'Content-Type': 'application/json',
'X-Api-Token': 'isi_api_token_anda'
}
}
).then(res => console.log(res.data.data.message_id))
.catch(err => {
if (err.response) {
console.error(err.response.status, err.response.data.message, err.response.data.errors);
} else {
console.error(err.message);
}
});
3. Golang
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
func main() {
payload, _ := json.Marshal(map[string]string{
"from_name": "Go App",
"from_email": "[email protected]",
"recipient": "[email protected]",
"subject": "Test API Go",
"content": "Email terkirim via Golang",
})
req, err := http.NewRequest("POST", "https://api.mailketing.co.id/api/v2/send", bytes.NewBuffer(payload))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer isi_api_token_anda")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(resp.StatusCode, string(body))
}
4. cURL: Cek Kredit dan Tambah Subscriber
Cek sisa kredit sebelum mengirim dalam jumlah besar:
curl "https://api.mailketing.co.id/api/v2/credits" \
-H "X-Api-Token: isi_api_token_anda"
Untuk email marketing, ambil list_id lewat GET /lists, lalu tambahkan subscriber dari form pendaftaran aplikasi Anda:
curl "https://api.mailketing.co.id/api/v2/lists" \
-H "X-Api-Token: isi_api_token_anda"
curl -X POST "https://api.mailketing.co.id/api/v2/subscribers" \
-H "Content-Type: application/json" \
-H "X-Api-Token: isi_api_token_anda" \
-d '{"list_id": 1, "email": "[email protected]", "first_name": "Budi", "mobile": "08123456789"}'
Nomor mobile dinormalisasi otomatis ke format 628…. Jika email sudah ada di list, respons tetap HTTP 200 dengan "status": "already_exists".
Response API & Error Handling
Semua respons API v2 memakai format JSON yang sama: success (boolean), data (payload, null jika error), dan message. Saat validasi gagal, ada tambahan field errors berisi pesan per field.
Contoh respons sukses POST /send:
{
"success": true,
"data": {
"message_id": "<[email protected]>"
},
"message": "Email queued successfully"
}
| HTTP | Response (message) | Solusi |
|---|---|---|
| 200 | Email queued successfully | Email masuk antrean |
| 401 | Invalid API token | Periksa API Token |
| 402 | Insufficient credits | Lakukan Top Up |
| 403 | Unknown sender domain | Verifikasi domain from_email di menu Add Domain |
| 422 | Validation failed | Cek field errors (mis. recipient kosong atau format email salah) |
| 429 | Rate limit exceeded | Terlalu banyak request gagal (30 gagal/menit per IP); tunggu sesuai header Retry-After |
Rate limit hanya berlaku untuk request yang gagal. Request yang sukses tidak dibatasi, jadi perbaiki penyebab error 401/403/422 lebih dulu sebelum mencoba ulang.
Masih Memakai API v1?
Endpoint lama https://api.mailketing.co.id/api/v1/send (POST, format x-www-form-urlencoded, token dikirim sebagai parameter api_token di body) masih berfungsi untuk integrasi lama. Integrasi baru sebaiknya menggunakan v2.
Perbedaan utama saat migrasi dari v1 ke v2:
- Ganti URL
/api/v1/sendmenjadi/api/v2/send. - Kirim body sebagai JSON dengan header
Content-Type: application/json. - Pindahkan
api_tokenke headerAuthorization: BeareratauX-Api-Token. - Baca hasil dari kode HTTP dan field
success/message, bukan dari teks status v1.
Nama field kirim email (from_name, from_email, recipient, subject, content, attach1–3) tetap sama. Dokumentasi v1 mencantumkan batas lampiran 2MB per file. Respons v1 masih memakai status teks berikut:
| Status v1 | Response v1 | Solusi | Padanan di v2 |
|---|---|---|---|
| success | Mail Sent | Email masuk antrean | 200 Email queued successfully |
| failed | User Not Found | Periksa API Token | 401 Invalid API token |
| failed | Unknown Sender | Verifikasi domain/email | 403 Unknown sender domain |
| failed | No Credits | Lakukan Top Up | 402 Insufficient credits |
| failed | Blacklisted | Email tujuan invalid | Tidak ada padanan khusus di dokumentasi v2 |
| failed | Empty Recipient | Recipient kosong | 422 Validation failed |
Baca juga: Cara Kirim Email dengan Attachment via REST API (PDF, Gambar, Dokumen), Memahami Error Code Email API: 401, 402, 403, 422, 429 dan Cara Mengatasinya, dan Host SMTP Mailketing: Panduan Konfigurasi dan Cara Penggunaannya.
Kesimpulan
API Mailketing adalah solusi email transaksional & marketing yang efisien untuk developer Indonesia. API v2 memakai JSON, autentikasi lewat header, dan kode error HTTP yang jelas.
Dengan server lokal, auto-filter pintar, dan harga mulai Rp200.000 untuk 100.000 email, Mailketing menawarkan performa enterprise dengan biaya lokal.
👉 Daftar sekarang di mailketing.co.id dan dapatkan 200 credit gratis untuk testing API.
Pertanyaan yang Sering Diajukan
Apa endpoint utama API Mailketing untuk mengirim email?
Endpoint utamanya adalah POST /send di base URL https://api.mailketing.co.id/api/v2. Selain itu tersedia GET /credits, GET /senders, GET /lists, dan POST /subscribers.
Apakah API Mailketing v1 masih bisa dipakai?
Ya. Endpoint v1 (/api/v1/send) masih berfungsi untuk integrasi lama. Untuk integrasi baru gunakan API v2 karena memakai JSON, autentikasi lewat header, dan kode error HTTP standar.
Bahasa pemrograman apa saja yang didukung API Mailketing?
Karena berbasis REST, API dapat dipakai bahasa apa pun yang mendukung HTTP request, termasuk PHP, Node.js, Python, dan Golang. Dokumentasi menyediakan contoh kodenya.
Berapa biaya kirim email via API Mailketing?
Mulai Rp0,6 per email dengan model pay-as-you-use, tanpa biaya bulanan. Anda juga mendapat kredit gratis saat mendaftar untuk mencoba.
Apakah API Mailketing mendukung attachment dan message_id sendiri?
Attachment didukung lewat field attach1 sampai attach3 berupa URL file. message_id tidak bisa diisi sendiri: Mailketing selalu membuatnya otomatis dan mengembalikannya di data.message_id, jadi simpan nilai tersebut untuk keperluan pelacakan.
Coba Mailketing gratis
Kirim email marketing, transaksional, dan OTP mulai Rp0,6/email — bayar sesuai pemakaian, tanpa biaya bulanan.
