Skip to content

Endpoint HTTP ​

Laravel Nusa menyediakan Static Data API yang lengkap yang memungkinkan Anda mengakses data wilayah administrasi secara langsung melalui permintaan HTTP. Data ini dibuat sebelumnya (pre-generated) dan disimpan sebagai file statis, membuatnya sangat cepat dan cocok untuk konsumsi sisi klien atau caching.

URL Dasar ​

API statis dapat diakses melalui path /api pada domain aplikasi Anda. Untuk lingkungan demo:

https://nusa.creasi.dev/api/

Format Data ​

Endpoint mendukung berbagai format untuk menyesuaikan kebutuhan penggunaan yang berbeda. Anda dapat memilih format dengan mengubah ekstensi file pada URL.

EkstensiFormatDeskripsi
.jsonJSONData terstruktur standar untuk aplikasi web.
.csvCSVData tabular, berguna untuk impor atau analisis spreadsheet.
.geojsonGeoJSONData geografis termasuk batas wilayah (Polygon/MultiPolygon), digunakan untuk pemetaan.

Struktur Endpoint ​

Struktur URL mengikuti tingkat administrasi hirarkis Indonesia: Provinsi > Kabupaten/Kota > Kecamatan > Kelurahan/Desa.

Setiap endpoint mengikuti pola yang sama yang dapat diakses dengan atau tanpa ekstensi file dan secara default akan merespons sebagai json. Ekstensi file tambahan yang didukung adalah csv untuk mengunduh data sebagai .csv dan geojson untuk mengambil data geografis.

1. Provinsi ​

Anda dapat mengambil daftar utama semua provinsi atau detail untuk provinsi tertentu.

Daftar semua Provinsi

http
GET /api
GET /api/index.json
GET /api/index.csv

Detail Provinsi Tertentu Mengembalikan data provinsi dan daftar semua kabupaten/kota di dalamnya.

http
GET /api/{province_code}
GET /api/{province_code}.json
GET /api/{province_code}.csv
GET /api/{province_code}.geojson

Contoh:

  • https://nusa.creasi.dev/api/11 (Aceh)

2. Kabupaten/Kota ​

Mengambil detail untuk kabupaten/kota tertentu, termasuk daftar semua kecamatan di dalamnya.

Pola URL

http
GET /api/{province_code}/{regency_code}
GET /api/{province_code}/{regency_code}.json
GET /api/{province_code}/{regency_code}.csv
GET /api/{province_code}/{regency_code}.geojson

Contoh:

  • https://nusa.creasi.dev/api/11/01 (Kab. Aceh Selatan)

3. Kecamatan ​

Mengambil detail untuk kecamatan tertentu, termasuk daftar semua desa/kelurahan di dalamnya.

Pola URL

http
GET /api/{province_code}/{regency_code}/{district_code}
GET /api/{province_code}/{regency_code}/{district_code}.json
GET /api/{province_code}/{regency_code}/{district_code}.csv
GET /api/{province_code}/{regency_code}/{district_code}.geojson

Contoh:

  • https://nusa.creasi.dev/api/11/01/01 (Kec. Bakongan)

4. Kelurahan/Desa ​

Mengambil detail untuk desa/kelurahan tertentu.

Pola URL

http
GET /api/{province_code}/{regency_code}/{district_code}/{village_code}
GET /api/{province_code}/{regency_code}/{district_code}/{village_code}.json
GET /api/{province_code}/{regency_code}/{district_code}/{village_code}.csv
GET /api/{province_code}/{regency_code}/{district_code}/{village_code}.geojson

Contoh:

  • https://nusa.creasi.dev/api/11/01/01/2001 (Gampong Keude Bakongan)

Contoh Respons ​

Respons JSON (Provinsi) ​

Permintaan: GET /api/11.json

json
{
    "code": "11",
    "name": "Aceh",
    "latitude": 4.2257285830382,
    "longitude": 96.9118740861,
    "regencies": [
        {
            "code": "11.01",
            "province_code": "11",
            "name": "Kabupaten Aceh Selatan",
            "latitude": 3.1618538408941,
            "longitude": 97.436517718652
        },
        ...
    ]
}

Respons GeoJSON ​

Permintaan: GET /api/11.geojson

json
{
    "type": "Feature",
    "properties": {
        "code": "11",
        "name": "Aceh"
    },
    "geometry": {
        "type": "MultiPolygon",
        "coordinates": [ ... ]
    }
}

Penggunaan Sisi Klien ​

Karena ini adalah file statis, Anda dapat mengambilnya secara langsung menggunakan fetch atau axios di aplikasi frontend Anda.

javascript
// Contoh: Mengambil data kecamatan untuk kabupaten yang dipilih
fetch(`https://nusa.creasi.dev/api/11/01`)
    .then(response => response.json())
    .then(data => {
        console.log("Regency:", data.name);
        console.log("Districts:", data.districts);
    });

Langkah Selanjutnya ​

Jelajahi dokumentasi API terperinci untuk setiap endpoint:

Released under the MIT License.