UmmahAPI
App · Misc References · 32 actions
Twelve Islamic services behind one connection, all of it free and keyless: the Qur'an in twelve translations with word-by-word meanings and thirteen reciters, 36,000 hadiths across ten collections, four tafsir works, prayer times for anywhere with 23 calculation methods, the qibla, the Hijri calendar, 126 duas, the 99 names, 210 Islamic given names, a zakat calculator fed by live gold and silver prices, and moon sighting. Quote a verse, post a hadith, send prayer times every morning, remind people before an Eid, or work out what somebody owes in zakat. No account or API key required.
Actions
| Action | What it does |
|---|---|
| Browse a collection | Read a collection a page at a time, in its own order. |
| Calculate zakat | Work out the zakat due on savings, gold, silver, shares, business stock and other investments, less what is owed. |
| Calculate zakat on a harvest | Work out ushr, the zakat on agricultural produce: a tenth of a rain-fed crop, a twentieth of an irrigated one, because irrigation cost the grower something. |
| Convert a date | Convert a date between the Gregorian and Islamic calendars, either way. |
| Find duas | Search the 126 duas by what they are for, list one category - morning, evening, travel, distress - or list all of them. |
| Find Islamic names | Look through 210 Islamic given names: search by meaning, filter by gender or origin, or fetch one by its number. |
| Get a chapter | Get a whole chapter of the Qur'an, verse by verse, in Arabic and in the translation you pick, with the recitation links for the chapter. |
| Get a du'a | Get one supplication by its number, or one at random, in Arabic with a transliteration, what it means, where it is narrated from and how many times it is said. |
| Get a hadith | Get one hadith by its number within a collection, in Arabic and English with its grading. |
| Get a juz | Get one of the 30 juz, the parts the Qur'an is divided into so it can be read through in a month. |
| Get a mushaf page | Get one page of the 604-page Madina mushaf, word by word, with the line each word sits on and the verse it belongs to. |
| Get a prayer timetable | Get a whole month of prayer times, or a whole Ramadan with suhoor and iftar named for each of the thirty days. |
| Get a random hadith | Get one hadith drawn at random from all 36,108, or from a single collection. |
| Get a random verse | Get one verse drawn at random from all 6,236, in Arabic and in the translation you pick. |
| Get a recitation | Get the audio for a chapter or a single verse. |
| Get a verse | Get one verse of the Qur'an by chapter and verse number, in Arabic and in the translation you pick, with a transliteration and a recitation from each of the thirteen reciters. |
| Get prayer times | Get the five prayer times for a place and a day, with which prayer is on now, which is next and how long until it. |
| Get similar verses | Find the verses that closely resemble another - the mutashabihat, the ones huffaz mix up. |
| Get tafsir | Get scholarly commentary on a verse, or on a whole chapter, from Ibn Kathir, Ma'arif al-Qur'an, al-Muyassar, or all four at once. |
| Get the 99 names of Allah | Get the Asma ul Husna: all 99, one by number, a search by meaning, or the handful set aside for a given day of the week. |
| Get the nisab thresholds | Get the gold and silver nisab thresholds and the live metal prices behind them, in any currency. |
| Get the qibla direction | Get the compass bearing from any place to the Kaaba, with the distance in kilometres and miles. |
| Get today's Islamic date | Get today's Hijri date with the moon beside it: the phase, how lit it is, whether the crescent is visible, and when the next new moon falls. |
| Get word-by-word meanings | Get every word of a verse, or of a whole chapter, with its Arabic, its transliteration and what it means on its own. |
| List calculation methods | List every prayer-time calculation method with the angles it uses for Fajr and Isha, what it is used for and which short names it answers to. |
| List du'a categories | List the 27 categories the duas are filed under, with how many each holds. |
| List hadith collections | List the ten collections with their authors, how many hadiths each holds and how the collection as a whole is regarded - Bukhari and Muslim are Sahih throughout, the four Sunan are mixed. |
| List Islamic events | List the Islamic year's observances - the two Eids, Ramadan, Ashura, Laylat al-Qadr and the rest - each with the Hijri month and day it falls on, plus which one is next. |
| List the chapters | List the Qur'an's 114 chapters in order, each with its name, what the name means, how many verses it holds, where it was revealed and where it falls in the order of revelation. |
| List the coming new moons | List the coming new moons with the date each crescent should first be visible and which Hijri month it starts. |
| Search hadiths | Find hadiths whose text matches a word or phrase, across all ten collections or within one. |
| Search the Qur'an | Find every verse matching a word or phrase. |
Browse a collection
Read a collection a page at a time, in its own order. The step to work through Bukhari over a year, or to find out where a collection's numbering begins. No API key required.
Inputs
- Collection
collectiontextRequired - Which of the ten hadith collections.
- Page
pagenumber - Optional. Which page of results, counting from 1.At least 1.
- Number of results
limitnumber - Optional. Leave empty for all of them.From 1 to 500.
Outputs
collectiontext- Its key.
collection_nametext- Its full name.
countnumber- How many records are in this result.
hadithslist- This page of the collection.
pagenumber- Which page this is.
total_countnumber- How many there are in total, before paging.
total_pagesnumber- How many pages there are at this page size.
Example output
{
"collection": "bukhari",
"collection_name": "Sahih al-Bukhari",
"count": 1,
"hadiths": [
{
"arabic": "\u062d\u064e\u062f\u0651\u064e\u062b\u064e\u0646\u064e\u0627 \u0627\u0644\u0652\u062d\u064f\u0645\u064e\u064a\u0652\u062f\u0650\u064a\u0651\u064f \u0639\u064e\u0628\u0652\u062f\u064f \u0627\u0644\u0644\u0651\u064e\u0647\u0650 \u0628\u0652\u0646\u064f \u0627\u0644\u0632\u0651\u064f\u0628\u064e\u064a\u0652\u0631\u0650 \u060c \u0642\u064e\u0627\u0644\u064e : \u062d\u064e\u062f\u0651\u064e\u062b\u064e\u0646\u064e\u0627 \u0633\u064f\u0641\u0652\u064a\u064e\u0627\u0646\u064f \u060c \u0642\u064e\u0627\u0644\u064e : \u062d\u064e\u062f\u0651\u064e\u062b\u064e\u0646\u064e\u0627\u2026",
"collection": "bukhari",
"collection_name": "Sahih al-Bukhari",
"english": "Narrated 'Umar bin Al-Khattab: I heard Allah's Messenger (\ufdfa) saying, \"The reward of deeds depends upon the in\u2026",
"grade": "Sahih",
"id": "bukhari-1",
"number": 1
}
],
"page": 1,
"total_count": 7580,
"total_pages": 7580
}Calculate zakat
Work out the zakat due on savings, gold, silver, shares, business stock and other investments, less what is owed. Gold and silver are priced from the live market, so only the weight is needed. Nothing is due below the nisab threshold, and the result shows its working: what was counted, what was deducted, which threshold it was measured against and at what prices. Zakat is due on wealth held for a lunar year, which nothing here can check. No API key required.
Inputs
- Cash and savings
cashnumber - Money in hand and in the bank.At least 0.
- Gold (grams)
gold_gramsnumber - Weight of gold owned, in grams. Priced from the market.At least 0.
- Silver (grams)
silver_gramsnumber - Weight of silver owned, in grams.At least 0.
- Shares
stocksnumber - What shares and funds are worth.At least 0.
- Business stock
business_goodsnumber - What goods held for trade are worth.At least 0.
- Other investments
other_investmentsnumber - Anything else zakatable.At least 0.
- Debts owed
liabilitiesnumber - What is owed, deducted before the threshold is tested.At least 0.
- Currency
currencytext - Optional. An ISO code such as USD, GBP, PKR or SAR. Metal prices and thresholds come back in it. US dollars if you leave it alone.
- Nisab standard
nisab_standardtext - Which threshold to measure against. Gold if you leave it alone. The choice decides whether anything is owed at all for wealth between the two.One of:
gold(Gold - the higher threshold, so fewer people owe),silver(Silver - the lower threshold, so more people owe). - Gold price per gram
gold_price_per_gramnumber - Optional. Overrides the live price.At least 0.
- Silver price per gram
silver_price_per_gramnumber - Optional. Overrides the live price.At least 0.
Outputs
above_nisabtrue/false- Whether the threshold was met. This is the field to branch on: nothing owed because wealth is below nisab is a different answer from nothing owed because nothing was entered.
assumes_held_for_a_lunar_yeartrue/false- Always true. Zakat falls due on wealth held for a lunar year, and nothing in the request says how long anything has been held - so this is the one condition the calculation cannot check and the person has to.
breakdownobject- The working, so the figure can be checked.
currencytext- The ISO code used.
nisab_gramsnumber- The weight it is measured as.
nisab_standardtext- Which threshold was used: gold or silver.
nisab_valuenumber- What that threshold came to in money.
pricesobject- The metal prices this calculation used.
ratetext- The rate applied: 2.5%.
zakat_duenumber- What is owed. Zero when below the threshold.
zakat_due_formattedtext- The same, to two decimal places.
Example output
{
"above_nisab": true,
"assumes_held_for_a_lunar_year": true,
"breakdown": {
"business_goods": 0,
"cash": 12000,
"gold_value": 6904,
"gross_wealth": 21904,
"liabilities": 2000,
"net_zakatable_wealth": 19904,
"other_investments": 0,
"silver_value": 0,
"stocks": 3000
},
"currency": "USD",
"nisab_grams": 85,
"nisab_standard": "gold",
"nisab_value": 11736.8,
"prices": {
"as_of": "2026-09-15T22:00:35.282+00:00",
"auto_filled": true,
"currency": "USD",
"gold_price_per_gram": 138.08,
"is_fallback": false,
"silver_price_per_gram": 2.05,
"source": "gold-api.com (spot)"
},
"rate": "2.5%",
"zakat_due": 497.6,
"zakat_due_formatted": "497.60"
}Calculate zakat on a harvest
Work out ushr, the zakat on agricultural produce: a tenth of a rain-fed crop, a twentieth of an irrigated one, because irrigation cost the grower something. Unlike zakat on wealth there is no threshold to clear and no year to wait - it falls due at harvest. No API key required.
Inputs
- Value of the produce
valuenumberRequired - What the harvest is worth.At least 0.
- Water source
water_sourcetext - How the crop was watered. Rain-fed if you leave it alone, which is the higher rate.One of:
rain(Rain-fed, spring-fed or flood-watered - 10%),irrigation(Irrigated at the grower's cost - 5%).
Outputs
due_at_harvesttrue/false- Always true. Ushr has no nisab test and no lunar year - it is due when the crop comes in.
ratetext- The rate applied: 10% or 5%.
valuenumber- What the harvest was valued at.
water_sourcetext- rain or irrigation.
zakat_duenumber- What is owed.
Example output
{
"due_at_harvest": true,
"rate": "10%",
"value": 5000.0,
"water_source": "rain",
"zakat_due": 500.0
}Convert a date
Convert a date between the Gregorian and Islamic calendars, either way. Fill in the Gregorian date to go one way, or the Hijri year, month and day to go the other. Both calendars come back either way, so a later step never has to know which direction you asked for. No API key required.
Inputs
- Gregorian date
gregorian_datedate - Optional. Today if you leave everything empty. Fill this in to convert into the Islamic calendar.
- Hijri year
hijri_yearnumber - Optional. Fill in all three Hijri fields to convert the other way.From 1 to 2000.
- Hijri month
hijri_monthnumber - Optional. 1 is Muharram, 9 is Ramadan.From 1 to 12.
- Hijri day
hijri_daynumber - Optional. 1 to 30; a lunar month is 29 or 30 days.From 1 to 30.
Outputs
directiontext- Which way it converted: 'gregorian_to_hijri' or 'hijri_to_gregorian'.
gregorianobject- The same day in the Gregorian calendar.
hijriobject- A date in the Islamic calendar.
is_tabulartrue/false- Always true. The conversion is arithmetic, not observed, so it can differ by a day or two from the date a given country announces - a month really begins when the crescent is seen.
Example output
{
"direction": "gregorian_to_hijri",
"gregorian": {
"date": "2026-09-15",
"day": 15,
"day_of_week": "Tuesday",
"formatted": "Tuesday, September 15, 2026",
"month": 9,
"month_name": "September",
"year": 2026
},
"hijri": {
"date": "1448-04-04",
"day": 4,
"formatted": "04 Rabi' al-Thani 1448 AH",
"is_sacred_month": false,
"month": 4,
"month_name": "Rabi al-Thani",
"month_name_arabic": "\u0631\u064e\u0628\u0650\u064a\u0639 \u0627\u0644\u062b\u064e\u0651\u0627\u0646\u0650\u064a",
"month_name_as_published": "Rabi' al-thani",
"year": 1448
},
"is_tabular": true
}Find duas
Search the 126 duas by what they are for, list one category - morning, evening, travel, distress - or list all of them. The step behind a morning adhkar post or a du'a for the occasion. No API key required.
Inputs
- Search text
querytext - Optional. Searches the titles, translations and categories. Leave empty to list a category or all of them instead.
- Category
categorytext - Optional. One of the 27 categories. Cannot be combined with a search, because a search already looks at the category name.
- Number of results
limitnumber - Optional. Leave empty for all of them.From 1 to 500.
- Skip
offsetnumber - Optional. How many to skip before this page. Feed the previous result's next offset back in to carry on where it stopped.At least 0. Default:
0.
Outputs
categorytext- Which category was listed.
countnumber- How many records are in this result.
duaslist- The supplications.
found_nothingtrue/false- True when nothing matched. Finding nothing is an ordinary answer here, not an error, so this is the field to branch on.
has_moretrue/false- Whether more remain after this page.
modetext- Which question was answered: 'search', 'category' or 'all'.
next_offsetnumber- The Skip value that fetches the next page. Null on the last one.
querytext- What was searched for.
total_countnumber- How many there are in total, before paging.
Example output
{
"category": "morning",
"count": 1,
"duas": [
{
"arabic": "\u0623\u064e\u0635\u0652\u0628\u064e\u062d\u0652\u0646\u064e\u0627 \u0648\u064e\u0623\u064e\u0635\u0652\u0628\u064e\u062d\u064e \u0627\u0644\u0652\u0645\u064f\u0644\u0652\u0643\u064f \u0644\u0650\u0644\u064e\u0651\u0647\u0650 \u0648\u064e\u0627\u0644\u0652\u062d\u064e\u0645\u0652\u062f\u064f \u0644\u0650\u0644\u064e\u0651\u0647\u0650 \u0644\u064e\u0627 \u0625\u0650\u0644\u064e\u0647\u064e \u0625\u0650\u0644\u064e\u0651\u0627 \u0627\u0644\u0644\u064e\u0651\u0647\u064f \u0648\u064e\u062d\u0652\u062f\u064e\u0647\u064f \u0644\u064e\u0627 \u0634\u064e\u0631\u0650\u064a\u0643\u064e \u0644\u2026",
"category": "morning",
"category_name": "Morning Adhkar",
"id": 1,
"repeat": 1,
"source": "Abu Dawud 4:317",
"title": "Morning Remembrance",
"translation": "We have reached the morning and at this very time the whole kingdom belongs to Allah. All praise is due to Al\u2026",
"transliteration": "Asbahna wa asbahal-mulku lillah, walhamdu lillah, la ilaha illallahu wahdahu la shareeka lah, lahul-mulku wa \u2026"
}
],
"found_nothing": false,
"has_more": true,
"mode": "category",
"next_offset": 1,
"query": null,
"total_count": 7
}Find Islamic names
Look through 210 Islamic given names: search by meaning, filter by gender or origin, or fetch one by its number. Each comes with its Arabic, what it means, where it comes from and the root consonants it is built from - names sharing a root share a meaning. No API key required.
Inputs
- Name
name_idnumber - Optional. Which of the 210, by number.From 1 to 210.
- Search text
querytext - Optional. Searches the names, their Arabic and their meanings - 'light' finds Nur.
- Gender
gendertext - Optional. Leave empty for both.One of:
male(Boys' names),female(Girls' names). - Origin
origintext - Optional. e.g. Arabic, Persian. Ignored when searching.
- Page
pagenumber - Optional. Which page of results, counting from 1.At least 1.
- Number of results
limitnumber - Optional. Leave empty for all of them.From 1 to 500.
Outputs
countnumber- How many records are in this result.
found_nothingtrue/false- True when nothing matched. Finding nothing is an ordinary answer here, not an error, so this is the field to branch on.
gendertext- Which gender the result was narrowed to.
modetext- Which question was answered: 'one', 'search' or 'list'.
nameslist- The names.
pagenumber- Which page this is.
querytext- What was searched for.
total_countnumber- How many there are in total, before paging.
total_pagesnumber- How many pages there are.
Example output
{
"count": 1,
"found_nothing": false,
"gender": null,
"mode": "one",
"names": [
{
"arabic": "\u0645\u064f\u062d\u064e\u0645\u064e\u0651\u062f",
"gender": "male",
"id": 1,
"meaning": "Praised, commendable",
"name": "Muhammad",
"note": "The name of the Final Prophet (\ufdfa). Most common Islamic name worldwide.",
"origin": "Arabic",
"root": "\u062d \u0645 \u062f"
}
],
"page": 1,
"query": null,
"total_count": 210,
"total_pages": 70
}Get a chapter
Get a whole chapter of the Qur'an, verse by verse, in Arabic and in the translation you pick, with the recitation links for the chapter. Ask for a few verses at a time to read a long one over several days - Al-Baqara is 286 verses. No API key required.
Inputs
- Chapter
surahnumberRequired - Which of the Qur'an's 114 chapters (surahs), by number.From 1 to 114.
- Translation
translationtext - Which translation to return beside the Arabic. Leave it empty and every one of the twelve comes back, which is what you want if a later step picks the language. The Arabic and the transliteration are always there either way.One of:
sahih_international(Saheeh International (English)),pickthall(Pickthall (English)),yusuf_ali(Yusuf Ali (English)),urdu,turkish,indonesian,french,german,bengali,spanish,malay,bosnian. - Number of results
limitnumber - Optional. Leave empty for all of them.From 1 to 500.
- Skip
offsetnumber - Optional. How many to skip before this page. Feed the previous result's next offset back in to carry on where it stopped.At least 0. Default:
0.
Outputs
countnumber- How many records are in this result.
has_moretrue/false- Whether more remain after this page.
next_offsetnumber- The Skip value that fetches the next page. Null on the last one.
recitationslist- A recording of the whole chapter from each reciter.
surahobject- The chapter this record belongs to.
total_countnumber- How many there are in total, before paging.
verseslist- The verses of the chapter.
Example output
{
"count": 1,
"has_more": true,
"next_offset": 1,
"recitations": [
{
"ayah_audio_url": null,
"id": 1,
"name": "Mishary Rashid Alafasy",
"name_arabic": null,
"style": "Murattal",
"surah_audio_url": "https://download.quranicaudio.com/quran/mishaari_raashid_al_3afaasee/112.mp3"
}
],
"surah": {
"name": "Al-Ikhlaas",
"name_arabic": "\u0627\u0644\u0625\u062e\u0644\u0627\u0635",
"name_as_published": "Al-Ikhlas",
"name_meaning": "The Sincerity",
"number": 112,
"revealed_in": "Meccan",
"revelation_order": 22,
"starts_with_bismillah": true,
"verse_count": 4
},
"total_count": 4,
"verses": [
{
"arabic": "\u0671\u0644\u0644\u0651\u064e\u0647\u064f \u0644\u064e\u0627\u0653 \u0625\u0650\u0644\u064e\u0640\u0670\u0647\u064e \u0625\u0650\u0644\u0651\u064e\u0627 \u0647\u064f\u0648\u064e \u0671\u0644\u0652\u062d\u064e\u0649\u0651\u064f \u0671\u0644\u0652\u0642\u064e\u064a\u0651\u064f\u0648\u0645\u064f \u06da \u0644\u064e\u0627 \u062a\u064e\u0623\u0652\u062e\u064f\u0630\u064f\u0647\u064f\u06e5 \u0633\u0650\u0646\u064e\u0629\u064c \u0648\u064e\u0644\u064e\u0627 \u0646\u064e\u0648\u0652\u0645\u064c \u06da \u0644\u0651\u064e\u0647\u064f\u06e5 \u0645\u064e\u0627 \u0641\u0650\u0649\u2026",
"audio_url": null,
"ayah": 255,
"reference": "2:255",
"surah_name": "Al-Baqara",
"surah_name_as_published": null,
"surah_number": 2,
"translation": "All\u0101h - there is no deity except Him, the Ever-Living,1 the Self-Sustaining.2 Neither drowsiness overtakes Hi\u2026",
"translation_source": "sahih_international",
"translations": null,
"transliteration": "Allahu la ilaha illahuwa alhayyu alqayyoomu la ta/khuthuhusinatun wala nawmun lahu ma fee assamawatiwama fee \u2026"
}
]
}Get a du'a
Get one supplication by its number, or one at random, in Arabic with a transliteration, what it means, where it is narrated from and how many times it is said. A du'a a day on a schedule. No API key required.
Inputs
- Du'a
dua_idnumber - Optional. Which of the 126 duas. Leave it empty for one at random.From 1 to 126.
Outputs
duaobject- One supplication.
Example output
{
"dua": {
"arabic": "\u0623\u064e\u0635\u0652\u0628\u064e\u062d\u0652\u0646\u064e\u0627 \u0648\u064e\u0623\u064e\u0635\u0652\u0628\u064e\u062d\u064e \u0627\u0644\u0652\u0645\u064f\u0644\u0652\u0643\u064f \u0644\u0650\u0644\u064e\u0651\u0647\u0650 \u0648\u064e\u0627\u0644\u0652\u062d\u064e\u0645\u0652\u062f\u064f \u0644\u0650\u0644\u064e\u0651\u0647\u0650 \u0644\u064e\u0627 \u0625\u0650\u0644\u064e\u0647\u064e \u0625\u0650\u0644\u064e\u0651\u0627 \u0627\u0644\u0644\u064e\u0651\u0647\u064f \u0648\u064e\u062d\u0652\u062f\u064e\u0647\u064f \u0644\u064e\u0627 \u0634\u064e\u0631\u0650\u064a\u0643\u064e \u0644\u2026",
"category": "morning",
"category_name": "Morning Adhkar",
"id": 1,
"repeat": 1,
"source": "Abu Dawud 4:317",
"title": "Morning Remembrance",
"translation": "We have reached the morning and at this very time the whole kingdom belongs to Allah. All praise is due to Al\u2026",
"transliteration": "Asbahna wa asbahal-mulku lillah, walhamdu lillah, la ilaha illallahu wahdahu la shareeka lah, lahul-mulku wa \u2026"
}
}Get a hadith
Get one hadith by its number within a collection, in Arabic and English with its grading. Note the numbering is each collection's own and does not always start at 1 - Sahih Muslim's first hadith is not number 1 - so browse a collection if you need to know where it begins. No API key required.
Inputs
- Collection
collectiontextRequired - Which of the ten hadith collections.
- Hadith number
numbertextRequired - Its number within that collection. The collections run from 40 hadiths to 7,580.
Outputs
hadithobject- One hadith.
Example output
{
"hadith": {
"arabic": "\u062d\u064e\u062f\u0651\u064e\u062b\u064e\u0646\u064e\u0627 \u0627\u0644\u0652\u062d\u064f\u0645\u064e\u064a\u0652\u062f\u0650\u064a\u0651\u064f \u0639\u064e\u0628\u0652\u062f\u064f \u0627\u0644\u0644\u0651\u064e\u0647\u0650 \u0628\u0652\u0646\u064f \u0627\u0644\u0632\u0651\u064f\u0628\u064e\u064a\u0652\u0631\u0650 \u060c \u0642\u064e\u0627\u0644\u064e : \u062d\u064e\u062f\u0651\u064e\u062b\u064e\u0646\u064e\u0627 \u0633\u064f\u0641\u0652\u064a\u064e\u0627\u0646\u064f \u060c \u0642\u064e\u0627\u0644\u064e : \u062d\u064e\u062f\u0651\u064e\u062b\u064e\u0646\u064e\u0627\u2026",
"collection": "bukhari",
"collection_name": "Sahih al-Bukhari",
"english": "Narrated 'Umar bin Al-Khattab: I heard Allah's Messenger (\ufdfa) saying, \"The reward of deeds depends upon the in\u2026",
"grade": "Sahih",
"id": "bukhari-1",
"number": 1
}
}Get a juz
Get one of the 30 juz, the parts the Qur'an is divided into so it can be read through in a month. Put it on a schedule with the day of the month as the number and the whole month reads itself. A juz runs to 564 verses, so ask for a few at a time unless you want all of it. No API key required.
Inputs
- Juz
juznumberRequired - Which of the 30 juz.From 1 to 30.
- Translation
translationtext - Which translation to return beside the Arabic. Leave it empty and every one of the twelve comes back, which is what you want if a later step picks the language. The Arabic and the transliteration are always there either way.One of:
sahih_international(Saheeh International (English)),pickthall(Pickthall (English)),yusuf_ali(Yusuf Ali (English)),urdu,turkish,indonesian,french,german,bengali,spanish,malay,bosnian. - Number of results
limitnumber - Optional. Leave empty for all of them.From 1 to 500.
- Skip
offsetnumber - Optional. How many to skip before this page. Feed the previous result's next offset back in to carry on where it stopped.At least 0. Default:
0.
Outputs
chapters_coveredobject- Which chapters it spans and which verses of each, keyed by chapter number, e.g. {"78": "1-40"}. The juz's table of contents.
countnumber- How many records are in this result.
has_moretrue/false- Whether more remain after this page.
juznumber- Which juz, 1 to 30.
next_offsetnumber- The Skip value that fetches the next page. Null on the last one.
total_countnumber- How many there are in total, before paging.
verseslist- The verses in this page of the juz.
Example output
{
"chapters_covered": {
"78": "1-40",
"79": "1-46"
},
"count": 1,
"has_more": true,
"juz": 30,
"next_offset": 1,
"total_count": 564,
"verses": [
{
"arabic": "\u0671\u0644\u0644\u0651\u064e\u0647\u064f \u0644\u064e\u0627\u0653 \u0625\u0650\u0644\u064e\u0640\u0670\u0647\u064e \u0625\u0650\u0644\u0651\u064e\u0627 \u0647\u064f\u0648\u064e \u0671\u0644\u0652\u062d\u064e\u0649\u0651\u064f \u0671\u0644\u0652\u0642\u064e\u064a\u0651\u064f\u0648\u0645\u064f \u06da \u0644\u064e\u0627 \u062a\u064e\u0623\u0652\u062e\u064f\u0630\u064f\u0647\u064f\u06e5 \u0633\u0650\u0646\u064e\u0629\u064c \u0648\u064e\u0644\u064e\u0627 \u0646\u064e\u0648\u0652\u0645\u064c \u06da \u0644\u0651\u064e\u0647\u064f\u06e5 \u0645\u064e\u0627 \u0641\u0650\u0649\u2026",
"audio_url": null,
"ayah": 255,
"reference": "2:255",
"surah_name": "Al-Baqara",
"surah_name_as_published": null,
"surah_number": 2,
"translation": "All\u0101h - there is no deity except Him, the Ever-Living,1 the Self-Sustaining.2 Neither drowsiness overtakes Hi\u2026",
"translation_source": "sahih_international",
"translations": null,
"transliteration": "Allahu la ilaha illahuwa alhayyu alqayyoomu la ta/khuthuhusinatun wala nawmun lahu ma fee assamawatiwama fee \u2026"
}
]
}Get a mushaf page
Get one page of the 604-page Madina mushaf, word by word, with the line each word sits on and the verse it belongs to. What a Qur'an reader app lays a page out from. A page a day is the reading plan that finishes in under two years. No API key required.
Inputs
- Page
pagenumberRequired - Which page of the printed mushaf, 1 to 604.From 1 to 604.
Outputs
countnumber- How many records are in this result.
lines_per_pagenumber- How many lines a page holds: 15.
pagenumber- Which page, 1 to 604.
total_pagesnumber- How many pages the mushaf has: 604.
wordslist- Every word on the page, in reading order.
Example output
{
"count": 36,
"lines_per_page": 15,
"page": 1,
"total_pages": 604,
"words": [
{
"arabic": "\u0628\u0650\u0633\u0652\u0645\u0650",
"line": 2,
"position": 1,
"reference": "1:1",
"translation": "In (the) name",
"transliteration": "bis'mi",
"type": "word"
}
]
}Get a prayer timetable
Get a whole month of prayer times, or a whole Ramadan with suhoor and iftar named for each of the thirty days. The step to cache a timetable, print one, or post a fasting schedule before the month starts. Fill in the Ramadan year to get the Ramadan timetable instead of a calendar month. No API key required.
Inputs
- Latitude
latitudenumberRequired - Where you are, north-south, from -90 to 90.From -90 to 90.
- Longitude
longitudenumberRequired - Where you are, east-west, from -180 to 180.From -180 to 180.
- Ramadan year
ramadan_yearnumber - Optional. A Gregorian year. Filling this in switches to the Ramadan timetable and ignores the month and year below.From 622 to 2500.
- Month
monthnumber - Optional. 1 to 12. This month if you leave it empty.From 1 to 12.
- Year
yearnumber - Optional. This year if you leave it empty.From 622 to 2500.
- Calculation method
methodtext - Which authority's angles to use. Muslim World League if you leave it alone. Pick the one your local mosque follows: the methods differ by several minutes at Fajr and Isha, which is where timetables disagree.
- Madhab
madhabtext - Which ruling to use for Asr, which the schools place at different hours. Shafi'i if you leave it alone; the Hanafi Asr is about an hour later. This is the setting most likely to make a timetable disagree with the mosque down the road.One of:
Shafi(Shafi'i, Maliki or Hanbali - the earlier Asr),Hanafi(Hanafi - the later Asr). - Time zone
timezonetext - Optional. An IANA zone such as America/New_York. Leave it empty and the service works one out from the coordinates, which is right almost everywhere; set it where a border makes that ambiguous.
- High-latitude rule
high_latitude_ruletext - Only matters above about 48 degrees, where in summer the sun never dips far enough for Fajr and Isha to have a real time and a plain calculation gives times hours apart or none at all. 'Recommended' picks a usable rule for the place and season.One of:
recommended(Recommended - let the service choose a usable rule),MiddleOfNight(Middle of the night),SeventhOfNight(One seventh of the night),TwilightAngle(Twilight angle).
Outputs
calculation_methodtext- Which authority's angles were used.
countnumber- How many records are in this result.
dayslist- One entry per day.
ends_ontext- Its last day, as YYYY-MM-DD.
hijri_yearnumber- The Hijri year, in 'ramadan'.
kindtext- 'month' or 'ramadan'. In 'ramadan' each day also carries suhoor and iftar.
locationobject- The coordinates this was worked out for.
madhabtext- Which ruling placed Asr.
monthnumber- Which month, 1 to 12.
month_nametext- Its name.
starts_ontext- The first day of Ramadan, as YYYY-MM-DD.
timezonetext- The zone used.
yearnumber- The Gregorian year.
Example output
{
"calculation_method": "MuslimWorldLeague",
"count": 31,
"days": [
{
"date": "2026-03-01",
"other_times": {
"imsak": {
"at": "2026-09-15T04:54:00-04:00",
"time": "04:54"
},
"sunrise": {
"at": "2026-09-15T06:37:00-04:00",
"time": "06:37"
}
},
"prayers": {
"asr": {
"at": "2026-09-15T16:21:00-04:00",
"time": "16:21"
},
"dhuhr": {
"at": "2026-09-15T12:52:00-04:00",
"time": "12:52"
},
"fajr": {
"at": "2026-09-15T05:04:00-04:00",
"time": "05:04"
},
"isha": {
"at": "2026-09-15T20:32:00-04:00",
"time": "20:32"
},
"maghrib": {
"at": "2026-09-15T19:05:00-04:00",
"time": "19:05"
}
}
}
],
"kind": "month",
"location": {
"latitude": 40.7128,
"longitude": -74.006
},
"madhab": "Shafi",
"month": 3,
"month_name": "March",
"timezone": "America/New_York",
"year": 2026
}Get a random hadith
Get one hadith drawn at random from all 36,108, or from a single collection. A hadith a day on a schedule, with no list to keep. Check the grade before posting one: the four Sunan carry hadiths of mixed reliability. No API key required.
Inputs
- Collection
collectiontext - Optional. Leave empty to draw from all ten collections, 36,108 hadiths in total.
Outputs
hadithobject- One hadith.
Example output
{
"hadith": {
"arabic": "\u062d\u064e\u062f\u0651\u064e\u062b\u064e\u0646\u064e\u0627 \u0627\u0644\u0652\u062d\u064f\u0645\u064e\u064a\u0652\u062f\u0650\u064a\u0651\u064f \u0639\u064e\u0628\u0652\u062f\u064f \u0627\u0644\u0644\u0651\u064e\u0647\u0650 \u0628\u0652\u0646\u064f \u0627\u0644\u0632\u0651\u064f\u0628\u064e\u064a\u0652\u0631\u0650 \u060c \u0642\u064e\u0627\u0644\u064e : \u062d\u064e\u062f\u0651\u064e\u062b\u064e\u0646\u064e\u0627 \u0633\u064f\u0641\u0652\u064a\u064e\u0627\u0646\u064f \u060c \u0642\u064e\u0627\u0644\u064e : \u062d\u064e\u062f\u0651\u064e\u062b\u064e\u0646\u064e\u0627\u2026",
"collection": "bukhari",
"collection_name": "Sahih al-Bukhari",
"english": "Narrated 'Umar bin Al-Khattab: I heard Allah's Messenger (\ufdfa) saying, \"The reward of deeds depends upon the in\u2026",
"grade": "Sahih",
"id": "bukhari-1",
"number": 1
}
}Get a random verse
Get one verse drawn at random from all 6,236, in Arabic and in the translation you pick. Put it on a schedule for a verse a day with no list to keep. Note this is a fresh draw every time rather than a verse of the day: two runs a minute apart get two different verses. No API key required.
Inputs
- Translation
translationtext - Which translation to return beside the Arabic. Leave it empty and every one of the twelve comes back, which is what you want if a later step picks the language. The Arabic and the transliteration are always there either way.One of:
sahih_international(Saheeh International (English)),pickthall(Pickthall (English)),yusuf_ali(Yusuf Ali (English)),urdu,turkish,indonesian,french,german,bengali,spanish,malay,bosnian.
Outputs
surahobject- The chapter this record belongs to.
verseobject- One verse of the Qur'an.
Example output
{
"surah": {
"name": "Al-Ikhlaas",
"name_arabic": "\u0627\u0644\u0625\u062e\u0644\u0627\u0635",
"name_as_published": "Al-Ikhlas",
"name_meaning": "The Sincerity",
"number": 112,
"revealed_in": "Meccan",
"revelation_order": 22,
"starts_with_bismillah": true,
"verse_count": 4
},
"verse": {
"arabic": "\u0671\u0644\u0644\u0651\u064e\u0647\u064f \u0644\u064e\u0627\u0653 \u0625\u0650\u0644\u064e\u0640\u0670\u0647\u064e \u0625\u0650\u0644\u0651\u064e\u0627 \u0647\u064f\u0648\u064e \u0671\u0644\u0652\u062d\u064e\u0649\u0651\u064f \u0671\u0644\u0652\u0642\u064e\u064a\u0651\u064f\u0648\u0645\u064f \u06da \u0644\u064e\u0627 \u062a\u064e\u0623\u0652\u062e\u064f\u0630\u064f\u0647\u064f\u06e5 \u0633\u0650\u0646\u064e\u0629\u064c \u0648\u064e\u0644\u064e\u0627 \u0646\u064e\u0648\u0652\u0645\u064c \u06da \u0644\u0651\u064e\u0647\u064f\u06e5 \u0645\u064e\u0627 \u0641\u0650\u0649\u2026",
"audio_url": null,
"ayah": 255,
"reference": "2:255",
"surah_name": "Al-Baqara",
"surah_name_as_published": null,
"surah_number": 2,
"translation": "All\u0101h - there is no deity except Him, the Ever-Living,1 the Self-Sustaining.2 Neither drowsiness overtakes Hi\u2026",
"translation_source": "sahih_international",
"translations": null,
"transliteration": "Allahu la ilaha illahuwa alhayyu alqayyoomu la ta/khuthuhusinatun wala nawmun lahu ma fee assamawatiwama fee \u2026"
}
}Get a recitation
Get the audio for a chapter or a single verse. Name a reciter and you get that reciter's recording of the chapter plus a file for every verse in it; leave it empty and you get all thirteen reciters' recordings to choose between. This is the only step where the reciter is honoured. Note that two of the thirteen recorded whole surahs only, so asking for a single verse returns them with no audio link. No API key required.
Inputs
- Chapter
surahnumberRequired - Which of the Qur'an's 114 chapters (surahs), by number.From 1 to 114.
- Verse
ayahnumber - Optional. Leave empty for the whole chapter. Fill it in for one verse.From 1 to 286.
- Reciter
recitertext - Optional. Leave empty for every reciter's recording. Naming one narrows it and adds a file per verse - only when you asked for a chapter rather than one verse.
Outputs
ayah_audio_urlslist- Every verse of the chapter as its own MP3, in order - what a verse-at-a-time player needs. Present only when a reciter was named.
countnumber- How many records are in this result.
recitationslist- One entry per reciter, or a single entry when one was named.
referencetext- The verse this is for, e.g. 2:255. Null when a whole chapter was asked for.
surahobject- The chapter this record belongs to.
Example output
{
"ayah_audio_urls": null,
"count": 13,
"recitations": [
{
"ayah_audio_url": null,
"id": 1,
"name": "Mishary Rashid Alafasy",
"name_arabic": null,
"style": "Murattal",
"surah_audio_url": "https://download.quranicaudio.com/quran/mishaari_raashid_al_3afaasee/112.mp3"
}
],
"reference": null,
"surah": {
"name": "Al-Ikhlaas",
"name_arabic": "\u0627\u0644\u0625\u062e\u0644\u0627\u0635",
"name_as_published": "Al-Ikhlas",
"name_meaning": "The Sincerity",
"number": 112,
"revealed_in": "Meccan",
"revelation_order": 22,
"starts_with_bismillah": true,
"verse_count": 4
}
}Get a verse
Get one verse of the Qur'an by chapter and verse number, in Arabic and in the translation you pick, with a transliteration and a recitation from each of the thirteen reciters. The step behind quoting a verse in a message, a newsletter or a card. No API key required.
Inputs
- Chapter
surahnumberRequired - Which of the Qur'an's 114 chapters (surahs), by number.From 1 to 114.
- Verse
ayahnumberRequired - Which verse of that chapter, counting from 1. Chapters run from 3 verses to 286, and a number past the end of the one you picked says how many it has.From 1 to 286.
- Translation
translationtext - Which translation to return beside the Arabic. Leave it empty and every one of the twelve comes back, which is what you want if a later step picks the language. The Arabic and the transliteration are always there either way.One of:
sahih_international(Saheeh International (English)),pickthall(Pickthall (English)),yusuf_ali(Yusuf Ali (English)),urdu,turkish,indonesian,french,german,bengali,spanish,malay,bosnian.
Outputs
recitationslist- A recording of this verse from each reciter.
surahobject- The chapter this record belongs to.
verseobject- One verse of the Qur'an.
Example output
{
"recitations": [
{
"ayah_audio_url": null,
"id": 1,
"name": "Mishary Rashid Alafasy",
"name_arabic": null,
"style": "Murattal",
"surah_audio_url": "https://download.quranicaudio.com/quran/mishaari_raashid_al_3afaasee/112.mp3"
}
],
"surah": {
"name": "Al-Ikhlaas",
"name_arabic": "\u0627\u0644\u0625\u062e\u0644\u0627\u0635",
"name_as_published": "Al-Ikhlas",
"name_meaning": "The Sincerity",
"number": 112,
"revealed_in": "Meccan",
"revelation_order": 22,
"starts_with_bismillah": true,
"verse_count": 4
},
"verse": {
"arabic": "\u0671\u0644\u0644\u0651\u064e\u0647\u064f \u0644\u064e\u0627\u0653 \u0625\u0650\u0644\u064e\u0640\u0670\u0647\u064e \u0625\u0650\u0644\u0651\u064e\u0627 \u0647\u064f\u0648\u064e \u0671\u0644\u0652\u062d\u064e\u0649\u0651\u064f \u0671\u0644\u0652\u0642\u064e\u064a\u0651\u064f\u0648\u0645\u064f \u06da \u0644\u064e\u0627 \u062a\u064e\u0623\u0652\u062e\u064f\u0630\u064f\u0647\u064f\u06e5 \u0633\u0650\u0646\u064e\u0629\u064c \u0648\u064e\u0644\u064e\u0627 \u0646\u064e\u0648\u0652\u0645\u064c \u06da \u0644\u0651\u064e\u0647\u064f\u06e5 \u0645\u064e\u0627 \u0641\u0650\u0649\u2026",
"audio_url": null,
"ayah": 255,
"reference": "2:255",
"surah_name": "Al-Baqara",
"surah_name_as_published": null,
"surah_number": 2,
"translation": "All\u0101h - there is no deity except Him, the Ever-Living,1 the Self-Sustaining.2 Neither drowsiness overtakes Hi\u2026",
"translation_source": "sahih_international",
"translations": null,
"transliteration": "Allahu la ilaha illahuwa alhayyu alqayyoomu la ta/khuthuhusinatun wala nawmun lahu ma fee assamawatiwama fee \u2026"
}
}Get prayer times
Get the five prayer times for a place and a day, with which prayer is on now, which is next and how long until it. Imsak and sunrise come back beside them, so a suhoor reminder has what it needs. Every time is given both as a clock time and as a full timestamp with its UTC offset, which is what you want for scheduling. No API key required.
Inputs
- Latitude
latitudenumberRequired - Where you are, north-south, from -90 to 90.From -90 to 90.
- Longitude
longitudenumberRequired - Where you are, east-west, from -180 to 180.From -180 to 180.
- Date
datedate - Optional. Today if you leave it empty.
- Calculation method
methodtext - Which authority's angles to use. Muslim World League if you leave it alone. Pick the one your local mosque follows: the methods differ by several minutes at Fajr and Isha, which is where timetables disagree.
- Madhab
madhabtext - Which ruling to use for Asr, which the schools place at different hours. Shafi'i if you leave it alone; the Hanafi Asr is about an hour later. This is the setting most likely to make a timetable disagree with the mosque down the road.One of:
Shafi(Shafi'i, Maliki or Hanbali - the earlier Asr),Hanafi(Hanafi - the later Asr). - Time zone
timezonetext - Optional. An IANA zone such as America/New_York. Leave it empty and the service works one out from the coordinates, which is right almost everywhere; set it where a border makes that ambiguous.
- High-latitude rule
high_latitude_ruletext - Only matters above about 48 degrees, where in summer the sun never dips far enough for Fajr and Isha to have a real time and a plain calculation gives times hours apart or none at all. 'Recommended' picks a usable rule for the place and season.One of:
recommended(Recommended - let the service choose a usable rule),MiddleOfNight(Middle of the night),SeventhOfNight(One seventh of the night),TwilightAngle(Twilight angle).
Outputs
calculation_methodtext- Which authority's angles were used.
current_prayertext- Which prayer's window it is now.
datetext- The day, as YYYY-MM-DD.
high_latitude_ruletext- Which twilight rule was applied, annotated by the service - e.g. 'MiddleOfTheNight (default)' or 'SeventhOfTheNight (auto)'.
is_high_latitudetrue/false- True above 48 degrees, where Fajr and Isha need a twilight rule to have usable times in summer.
locationobject- The coordinates this was worked out for.
madhabtext- Which ruling placed Asr.
minutes_until_nextnumber- How many minutes until it.
next_prayertext- Which prayer comes next.
other_timesobject- Two times that come back beside the prayers and are not prayers: imsak, when a fast begins, and sunrise, which ends Fajr's window. Neither should ever be announced as the next prayer.
prayersobject- The five obligatory prayers, keyed fajr, dhuhr, asr, maghrib and isha.
time_until_nexttext- The same, in words, e.g. 'an hour'.
timezonetext- The zone the clock times are in.
Example output
{
"calculation_method": "MuslimWorldLeague",
"current_prayer": "asr",
"date": "2026-09-15",
"high_latitude_rule": "MiddleOfTheNight (default)",
"is_high_latitude": false,
"location": {
"latitude": 40.7128,
"longitude": -74.006
},
"madhab": "Shafi",
"minutes_until_next": 49,
"next_prayer": "maghrib",
"other_times": {
"imsak": {
"at": "2026-09-15T04:54:00-04:00",
"time": "04:54"
},
"sunrise": {
"at": "2026-09-15T06:37:00-04:00",
"time": "06:37"
}
},
"prayers": {
"asr": {
"at": "2026-09-15T16:21:00-04:00",
"time": "16:21"
},
"dhuhr": {
"at": "2026-09-15T12:52:00-04:00",
"time": "12:52"
},
"fajr": {
"at": "2026-09-15T05:04:00-04:00",
"time": "05:04"
},
"isha": {
"at": "2026-09-15T20:32:00-04:00",
"time": "20:32"
},
"maghrib": {
"at": "2026-09-15T19:05:00-04:00",
"time": "19:05"
}
},
"time_until_next": "an hour",
"timezone": "America/New_York"
}Get similar verses
Find the verses that closely resemble another - the mutashabihat, the ones huffaz mix up. Give a chapter and a verse for that verse's matches, a chapter alone to list every verse in it that has any, or leave both empty to draw one at random, which is the step a daily revision quiz is built on. Most verses have none: 1,211 of the 6,236 are in this dataset. No API key required.
Inputs
- Chapter
surahnumber - Optional. Leave empty, with the verse empty too, to draw a random verse that has matches.From 1 to 114.
- Verse
ayahnumber - Optional. With a chapter, gives that verse's matches. Without one, lists every verse in the chapter that has any.From 1 to 286.
- Page
pagenumber - Optional. Which page of results, counting from 1.At least 1.
- Number of results
limitnumber - Optional. 25 by default.From 1 to 50.
Outputs
arabictext- The verse in Arabic.
ayahnumber- Its verse number.
countnumber- How many records are in this result.
found_nothingtrue/false- True when nothing matched. Finding nothing is an ordinary answer here, not an error, so this is the field to branch on.
modetext- Which of the three questions was answered: 'ayah', 'surah' or 'random'. The shape of the rest depends on it - 'surah' answers with 'verses', the other two with one verse and its 'similar_verses'.
pagenumber- Which page, in 'surah' mode.
referencetext- The verse asked about, e.g. 2:2.
similar_verseslist- The verses that resemble it.
surahobject- The chapter this record belongs to.
surah_nametext- That chapter's name.
surah_numbernumber- Its chapter.
total_countnumber- How many there are in total, before paging.
total_pagesnumber- How many pages there are, in 'surah' mode.
translationtext- The verse in English.
verseslist- In 'surah' mode, every verse of the chapter that has matches, each with its own similar verses.
Example output
{
"arabic": "\u0630\u064e\u0670\u0644\u0650\u0643\u064e \u0671\u0644\u0652\u0643\u0650\u062a\u064e\u0640\u0670\u0628\u064f \u0644\u064e\u0627 \u0631\u064e\u064a\u0652\u0628\u064e \u06db \u0641\u0650\u064a\u0647\u0650 \u06db \u0647\u064f\u062f\u064b\u0649 \u0644\u0650\u0651\u0644\u0652\u0645\u064f\u062a\u064e\u0651\u0642\u0650\u064a\u0646\u064e",
"ayah": 2,
"count": 3,
"found_nothing": false,
"mode": "ayah",
"reference": "2:2",
"similar_verses": [
{
"arabic": "\u0647\u064f\u062f\u064b\u0649 \u0648\u064e\u0631\u064e\u062d\u0652\u0645\u064e\u0629\u064b \u0644\u0650\u0651\u0644\u0652\u0645\u064f\u062d\u0652\u0633\u0650\u0646\u0650\u064a\u0646\u064e",
"ayah": 3,
"reference": "31:3",
"surah_name": "Luqman",
"surah_number": 31,
"translation": "As guidance and mercy for the doers of good"
}
],
"surah_name": "Al-Baqara",
"surah_number": 2,
"translation": "This is the Book about which there is no doubt, a guidance for those conscious of Allah."
}Get tafsir
Get scholarly commentary on a verse, or on a whole chapter, from Ibn Kathir, Ma'arif al-Qur'an, al-Muyassar, or all four at once. Two are in English and two in Arabic. Note the classical works comment on a run of verses at a time rather than one by one, so a chapter of four verses can come back as a single comment covering all four. No API key required.
Inputs
- Tafsir
tafsirtextRequired - Which commentary to read, or all four together.
- Chapter
surahnumberRequired - Which of the Qur'an's 114 chapters (surahs), by number.From 1 to 114.
- Verse
ayahnumber - Optional. Leave empty for the whole chapter. Fill it in for one verse.From 1 to 286.
Outputs
ayahnumber- Its verse number.
commentarieslist- The commentary. One entry per work when a verse was asked for, one per passage when a chapter was.
countnumber- How many commentaries came back - not how many verses. A chapter covered by one comment is not a truncated answer.
referencetext- The verse commented on, e.g. 1:1.
surahobject- The chapter this record belongs to.
surah_nametext- That chapter's name.
surah_numbernumber- Its chapter.
tafsirobject- Which work this is, when a chapter was asked for.
Example output
{
"ayah": 1,
"commentaries": [
{
"author": "Hafiz Ibn Kathir",
"key": "ibn_kathir",
"language": "english",
"name": "Ibn Kathir (Abridged)",
"text": "Introduction to Fatihah. Which was revealed in Makkah\u2026"
}
],
"count": 1,
"reference": "1:1",
"surah_name": "Al-Faatiha",
"surah_number": 1
}Get the 99 names of Allah
Get the Asma ul Husna: all 99, one by number, a search by meaning, or the handful set aside for a given day of the week. Each comes with the Arabic, a transliteration and what it means. Fill in only one of the three fields. No API key required.
Inputs
- Name number
numbernumber - Optional. Which of the 99. Leave empty for all of them.From 1 to 99.
- Search text
querytext - Optional. Searches the meanings and transliterations.
- Day of the week
weekdaytext - Optional. The names set aside for reciting that day.One of:
1(Monday),2(Tuesday),3(Wednesday),4(Thursday),5(Friday),6(Saturday),7(Sunday).
Outputs
countnumber- How many records are in this result.
found_nothingtrue/false- True when nothing matched. Finding nothing is an ordinary answer here, not an error, so this is the field to branch on.
modetext- Which question was answered: 'all', 'one', 'search' or 'daily'.
nameslist- The names.
weekdaytext- Which day, in 'daily' mode, e.g. Monday.
Example output
{
"count": 1,
"found_nothing": false,
"mode": "one",
"names": [
{
"arabic": "\u0627\u0644\u0631\u064e\u0651\u062d\u0652\u0645\u0670\u0646\u064f",
"english": "The Most Merciful",
"meaning": "The One who has plenty of mercy for the believers and the blasphemers in this world and especially for the be\u2026",
"number": 1,
"transliteration": "Ar-Rahman"
}
],
"weekday": null
}Get the nisab thresholds
Get the gold and silver nisab thresholds and the live metal prices behind them, in any currency. Nisab is the wealth a person must hold before zakat is due at all, and the two standards give very different answers - silver has been much the cheaper for a century, so the silver threshold catches far more people. Check is_fallback before acting on a figure. No API key required.
Inputs
- Currency
currencytext - Optional. An ISO code such as USD, GBP, PKR or SAR. Metal prices and thresholds come back in it. US dollars if you leave it alone.
- Gold price per gram
gold_price_per_gramnumber - Optional. Overrides the live price, for working to a local dealer's rate.At least 0.
- Silver price per gram
silver_price_per_gramnumber - Optional. Overrides the live price.At least 0.
Outputs
currencytext- The ISO code used.
goldobject- The gold standard.
pricesobject- The metal prices this calculation used.
silverobject- The silver standard.
zakat_ratetext- The rate due above the threshold: 2.5%.
Example output
{
"currency": "USD",
"gold": {
"price_per_gram": 138.08,
"threshold_grams": 85,
"value": 11736.8
},
"prices": {
"as_of": "2026-09-15T22:00:35.282+00:00",
"auto_filled": true,
"currency": "USD",
"gold_price_per_gram": 138.08,
"is_fallback": false,
"silver_price_per_gram": 2.05,
"source": "gold-api.com (spot)"
},
"silver": {
"price_per_gram": 2.05,
"threshold_grams": 595,
"value": 1219.75
},
"zakat_rate": "2.5%"
}Get the qibla direction
Get the compass bearing from any place to the Kaaba, with the distance in kilometres and miles. The bearing is from true north rather than magnetic north, so anything pointing a physical needle has to correct for declination first. No API key required.
Inputs
- Latitude
latitudenumberRequired - Where you are, north-south, from -90 to 90.From -90 to 90.
- Longitude
longitudenumberRequired - Where you are, east-west, from -180 to 180.From -180 to 180.
Outputs
bearing_degreesnumber- Degrees clockwise from true north, 0 to 360.
compass_pointtext- The same, as a compass point, e.g. ENE.
distance_kmnumber- How far the Kaaba is, in kilometres.
distance_milesnumber- The same, in miles.
is_true_northtrue/false- Always true: the bearing is from geographic north, not magnetic. A phone compass reads magnetic, and the two differ by up to 20 degrees depending on where you are.
kaabaobject- The coordinates this was worked out for.
locationobject- The coordinates this was worked out for.
Example output
{
"bearing_degrees": 58.48,
"compass_point": "ENE",
"distance_km": 10306.31,
"distance_miles": 6404.04,
"is_true_north": true,
"kaaba": {
"latitude": 21.4225,
"longitude": 39.8262
},
"location": {
"latitude": 40.7128,
"longitude": -74.006
}
}Get today's Islamic date
Get today's Hijri date with the moon beside it: the phase, how lit it is, whether the crescent is visible, and when the next new moon falls. One step rather than two, because the two questions are always asked together - what the date is, and whether the crescent that starts the next month has been seen. Flags Ramadan and the sacred months. No API key required.
Inputs
- Date
datedate - Optional. Today if you leave it empty.
Outputs
gregorianobject- The same day in the Gregorian calendar.
hijriobject- A date in the Islamic calendar.
is_ramadantrue/false- True during Ramadan. The field to branch on.
is_sacred_monthtrue/false- True in Muharram, Rajab, Dhu al-Qi'dah and Dhu al-Hijjah. Ramadan is not one of them.
moonobject- The moon tonight.
Example output
{
"gregorian": {
"date": "2026-09-15",
"day": 15,
"day_of_week": "Tuesday",
"formatted": "Tuesday, September 15, 2026",
"month": 9,
"month_name": "September",
"year": 2026
},
"hijri": {
"date": "1448-04-04",
"day": 4,
"formatted": "04 Rabi' al-Thani 1448 AH",
"is_sacred_month": false,
"month": 4,
"month_name": "Rabi al-Thani",
"month_name_arabic": "\u0631\u064e\u0628\u0650\u064a\u0639 \u0627\u0644\u062b\u064e\u0651\u0627\u0646\u0650\u064a",
"month_name_as_published": "Rabi' al-thani",
"year": 1448
},
"is_ramadan": false,
"is_sacred_month": false,
"moon": {
"age_days": 3.86,
"crescent_note": "Moon is clearly visible in the evening sky.",
"crescent_visibility": "clearly_visible",
"illumination_percent": 26.1,
"last_new_moon": "2026-09-11",
"next_new_moon": "2026-10-10",
"phase": "Waxing Crescent"
}
}Get word-by-word meanings
Get every word of a verse, or of a whole chapter, with its Arabic, its transliteration and what it means on its own. The step behind a word-by-word reader, a vocabulary drill or a study card. No API key required.
Inputs
- Chapter
surahnumberRequired - Which of the Qur'an's 114 chapters (surahs), by number.From 1 to 114.
- Verse
ayahnumber - Optional. Leave empty for the whole chapter. Fill it in for one verse.From 1 to 286.
Outputs
countnumber- How many records are in this result.
surahobject- The chapter this record belongs to.
verseslist- One entry per verse, each holding its words.
Example output
{
"count": 1,
"surah": {
"name": "Al-Ikhlaas",
"name_arabic": "\u0627\u0644\u0625\u062e\u0644\u0627\u0635",
"name_as_published": "Al-Ikhlas",
"name_meaning": "The Sincerity",
"number": 112,
"revealed_in": "Meccan",
"revelation_order": 22,
"starts_with_bismillah": true,
"verse_count": 4
},
"verses": [
{
"ayah": 1,
"reference": "1:1",
"word_count": 4,
"words": [
{
"arabic": "\u0628\u0650\u0633\u0652\u0645\u0650",
"position": 1,
"translation": "In (the) name",
"transliteration": "bis'mi",
"type": "word"
}
]
}
]
}List calculation methods
List every prayer-time calculation method with the angles it uses for Fajr and Isha, what it is used for and which short names it answers to. The step to find the method your mosque follows, or to see why two timetables disagree. No API key required.
Inputs
None.
Outputs
countnumber- How many records are in this result.
default_high_latitude_ruletext- Which is used when none is named.
default_methodtext- What is used when none is named.
high_latitude_ruleslist- The twilight rules available.
madhabslist- The values the Madhab field takes.
methodslist- The methods the service accepts.
Example output
{
"count": 27,
"default_high_latitude_rule": "MiddleOfTheNight (adhan default, kept for backward compatibility)",
"default_method": "MuslimWorldLeague",
"high_latitude_rules": [
"recommended",
"MiddleOfNight",
"SeventhOfNight",
"TwilightAngle"
],
"madhabs": [
"Shafi",
"Hanafi",
"Maliki",
"Hanbali"
],
"methods": [
{
"aliases": [
"mwl",
"worldleague"
],
"description": "General purpose method used in many countries",
"fajr_angle": "18\u00b0",
"is_really_a_madhab": false,
"isha_angle": "17\u00b0",
"isha_rule": null,
"key": "MuslimWorldLeague",
"name": "Muslim World League"
}
]
}List du'a categories
List the 27 categories the duas are filed under, with how many each holds. The step to pick a category from before listing its duas. No API key required.
Inputs
None.
Outputs
categorieslist- The categories.
countnumber- How many records are in this result.
Example output
{
"categories": [
{
"description": "Supplications for the morning",
"dua_count": 7,
"id": "morning",
"name": "Morning Adhkar"
}
],
"count": 27
}List hadith collections
List the ten collections with their authors, how many hadiths each holds and how the collection as a whole is regarded - Bukhari and Muslim are Sahih throughout, the four Sunan are mixed. The step to pick a collection from, or to check one before quoting from it. No API key required.
Inputs
None.
Outputs
collectionslist- The ten collections.
countnumber- How many records are in this result.
Example output
{
"collections": [
{
"author": "Imam Muhammad al-Bukhari",
"hadith_count": 7580,
"key": "bukhari",
"name": "Sahih al-Bukhari",
"name_arabic": "\u0635\u062d\u064a\u062d \u0627\u0644\u0628\u062e\u0627\u0631\u064a",
"reliability": "Sahih"
}
],
"count": 10
}List Islamic events
List the Islamic year's observances - the two Eids, Ramadan, Ashura, Laylat al-Qadr and the rest - each with the Hijri month and day it falls on, plus which one is next. The step behind a reminder that fires before an Eid. No API key required.
Inputs
None.
Outputs
countnumber- How many records are in this result.
current_hijriobject- A date in the Islamic calendar.
eventslist- The observances of the Islamic year.
next_eventobject- The next one to fall.
Example output
{
"count": 11,
"current_hijri": {
"date": "1448-04-04",
"day": 4,
"formatted": "04 Rabi' al-Thani 1448 AH",
"is_sacred_month": false,
"month": 4,
"month_name": "Rabi al-Thani",
"month_name_arabic": "\u0631\u064e\u0628\u0650\u064a\u0639 \u0627\u0644\u062b\u064e\u0651\u0627\u0646\u0650\u064a",
"month_name_as_published": "Rabi' al-thani",
"year": 1448
},
"events": [
{
"description": "Beginning of new Hijri year",
"hijri_day": 1,
"hijri_month": 1,
"hijri_month_name": "Muharram",
"name": "Islamic New Year"
}
],
"next_event": {
"hijri_date": "27 Rajab 1448 AH",
"hijri_day": 27,
"hijri_month": 7,
"name": "Isra and Mi'raj"
}
}List the chapters
List the Qur'an's 114 chapters in order, each with its name, what the name means, how many verses it holds, where it was revealed and where it falls in the order of revelation. The index to build a table of contents from or to loop a workflow over. No API key required.
Inputs
- Revealed in
revealed_intext - Optional. Leave empty for all 114. Meccan chapters are the earlier 86 and Medinan the later 28.One of:
Meccan(Meccan - revealed before the migration),Medinan(Medinan - revealed after it).
Outputs
countnumber- How many records are in this result.
surahslist- The chapters, in the order they are printed.
Example output
{
"count": 114,
"surahs": [
{
"name": "Al-Ikhlaas",
"name_arabic": "\u0627\u0644\u0625\u062e\u0644\u0627\u0635",
"name_as_published": "Al-Ikhlas",
"name_meaning": "The Sincerity",
"number": 112,
"revealed_in": "Meccan",
"revelation_order": 22,
"starts_with_bismillah": true,
"verse_count": 4
}
]
}List the coming new moons
List the coming new moons with the date each crescent should first be visible and which Hijri month it starts. The conjunction and the sighting are not the same event - the new moon is an instant, and the crescent appears a day or so later, which is when the month actually begins. The step to plan around Ramadan or Dhu al-Hijjah months ahead. No API key required.
Inputs
- How many
countnumber - Optional. 12 by default, at most 24.From 1 to 24. Default:
12.
Outputs
countnumber- How many records are in this result.
new_moonslist- The coming new moons, soonest first.
Example output
{
"count": 12,
"new_moons": [
{
"expected_crescent": {
"date": "2026-10-11",
"formatted": "11 October 2026",
"time": null
},
"hijri": {
"date": "1448-04-04",
"day": 4,
"formatted": "04 Rabi' al-Thani 1448 AH",
"is_sacred_month": false,
"month": 4,
"month_name": "Rabi al-Thani",
"month_name_arabic": "\u0631\u064e\u0628\u0650\u064a\u0639 \u0627\u0644\u062b\u064e\u0651\u0627\u0646\u0650\u064a",
"month_name_as_published": "Rabi' al-thani",
"year": 1448
},
"lunation": 330,
"new_moon": {
"date": "2026-10-10",
"formatted": "10 October 2026",
"time": "03:50"
}
}
]
}Search hadiths
Find hadiths whose text matches a word or phrase, across all ten collections or within one. Finding nothing comes back as an empty result rather than an error. No API key required.
Inputs
- Search text
querytextRequired - The word or phrase to look for.
- Collection
collectiontext - Optional. Leave empty to draw from all ten collections, 36,108 hadiths in total.
- Number of results
limitnumber - Optional. Leave empty for all of them.From 1 to 500.
Outputs
collectiontext- Which collection was searched, or null for all.
countnumber- How many records are in this result.
found_nothingtrue/false- True when nothing matched. Finding nothing is an ordinary answer here, not an error, so this is the field to branch on.
hadithslist- The hadiths that matched.
querytext- What was searched for.
Example output
{
"collection": null,
"count": 1,
"found_nothing": false,
"hadiths": [
{
"arabic": "\u062d\u064e\u062f\u0651\u064e\u062b\u064e\u0646\u064e\u0627 \u0627\u0644\u0652\u062d\u064f\u0645\u064e\u064a\u0652\u062f\u0650\u064a\u0651\u064f \u0639\u064e\u0628\u0652\u062f\u064f \u0627\u0644\u0644\u0651\u064e\u0647\u0650 \u0628\u0652\u0646\u064f \u0627\u0644\u0632\u0651\u064f\u0628\u064e\u064a\u0652\u0631\u0650 \u060c \u0642\u064e\u0627\u0644\u064e : \u062d\u064e\u062f\u0651\u064e\u062b\u064e\u0646\u064e\u0627 \u0633\u064f\u0641\u0652\u064a\u064e\u0627\u0646\u064f \u060c \u0642\u064e\u0627\u0644\u064e : \u062d\u064e\u062f\u0651\u064e\u062b\u064e\u0646\u064e\u0627\u2026",
"collection": "bukhari",
"collection_name": "Sahih al-Bukhari",
"english": "Narrated 'Umar bin Al-Khattab: I heard Allah's Messenger (\ufdfa) saying, \"The reward of deeds depends upon the in\u2026",
"grade": "Sahih",
"id": "bukhari-1",
"number": 1
}
],
"query": "intention"
}Search the Qur'an
Find every verse matching a word or phrase. The search looks at the Arabic, the transliteration and one translation at once, so a verse can match on the original even when the English does not contain the word. Finding nothing comes back as an empty result rather than an error, so a workflow can branch on it. No API key required.
Inputs
- Search text
querytextRequired - The word or phrase to look for.
- Translation
translationtext - Which translation to return beside the Arabic. Leave it empty and every one of the twelve comes back, which is what you want if a later step picks the language. The Arabic and the transliteration are always there either way.One of:
sahih_international(Saheeh International (English)),pickthall(Pickthall (English)),yusuf_ali(Yusuf Ali (English)),urdu,turkish,indonesian,french,german,bengali,spanish,malay,bosnian. - Number of results
limitnumber - Optional. 25 by default.From 1 to 50.
Outputs
countnumber- How many records are in this result.
found_nothingtrue/false- True when nothing matched. Finding nothing is an ordinary answer here, not an error, so this is the field to branch on.
querytext- What was searched for.
searched_inlist- Which texts were searched: the Arabic, the transliteration and the translation that was used.
verseslist- The verses that matched.
Example output
{
"count": 1,
"found_nothing": false,
"query": "mercy",
"searched_in": [
"arabic",
"transliteration",
"sahih_international"
],
"verses": [
{
"arabic": "\u0671\u0644\u0644\u0651\u064e\u0647\u064f \u0644\u064e\u0627\u0653 \u0625\u0650\u0644\u064e\u0640\u0670\u0647\u064e \u0625\u0650\u0644\u0651\u064e\u0627 \u0647\u064f\u0648\u064e \u0671\u0644\u0652\u062d\u064e\u0649\u0651\u064f \u0671\u0644\u0652\u0642\u064e\u064a\u0651\u064f\u0648\u0645\u064f \u06da \u0644\u064e\u0627 \u062a\u064e\u0623\u0652\u062e\u064f\u0630\u064f\u0647\u064f\u06e5 \u0633\u0650\u0646\u064e\u0629\u064c \u0648\u064e\u0644\u064e\u0627 \u0646\u064e\u0648\u0652\u0645\u064c \u06da \u0644\u0651\u064e\u0647\u064f\u06e5 \u0645\u064e\u0627 \u0641\u0650\u0649\u2026",
"audio_url": null,
"ayah": 255,
"reference": "2:255",
"surah_name": "Al-Baqara",
"surah_name_as_published": null,
"surah_number": 2,
"translation": "All\u0101h - there is no deity except Him, the Ever-Living,1 the Self-Sustaining.2 Neither drowsiness overtakes Hi\u2026",
"translation_source": "sahih_international",
"translations": null,
"transliteration": "Allahu la ilaha illahuwa alhayyu alqayyoomu la ta/khuthuhusinatun wala nawmun lahu ma fee assamawatiwama fee \u2026"
}
]
}