JKT48Connect

First Request

A detailed guide to making your first request to the JKT48Connect API and processing the returned JSON response.

Making Your First Request

After obtaining your API key, it's time to make your first request to the JKT48Connect API.

Request Structure

All requests to the JKT48Connect API use the following format:

GET https://v2.jkt48connect.com/api/jkt48/{endpoint}?apikey=YOUR_API_KEY
ComponentDescription
https://v2.jkt48connect.comBase URL
/api/jkt48/Prefix for all endpoints
{endpoint}Endpoint name (e.g., members, live)
?apikey=Query parameter for authentication

Example: Fetching Member Data

Using cURL

curl "https://v2.jkt48connect.com/api/jkt48/members?apikey=YOUR_API_KEY"

Using JavaScript (Fetch)

const API_KEY = 'YOUR_API_KEY';

async function getMembers() {
  try {
    const response = await fetch(
      `https://v2.jkt48connect.com/api/jkt48/members?apikey=${API_KEY}`
    );
    
    if (!response.ok) {
      throw new Error(`Error: ${response.status}`);
    }
    
    const members = await response.json();
    
    // Display all member names
    members.forEach(member => {
      console.log(`${member.name} - ${member.generation}`);
    });
    
    return members;
  } catch (error) {
    console.error('Failed to fetch data:', error.message);
  }
}

getMembers();

Using Python

import requests

API_KEY = 'YOUR_API_KEY'

def get_members():
    try:
        response = requests.get(
            f"https://v2.jkt48connect.com/api/jkt48/members?apikey={API_KEY}"
        )
        response.raise_for_status()
        
        members = response.json()
        
        # Display all member names
        for member in members:
            print(f"{member['name']} - {member.get('generation', 'N/A')}")
        
        return members
    except requests.exceptions.RequestException as e:
        print(f"Failed to fetch data: {e}")

get_members()

Understanding the Response

The JKT48Connect API always returns data in JSON format. Here is an example response from the /api/jkt48/members endpoint:

[
  {
    "name": "Shani Indira Natio",
    "generation": "JKT48 Gen 1",
    "status": "active",
    "img": "https://example.com/shani.jpg"
  },
  {
    "name": "Fritzy",
    "generation": "JKT48 Gen 12",
    "status": "active",
    "img": "https://example.com/fritzy.jpg"
  }
]

Example: Checking Who is Live

const API_KEY = 'YOUR_API_KEY';

async function checkLive() {
  const response = await fetch(
    `https://v2.jkt48connect.com/api/jkt48/live?apikey=${API_KEY}`
  );
  const liveData = await response.json();
  
  if (liveData.length === 0) {
    console.log('No members are currently live right now.');
  } else {
    liveData.forEach(member => {
      console.log(`🔴 ${member.name} is live on ${member.type}`);
      console.log(`   Started at: ${member.started_at}`);
    });
  }
}

checkLive();

Handling Errors

Make sure to always handle potential errors:

HTTP StatusDescription
200Success — data returned successfully
403Forbidden — Invalid API key
404Not Found — Endpoint does not exist
429Too Many Requests — Rate limit exceeded
500Server Error — Try again later
async function safeRequest(endpoint) {
  try {
    const response = await fetch(
      `https://v2.jkt48connect.com/api/jkt48/${endpoint}?apikey=${API_KEY}`
    );
    
    if (response.status === 403) {
      throw new Error('Invalid API key. Check your API key again.');
    }
    
    if (response.status === 429) {
      throw new Error('Too many requests. Please wait a moment and try again.');
    }
    
    if (!response.ok) {
      throw new Error(`HTTP Error: ${response.status}`);
    }
    
    return await response.json();
  } catch (error) {
    console.error(error.message);
  }
}

Next Steps

On this page