GET /month, /months & /year
GET /month
Section titled “GET /month”Mengembalikan semua hari dalam satu bulan.
GET/api/v1/month?year={Y}&month={M}&calendar={hijri|gregorian}&retro={true|false}Parameter
Section titled “Parameter”| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
year |
int | ya | Tahun Hijriah atau Masehi |
month |
int | ya | Bulan 1–12 |
calendar |
string | tidak (bawaan hijri) |
Kalender untuk year dan month |
retro |
true / false |
tidak (bawaan false) |
Mengaktifkan tanggal hasil perhitungan untuk tahun sebelum tabel tersedia, sampai 1 Januari 1945. Data ini diberi tanda mabims-retro. Lihat cakupan data |
Contoh
Section titled “Contoh”curl "https://api.mabims.dev/api/v1/month?year=1447&month=1&calendar=hijri"const res = await fetch("https://api.mabims.dev/api/v1/month?year=1447&month=1&calendar=hijri");const data = await res.json();data.items.forEach(i => console.log(i.gregorian, "→", i.hijri));$response = GuzzleHttp\request('GET', 'https://api.mabims.dev/api/v1/month?year=1447&month=1&calendar=hijri');$data = json_decode($response->getBody(), true);foreach ($data['items'] as $item) { echo $item['gregorian'] . ' → ' . $item['hijri'] . PHP_EOL;}Respons
Section titled “Respons”{ "input": { "year": 1447, "month": 9, "calendar": "hijri" }, "count": 30, "items": [ { "gregorian": "2026-03-01", "hijri": "1447-09-01", "weekday": "Ahad", "source": "mabims" }, { "gregorian": "2026-03-02", "hijri": "1447-09-02", "weekday": "Senin", "source": "mabims" } ], "warnings": []}| Kolom | Tipe | Keterangan |
|---|---|---|
items |
RangeItem[] |
Each item has gregorian, hijri, and source |
count |
int | Number of days in the month (29 or 30) |
source |
string | "mabims" untuk data dari tabel, "mabims-computed" untuk hasil perhitungan Neo MABIMS |
Untuk calendar=hijri, respons berisi setiap tanggal Masehi yang termasuk dalam bulan Hijriah tersebut (29–30 item). Bulan Hijriah di luar tabel publik, misalnya pada tahun mendatang, tetap dihitung dengan kriteria Neo MABIMS selama masih dalam rentang yang didukung. Bentuk setiap item sama dengan /range.
GET /months
Section titled “GET /months”Mengembalikan 12 nama bulan Hijriah beserta nomornya. Statis, tidak perlu parameter, dan aman di-cache — gunakan untuk mengisi dropdown atau label di UI.
GET/api/v1/monthsContoh
Section titled “Contoh”curl "https://api.mabims.dev/api/v1/months"const res = await fetch("https://api.mabims.dev/api/v1/months");const data = await res.json();data.months.forEach(m => console.log(m.number, m.name));$response = GuzzleHttp\request('GET', 'https://api.mabims.dev/api/v1/months');$data = json_decode($response->getBody(), true);foreach ($data['months'] as $month) { echo $month['number'] . ' ' . $month['name'] . PHP_EOL;}Respons
Section titled “Respons”{ "calendar": "hijri", "months": [ { "number": 1, "name": "Muharram" }, { "number": 2, "name": "Safar" }, { "number": 3, "name": "Rabiul Awal" }, { "number": 4, "name": "Rabiul Akhir" }, { "number": 5, "name": "Jumadil Awal" }, { "number": 6, "name": "Jumadil Akhir" }, { "number": 7, "name": "Rajab" }, { "number": 8, "name": "Sya'ban" }, { "number": 9, "name": "Ramadhan" }, { "number": 10, "name": "Syawal" }, { "number": 11, "name": "Dzulqa'dah" }, { "number": 12, "name": "Dzulhijjah" } ]}GET /year
Section titled “GET /year”Mengembalikan semua hari dalam 12 bulan pada satu tahun. Ini lebih praktis daripada memanggil /month sebanyak 12 kali.
GET/api/v1/year?year={Y}&calendar={hijri|gregorian}&retro={true|false}Parameter
Section titled “Parameter”| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
year |
int | ya | Tahun Hijriah atau Masehi |
calendar |
string | tidak (bawaan hijri) |
Kalender untuk year |
retro |
true / false |
tidak (bawaan false) |
Mengaktifkan tanggal hasil perhitungan untuk tahun sebelum tabel tersedia, sampai 1 Januari 1945. Data ini diberi tanda mabims-retro. Lihat cakupan data |
Contoh
Section titled “Contoh”curl "https://api.mabims.dev/api/v1/year?year=1447&calendar=hijri"const res = await fetch("https://api.mabims.dev/api/v1/year?year=1447&calendar=hijri");const data = await res.json();console.log(data.count, "days in year", data.input.year);$response = GuzzleHttp\request('GET', 'https://api.mabims.dev/api/v1/year?year=1447&calendar=hijri');$data = json_decode($response->getBody(), true);echo $data['count'] . ' days in year ' . $data['input']['year'] . PHP_EOL;{ "input": { "year": 1447, "calendar": "hijri" }, "count": 354, "months": { "1": [ { "gregorian": "2025-06-27", "hijri": "1447-01-01", "weekday": "Jumat", "source": "mabims" }, { "gregorian": "2025-06-28", "hijri": "1447-01-02", "weekday": "Sabtu", "source": "mabims" } ], "2": [ "..." ], "3": [ "..." ], "4": [ "..." ], "5": [ "..." ], "6": [ "..." ], "7": [ "..." ], "8": [ "..." ], "9": [ "..." ], "10": [ "..." ], "11": [ "..." ], "12": [ "..." ] }, "warnings": []}Setiap kunci bulan berisi daftar item dengan format yang sama dengan /range. Nilai count adalah jumlah seluruh hari dalam tahun tersebut.
Untuk calendar=hijri, bulan Hijriah di luar tabel publik tetap dihitung dengan kriteria Neo MABIMS selama masih dalam rentang yang didukung.
Kesalahan
Section titled “Kesalahan”code |
HTTP | Penyebab |
|---|---|---|
invalid_month |
400 | Bulan bukan 1–12 |
invalid_year |
400 | Tahun di luar batas yang didukung |
invalid_calendar |
400 | Parameter calendar bukan hijri atau gregorian |
out_of_coverage |
400 | Bulan di luar cakupan tabel |
date_out_of_supported_range |
400 | Tanggal di luar rentang yang didukung |
invalid_retro |
400 | Parameter retro bukan nilai boolean (menerima true/false, 1/0) |
Flag boolean menerima true/false (tidak peka huruf besar/kecil) dan 1/0; tanpa param = false.
