High-performance prayer time computation engine — Meeus-based solar algorithms, pure Rust.
GET /api/timings/{DD-MM-YYYY} — Aladhan-compatible format
GET /api/bd/ — Bangladesh-specific format (habibur-compatible)
GET /api/docs — This documentation page
GET /api/timings/{DD-MM-YYYY}?latitude=...&longitude=...
Returns prayer times in a format compatible with the Aladhan API. Date is provided in the URL path as DD-MM-YYYY.
| Param | Type | Default | Description |
|---|---|---|---|
latitude required | float | — | -90 to 90 |
longitude required | float | — | -180 to 180 |
method optional | int | 3 | Calculation method ID (see table below) |
school optional | int | 0 | 0 = Standard (Shafi/Maliki/Hanbali), 1 = Hanafi |
midnightMode optional | int | 0 | 0 = Standard (sunset to sunrise), 1 = Jafari (sunset to fajr) |
latitudeAdjustmentMethod optional | int | 3 | 1 = Middle of Night, 2 = One Seventh, 3 = Angle Based |
timezonestring optional | string | UTC | IANA timezone (e.g. Asia/Dhaka) |
tune optional | string | — | 9 comma-separated minute offsets: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight |
iso8601 optional | bool | false | Return times as ISO 8601 datetime strings |
| ID | Name | Fajr° | Isha |
|---|---|---|---|
| 1 | University of Islamic Sciences, Karachi | 18 | 18° |
| 2 | Islamic Society of North America (ISNA) | 15 | 15° |
| 3 | Muslim World League | 18 | 17° |
| 4 | Umm Al-Qura University, Makkah | 18.5 | 90 min |
| 5 | Egyptian General Authority of Survey | 19.5 | 17.5° |
| 8 | Gulf Region | 19.5 | 90 min |
| 9 | Kuwait | 18 | 17.5° |
| 10 | Qatar | 18 | 90 min |
| 11 | Majlis Ugama Islam Singapura | 20 | 18° |
| 12 | Union Organization Islamic de France | 12 | 12° |
| 13 | Diyanet Isleri Baskanligi, Turkey | 18 | 17° |
| 14 | Spiritual Administration of Muslims of Russia | 16 | 15° |
| 15 | Moonsighting Committee Worldwide | 18 | 18° |
| 16 | Dubai | 18.2 | 18.2° |
| 17 | JAKIM (Malaysia) | 20 | 18° |
| 18 | Tunisia | 18 | 18° |
| 19 | Algeria | 18 | 17° |
| 20 | KEMENAG (Indonesia) | 20 | 18° |
| 21 | Morocco | 19 | 17° |
| 22 | Comunidade Islamica de Lisboa, Portugal | 18 | 77 min |
| 23 | Ministry of Awqaf, Jordan | 18 | 18° |
Note: Methods 0 (Jafari) and 7 (Tehran) are not supported (Sunni-only engine).
GET /api/timings/02-03-2026?latitude=23.75&longitude=90.43&method=1&timezonestring=Asia/Dhaka
{
"code": 200,
"status": "OK",
"data": {
"timings": {
"Fajr": "05:01",
"Sunrise": "06:17",
"Dhuhr": "12:11",
"Asr": "15:33",
"Sunset": "18:04",
"Maghrib": "18:04",
"Isha": "19:20",
"Imsak": "04:51",
"Midnight": "00:10",
"Firstthird": "22:08",
"Lastthird": "02:12"
},
"date": {
"readable": "02 Mar 2026",
"timestamp": "1772524800",
"gregorian": { ... },
"hijri": null
},
"meta": {
"latitude": 23.75,
"longitude": 90.43,
"timezone": "Asia/Dhaka",
"method": { "id": 1, "name": "...", "params": { ... } },
"latitudeAdjustmentMethod": "ANGLE_BASED",
"midnightMode": "STANDARD",
"school": "STANDARD",
"offset": { ... }
}
}
}
GET /api/bd/?lat=...&lon=...
Returns 16 prayer/time entries using the Karachi 18/18 method with both Shafi and Hanafi Asr times. Compatible with salat.habibur.com format.
| Param | Type | Default | Description |
|---|---|---|---|
lat required | float | — | Latitude (-90 to 90) |
lon required | float | — | Longitude (-180 to 180) |
tzname optional | string | UTC | IANA timezone name |
date optional | string | today | ISO date (YYYY-MM-DD) |
| Field | Description |
|---|---|
fajar18 | Fajr (18° depression) |
rise | Sunrise |
noon | Dhuhr / Solar noon |
asar1 | Asr (Standard / Shafi) |
asar2 | Asr (Hanafi) |
set | Sunset / Maghrib |
magrib12 | Maghrib at -12° depression |
esha | Isha |
night1 | First third of the night |
midnight | Middle of the night |
night2 | Two-thirds of the night |
night6 | Five-sixths of the night |
sehri | Sehri (Fajr - 1 second) |
setstart | Sunset start (Sunset - 3 minutes) |
ishraq | Ishraq (Sunrise + 15 minutes) |
asarend | Asr end (Sunset - 30 minutes) |
Each time entry has the format: {"short": "5:01 am", "long": "5:01:23 am", "secs": 1772506883}
GET /api/bd/?lat=23.75&lon=90.43&tzname=Asia/Dhaka&date=2026-03-02
All errors return JSON with appropriate HTTP status codes:
{
"code": 400,
"status": "Bad Request",
"data": "latitude is required"
}
| Code | When |
|---|---|
| 400 | Missing required parameters, invalid values, bad date format, unknown method |
| 404 | Unknown route |
null (planned for future release)