Indonesia Schools
Search and filter Indonesian school data.
Base URL
https://use.api.co.id
Call GET /regional/indonesia/schools with the x-api-co-id header and pass filters as query parameters. The response contains a list of schools with their metadata; premium users also get accreditation data and geographic coordinates.
Filters
| Parameter | Purpose |
|---|---|
province_code | Filter by province code |
regency_code | Filter by regency/city code |
district_code | Filter by district code |
npsn | Exact match by NPSN |
name | Search by school name (case-insensitive partial match) |
status | N = Negeri (public), S = Swasta (private) |
grade | Search by school grade/type (case-insensitive partial match) |
accreditation | Filter by accreditation (A, B, C, etc.) — premium |
page | Page number (default: 1) |
Page size is fixed at 100 items per page and cannot be configured.
Data fields
| Field | Description |
|---|---|
npsn | National School Registration Number |
name | School name |
grade | School type/level |
status | N (Negeri, public) or S (Swasta, private) |
accreditation | School accreditation (A, B, C, etc.) — premium |
address | Street address |
province_code, province_name | Province code and name |
regency_code, regency_name | Regency/city code and name |
district_code, district_name | District code and name |
lang | Latitude — premium |
long | Longitude — premium |
Premium features
The following features require a premium subscription. For non-premium users, premium fields return null.
- Latitude & longitude — the school's geographic coordinates.
- Accreditation data — school accreditation information.
- Accreditation filter — the
accreditationparameter. - Advanced search — the
/regional/indonesia/schools/searchendpoint for searching by name, NPSN, or address.
Integration with Indonesia Regional
Use the province_code, regency_code, and district_code from the response to fetch location details from the Indonesia Regional API:
GET https://use.api.co.id/regional/indonesia/provinces/{province_code}
GET https://use.api.co.id/regional/indonesia/regencies/{regency_code}
GET https://use.api.co.id/regional/indonesia/districts/{district_code}
Schools
List Schools
Get all schools in Indonesia with comprehensive filtering options. Supports filtering by location (province, regency, district), searching by NPSN or name, filtering by status (Negeri/Swasta) and grade, with pagination support. Note: Pagination size is fixed at 100 items per page and cannot be configured.
### Premium Fields
Non-premium users will see null for:
- accreditation
- lang (latitude)
- long (longitude)
| Name | Type | Description |
|---|---|---|
province_codeOptional | string | Filter by province code |
regency_codeOptional | string | Filter by regency/city code |
district_codeOptional | string | Filter by district code |
npsnOptional | string | Exact match by National School Registration Number (NPSN) |
nameOptional | string | Search by school name (case-insensitive partial match) |
statusOptional | string | Filter by status (N = Negeri/Public, S = Swasta/Private) Values: NS |
gradeOptional | string | Search by school grade/type (case-insensitive partial match, e.g., SD, SMP, SMA, SMK) |
accreditationOptional | string | Filter by accreditation (A, B, C, etc.) - Premium Only. Requires premium subscription. |
pageOptional | integer | Page number Example: 1 |
| Name | Type | Description |
|---|---|---|
is_successOptional | boolean | Example: true |
messageOptional | string | Example: Success |
dataOptional | object[] | |
data[].npsnOptional | string | National School Registration Number Example: 10100101 |
data[].nameOptional | string | School name Example: SD NEGERI 1 BANDA ACEH |
data[].gradeOptional | string | School type/level Example: SD |
data[].statusOptional | string | School status (N = Negeri/Public, S = Swasta/Private) Example: N |
data[].accreditationOptional | string | School accreditation (A, B, C, etc.) - Premium Only. Non-premium users will see null Example: null |
data[].addressOptional | string | Street address Example: JL. CUT NYAK DIEN NO. 1 |
data[].province_codeOptional | string | Province code Example: 11 |
data[].province_nameOptional | string | Province name Example: ACEH |
data[].regency_codeOptional | string | Regency/city code Example: 1171 |
data[].regency_nameOptional | string | Regency/city name Example: KOTA BANDA ACEH |
data[].district_codeOptional | string | District code Example: 1171010 |
data[].district_nameOptional | string | District name Example: BAITURRAHMAN |
data[].langOptional | string | Latitude - Premium Only. Non-premium users will see null Example: -5.548056 |
data[].longOptional | string | Longitude - Premium Only. Non-premium users will see null Example: 95.319167 |
pagingOptional | object | |
paging.pageOptional | integer | Example: 1 |
paging.sizeOptional | integer | Example: 100 |
paging.total_itemOptional | integer | Example: 250000 |
paging.total_pageOptional | integer | Example: 2500 |
curl -X GET "https://use.api.co.id/regional/indonesia/schools" \ -H "x-api-co-id: $API_CO_ID_KEY"{ "is_success": true, "message": "Success", "data": [ { "npsn": "10100101", "name": "SD NEGERI 1 BANDA ACEH", "grade": "SD", "status": "N", "accreditation": "A", "address": "JL. CUT NYAK DIEN NO. 1", "province_code": "11", "province_name": "ACEH", "regency_code": "1171", "regency_name": "KOTA BANDA ACEH", "district_code": "1171010", "district_name": "BAITURRAHMAN", "lang": -5.548056, "long": 95.319167 } ], "paging": { "page": 1, "size": 100, "total_item": 250000, "total_page": 2500 }}Search (Premium)
Search Schools (Premium)
Advanced search across school name, NPSN, and address. This endpoint requires a premium subscription.
### Query Parameters
- query (required): Search term (searches name, NPSN, and address)
- page (optional): Page number (default: 1)
- Note: Pagination size is fixed at 100 items per page and cannot be configured
### Examples
``bash # Search by name GET /regional/indonesia/schools/search?query=SD NEGERI
# Search by NPSN GET /regional/indonesia/schools/search?query=10100101
# Search by address GET /regional/indonesia/schools/search?query=JL. CUT NYAK DIEN
| Name | Type | Description |
|---|---|---|
queryRequired | string | Search term (required) - searches name, NPSN, and address Example: SD NEGERI |
pageOptional | integer | Page number (optional) Example: 1 |
| Name | Type | Description |
|---|---|---|
statusOptional | string | Example: success |
timestampOptional | string | Example: 2026-01-16 10:30:45 |
resultOptional | object[] | |
result[].npsnOptional | string | Example: 10100101 |
result[].nameOptional | string | Example: SD NEGERI 1 BANDA ACEH |
result[].gradeOptional | string | Example: SD |
result[].statusOptional | string | Example: N |
result[].accreditationOptional | string | Example: A |
result[].addressOptional | string | Example: JL. CUT NYAK DIEN NO. 1 |
result[].province_codeOptional | string | Example: 11 |
result[].provinceOptional | string | Example: ACEH |
result[].regency_codeOptional | string | Example: 1171 |
result[].regencyOptional | string | Example: KOTA BANDA ACEH |
result[].district_codeOptional | string | Example: 1171010 |
result[].districtOptional | string | Example: BAITURRAHMAN |
result[].latOptional | number | Example: -5.548056 |
result[].longOptional | number | Example: 95.319167 |
pagingOptional | object | |
paging.pageOptional | integer | Example: 1 |
paging.sizeOptional | integer | Example: 100 |
paging.total_itemOptional | integer | Example: 25000 |
paging.total_pageOptional | integer | Example: 250 |
curl -X GET "https://use.api.co.id/regional/indonesia/schools/search?query=SD%20NEGERI" \ -H "x-api-co-id: $API_CO_ID_KEY"{ "status": "success", "timestamp": "2026-01-16 10:30:45", "result": [ { "npsn": "10100101", "name": "SD NEGERI 1 BANDA ACEH", "grade": "SD", "status": "N", "accreditation": "A", "address": "JL. CUT NYAK DIEN NO. 1", "province_code": "11", "province": "ACEH", "regency_code": "1171", "regency": "KOTA BANDA ACEH", "district_code": "1171010", "district": "BAITURRAHMAN", "lat": -5.548056, "long": 95.319167 }, { "npsn": "10100102", "name": "SD NEGERI 2 BANDA ACEH", "grade": "SD", "status": "N", "accreditation": "A", "address": "JL. TEUKU UMAR NO. 15", "province_code": "11", "province": "ACEH", "regency_code": "1171", "regency": "KOTA BANDA ACEH", "district_code": "1171010", "district": "BAITURRAHMAN", "lat": -5.549167, "long": 95.320278 } ], "paging": { "page": 1, "size": 100, "total_item": 25000, "total_page": 250 }}