jkt48connectPM / API DOCSDashboard ↗
PUBLIC REFERENCE / V1

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.

Base URL
https://dash.jkt48connect.com
Gunakan 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 / pathFungsiAutentikasi
GET /healthStatus gateway dan apakah token sudah dikonfigurasi.Publik
GET /conversationsDaftar percakapan akun PM yang aktif.Tanpa API key
GET /conversations/:id/messagesPesan 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'
ParameterDefaultAturan
page1Minimal 1.
pageSize25Minimal 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

StatusMakna
200Permintaan berhasil.
400Parameter atau origin media tidak valid.
401 / 403Token PM yang disimpan server tidak berlaku atau akun tidak memiliki izin terhadap data yang diminta.
413Media atau request melebihi batas ukuran.
429Batas request tercapai. Beri jeda sebelum mencoba lagi.
502 / 500Layanan PM tidak tersedia, payload tidak sesuai, atau permintaan gagal diproses.
503Token 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.