Bmkg Weather

v1.0.0

Get real-time Indonesian weather forecasts and earthquake data from BMKG (Badan Meteorologi, Klimatologi, dan Geofisika) — Indonesia's official meteorologica...

0· 0· 1 versions· 0 current· 0 all-time· Updated 3h ago· MIT-0
byThommy@thommyid

BMKG Weather Skill

Fetch 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.


API Endpoints

1. Prakiraan Cuaca (Weather Forecast)

GET https://api.bmkg.go.id/publik/prakiraan-cuaca?adm4={kode_wilayah}
  • Forecast: 3 hari ke depan, per 3 jam (8 data/hari)
  • Update: 2x sehari
  • Format: JSON

2. Peringatan Dini / Nowcast

GET https://data.bmkg.go.id/peringatan-dini-cuaca/
  • Early warning hingga level kecamatan
  • Format: XML (CAP)

3. Data Gempa Bumi

GET https://data.bmkg.go.id/DataMKG/TEWS/autogempa.json
GET https://data.bmkg.go.id/DataMKG/TEWS/gempaterkini.json

Cara Penggunaan

Step 1: Tentukan kode wilayah (adm4)

Format kode: PP.KK.CC.DDDD

  • PP = Kode provinsi (2 digit)
  • KK = Kode kota/kabupaten (2 digit)
  • CC = Kode kecamatan (2 digit)
  • DDDD = Kode kelurahan/desa (4 digit)

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

Step 2: Fetch data cuaca

# 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"

Step 3: Parse response JSON

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 */ ]
    ]
  }]
}

Step 4: Format response ke user

Untuk setiap entry cuaca, field yang tersedia:

FieldDeskripsiSatuan
local_datetimeWaktu lokalYYYY-MM-DD HH:mm:ss
tSuhu udara°C
huKelembapan%
weather_descKondisi cuaca (ID)-
weather_desc_enKondisi cuaca (EN)-
wsKecepatan anginkm/jam
wdArah angin dari-
tccTutupan awan%
vs_textJarak pandangkm
tpCurah hujanmm
imageURL ikon cuacaSVG

Data Gempa Bumi

# 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 kejadian
  • Magnitude — kekuatan gempa
  • Kedalaman — kedalaman dalam km
  • Wilayah — lokasi episenter
  • Potensi — potensi tsunami atau tidak
  • Koordinat — lat,lon

Contoh Output ke User

🌤️ 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)

Kode Wilayah Kota Besar

KotaKode adm4 Contoh
Jakarta Pusat (Kemayoran)31.71.03.1001
Jakarta Selatan (Kebayoran)31.74.08.1001
Surabaya35.78.01.1001
Bandung32.73.01.1001
Medan12.71.01.1001
Makassar73.71.01.1001
Semarang33.74.01.1001
Yogyakarta34.71.01.1001
Denpasar51.71.01.1001
Palembang16.71.01.1001
Pekanbaru14.71.01.1001
Balikpapan64.72.01.1001
Manado71.71.01.1001
Jayapura91.71.01.1001

Untuk kode wilayah lengkap, lihat: references/kode-wilayah.md


Catatan Penting

  1. Wajib cantumkan BMKG sebagai sumber data di setiap response
  2. Kode wilayah menggunakan Kepmendagri No. 100.1.1-6117 Tahun 2022
  3. Jika kode wilayah tidak diketahui, gunakan kode kota terdekat atau minta user clarifikasi
  4. Data diupdate 2x sehari — pagi dan sore
  5. Jika API tidak merespons, informasikan ke user dan sarankan cek langsung di https://cuaca.bmkg.go.id

Version tags

latestvk976stqhqn699p62h95mstrg9185rxhx