PM API.
Mulai dari sini.
Gateway untuk membaca percakapan dan pesan JKT48 PM dari akun yang dikonfigurasikan pemilik server. API ini menggunakan token akun yang tersimpan di server; aplikasi klien cukup mengirim GET tanpa API key.
https://dash.jkt48connect.comGunakan data dari akun yang kamu miliki atau diizinkan untuk diakses. Dokumentasi ini tidak memuat token atau isi percakapan akun.
1. Akses langsung
Tidak perlu API key atau header Authorization dari aplikasi klien. Token akun PM disimpan dan digunakan oleh gateway di server.
curl 'https://dash.jkt48connect.com/conversations'
2. Daftar route
| Method / path | Fungsi | Autentikasi |
|---|---|---|
GET /health | Status gateway dan apakah token sudah dikonfigurasi. | Publik |
GET /conversations | Daftar percakapan akun PM yang aktif. | Tanpa API key |
GET /conversations/:id/messages | Pesan dalam percakapan, dengan pagination. | Tanpa API key |
GET /attachments?path=... | Mengambil attachment dari file_path pesan. | Tanpa API key |
3. Daftar percakapan
curl 'https://dash.jkt48connect.com/conversations'
Struktur respons berikut adalah ilustrasi. Field setiap objek percakapan mengikuti respons layanan PM.
{
"success": true,
"count": 1,
"conversations": [
{ "id": "CONVERSATION_ID", "...": "field dari layanan PM" }
]
}4. Pesan & pagination
curl 'https://dash.jkt48connect.com/conversations/CONVERSATION_ID/messages?page=1&pageSize=25'
| Parameter | Default | Aturan |
|---|---|---|
page | 1 | Minimal 1. |
pageSize | 25 | Minimal 1, maksimal 25. |
{
"success": true,
"conversation_id": "CONVERSATION_ID",
"page": 1,
"pageSize": 25,
"count": 1,
"decrypted_body_count": 1,
"messages": [
{
"message_id": "MESSAGE_ID",
"message": "Contoh pesan, bukan data akun asli",
"attachments": []
}
]
}Ambil halaman berikutnya dengan menambah page. Pesan hanya tersedia apabila akun PM yang dikonfigurasikan mempunyai akses ke percakapan tersebut. Tidak ada pembelian atau langganan yang dilakukan oleh gateway.
5. Attachment
Gunakan stream_url yang dikembalikan pada attachment, atau kirim file_path melalui parameter path. Tidak perlu header API key. URL attachment dapat dibuka langsung di browser atau digunakan pada elemen media.
curl --get 'https://dash.jkt48connect.com/attachments' \ --data-urlencode 'path=FILE_PATH_DARI_PESAN' \ --output attachment.bin
Respons berupa byte media dengan content type aslinya. Header X-Media-Source bernilai upstream-origin atau vps-disk-cache. Cache dibatasi 2 GiB dan dipisahkan menurut token akun. Satu attachment dibatasi 64 MiB. URL ke origin lain yang belum dikonfigurasikan akan ditolak.
6. Contoh JavaScript
Panggil langsung dari aplikasi klien atau backend.
const response = await fetch(
'https://dash.jkt48connect.com/conversations'
);
const data = await response.json();
if (!response.ok) throw new Error(data.error || `HTTP ${response.status}`);
console.log(data.conversations);7. Status & error
| Status | Makna |
|---|---|
| 200 | Permintaan berhasil. |
| 400 | Parameter atau origin media tidak valid. |
| 401 / 403 | Token PM yang disimpan server tidak berlaku atau akun tidak memiliki izin terhadap data yang diminta. |
| 413 | Media atau request melebihi batas ukuran. |
| 429 | Batas request tercapai. Beri jeda sebelum mencoba lagi. |
| 502 / 500 | Layanan PM tidak tersedia, payload tidak sesuai, atau permintaan gagal diproses. |
| 503 | Token PM belum dikonfigurasikan. |
Gateway memberi jeda pada panggilan ke layanan PM. Hindari polling rapat dan jangan mengulang login akun secara otomatis. Tanggal expiry yang tampil pada status dibaca dari payload JWT; hanya request ke PM yang memastikan token benar-benar diterima.