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

ActionWhat it does
Browse a collectionRead a collection a page at a time, in its own order.
Calculate zakatWork out the zakat due on savings, gold, silver, shares, business stock and other investments, less what is owed.
Calculate zakat on a harvestWork 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 dateConvert a date between the Gregorian and Islamic calendars, either way.
Find duasSearch the 126 duas by what they are for, list one category - morning, evening, travel, distress - or list all of them.
Find Islamic namesLook through 210 Islamic given names: search by meaning, filter by gender or origin, or fetch one by its number.
Get a chapterGet 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'aGet 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 hadithGet one hadith by its number within a collection, in Arabic and English with its grading.
Get a juzGet 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 pageGet 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 timetableGet a whole month of prayer times, or a whole Ramadan with suhoor and iftar named for each of the thirty days.
Get a random hadithGet one hadith drawn at random from all 36,108, or from a single collection.
Get a random verseGet one verse drawn at random from all 6,236, in Arabic and in the translation you pick.
Get a recitationGet the audio for a chapter or a single verse.
Get a verseGet 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 timesGet 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 versesFind the verses that closely resemble another - the mutashabihat, the ones huffaz mix up.
Get tafsirGet 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 AllahGet 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 thresholdsGet the gold and silver nisab thresholds and the live metal prices behind them, in any currency.
Get the qibla directionGet the compass bearing from any place to the Kaaba, with the distance in kilometres and miles.
Get today's Islamic dateGet 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 meaningsGet every word of a verse, or of a whole chapter, with its Arabic, its transliteration and what it means on its own.
List calculation methodsList 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 categoriesList the 27 categories the duas are filed under, with how many each holds.
List hadith collectionsList 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 eventsList 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 chaptersList 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 moonsList the coming new moons with the date each crescent should first be visible and which Hijri month it starts.
Search hadithsFind hadiths whose text matches a word or phrase, across all ten collections or within one.
Search the Qur'anFind 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

CollectioncollectiontextRequired
Which of the ten hadith collections.
Pagepagenumber
Optional. Which page of results, counting from 1.At least 1.
Number of resultslimitnumber
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 savingscashnumber
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.
Sharesstocksnumber
What shares and funds are worth.At least 0.
Business stockbusiness_goodsnumber
What goods held for trade are worth.At least 0.
Other investmentsother_investmentsnumber
Anything else zakatable.At least 0.
Debts owedliabilitiesnumber
What is owed, deducted before the threshold is tested.At least 0.
Currencycurrencytext
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 standardnisab_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 gramgold_price_per_gramnumber
Optional. Overrides the live price.At least 0.
Silver price per gramsilver_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 producevaluenumberRequired
What the harvest is worth.At least 0.
Water sourcewater_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 dategregorian_datedate
Optional. Today if you leave everything empty. Fill this in to convert into the Islamic calendar.
Hijri yearhijri_yearnumber
Optional. Fill in all three Hijri fields to convert the other way.From 1 to 2000.
Hijri monthhijri_monthnumber
Optional. 1 is Muharram, 9 is Ramadan.From 1 to 12.
Hijri dayhijri_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 textquerytext
Optional. Searches the titles, translations and categories. Leave empty to list a category or all of them instead.
Categorycategorytext
Optional. One of the 27 categories. Cannot be combined with a search, because a search already looks at the category name.
Number of resultslimitnumber
Optional. Leave empty for all of them.From 1 to 500.
Skipoffsetnumber
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

Namename_idnumber
Optional. Which of the 210, by number.From 1 to 210.
Search textquerytext
Optional. Searches the names, their Arabic and their meanings - 'light' finds Nur.
Gendergendertext
Optional. Leave empty for both.One of: male (Boys' names), female (Girls' names).
Originorigintext
Optional. e.g. Arabic, Persian. Ignored when searching.
Pagepagenumber
Optional. Which page of results, counting from 1.At least 1.
Number of resultslimitnumber
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

ChaptersurahnumberRequired
Which of the Qur'an's 114 chapters (surahs), by number.From 1 to 114.
Translationtranslationtext
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 resultslimitnumber
Optional. Leave empty for all of them.From 1 to 500.
Skipoffsetnumber
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'adua_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

CollectioncollectiontextRequired
Which of the ten hadith collections.
Hadith numbernumbertextRequired
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

JuzjuznumberRequired
Which of the 30 juz.From 1 to 30.
Translationtranslationtext
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 resultslimitnumber
Optional. Leave empty for all of them.From 1 to 500.
Skipoffsetnumber
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

PagepagenumberRequired
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

LatitudelatitudenumberRequired
Where you are, north-south, from -90 to 90.From -90 to 90.
LongitudelongitudenumberRequired
Where you are, east-west, from -180 to 180.From -180 to 180.
Ramadan yearramadan_yearnumber
Optional. A Gregorian year. Filling this in switches to the Ramadan timetable and ignores the month and year below.From 622 to 2500.
Monthmonthnumber
Optional. 1 to 12. This month if you leave it empty.From 1 to 12.
Yearyearnumber
Optional. This year if you leave it empty.From 622 to 2500.
Calculation methodmethodtext
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.
Madhabmadhabtext
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 zonetimezonetext
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 rulehigh_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

Collectioncollectiontext
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

Translationtranslationtext
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

ChaptersurahnumberRequired
Which of the Qur'an's 114 chapters (surahs), by number.From 1 to 114.
Verseayahnumber
Optional. Leave empty for the whole chapter. Fill it in for one verse.From 1 to 286.
Reciterrecitertext
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

ChaptersurahnumberRequired
Which of the Qur'an's 114 chapters (surahs), by number.From 1 to 114.
VerseayahnumberRequired
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.
Translationtranslationtext
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

LatitudelatitudenumberRequired
Where you are, north-south, from -90 to 90.From -90 to 90.
LongitudelongitudenumberRequired
Where you are, east-west, from -180 to 180.From -180 to 180.
Datedatedate
Optional. Today if you leave it empty.
Calculation methodmethodtext
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.
Madhabmadhabtext
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 zonetimezonetext
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 rulehigh_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

Chaptersurahnumber
Optional. Leave empty, with the verse empty too, to draw a random verse that has matches.From 1 to 114.
Verseayahnumber
Optional. With a chapter, gives that verse's matches. Without one, lists every verse in the chapter that has any.From 1 to 286.
Pagepagenumber
Optional. Which page of results, counting from 1.At least 1.
Number of resultslimitnumber
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

TafsirtafsirtextRequired
Which commentary to read, or all four together.
ChaptersurahnumberRequired
Which of the Qur'an's 114 chapters (surahs), by number.From 1 to 114.
Verseayahnumber
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 numbernumbernumber
Optional. Which of the 99. Leave empty for all of them.From 1 to 99.
Search textquerytext
Optional. Searches the meanings and transliterations.
Day of the weekweekdaytext
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

Currencycurrencytext
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 gramgold_price_per_gramnumber
Optional. Overrides the live price, for working to a local dealer's rate.At least 0.
Silver price per gramsilver_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

LatitudelatitudenumberRequired
Where you are, north-south, from -90 to 90.From -90 to 90.
LongitudelongitudenumberRequired
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

Datedatedate
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

ChaptersurahnumberRequired
Which of the Qur'an's 114 chapters (surahs), by number.From 1 to 114.
Verseayahnumber
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 inrevealed_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 manycountnumber
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 textquerytextRequired
The word or phrase to look for.
Collectioncollectiontext
Optional. Leave empty to draw from all ten collections, 36,108 hadiths in total.
Number of resultslimitnumber
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 textquerytextRequired
The word or phrase to look for.
Translationtranslationtext
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 resultslimitnumber
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"
    }
  ]
}

On this page