Indonesian Schools (NPSN)
Freeindonesia:sekolah
Find schools by name or NPSN, and see the address, status, level, accreditation and school contact details from the Ministry of Education's reference data.
No key yet? Sign up free
GET/v1/indonesia:sekolah/cari
Search schools by name or NPSN.
Cache 86400 s
1 quota / request
indonesia.sekolah.cari
cURL
curl -H "x-api-key: ga_live_..." "https://kajidata.artonlabs.com/v1/indonesia:sekolah/cari?q=SMA+NEGERI+1+BOGOR&limit=5"
Python
import requests
response = requests.get(
"https://kajidata.artonlabs.com/v1/indonesia:sekolah/cari",
params={"q": "SMA NEGERI 1 BOGOR", "limit": "5"},
headers={"x-api-key": "ga_live_..."},
timeout=30,
)
body = response.json()
print(body["data"] if body["ok"] else body["error"])
JavaScript
const params = new URLSearchParams({"q": "SMA NEGERI 1 BOGOR", "limit": "5"});
const response = await fetch(`https://kajidata.artonlabs.com/v1/indonesia:sekolah/cari?${params}`, {
headers: { "x-api-key": "ga_live_..." },
});
const body = await response.json();
console.log(body.ok ? body.data : body.error);
PHP
<?php
$ch = curl_init('https://kajidata.artonlabs.com/v1/indonesia:sekolah/cari?' . http_build_query(['q' => 'SMA NEGERI 1 BOGOR', 'limit' => '5']));
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['x-api-key: ga_live_...'],
CURLOPT_TIMEOUT => 30,
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($body['ok'] ? $body['data'] : $body['error']);
Go
package main
import (
"encoding/json"
"fmt"
"net/http"
"net/url"
)
func main() {
params := url.Values{}
params.Set("q", "SMA NEGERI 1 BOGOR")
params.Set("limit", "5")
req, _ := http.NewRequest("GET", "https://kajidata.artonlabs.com/v1/indonesia:sekolah/cari?"+params.Encode(), nil)
req.Header.Set("x-api-key", "ga_live_...")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
var body map[string]any
json.NewDecoder(res.Body).Decode(&body)
fmt.Println(body["data"])
}
Java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://kajidata.artonlabs.com/v1/indonesia:sekolah/cari?q=SMA+NEGERI+1+BOGOR&limit=5"))
.header("x-api-key", "ga_live_...")
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
Ruby
require "net/http"
require "json"
uri = URI("https://kajidata.artonlabs.com/v1/indonesia:sekolah/cari")
uri.query = URI.encode_www_form({"q" => "SMA NEGERI 1 BOGOR", "limit" => "5"})
request = Net::HTTP::Get.new(uri)
request["x-api-key"] = "ga_live_..."
response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https") { |http| http.request(request) }
body = JSON.parse(response.body)
puts body["ok"] ? body["data"] : body["error"]
C#
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "ga_live_...");
var json = await client.GetStringAsync("https://kajidata.artonlabs.com/v1/indonesia:sekolah/cari?q=SMA+NEGERI+1+BOGOR&limit=5");
Console.WriteLine(json);
GET/v1/indonesia:sekolah/npsn
Institution profile of one school by NPSN.
Cache 604800 s
1 quota / request
indonesia.sekolah.npsn
cURL
curl -H "x-api-key: ga_live_..." "https://kajidata.artonlabs.com/v1/indonesia:sekolah/npsn?npsn=20100235"
Python
import requests
response = requests.get(
"https://kajidata.artonlabs.com/v1/indonesia:sekolah/npsn",
params={"npsn": "20100235"},
headers={"x-api-key": "ga_live_..."},
timeout=30,
)
body = response.json()
print(body["data"] if body["ok"] else body["error"])
JavaScript
const params = new URLSearchParams({"npsn": "20100235"});
const response = await fetch(`https://kajidata.artonlabs.com/v1/indonesia:sekolah/npsn?${params}`, {
headers: { "x-api-key": "ga_live_..." },
});
const body = await response.json();
console.log(body.ok ? body.data : body.error);
PHP
<?php
$ch = curl_init('https://kajidata.artonlabs.com/v1/indonesia:sekolah/npsn?' . http_build_query(['npsn' => '20100235']));
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['x-api-key: ga_live_...'],
CURLOPT_TIMEOUT => 30,
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($body['ok'] ? $body['data'] : $body['error']);
Go
package main
import (
"encoding/json"
"fmt"
"net/http"
"net/url"
)
func main() {
params := url.Values{}
params.Set("npsn", "20100235")
req, _ := http.NewRequest("GET", "https://kajidata.artonlabs.com/v1/indonesia:sekolah/npsn?"+params.Encode(), nil)
req.Header.Set("x-api-key", "ga_live_...")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
var body map[string]any
json.NewDecoder(res.Body).Decode(&body)
fmt.Println(body["data"])
}
Java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://kajidata.artonlabs.com/v1/indonesia:sekolah/npsn?npsn=20100235"))
.header("x-api-key", "ga_live_...")
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
Ruby
require "net/http"
require "json"
uri = URI("https://kajidata.artonlabs.com/v1/indonesia:sekolah/npsn")
uri.query = URI.encode_www_form({"npsn" => "20100235"})
request = Net::HTTP::Get.new(uri)
request["x-api-key"] = "ga_live_..."
response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https") { |http| http.request(request) }
body = JSON.parse(response.body)
puts body["ok"] ? body["data"] : body["error"]
C#
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "ga_live_...");
var json = await client.GetStringAsync("https://kajidata.artonlabs.com/v1/indonesia:sekolah/npsn?npsn=20100235");
Console.WriteLine(json);