Install
openclaw skills install bmkg-weatherGet real-time Indonesian weather forecasts and earthquake data from BMKG (Badan Meteorologi, Klimatologi, dan Geofisika) — Indonesia's official meteorological agency. Use this skill whenever the user asks about weather in Indonesia, Indonesian cities, rainfall, temperature, wind, humidity, earthquake alerts, or early warning in any Indonesian location. Trigger on phrases like "cuaca", "prakiraan cuaca", "hujan", "gempa", "BMKG", "cuaca Jakarta", "cuaca hari ini", "weather Indonesia", or any Indonesian city/region weather query. No API key required — completely free official government data.
openclaw skills install bmkg-weatherFetch real-time Indonesian weather forecasts and earthquake data from BMKG's open API. No API key needed. Rate limit: 60 requests/minute per IP.
Attribution required: Always mention "Sumber: BMKG" in responses.
GET https://api.bmkg.go.id/publik/prakiraan-cuaca?adm4={kode_wilayah}
GET https://data.bmkg.go.id/peringatan-dini-cuaca/
GET https://data.bmkg.go.id/DataMKG/TEWS/autogempa.json
GET https://data.bmkg.go.id/DataMKG/TEWS/gempaterkini.json
Format kode: PP.KK.CC.DDDD
Cara lookup kode wilayah (gunakan script):
python scripts/cari_wilayah.py "Padang"
python scripts/cari_wilayah.py "Bogor"
Script otomatis cari kode dan test validitasnya ke API BMKG.
Jika tidak ditemukan, cari manual di https://cuaca.bmkg.go.id
Atau lihat: references/kode-wilayah.md
# Contoh: Jakarta Pusat - Kemayoran
curl "https://api.bmkg.go.id/publik/prakiraan-cuaca?adm4=31.71.03.1001"
# Contoh: Surabaya - Wonokromo
curl "https://api.bmkg.go.id/publik/prakiraan-cuaca?adm4=35.78.31.1007"
Response structure:
{
"lokasi": {
"provinsi": "DKI Jakarta",
"kotkab": "Kota Adm. Jakarta Pusat",
"kecamatan": "Kemayoran",
"desa": "Kemayoran",
"lon": 106.845,
"lat": -6.164,
"timezone": "Asia/Jakarta"
},
"data": [{
"cuaca": [
[ /* hari 1, array per 3 jam */ ],
[ /* hari 2 */ ],
[ /* hari 3 */ ]
]
}]
}
Untuk setiap entry cuaca, field yang tersedia:
| Field | Deskripsi | Satuan |
|---|---|---|
local_datetime | Waktu lokal | YYYY-MM-DD HH:mm:ss |
t | Suhu udara | °C |
hu | Kelembapan | % |
weather_desc | Kondisi cuaca (ID) | - |
weather_desc_en | Kondisi cuaca (EN) | - |
ws | Kecepatan angin | km/jam |
wd | Arah angin dari | - |
tcc | Tutupan awan | % |
vs_text | Jarak pandang | km |
tp | Curah hujan | mm |
image | URL ikon cuaca | SVG |
# Gempa terbaru (1 gempa)
curl "https://data.bmkg.go.id/DataMKG/TEWS/autogempa.json"
# 15 gempa terkini
curl "https://data.bmkg.go.id/DataMKG/TEWS/gempaterkini.json"
# 15 gempa dirasakan
curl "https://data.bmkg.go.id/DataMKG/TEWS/gempadirasakan.json"
Response fields gempa:
Tanggal, Jam — waktu kejadianMagnitude — kekuatan gempaKedalaman — kedalaman dalam kmWilayah — lokasi episenterPotensi — potensi tsunami atau tidakKoordinat — lat,lon🌤️ Prakiraan Cuaca Jakarta Pusat - Kemayoran
📅 Senin, 26 April 2026 | 14:00 WIB
🌡️ Suhu: 31°C
💧 Kelembapan: 69%
🌬️ Angin: 9.6 km/jam dari Timur
☁️ Tutupan awan: 7%
👁️ Jarak pandang: >10 km
🌦️ Kondisi: Cerah
---
Sumber: BMKG (data.bmkg.go.id)
| Kota | Kode adm4 Contoh |
|---|---|
| Jakarta Pusat (Kemayoran) | 31.71.03.1001 |
| Jakarta Selatan (Kebayoran) | 31.74.08.1001 |
| Surabaya | 35.78.01.1001 |
| Bandung | 32.73.01.1001 |
| Medan | 12.71.01.1001 |
| Makassar | 73.71.01.1001 |
| Semarang | 33.74.01.1001 |
| Yogyakarta | 34.71.01.1001 |
| Denpasar | 51.71.01.1001 |
| Palembang | 16.71.01.1001 |
| Pekanbaru | 14.71.01.1001 |
| Balikpapan | 64.72.01.1001 |
| Manado | 71.71.01.1001 |
| Jayapura | 91.71.01.1001 |
Untuk kode wilayah lengkap, lihat: references/kode-wilayah.md