API Docs

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. 1. Login ke Developer Portal lalu buat API key. Format key: jk48c_xxxx…
  2. 2. Sertakan header x-api-key: jk48c_… pada setiap request. Untuk SSE dari browser, boleh pakai query string ?key=jk48c_….
  3. 3. Pilih endpoint di sidebar, coba di Playground, lalu copy code sample.
  4. 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: Free

Live 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

FieldTipeDeskripsi
okbooleanStatus request.
data[].namestringNama panggung member.
data[].url_keystringSlug unik member (mis. `JKT48-Jesslyn`).
data[].platform'showroom' | 'idn'Sumber siaran.
data[].imgstring(url)Thumbnail (sudah di-proxy).
data[].stream_urlstring(m3u8)URL HLS untuk playback.
data[].started_atstring(ISO)Waktu mulai live (bila tersedia).
cached_atstring(ISO)Timestamp saat cache di-refresh.
cache_ttlnumber(detik)TTL cache untuk tier kamu.
tierstringTier 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.