API Reference

Public Facilities: Health Centres, Fuel Stations, Police and Worship

75,627 public facilities across Indonesia with category, region codes and coordinates.

Data as of · Source: KMK 1206/2026, OpenStreetMap (ODbL) & Wikidata

Main endpoint
GET https://use.apiindonesia.id/api/v1/fasilitas/kategori
Endpoints
4
Authentication
x-api-key header (create one free in the dashboard)
Price
2 credits (Rp2) per successful request; failed requests are free
Format
JSON (REST), with cURL, JavaScript and Python examples
Data source
Locations and attributes come from OpenStreetMap ((c) OpenStreetMap contributors, ODbL 1.0) and Wikidata (CC0), filtered and validated; The KMK HK.01.07/MENKES/1206/2026 puskesmas register is used to confirm names and codes; coordinates still come from OpenStreetMap; A puskesmas without a coordinate is listed with lat/lng null and validasi tanpa_koordinat, never an estimated coordinate; Fuel stations cover Pertamina including Pertashop, Shell, BP and other brands mapped in OpenStreetMap; Every response carries meta.attribution
Product Brief

What this API gives you

75,627 public facilities across Indonesia with category, region codes and coordinates.

  • 10,354 puskesmas (health centres) from the KMK HK.01.07/MENKES/1206/2026 register; 1,656 have coordinates, the rest have lat/lng null
  • 4,827 fuel stations (Pertamina including Pertashop, Shell, BP), 2,659 police offices, 318 fire stations, 854 post offices
  • 56,615 places of worship: mosques, prayer rooms, churches, temples, viharas, shrines, chapels
  • Filter by category, subcategory, province, regency, validation status, or search by name
  • Nearest-facility search from a coordinate, with a radius up to 50 km
  • Locations and attributes come from OpenStreetMap ((c) OpenStreetMap contributors, ODbL 1.0) and Wikidata (CC0), filtered and validated
  • The KMK HK.01.07/MENKES/1206/2026 puskesmas register is used to confirm names and codes; coordinates still come from OpenStreetMap
  • A puskesmas without a coordinate is listed with lat/lng null and validasi tanpa_koordinat, never an estimated coordinate
  • Fuel stations cover Pertamina including Pertashop, Shell, BP and other brands mapped in OpenStreetMap
  • Every response carries meta.attribution
Coverage
4

ready-to-use endpoints in this product, with JSON responses and consistent error handling.

Access
API key

Can be tried with the 3,000 credit signup bonus, then used in production through one API Indonesia key.

Sample resource
https://use.apiindonesia.id/api/v1/fasilitas/kategori

Returns the six categories with their facility counts and subcategory breakdown. Useful for building a filter menu before calling the list endpoint.

Example product scenarios

This section separates the product page from the docs. The docs explain how to call endpoints; this page explains why the endpoints make sense for your feature.

  • Map and navigation apps: find the nearest fuel station, health centre or mosque from the user position.
  • Emergency services: surface police offices and fire stations around an incident location.
  • Service coverage analysis: measure health-centre or fuel-station density per regency or city using Kemendagri codes.

Example Usage

Request
curl "https://use.apiindonesia.id/api/v1/fasilitas/kategori" \
  -H "x-api-key: YOUR_API_KEY"
Response · 200 OK
{
  "success": true,
  "data": {
    "ibadah": {
      "jumlah": 56615,
      "subkategori": {
        "masjid": 35522,
        "musala": 11741,
        "gereja": 6230,
        "pura": 1462,
        "vihara": 688,
        "other": 500,
        "klenteng": 340,
        "kapel": 132
      }
    },
    "kantor_pos": {
      "jumlah": 854,
      "subkategori": {
        "kantor_pos": 647,
        "lainnya": 203,
        "agen_pos": 4
      }
    },
    "pemadam_kebakaran": {
      "jumlah": 318,
      "subkategori": {
        "damkar": 311,
        "bpbd": 7
      }
    },
    "polisi": {
      "jumlah": 2659,
      "subkategori": {
        "polsek": 1129,
        "lainnya": 800,
        "pos_polisi": 286,
        "polres": 267,
        "satlantas": 91,
        "polda": 47,
        "polresta": 31,
        "polrestabes": 8
      }
    },
    "puskesmas": {
      "jumlah": 10354,
      "subkategori": {
        "non_rawat_inap": 5989,
        "rawat_inap": 4365
      }
    },
    "spbu": {
      "jumlah": 4827,
      "subkategori": {
        "spbu": 4272,
        "pertashop": 355,
        "lainnya": 195,
        "spbn": 5
      }
    }
  },
  "meta": {
    "attribution": {
      "source": "© OpenStreetMap contributors; Wikidata",
      "license": "ODbL 1.0 (OpenStreetMap); Wikidata CC0",
      "license_url": "https://opendatacommons.org/licenses/odbl/1-0/",
      "source_url": "https://www.openstreetmap.org/copyright",
      "attribution_page": "https://www.openstreetmap.org/copyright",
      "notice": "Data diubah: fasilitas OSM disaring, dinormalisasi, diberi kode wilayah Kemendagri dan divalidasi silang terhadap daftar resmi (tidak disalin) oleh API Indonesia",
      "sources": [
        {
          "name": "OpenStreetMap",
          "url": "https://www.openstreetmap.org/copyright",
          "used_for": "lokasi, nama, atribut"
        },
        {
          "name": "Wikidata",
          "url": "https://www.wikidata.org",
          "used_for": "validasi, ID Wikidata"
        }
      ]
    }
  }
}

Related Articles

Pricing 2 credits (Rp2) per successful request; failed requests are free. One-time 3,000 credit signup bonus, no credit card, no monthly allowance.

Public Facilities: Health Centres, Fuel Stations, Police and Worship API questions

Why do some health centres have no coordinates?

Coordinates are filled only when an OpenStreetMap point matches a puskesmas in the KMK register. 1,656 of 10,354 have coordinates; the rest are listed with lat/lng null and validasi tanpa_koordinat, never estimated.

Why does an unfiltered list answer 400?

To avoid pulling all 75,627 rows at once. Pass at least one of kategori, provinsi, kabupaten or q; for a point on the map use the nearby endpoint.

Where does the facility data come from?

Locations and attributes come from OpenStreetMap (ODbL 1.0) and Wikidata (CC0), filtered and validated. The KMK HK.01.07/MENKES/1206/2026 puskesmas register is used to confirm names and codes, not to copy coordinates.

Get Started

Start Integrating
Today

Sign up for free and get a 3,000 credit bonus (Rp3,000) once your email is verified, grab an API key, and call your first endpoint right away. No credit card, no tedious approval process.

Dot wave visualization