JKT48Connect

JavaScript

Vanilla JavaScript (ES6+) examples for both JKT48 and KLP48 APIs.

JavaScript (Vanilla Fetch)

All endpoints use the same base URL: https://v2.jkt48connect.com/api


JKT48 API — Get Members

const JKT48_API_KEY = 'YOUR_API_KEY';

async function getJKT48Members() {
  try {
    const res = await fetch(
      `https://v2.jkt48connect.com/api/jkt48/members?apikey=${JKT48_API_KEY}`
    );
    if (!res.ok) throw new Error(`HTTP ${res.status}`);

    const members = await res.json(); // Returns plain array
    console.log(`Found ${members.length} JKT48 members`);

    members.slice(0, 5).forEach(m => {
      console.log(`- ${m.name} (${m.generation})`);
    });
  } catch (err) {
    console.error('JKT48 Error:', err.message);
  }
}

getJKT48Members();

JKT48 API — Check Live Streams

async function checkJKT48Live() {
  const res = await fetch(
    `https://v2.jkt48connect.com/api/jkt48/live?apikey=${JKT48_API_KEY}`
  );
  const streams = await res.json();

  if (streams.length === 0) {
    console.log('No JKT48 members are live right now.');
    return;
  }

  streams.forEach(s => {
    console.log(`🔴 ${s.name} is live on ${s.type} — started ${s.started_at}`);
  });
}

KLP48 API — Get Members (Priority Token)

const PRIORITY_TOKEN = 'P-ABCD1234';

async function getKLP48Members() {
  try {
    const res = await fetch(
      'https://v2.jkt48connect.com/api/klp48/members', {
        headers: { 'x-priority-token': PRIORITY_TOKEN }
      }
    );
    const payload = await res.json(); // Returns { success, total, data, message }

    if (!payload.success) throw new Error(payload.message);

    console.log(`Found ${payload.total} KLP48 members`);
    payload.data.forEach(m => {
      console.log(`- ${m.name} (Gen ${m.generation})`);
    });
  } catch (err) {
    console.error('KLP48 Error:', err.message);
  }
}

getKLP48Members();

KLP48 API — Get Schedule with Filters

async function getKLP48Schedule(status = 'upcoming') {
  const res = await fetch(
    `https://v2.jkt48connect.com/api/klp48/schedule?status=${status}`, {
      headers: { 'x-priority-token': PRIORITY_TOKEN }
    }
  );
  const payload = await res.json();

  if (!payload.success) {
    console.error('Error:', payload.message);
    return;
  }

  console.log(`📅 ${payload.total} ${status} events:`);
  payload.data.forEach(event => {
    console.log(`  - ${event.title} on ${event.date}`);
  });
}

getKLP48Schedule('upcoming');

KLP48 API — Get News with Pagination

async function getKLP48News(page = 1, perpage = 5) {
  const res = await fetch(
    `https://v2.jkt48connect.com/api/klp48/news?page=${page}&perpage=${perpage}`, {
      headers: { 'x-priority-token': PRIORITY_TOKEN }
    }
  );
  const payload = await res.json();

  if (payload.success) {
    payload.data.forEach(article => {
      console.log(`📰 ${article.headline}`);
    });
  }
}

KLP48 API — Get Birthdays by Month

async function getKLP48Birthdays(month) {
  const url = month
    ? `https://v2.jkt48connect.com/api/klp48/birthdays/${month}`
    : 'https://v2.jkt48connect.com/api/klp48/birthdays';

  const res = await fetch(url, {
    headers: { 'x-priority-token': PRIORITY_TOKEN }
  });
  const payload = await res.json();

  if (payload.success) {
    payload.data.forEach(m => console.log(`🎂 ${m.name} — ${m.birthdate}`));
  }
}

On this page