API Cuaca Indonesia: Prakiraan Cuaca BMKG per Kelurahan lewat REST API
Cara mengambil data prakiraan cuaca BMKG per kelurahan (adm4) menggunakan API Cuaca Indonesia, lengkap dengan suhu, kelembapan, kecepatan angin, dan contoh kode.

Prakiraan cuaca yang akurat sampai level kelurahan adalah kebutuhan nyata untuk aplikasi pertanian, logistik, event outdoor, hingga aplikasi lifestyle. BMKG menyediakan data prakiraan cuaca terbuka, tapi format aslinya (XML/JSON per wilayah adm4) cukup teknis untuk dikonsumsi langsung dan tidak dilengkapi lapisan cache atau pencarian nama lokasi.
API Cuaca dari API Indonesia membungkus data prakiraan cuaca BMKG ke dalam REST API yang bisa dicari berdasarkan nama kelurahan/kecamatan atau kode wilayah, lengkap dengan cache otomatis agar response cepat.
Data yang Tersedia
Setiap titik prakiraan mencakup:
- Suhu (
temperature_c), kelembapan (humidity_percent) - Deskripsi cuaca (
weather_desc,weather_desc_en) dan kode cuaca (weather_code) - Curah hujan (
precipitation_mm), tutupan awan (cloud_cover_percent) - Arah dan kecepatan angin (
wind_direction,wind_speed) - Jarak pandang (
visibility_m,visibility_text) - Waktu prakiraan dalam UTC dan waktu lokal (
datetime,local_datetime) - Informasi wilayah lengkap: provinsi, kabupaten/kota, kecamatan, desa
Daftar Endpoint
Base URL: https://use.apiindonesia.id/api/v1/cuaca
| Method | Endpoint | Keterangan |
|---|---|---|
| GET | /?adm4= |
Prakiraan cuaca berdasarkan kode wilayah level kelurahan (adm4) |
| GET | /?kabupaten_id= |
Prakiraan cuaca representatif untuk satu kabupaten/kota |
| GET | /search?q= |
Cari lokasi (kelurahan/kecamatan/kota) untuk mendapatkan kode adm4 |
Contoh Request
Cari dulu kode wilayah kelurahan, lalu ambil prakiraan cuacanya:
# 1. Cari kode adm4 untuk "Menteng"
curl "https://use.apiindonesia.id/api/v1/cuaca/search?q=menteng" \
-H "x-api-key: aip_live_xxx"
# 2. Ambil prakiraan cuaca untuk kode adm4 hasil pencarian
curl "https://use.apiindonesia.id/api/v1/cuaca?adm4=31.71.01.1001" \
-H "x-api-key: aip_live_xxx"
async function getCuaca(kabupatenId) {
const res = await fetch(
`https://use.apiindonesia.id/api/v1/cuaca?kabupaten_id=${kabupatenId}`,
{ headers: { 'x-api-key': process.env.API_INDONESIA_KEY } }
);
const { data } = await res.json();
return data; // array prakiraan 3 hari ke depan, per 3 jam
}
import requests
res = requests.get(
"https://use.apiindonesia.id/api/v1/cuaca",
params={"kabupaten_id": "3273"},
headers={"x-api-key": "aip_live_xxx"},
)
forecast = res.json()["data"]
for row in forecast:
print(row["local_datetime"], row["weather_desc"], f'{row["temperature_c"]}°C')
Contoh Response
{
"data": [
{
"adm4": "31.71.01.1001",
"provinsi": "DKI JAKARTA",
"kotkab": "JAKARTA PUSAT",
"kecamatan": "MENTENG",
"desa": "MENTENG",
"local_datetime": "2026-07-10 15:00:00",
"weather_desc": "Cerah Berawan",
"temperature_c": 31,
"humidity_percent": 62,
"wind_speed": 9,
"precipitation_mm": 0
}
]
}
Kenapa Pakai Kode Wilayah, Bukan Koordinat?
BMKG memublikasikan prakiraan cuaca berbasis kode wilayah administratif (adm4/kelurahan), bukan titik koordinat bebas seperti API cuaca global. Ini justru menguntungkan untuk aplikasi lokal Indonesia: Anda tidak perlu geocoding, cukup gunakan kabupaten_id yang sama dengan yang dipakai di API Wilayah, atau cari nama lokasi langsung lewat endpoint /search.
FAQ
Berapa hari prakiraan yang tersedia? Data mencakup prakiraan 3 hari ke depan, diperbarui berkala per 3 jam mengikuti siklus data BMKG.
Apakah datanya real-time? Data di-cache dan otomatis diperbarui saat kedaluwarsa, sehingga response cepat tanpa membebani sumber data asli.
Bagaimana kalau saya hanya tahu nama kabupaten, bukan kelurahan? Gunakan kabupaten_id — API akan otomatis memilih kelurahan representatif di kabupaten tersebut.
Mulai Sekarang
Ambil API key gratis di dashboard.apiindonesia.id/register dan lihat skema response lengkap di docs.apiindonesia.id.
