API Docs & Playground
Semua endpoint publik JKT48Connect Developer API. Test langsung dari browser dengan API key kamu, atau copy code sample untuk framework favorit.
Auth
Header x-api-key
Base URL
https://jkt48connect.com
Format
JSON · UTF-8
Realtime
SSE (Basic+) & Webhooks (Pro+)
Mulai dari sini — Getting started
- 1. Login ke Developer Portal lalu buat API key. Format key:
jk48c_xxxx… - 2. Sertakan header
x-api-key: jk48c_…pada setiap request. Untuk SSE dari browser, boleh pakai query string?key=jk48c_…. - 3. Pilih endpoint di sidebar, coba di Playground, lalu copy code sample.
- 4. Semua URL gambar sudah di-proxy ke
https://jkt48connect.com/api/img/…atau/img/recent/…— aman di-hotlink.
Response envelope
{
"ok": true,
"data": …,
"cached_at": "ISO",
"cache_ttl": 30,
"tier": "Basic"
} Error envelope
{
"ok": false,
"error": "human readable",
"code": "RATE_LIMITED"
}GET
/api/v1/liveMin. tier: FreeLive sekarang
Daftar member yang sedang live (Showroom + IDN gratis) beserta playback URL, thumbnail, dan metadata dasar.
Endpoint utama untuk mendeteksi member JKT48 yang sedang siaran. Menggabungkan sumber Showroom + IDN Live (channel gratis). Data ter-cache di edge sesuai tier: Free 30s, Basic 15s, Pro 5s, Fanbase 5s. Cocok dipakai sebagai polling ringan atau backing store untuk dashboard/bot. Untuk update push tanpa polling, gunakan `/api/v1/realtime/live` (SSE, Basic+).
Cache: 5–30 detik (menyesuaikan tier)
Use case umum
- Bot Discord yang mengumumkan member live
- Widget 'sedang live' di landing fanbase
- Backfill state realtime saat cold start
Response fields
| Field | Tipe | Deskripsi |
|---|---|---|
| ok | boolean | Status request. |
| data[].name | string | Nama panggung member. |
| data[].url_key | string | Slug unik member (mis. `JKT48-Jesslyn`). |
| data[].platform | 'showroom' | 'idn' | Sumber siaran. |
| data[].img | string(url) | Thumbnail (sudah di-proxy). |
| data[].stream_url | string(m3u8) | URL HLS untuk playback. |
| data[].started_at | string(ISO) | Waktu mulai live (bila tersedia). |
| cached_at | string(ISO) | Timestamp saat cache di-refresh. |
| cache_ttl | number(detik) | TTL cache untuk tier kamu. |
| tier | string | Tier yang me-request. |
Try it — Playground
Masuk lalu buat API key untuk memakai playground.
GET /api/v1/live
Contoh response
{
"ok": true,
"data": [
{
"name": "Jesslyn",
"url_key": "JKT48-Jesslyn",
"platform": "showroom",
"img": "https://jkt48connect.com/api/img/i/abc.jpg",
"stream_url": "https://…/playlist.m3u8",
"started_at": "2026-07-27T12:30:00Z"
}
],
"cached_at": "2026-07-27T12:30:31Z",
"cache_ttl": 15,
"tier": "Basic"
}Code samples
curl -H "x-api-key: jk48c_YOUR_KEY" \
"https://jkt48connect.com/api/v1/live"Catatan penting
- Semua URL gambar sudah di-proxy via `https://jkt48connect.com/api/img/...` — aman di-hotlink, tidak leak CDN asal.
- `stream_url` biasanya berupa `.m3u8` (HLS) — putar dengan hls.js/Video.js.
- Field `platform` = `showroom` | `idn`.
Error codes
401 UNAUTHORIZEDAPI key tidak ada / tidak valid.402 QUOTA_EXCEEDEDQuota harian tier kamu habis.429 RATE_LIMITEDTerlalu banyak request per menit.503 UPSTREAM_ERRORSumber upstream tidak merespons — cache lama tetap disajikan bila ada.