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}`));
}
}