Dokumentasi API | HalloWa

Dokumentasi API HalloWa

Integrasikan pesan WhatsApp, Instagram, Messenger, dan Threads ke dalam aplikasi Anda dengan REST API yang powerful.

RESTful API

Endpoint REST standar dengan response JSON

Aman

Autentikasi JWT dan signature webhook

Andal

Retry otomatis dengan exponential backoff

Base URL

https://api.hallowa.id/v1

Panduan Cepat

1. Dapatkan API Key Anda

Buka Dashboard → Pengaturan → API Keys untuk membuat API key Anda.

Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxx

2. Kirim pesan pertama Anda

curl -X POST https://api.hallowa.id/v1/messages/send \
  -H "Authorization: Bearer sk_live_xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "whatsapp",
    "to": "+6285157667780",
    "type": "text",
    "content": "Hello from HalloWa!"
  }'

3. Atur webhook

Terima notifikasi real-time untuk pesan masuk dan update status pengiriman.

Autentikasi

POST /auth/login

Login

Autentikasi pengguna dan dapatkan access token

Request Body

{
  "email": "[email protected]",
  "password": "your-password"
}

Response

{
  "token": "eyJhbGciOiJIUzI1NiIs...",
  "user": {
    "id": "usr_123",
    "email": "[email protected]",
    "name": "John Doe"
  }
}
POST /auth/refresh Perlu Auth

Refresh Token

Dapatkan access token baru menggunakan refresh token

Response

{
  "token": "eyJhbGciOiJIUzI1NiIs..."
}

Pesan

POST /messages/send Perlu Auth

Kirim Pesan

Kirim pesan ke kontak di platform manapun

Request Body

{
  "platform": "whatsapp",
  "to": "+6285157667780",
  "type": "text",
  "content": "Hello from HalloWa!"
}

Response

{
  "id": "msg_abc123",
  "status": "sent",
  "timestamp": "2026-01-25T10:30:00Z"
}
GET /messages/{id} Perlu Auth

Ambil Pesan

Ambil pesan tertentu berdasarkan ID

Parameter

id string wajib ID Pesan

Response

{
  "id": "msg_abc123",
  "platform": "whatsapp",
  "direction": "outbound",
  "content": "Hello!",
  "status": "delivered",
  "created_at": "2026-01-25T10:30:00Z"
}
POST /messages/template Perlu Auth

Kirim Pesan Template

Kirim pesan template yang sudah disetujui (WhatsApp HSM)

Request Body

{
  "platform": "whatsapp",
  "to": "+6285157667780",
  "template_name": "order_confirmation",
  "language": "id",
  "components": [
    {
      "type": "body",
      "parameters": [
        { "type": "text", "text": "John" },
        { "type": "text", "text": "ORD-12345" }
      ]
    }
  ]
}

Percakapan

GET /conversations Perlu Auth

Daftar Percakapan

Ambil semua percakapan dengan paginasi

Parameter

platform string Filter berdasarkan platform
status string Filter berdasarkan status (open, closed)
limit number Jumlah maksimum hasil (default: 50)
offset number Offset paginasi

Response

{
  "conversations": [
    {
      "id": "conv_123",
      "platform": "whatsapp",
      "contact": { "id": "ctn_456", "name": "John" },
      "last_message": { "content": "Hi!", "created_at": "..." },
      "unread_count": 2
    }
  ],
  "total": 150,
  "has_more": true
}
POST /conversations/{id}/assign Perlu Auth

Assign Percakapan

Assign percakapan ke seorang agent

Request Body

{
  "agent_id": "usr_789"
}

Kontak

GET /contacts Perlu Auth

Daftar Kontak

Ambil semua kontak dengan filter opsional

Parameter

search string Cari berdasarkan nama, telepon, atau email
label string Filter berdasarkan ID label
POST /contacts Perlu Auth

Buat Kontak

Buat kontak baru

Request Body

{
  "name": "Jane Doe",
  "phone": "+6285157667780",
  "email": "[email protected]",
  "labels": ["lbl_vip", "lbl_premium"]
}
PUT /contacts/{id} Perlu Auth

Update Kontak

Update kontak yang sudah ada

DELETE /contacts/{id} Perlu Auth

Hapus Kontak

Hapus sebuah kontak

Webhook

POST /webhooks Perlu Auth

Buat Webhook

Daftarkan endpoint webhook untuk menerima event

Request Body

{
  "url": "https://your-server.com/webhook",
  "events": ["message.received", "message.status"],
  "secret": "your-webhook-secret"
}
GET /webhooks Perlu Auth

Daftar Webhook

Ambil semua webhook yang terdaftar

Broadcast

POST /broadcast Perlu Auth

Buat Broadcast

Kirim pesan massal ke banyak kontak sekaligus

Request Body

{
  "name": "January Promo",
  "platform": "whatsapp",
  "template_name": "promo_january",
  "recipients": ["ctn_1", "ctn_2", "ctn_3"],
  "schedule": "2026-01-26T09:00:00Z"
}
GET /broadcast/{id}/status Perlu Auth

Status Broadcast

Ambil status pengiriman broadcast

Kode Error

KodeDeskripsi
400Bad Request - Parameter tidak valid
401Unauthorized - API key tidak valid atau tidak ada
403Forbidden - Permission tidak mencukupi
404Not Found - Resource tidak ditemukan
429Rate Limited - Terlalu banyak request
500Server Error - Silakan hubungi support

Batas Rate

Paket Free

100

request/menit

Paket Pro

1.000

request/menit

Enterprise

Custom

Hubungi sales

Header batas rate disertakan di setiap response:

X-RateLimit-Limit: 1000

X-RateLimit-Remaining: 987

X-RateLimit-Reset: 1706178600

SDK & Library

Butuh Bantuan?

Tim developer support kami siap membantu Anda

HalloWa

© 2026 HalloWa. Hak cipta dilindungi.