# Ambil pesan

> Ambil riwayat pesan sebuah percakapan, urut dari yang terlama.

`GET https://api.csku.ai/v1/message/{conversation_id}`

Ambil semua pesan dalam satu percakapan, termasuk pesan pelanggan, balasan AI, balasan agent, dan catatan internal.

## Request

```http
GET /v1/message/{conversation_id}?limit=50&last_id=0
Business: BIZ_ID_ANDA
Secret: SECRET_ANDA
```

| Parameter | Lokasi | Keterangan |
|---|---|---|
| `conversation_id` | path | ID percakapan |
| `limit` | query | Jumlah pesan. Kosong atau `0` = semua pesan |
| `last_id` | query | Ambil pesan dengan `id` **lebih besar** dari nilai ini. Pakai untuk ambil pesan baru saja |

Pesan diurutkan dari yang **terlama** (`id` naik).

## Contoh

```bash
curl "https://api.csku.ai/v1/message/CO_01J9Z3K8V2?limit=50" \
  -H "Business: BIZ_ID_ANDA" \
  -H "Secret: SECRET_ANDA"
```

## Respons

```json
{
  "status": 1,
  "rc": 200,
  "message": "list message",
  "data": {
    "list": [
      {
        "id": 10231,
        "message_id": "MSG_01J9Z3M1AB",
        "conversation_id": "CO_01J9Z3K8V2",
        "sender": "user",
        "sender_name": "Budi Santoso",
        "message": "Kak, pesanan saya kapan dikirim?",
        "caption": "",
        "message_type": "text",
        "mime_type": "text/plain",
        "sent_at": "2026-10-14 09:40:12",
        "delivery_status": "read"
      }
    ],
    "last_id": 10231
  },
  "ts": 1760409612
}
```

| Field | Keterangan |
|---|---|
| `sender` | `user` (pelanggan), `agent` (AI, agent manusia, atau API), atau `system` |
| `sender_name` | Nama pengirim. Balasan AI berformat `Nama AI - Label` |
| `message` | Teks pesan, atau URL file untuk pesan media |
| `caption` | Keterangan media |
| `message_type` | `text`, `image`, `video`, `audio`, `document`, dan lainnya |
| `delivery_status` | `pending`, `sent`, `delivered`, `read`, atau `failed` |
| `reply_to_message_id` | ID pesan yang dibalas di channel (hanya ada jika pesan berupa balasan) |
| `sent_at` | Waktu WIB, format `YYYY-MM-DD HH:MM:SS` |

## Ambil pesan baru saja

Simpan `last_id` dari respons, lalu kirim lagi sebagai query untuk mendapat pesan setelahnya:

```bash
curl "https://api.csku.ai/v1/message/CO_01J9Z3K8V2?last_id=10231" \
  -H "Business: BIZ_ID_ANDA" -H "Secret: SECRET_ANDA"
```

Jika tidak ada pesan baru, `list` bernilai `null` dan `last_id` `0`.

> **Tips**
>
> Untuk tahu kapan ada pesan baru, pakai [webhook](https://docs.csku.ai/webhook/setup) daripada memanggil endpoint ini berulang kali.

> **Catatan**
>
> `conversation_id` yang tidak dikenal mengembalikan daftar kosong, bukan error. Catatan internal ikut tercantum dan tidak punya penanda khusus.
