Langsung ke konten

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

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

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

  1. Auto-Filter Otomatis
    Sistem Mailketing menyaring email disposable, invalid, dan berisiko bounce sebelum dikirim.
  2. Reputasi Domain Terjaga
    Pengiriman hanya ke alamat berkualitas membantu menjaga domain Anda dari blacklist Gmail & Yahoo.
  3. Efisiensi Kredit
    Kredit tidak terbuang untuk email palsu atau tidak valid.
  4. 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 (header Content-Type: application/json)

Endpoint lain yang tersedia di API v2:

MethodEndpointFungsi
POST/sendMengirim email transaksional/marketing
GET/creditsCek sisa kredit akun
GET/sendersDaftar email pengirim yang sudah diverifikasi
GET/listsDaftar list subscriber (untuk mendapatkan list_id)
POST/subscribersMenambahkan 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:

  1. Authorization: Bearer <token> (prioritas pertama)
  2. X-Api-Token: <token>
  3. Query parameter ?api_token=<token>
  4. Field api_token di 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)

ParameterWajibKeterangan
from_nameYaNama pengirim yang tampil di inbox (maks. 255 karakter)
from_emailYaEmail pengirim, domainnya harus sudah diverifikasi di Mailketing
recipientYaEmail tujuan
subjectYaSubjek email (maks. 998 karakter)
contentYaIsi email (Text / HTML). Konten HTML (mengandung <html>) tidak dibatasi, plain text maks. 300KB
attach1–3TidakURL 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"
}
HTTPResponse (message)Solusi
200Email queued successfullyEmail masuk antrean
401Invalid API tokenPeriksa API Token
402Insufficient creditsLakukan Top Up
403Unknown sender domainVerifikasi domain from_email di menu Add Domain
422Validation failedCek field errors (mis. recipient kosong atau format email salah)
429Rate limit exceededTerlalu 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:

  1. Ganti URL /api/v1/send menjadi /api/v2/send.
  2. Kirim body sebagai JSON dengan header Content-Type: application/json.
  3. Pindahkan api_token ke header Authorization: Bearer atau X-Api-Token.
  4. 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 v1Response v1SolusiPadanan di v2
successMail SentEmail masuk antrean200 Email queued successfully
failedUser Not FoundPeriksa API Token401 Invalid API token
failedUnknown SenderVerifikasi domain/email403 Unknown sender domain
failedNo CreditsLakukan Top Up402 Insufficient credits
failedBlacklistedEmail tujuan invalidTidak ada padanan khusus di dokumentasi v2
failedEmpty RecipientRecipient kosong422 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.

Bagikan artikel ini

Coba Mailketing gratis

Kirim email marketing, transaksional, dan OTP mulai Rp0,6/email — bayar sesuai pemakaian, tanpa biaya bulanan.

Daftar gratis Lihat dokumentasi