API Masa Nyata
API Cuaca

Endpoint API Cuaca

GET https://api.data.gov.my/weather/forecast
GET https://api.data.gov.my/weather/warning
GET https://api.data.gov.my/weather/warning/earthquake

Sumber Data Cuaca

API Cuaca menyediakan maklumat cuaca secara pada masa nyata, termasuk ramalan umum 7 hari dan amaran cuaca secara langsung. Amaran gempa bumi juga disediakan dalam 'endpoint' yang berlainan kerana format ia yang unik. Data-data ini disediakan oleh MET Malaysia (Jabatan Meteorologi Malaysia). Untuk maklumat cuaca yang lebih komprehensif dan untuk mengakses sumber tambahan, anda boleh mengunjungi Portal Rasmi MET Malaysia (opens in a new tab).

Catatan: Data ramalan laut masih tidak tersedia pada masa ini.

Kekerapan Kemaskini Data

  • Data ramalan umum 7 hari dikemaskini setiap hari.
  • Data amaran (termasuk data gempa bumi) dikemaskini apabila diperlukan.

Format Permintaan & Respons

Untuk menyaring dan meminta data, gunakan operasi penyaringan standard dalam Permintaan Pertanyaan. Untuk maklumat tentang bagaimana API ini memberi respons kepada permintaan anda, rujuk bahagian Format Respons.

Ramalan Umum 7 Hari

GET https://api.data.gov.my/weather/forecast

Contoh Permintaan

Untuk mendapatkan data dari API Cuaca, gunakan perintah curl berikut. Buka terminal anda dan masukkan perintah ini:

curl --location 'https://api.data.gov.my/weather/forecast?limit=3'

Permintaan Bidang-Bidang Bersarang

    {
        // gunakan 'double underscore'
        "location": {
            "location_id": "Ds001", // location__location_id
            "location_name": "Langkawi" // location__location_name
        },
        "date": "1957-08-31",
        "morning_forecast": "Hujan di satu dua tempat",
        "afternoon_forecast": "Ribut petir di satu dua tempat",
        "night_forecast": "Tiada hujan",
        "summary_forecast": "Ribut petir di satu dua tempat",
        "summary_when": "Petang",
        "min_temp": 26,
        "max_temp": 32
    },

Data respons mempunyai struktur seperti di atas. Anda boleh mengakses bidang-bidang bersarang dengan menggunakan 'double underscore'. Sebagai contoh, untuk menyaring data ramalan di Langkawi, anda boleh menggunakan parameter pertanyaan ?contains=Langkawi@location__location_name.

Penyaringan Mengikut Kategori Lokasi

GET https://api.data.gov.my/weather/forecast?contains=<prefix>@location__location_id

location_id berada dalam format "AA000," di mana abjad awalan mewakili jenis lokasi. Terdapat lima jenis kategori lokasi yang boleh digunakan:

  • St untuk Negeri
  • Rc untuk Pusat Rekreasi
  • Ds untuk Daerah
  • Tn untuk Bandar
  • Dv untuk Bahagian

Untuk menyaring data ramalan untuk kategori lokasi tertentu, parameter pertanyaan contains boleh digunakan. Sebagai contoh, untuk mendapatkan data ramalan lokasi Negeri sahaja, gunakan ?contains=St@location__location_id.

Fahami Nilai Bidang-Bidang

Kata kunciJenisPeneranganContoh Nilai
location_idstringPengenalpasti unik untuk lokasi. Lihat Penyaringan mengikut kategori lokasi untuk lebih keterangan.
  • "St001" (Negeri)
  • "Rc001" (Pusat Rekreasi)
  • "Ds001" (Daerah)
  • "Tn001" (Bandar)
  • "Dv001" (Bahagian)
location_namestringNama lokasi."Langkawi"
datedateTarikh ramalan cuaca."1957-08-31"
morning_forecaststringRamalan untuk waktu pagi."Hujan di satu dua tempat"
afternoon_forecaststringRamalan untuk waktu tengahari."Ribut petir di satu dua tempat"
night_forecaststringRamalan untuk waktu malam."Tiada hujan"
summary_forecaststringRingkasan ramalan hari tersebut."Ribut petir di satu dua tempat"
summary_whenstringMasa ringkasan ramalan."Petang"
min_tempintegerSuhu minimum untuk hari tersebut dalam Celsius.26
max_tempintegerSuhu maksimum untuk hari tersebut dalam Celsius.32

Nilai-nilai yang sah bagi Bidang *_forecast

Nilai-nilai sah untuk morning_forecast, afternoon_forecast, night_forecast, dan summary_forecast:

  • Berjerebu
  • Tiada hujan
  • Hujan
  • Hujan di beberapa tempat
  • Hujan di satu dua tempat
  • Hujan di satu dua tempat di kawasan pantai
  • Hujan di satu dua tempat di kawasan pedalaman
  • Ribut petir
  • Ribut petir di beberapa tempat
  • Ribut petir di beberapa tempat di kawasan pedalaman
  • Ribut petir di satu dua tempat
  • Ribut petir di satu dua tempat di kawasan pantai
  • Ribut petir di satu dua tempat di kawasan pedalaman

Nilai-nilai sah untuk Bidang summary_when

  • Pagi
  • Malam
  • Petang
  • Pagi dan Petang
  • Pagi dan Malam
  • Petang dan Malam
  • Sepanjang Hari

Nota: Nilai-nilai sah ini hanya tersedia dalam Bahasa Melayu.

Ramalan Amaran

GET https://api.data.gov.my/weather/warning

Contoh Permintaan

Untuk mendapatkan data dari API Cuaca, gunakan perintah curl berikut. Buka terminal anda dan masukkan perintah ini:

curl --location 'https://api.data.gov.my/weather/warning?limit=3'

Permintaan Bidang-Bidang Bersarang

    {
        // gunakan 'double underscore'
        "warning_issue": {
            "issued": "1957-08-31T00:00:00", // warning_issue__issued
            "title_bm": "", // warning_issue__title_bm
            "title_en": "" // warning_issue__title_en
        },
        "valid_from": "1957-08-31T00:00:00",
        "valid_to": "2023-08-31T00:00:00",
        "heading_en": "",
        "text_en": "",
        "instruction_en": "",
        "heading_bm": "",
        "text_bm": "",
        "instruction_bm": ""
    },

Data respons mempunyai struktur seperti di atas. Anda boleh mengakses bidang-bidang bersarang menggunakan 'double underscore'. Sebagai contoh, untuk menyaring amaran yang dikeluarkan bermula dari 1957-08-31 ke atas, anda boleh menggunakan parameter permintaan ?timestamp_start=1957-08-31 00:00:00@warning_issue__issued.

Fahami Nilai Bidang-Bidang

Kata kunciJenisPeneranganContoh Nilai
issueddatetimeTarikh dan masa apabila amaran dikeluarkan."1957-08-31T00:00:00"
title_bmstringTajuk amaran dalam Bahasa Melayu."Amaran Angin Kencang Kategori Pertama"
title_enstringTajuk amaran dalam Bahasa Inggeris."First Category Warning on Strong Winds"
valid_fromdatetimeTarikh dan masa dari bila amaran berkuatkuasa."2023-10-05T14:00:00"
valid_todatetimeTarikh dan masa sehingga bila amaran berkuatkuasa."2023-10-07T00:00:00"
heading_enstringTajuk amaran dalam Bahasa Inggeris."Strong Wind and Rough Seas (First Category)"
text_enstringTeks amaran terperinci dalam Bahasa Inggeris."Strong winds of 40-50 kmph with wave height up to 3.5m"
instruction_enstringArahan berkaitan dengan amaran dalam Bahasa Inggeris."Stay safe!"
heading_bmstringTajuk amaran dalam Bahasa Melayu."Amaran Angin Kencang (Kategori Pertama)"
text_bmstringTeks amaran terperinci dalam Bahasa Melayu."Angin kencang 40-50 km/j dengan ketinggian ombak sehingga 3.5m"
instruction_bmstringArahan berkaitan dengan amaran dalam Bahasa Melayu."Pastikan keselamatan anda!"

Amaran Gempa Bumi

GET https://api.data.gov.my/weather/warning/earthquake

Data gempa bumi disediakan dalam 'endpoint' yang tersendiri yang asing daripada endpoint weather/warning disebabkan format ia yang unik.

Contoh Permintaan

Untuk mendapatkan data dari API Cuaca, gunakan perintah curl berikut. Buka terminal anda dan masukkan perintah ini:

curl --location 'https://api.data.gov.my/weather/warning/earthquake?limit=3'

Fahami Nilai Bidang-Bidang

Kata kunciJenisPeneranganContoh Nilai
utcdatetimedatetimeTarikh dan masa gempa bumi dalam format UTC."2023-10-09T03:50:50"
localdatetimedatetimeTarikh dan masa gempa bumi dalam waktu tempatan (UTC+08:00)."2023-10-09T11:50:50"
latfloatLatitud gempa bumi.0.350031
lonfloatLongitud gempa bumi.122.238975
depthfloatKedalaman gempa bumi dalam kilometer.135.0
locationstringPenerangan lokasi gempa bumi dalam Bahasa Melayu."Semenanjung Minahassa, Sulawesi"
location_originalstringPenerangan lokasi gempa bumi dalam Bahasa Inggeris."Minahassa Peninsula, Sulawesi"
n_distancemasstringJarak dari Malaysia dalam Bahasa Inggeris."613km SE Semporna, Sabah"
n_distancereststringJarak dari lokasi lain dalam Bahasa Inggeris."97km W Gorontalo, Indonesia"
nbm_distancemasstringJarak dari Malaysia dalam Bahasa Melayu."613km TG Semporna, Sabah"
nbm_distancereststringJarak dari lokasi lain dalam Bahasa Melayu."97km B Gorontalo, Indonesia"
magdefaultfloatMagnitud default gempa bumi.5.5
magtypedefaultstringJenis magnitud default gempa bumi."mb"
statusstringStatus gempa bumi."NORMAL"
visiblebooleanStatus keterlihatan gempa bumi.true
lat_vectorstringRepresentasi vektor latitud dalam Bahasa Melayu."0.3500° U"
lon_vectorstringRepresentasi vektor longitud dalam Bahasa Melayu."122.2390° T"