Menu dokumentasi
Dokumentasi API & Webhook Pesan (inbox)
Di halaman ini

Pesan

Pesan diambil per-inbox (via fullAddress) atau per-ID. Retensi pesan default 7 hari sejak diterima.

List pesan inbox

kode
GET /v1/inboxes/:address/messages

Auth: API key (read) atau JWT. :address = fullAddress lengkap (mis. abc12@inbox.brandkamu.id).

Query params (semua opsional):

ParamKeterangan
qFull-text search (subject/body). Minimal 2 karakter
cursorCursor pagination (lihat Pagination)
limitJumlah per halaman, 1–100 (default 50)
bash
curl -H "X-API-Key: clk_live_xxx" \
  "https://api.cloudin.id/v1/inboxes/abc12@inbox.brandkamu.id/messages"

Response (item list — tanpa textBody/htmlBody):

json
{
  "data": [
    {
      "id": "01HXY...",
      "addressId": "01HXY...",
      "fromAddr": "sender@example.com",
      "fromName": "OpenAI",
      "toAddr": "abc12@inbox.brandkamu.id",
      "subject": "Verifikasi Email",
      "preview": "Kode kamu adalah...",
      "sizeBytes": 8421,
      "isRead": false,
      "otpCode": "918203",
      "tags": [],
      "receivedAt": "2026-05-28T07:00:00.000Z",
      "expiresAt": "2026-06-04T07:00:00.000Z",
      "createdAt": "2026-05-28T07:00:00.000Z"
    }
  ],
  "meta": { "cursor": "01HXZ...", "hasMore": true }
}

otpCode otomatis di-ekstrak dari email verifikasi (numerik atau alfanumerik). null kalau tidak terdeteksi.

Detail pesan

kode
GET /v1/messages/:id

Auth: API key (read) atau JWT. Mengembalikan pesan lengkap termasuk textBody dan htmlBody. Memanggil endpoint ini menandai pesan sebagai read (isRead: true).

bash
curl -H "X-API-Key: clk_live_xxx" \
  https://api.cloudin.id/v1/messages/MSG_ID

Response:

json
{
  "data": {
    "id": "01HXY...",
    "addressId": "01HXY...",
    "fromAddr": "sender@example.com",
    "fromName": "OpenAI",
    "toAddr": "abc12@inbox.brandkamu.id",
    "subject": "Verifikasi Email",
    "preview": "Kode kamu adalah...",
    "textBody": "Kode kamu adalah 918203",
    "htmlBody": "<p>Kode kamu adalah <b>918203</b></p>",
    "sizeBytes": 8421,
    "isRead": true,
    "otpCode": "918203",
    "tags": [],
    "receivedAt": "2026-05-28T07:00:00.000Z",
    "expiresAt": "2026-06-04T07:00:00.000Z"
  }
}

Hapus pesan

kode
DELETE /v1/messages/:id

Auth: JWT saja (tidak ada di allow-list API key). Response 204 No Content. Menghapus pesan memicu event webhook message.deleted.

Pola untuk bot OTP

Untuk otomasi yang cuma butuh OTP, subscribe webhook message.received dengan filter filterOtpOnly: true supaya bot hanya di-ping saat ada kode — lebih cepat daripada polling. Lihat Webhook. Kalau tetap polling, gunakan GET /v1/inboxes/:address/messages lalu baca otpCode dari item terbaru.