Skip to main content

Overview

The prayer times API provides functions to fetch prayer times from the Aladhan API. All functions return prayer data including:
  • All daily prayer times (Fajr, Sunrise, Dhuhr, Asr, Maghrib, Isha)
  • Gregorian and Hijri date information
  • Calculation method and school metadata
  • Timezone and coordinate information

Fetch by City

fetchTimingsByCity

Fetch prayer times for a specific city and country.
import { fetchTimingsByCity } from 'ramadan-cli';

const data = await fetchTimingsByCity({
  city: 'Lahore',
  country: 'Pakistan',
  method: 1,  // Optional: Karachi method
  school: 1,  // Optional: Hanafi school
  date: new Date('2024-03-15'), // Optional: specific date
});

console.log(data.timings.Fajr);    // "05:30"
console.log(data.timings.Maghrib); // "18:45"
options
FetchByCityOptions
required
Configuration object for fetching prayer times
return
Promise<PrayerData>
Returns a promise that resolves to prayer data

Fetch by Address

fetchTimingsByAddress

Fetch prayer times using a free-form address string. The API will geocode the address.
import { fetchTimingsByAddress } from 'ramadan-cli';

const data = await fetchTimingsByAddress({
  address: 'San Francisco, CA, USA',
  method: 2,  // ISNA method for North America
  school: 0,  // Shafi school
});
options
FetchByAddressOptions
required
return
Promise<PrayerData>
Prayer data for the specified address

Fetch by Coordinates

fetchTimingsByCoords

Fetch prayer times using latitude and longitude coordinates.
import { fetchTimingsByCoords } from 'ramadan-cli';

const data = await fetchTimingsByCoords({
  latitude: 31.5204,
  longitude: 74.3587,
  method: 1,
  school: 1,
  timezone: 'Asia/Karachi', // Optional but recommended
});
options
FetchByCoordsOptions
required
return
Promise<PrayerData>
Prayer data for the coordinates

Next Prayer

fetchNextPrayer

Fetch the next upcoming prayer time for today.
import { fetchNextPrayer } from 'ramadan-cli';

const data = await fetchNextPrayer({
  latitude: 31.5204,
  longitude: 74.3587,
  method: 1,
  timezone: 'Asia/Karachi',
});

console.log(data.nextPrayer);     // "Asr"
console.log(data.nextPrayerTime); // "16:30"
options
FetchNextPrayerOptions
required
return
Promise<NextPrayerData>
Prayer data with next prayer information

Ramadan Calendar

fetchCalendarByCity

Fetch the entire Ramadan prayer calendar for a city.
import { fetchCalendarByCity } from 'ramadan-cli';

// Fetch Ramadan 1446 (full month)
const calendar = await fetchCalendarByCity({
  city: 'Istanbul',
  country: 'Turkey',
  year: 1446,  // Hijri year
  month: 9,    // Optional: month number (9 = Ramadan)
  method: 13,  // Turkey method
});

console.log(calendar.length); // 30 days
console.log(calendar[0].timings.Fajr); // First day Fajr time
options
FetchCalendarByCityOptions
required
return
Promise<ReadonlyArray<PrayerData>>
Array of prayer data for each day

fetchCalendarByAddress

Fetch prayer calendar using an address string.
import { fetchCalendarByAddress } from 'ramadan-cli';

const calendar = await fetchCalendarByAddress({
  address: 'London, UK',
  year: 2024,
  month: 3,  // March
  method: 3, // MWL method
});
options
FetchCalendarByAddressOptions
required
Same as FetchCalendarByCityOptions but with address instead of city/country

fetchHijriCalendarByCity

Fetch Ramadan calendar using Hijri calendar date.
import { fetchHijriCalendarByCity } from 'ramadan-cli';

// Fetch Ramadan 1446
const ramadan = await fetchHijriCalendarByCity({
  city: 'Mecca',
  country: 'Saudi Arabia',
  year: 1446,  // Hijri year
  month: 9,    // Ramadan (required for Hijri calendar)
  method: 4,   // Umm al-Qura method
});
options
FetchHijriCalendarByCityOptions
required

fetchHijriCalendarByAddress

Fetch Hijri calendar using an address.
import { fetchHijriCalendarByAddress } from 'ramadan-cli';

const ramadan = await fetchHijriCalendarByAddress({
  address: 'Dubai, UAE',
  year: 1446,
  month: 9,
  method: 16,
});

Calculation Methods

fetchMethods

Get all available prayer time calculation methods.
import { fetchMethods } from 'ramadan-cli';

const methods = await fetchMethods();

// Access specific method
console.log(methods['2']);
// {
//   id: 2,
//   name: "Islamic Society of North America (ISNA)",
//   params: { Fajr: 15, Isha: 15 }
// }
return
Promise<MethodsResponse>
Record mapping method IDs to calculation method details

Common Calculation Methods

const data = await fetchTimingsByCity({
  city: 'New York',
  country: 'USA',
  method: 2, // ISNA
});

Qibla Direction

fetchQibla

Get the Qibla direction (bearing to Mecca) for any location.
import { fetchQibla } from 'ramadan-cli';

const qibla = await fetchQibla(31.5204, 74.3587);

console.log(qibla.direction); // 255.88 (degrees from North)
console.log(qibla.latitude);  // Input latitude
console.log(qibla.longitude); // Input longitude
latitude
number
required
Latitude coordinate
longitude
number
required
Longitude coordinate
return
Promise<QiblaData>
Qibla direction data

Method IDs Reference

IDMethod NameRegion
0Jafari (Shia Ithna-Ashari)Shia communities
1University of Islamic Sciences, KarachiPakistan, Bangladesh, India
2Islamic Society of North America (ISNA)North America
3Muslim World League (MWL)Europe, worldwide
4Umm al-Qura University, MakkahSaudi Arabia
5Egyptian General Authority of SurveyEgypt, Middle East
7Institute of Geophysics, University of TehranIran
8Gulf RegionGulf states
9KuwaitKuwait
10QatarQatar
11Majlis Ugama Islam SingapuraSingapore
12Union Organization Islamic de FranceFrance
13Diyanet İşleri BaşkanlığıTurkey
14Spiritual Administration of Muslims of RussiaRussia
15Moonsighting Committee WorldwideVarious
16DubaiUAE
17Jabatan Kemajuan Islam Malaysia (JAKIM)Malaysia, Brunei
18TunisiaTunisia
19AlgeriaAlgeria
20KEMENAG - IndonesiaIndonesia
21MoroccoMorocco
22Comunidade Islamica de LisboaPortugal
23JordanJordan

Example: Full Integration

import {
  fetchTimingsByCity,
  fetchCalendarByCity,
  fetchQibla,
  guessLocation,
  type PrayerData,
} from 'ramadan-cli';

// Auto-detect location
const location = await guessLocation();

if (location) {
  // Get today's prayer times
  const todayPrayers = await fetchTimingsByCity({
    city: location.city,
    country: location.country,
    method: 2,
  });
  
  console.log('Fajr:', todayPrayers.timings.Fajr);
  console.log('Maghrib:', todayPrayers.timings.Maghrib);
  
  // Get Ramadan calendar
  const ramadan = await fetchCalendarByCity({
    city: location.city,
    country: location.country,
    year: 2024,
    month: 3,
    method: 2,
  });
  
  console.log(`Ramadan has ${ramadan.length} days`);
  
  // Get Qibla direction
  const qibla = await fetchQibla(location.latitude, location.longitude);
  console.log(`Qibla: ${qibla.direction}°`);
}