Prayer Times API

High-performance prayer time computation engine — Meeus-based solar algorithms, pure Rust.

Endpoints

GET /api/timings/{DD-MM-YYYY} — Aladhan-compatible format

GET /api/bd/ — Bangladesh-specific format (habibur-compatible)

GET /api/docs — This documentation page

1. Aladhan-Compatible Route

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.

Parameters

ParamTypeDefaultDescription
latitude requiredfloat-90 to 90
longitude requiredfloat-180 to 180
method optionalint3Calculation method ID (see table below)
school optionalint00 = Standard (Shafi/Maliki/Hanbali), 1 = Hanafi
midnightMode optionalint00 = Standard (sunset to sunrise), 1 = Jafari (sunset to fajr)
latitudeAdjustmentMethod optionalint31 = Middle of Night, 2 = One Seventh, 3 = Angle Based
timezonestring optionalstringUTCIANA timezone (e.g. Asia/Dhaka)
tune optionalstring9 comma-separated minute offsets: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight
iso8601 optionalboolfalseReturn times as ISO 8601 datetime strings

Calculation Methods

IDNameFajr°Isha
1University of Islamic Sciences, Karachi1818°
2Islamic Society of North America (ISNA)1515°
3Muslim World League1817°
4Umm Al-Qura University, Makkah18.590 min
5Egyptian General Authority of Survey19.517.5°
8Gulf Region19.590 min
9Kuwait1817.5°
10Qatar1890 min
11Majlis Ugama Islam Singapura2018°
12Union Organization Islamic de France1212°
13Diyanet Isleri Baskanligi, Turkey1817°
14Spiritual Administration of Muslims of Russia1615°
15Moonsighting Committee Worldwide1818°
16Dubai18.218.2°
17JAKIM (Malaysia)2018°
18Tunisia1818°
19Algeria1817°
20KEMENAG (Indonesia)2018°
21Morocco1917°
22Comunidade Islamica de Lisboa, Portugal1877 min
23Ministry of Awqaf, Jordan1818°

Note: Methods 0 (Jafari) and 7 (Tehran) are not supported (Sunni-only engine).

Example Request

GET /api/timings/02-03-2026?latitude=23.75&longitude=90.43&method=1&timezonestring=Asia/Dhaka

Example Response

{
  "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": { ... }
    }
  }
}

2. Bangladesh Route

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.

Parameters

ParamTypeDefaultDescription
lat requiredfloatLatitude (-90 to 90)
lon requiredfloatLongitude (-180 to 180)
tzname optionalstringUTCIANA timezone name
date optionalstringtodayISO date (YYYY-MM-DD)

Response Fields

FieldDescription
fajar18Fajr (18° depression)
riseSunrise
noonDhuhr / Solar noon
asar1Asr (Standard / Shafi)
asar2Asr (Hanafi)
setSunset / Maghrib
magrib12Maghrib at -12° depression
eshaIsha
night1First third of the night
midnightMiddle of the night
night2Two-thirds of the night
night6Five-sixths of the night
sehriSehri (Fajr - 1 second)
setstartSunset start (Sunset - 3 minutes)
ishraqIshraq (Sunrise + 15 minutes)
asarendAsr end (Sunset - 30 minutes)

Each time entry has the format: {"short": "5:01 am", "long": "5:01:23 am", "secs": 1772506883}

Example Request

GET /api/bd/?lat=23.75&lon=90.43&tzname=Asia/Dhaka&date=2026-03-02

Error Responses

All errors return JSON with appropriate HTTP status codes:

{
  "code": 400,
  "status": "Bad Request",
  "data": "latitude is required"
}
CodeWhen
400Missing required parameters, invalid values, bad date format, unknown method
404Unknown route

Notes