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| Component | Description |
|---|---|
https://v2.jkt48connect.com | Base 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 Status | Description |
|---|---|
200 | Success — data returned successfully |
403 | Forbidden — Invalid API key |
404 | Not Found — Endpoint does not exist |
429 | Too Many Requests — Rate limit exceeded |
500 | Server 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);
}
}