HouseMuslim
Referensi API

Ramadan

Status puasa hari ini dengan hitung mundur langsung, serta jadwal lengkap 30 hari Ramadan untuk lokasi mana pun.

Hari ini

GET /api/v1/ramadan

Status Ramadan terkini pada suatu lokasi. Menerima parameter lokasi/metode yang sama seperti Prayer Times (lat, lng, tz, method, madhab, high_lat, elevation) ditambah hijri_method (default tabular).

GET/ramadanLangsung
GET /ramadan?lat=-6.20&lng=106.85&method=Kemenag&hijri_method=umm_al_qura
curl ".../ramadan?lat=-6.2&lng=106.8&method=Kemenag&hijri_method=umm_al_qura"

Saat Ramadan berlangsung:

{
  "success": true,
  "data": {
    "is_ramadan": true,
    "hijri": { "year": 1447, "month": 9, "day": 5 },
    "day": 5,
    "remaining_days": 26,
    "imsak": "2026-02-22T04:29:00+07:00",
    "fajr": "2026-02-22T04:39:00+07:00",
    "maghrib": "2026-02-22T18:14:00+07:00",
    "seconds_to_iftar": 21960,
    "seconds_to_suhoor": 63540,
    "place": {
      "lat": -6.2, "lng": 106.8,
      "city": "Jakarta", "region": "Jakarta",
      "country": "Indonesia", "country_code": "ID",
      "nearest_city_km": 0.65
    },
    "timezone": { "id": "Asia/Jakarta", "offset_min": 420 }
  }
}

Endpoint berbasis lokasi (/ramadan, /ramadan/schedule, /fasting/ramadan) kini juga menyertakan place (reverse-geocode offline) + timezone. Di luar Ramadan, hanya is_ramadan dan hijri yang relevan:

{ "is_ramadan": false, "hijri": { "year": 1448, "month": 1, "day": 4 } }
FieldMeaning
dayHari ke berapa dalam Ramadan
remaining_daysSisa hari puasa (termasuk hari ini)
seconds_to_iftarDetik menuju Magrib (0 jika sudah lewat)
seconds_to_suhoorDetik menuju Subuh berikutnya

Ramadan mendatang

GET /api/v1/ramadan/upcoming

Kapan Ramadan dimulai setiap tahun? Endpoint ini menampilkan tanggal awal/akhir Masehi dan Idulfitri untuk beberapa tahun berturut-turut — tanpa perlu lokasi.

ParamTypeDefaultDescription
fromintcurrent yearTahun Masehi pertama
countint10Jumlah tahun (maks. 50)
methodstringumm_al_quraMetode Hijriah
GET/ramadan/upcomingLangsung
GET /ramadan/upcoming?from=2026&count=8&method=umm_al_qura
{
  "success": true,
  "data": [
    { "hijri_year": 1447, "gregorian_year": 2026, "start": "2026-02-18", "end": "2026-03-19", "eid_al_fitr": "2026-03-20", "total_days": 30 },
    { "hijri_year": 1448, "gregorian_year": 2027, "start": "2027-02-07", "end": "2027-03-08", "eid_al_fitr": "2027-03-09", "total_days": 30 },
    { "hijri_year": 1449, "gregorian_year": 2028, "start": "2028-01-27", "end": "2028-02-25", "eid_al_fitr": "2028-02-26", "total_days": 30 }
  ]
}

Karena tahun Hijriah sekitar 11 hari lebih pendek, satu tahun Masehi sesekali memuat dua Ramadan (misalnya 2030) — keduanya ditampilkan secara berurutan.

Jadwal lengkap

GET /api/v1/ramadan/schedule

Satu bulan penuh (29–30 hari). Parameter: hy (tahun Hijriah, default tahun berjalan), ditambah parameter lokasi/metode yang sama, dan hijri_method.

GET/ramadan/scheduleLangsung
GET /ramadan/schedule?hy=1447&lat=-6.20&lng=106.85&method=Kemenag&hijri_method=umm_al_qura
curl "https://api.housemuslim.org/api/v1/ramadan/schedule?hy=1447&lat=-6.2&lng=106.8&method=Kemenag"
const res = await fetch('https://api.housemuslim.org/api/v1/ramadan/schedule?hy=1447&lat=-6.2&lng=106.8&method=Kemenag');
const { data } = await res.json();
console.log(data.start, '→', data.end, `(${data.total_days} days)`);
{
  "success": true,
  "data": {
    "hijri_year": 1447,
    "start": "2026-02-18",
    "end": "2026-03-19",
    "total_days": 30,
    "days": [
      {
        "day": 1,
        "date": "2026-02-18",
        "hijri": { "year": 1447, "month": 9, "day": 1 },
        "weekday": "Rabu",
        "imsak": "2026-02-18T04:28:54+07:00",
        "fajr": "2026-02-18T04:38:54+07:00",
        "maghrib": "2026-02-18T18:15:12+07:00",
        "fast_minutes": 816
      }
    ]
  }
}

fajr menandai akhir sahur; maghrib adalah waktu berbuka. fast_minutes adalah durasi puasa (Magrib − Subuh).

Endpoint lama

GET /api/v1/fasting/ramadan

Informasi Ramadan untuk satu hari yang dipertahankan demi kompatibilitas mundur. Menerima lat, lng, tz, date, method, madhab, high_lat, shafaq, hijri_method.

{
  "success": true,
  "data": {
    "date": "2026-02-22",
    "hijri": { "year": 1447, "month": 9, "day": 5 },
    "is_ramadan": true,
    "ramadan_day": 5,
    "imsak": "2026-02-22T04:29:00+07:00",
    "maghrib": "2026-02-22T18:14:00+07:00"
  }
}

Di halaman ini