◆ POST
/v1/prayertimesGet Prayer Times
The primary endpoint. Pass a GPS coordinate and date, and it returns prayer times with full provenance — which authority was used, whether data is official or calculated, and the Hijri date. Automatically resolves the nearest official zone.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
lat | number | required | Latitude (-90 to 90) |
lng | number | required | Longitude (-180 to 180) |
normalizeCoordinates | boolean | optional (false) | Normalize out-of-range coordinates when true; otherwise return 422 INVALID_COORDINATES |
date | string | required | Date in YYYY-MM-DD format |
tzId | string | optional | IANA timezone (auto-detected from zone if omitted) |
prefer | string | optional (allow_fallback) | Data preference strategy |
tzFallback | string | optional (STRICT) | Timezone fallback policy |
preferZone | string | optional | Override automatic zone resolution with a specific zone ID |
debug | boolean | optional (false) | Include debug info in response |
altitudeMeters | number | optional (0) | Altitude in meters for more precise calculations |
madhab | string | optional | Force a specific juristic rule for Asr (Shafi/Standard or Hanafi) |
Req Configuration
Code Example
curl -X POST "/v1/prayertimes" \
-H "Content-Type: application/json" \
-H "X-API-Key: " \
-d '{
"lat": 3.1579,
"lng": 101.7123,
"normalizeCoordinates": false,
"date": "2026-03-07",
"tzId": "Asia/Kuala_Lumpur",
"prefer": "allow_fallback",
"tzFallback": "STRICT",
"preferZone": "WLY01",
"debug": false,
"altitudeMeters": 0,
"madhab": "{madhab}"
}'▶ Try It
Response
Example Response
{
"tzIdUsed": "Asia/Kuala_Lumpur",
"utcOffsetUsed": 480,
"timezoneResolutionMethod": "resolved_from_latlng",
"timezoneSource": "resolved_from_latlng",
"localDateUsed": "2026-02-19",
"zoneSource": "official_authority_zone",
"zoneBoundaryAdminLevel": null,
"uniformWithinZone": false,
"zoneReferencePointUsed": null,
"mode": "harvested_official",
"resultIsOfficial": true,
"fallbackLevel": "harvested_official",
"methodAuthority": "official_authority",
"methodOriginCountry": "MYS",
"methodOriginRegion": null,
"fallbackReason": "Official harvested timetable found from national authority.",
"selectionPath": [
"ADM0:MYS:POLYGON",
"tzId:ASIA/KUALA_LUMPUR:RESOLVED_FROM_LATLNG",
"ZoneSource:OFFICIAL_AUTHORITY_ZONE",
"Profile:OFFICIAL_MYS",
"BaseMethod:JAKIM",
"Anomaly:NORMAL",
"HighLatitudeStrategy:NONE",
"Mode:HARVESTED_OFFICIAL"
],
"methodUsed": {
"id": "jakim",
"name": "Jabatan Kemajuan Islam Malaysia",
"source": "official_verified",
"version": "registry-v1",
"highLatitudeHandlingApplied": null,
"params": {
"fajrAngle": 20,
"ishaAngle": 18,
"ishaOffsetMinutes": null,
"asrRule": "shafi",
"highLatitudeRule": null,
"dhuhrOffsetMinutes": 0,
"maghribOffsetMinutes": 0,
"imsakOffsetMinutes": 0,
"roundingPolicy": "nearest_minute",
"precautionMinutes": 0
}
},
"recommendedMethod": {
"id": "jakim",
"name": "Jabatan Kemajuan Islam Malaysia",
"source": "official_verified",
"version": "registry-v1",
"highLatitudeHandlingApplied": null,
"params": {
"fajrAngle": 20,
"ishaAngle": 18,
"ishaOffsetMinutes": null,
"asrRule": "shafi",
"highLatitudeRule": null,
"dhuhrOffsetMinutes": 0,
"maghribOffsetMinutes": 0,
"imsakOffsetMinutes": 0,
"roundingPolicy": "nearest_minute",
"precautionMinutes": 0
}
},
"times": {
"zone_id": "WLY01",
"date": "2026-02-19",
"fajr": "06:18",
"sunrise": "07:25",
"dhuhr": "13:30",
"asr": "16:48",
"maghrib": "19:29",
"isha": "20:39",
"imsak": "06:08",
"dhuha": "07:50",
"hijriYear": 1447,
"hijriMonth": 9,
"hijriDay": 1
},
"location": {
"lat": 3.1579,
"lng": 101.7123,
"tzId": "Asia/Kuala_Lumpur",
"iso3": "MYS",
"zoneId": "WLY01",
"zoneName": "Kuala Lumpur, Putrajaya",
"zoneSource": "official_authority_zone",
"uniformWithinZone": false,
"zoneReferencePointUsed": null,
"region": "WLY",
"distanceKm": 0
},
"officialRule": {
"mode": "harvested_from_official_authority",
"authority": {
"id": "jakim",
"name": "Jabatan Kemajuan Islam Malaysia"
},
"resultIsOfficial": true,
"params": {
"fajrAngle": 20,
"ishaAngle": 18
}
},
"provenance": {
"type": "official",
"sourceKind": "harvested_from_official_authority",
"authority": "Jabatan Kemajuan Islam Malaysia"
},
"highLatitudeStrategyUsed": null,
"referenceType": null,
"referenceLatitudeUsed": null,
"referenceLongitudeUsed": null,
"referenceLocationName": null,
"referenceRule": null,
"hijriDate": {
"day": 1,
"month": 9,
"year": 1447,
"monthNameArabic": "رَمَضَان",
"monthNameEnglish": "Ramadan"
},
"juristic_settings": {
"applied_rule": "Shafi'i",
"calculation_basis": "Shadow Ratio 1:1",
"source": "country_default"
},
"warnings": []
}