Jaloot.org

Free Quran API for Developers

Build your next Islamic project with the Jaloot Quran API. This free API helps you add Quran data to websites, mobile apps, WordPress plugins, and other digital projects. It uses JSON format, so you can work with the data using your favorite programming language or framework.

Are you creating a Quran reading app, an Islamic website, or an educational tool? The Jaloot API gives you access to Quran chapters, verses, transliterations, and other useful information. You can also retrieve revelation details, Mushaf page numbers, Juz information, and available Tafsir entries. With support for Arabic, English, French, and Spanish, you can build tools for readers around the world.

Jaloot API

Quran API v2 for developers building Quran applications, websites and digital products.

The Jaloot API provides structured access to Quran chapters, verses, transliterations, revelation metadata, Mushaf page references, Juz information, Basmala metadata and prostration markers.

API v2JSON114 chaptersGETRead-only
Chapters
114
Languages
4
Cache
Redis

Base URL

All Jaloot API v2 endpoints are available under this base path.

API Base URL
https://api.jaloot.org/v2

Authentication

Authenticate every API request using your API key and secret.

API credentials required

Jaloot uses a key and secret authentication pair. Both credentials must be sent with every request.

API Key
X-API-Key
Required

Public identifier used to identify your application.

JALOOT-PUB-...
API Secret
X-API-Secret
Required

Private credential paired with your API key. Keep it strictly server-side.

JALOOT-SEC-...
Accept

Response format

application/jsonOptional

Keep your API secret private

Never expose X-API-Secret in browser JavaScript, mobile applications, public repositories or client-side code.

Rotate the secret immediately if it becomes compromised.

Request Headers

Headers accepted by the Jaloot API.

X-API-Keystring

Your public API key.

JALOOT-PUB-...Required
X-API-Secretstring

Your private API secret.

JALOOT-SEC-...Required
Acceptstring

Optional response format header.

application/jsonOptional

Reference Request

A minimal authenticated request to the API.

curl "https://api.jaloot.org/v2/chapter/al-faatiha" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "X-API-Secret: YOUR_API_SECRET" \
  -H "Accept: application/json"

Endpoints

Available read-only endpoints in API v2.

GET/v2/chapters

Returns the collection of all 114 Quran chapters. The endpoint provides chapter metadata and does not include the complete verse text.

114 chaptersCollectionCached
GET/v2/chapter/{identifier}

Returns a complete chapter resource including metadata, verses, revelation information, page references, Basmala information and prostration markers.

Identifier
1al-faatihaal-baqara

Accepts a chapter number from 1 to 114 or one of the documented chapter slugs.

GET/v2/verse/randomNo cache

Returns one randomly selected Quran verse with its chapter, localized text and available tafsir entries. The lang query parameter is optional. Arabic (ar) is used when no language is supplied.

Random verselang optionalar · en · fr · esNot cached
Query parameter
langstringOptionalSupported values: ar, en, fr, es

Languages

The API currently supports Arabic, English, French and Spanish.

ar
Arabic
Default language
en
English
English translation
fr
French
French translation
es
Spanish
Spanish translation

Arabic (ar) is used by default when no language preference is supplied. Supported languages are ar, en, fr and es. The response exposes the selected language through the language object.

Language Object

Every localized response identifies the language and text direction.

codestring

Language identifier such as ar, en, fr or es.

directionstring

Text direction, such as rtl for Arabic.

Chapter Slugs

Use these slugs as the identifier in /v2/chapter/{identifier}.

al-faatihaal-baqaraaal-i-imraanan-nisaaal-maaidaal-anaamal-araafal-anfaalat-tawbayunushudyusufarraadibrahimal-hijran-nahlal-israaal-kahfmaryamtaa-haaal-anbiyaaal-hajjal-muminoonan-nooral-furqaanash-shuaraaan-namlal-qasasal-ankabootar-roomluqmanas-sajdaal-ahzaabsabafaatiryaseenas-saaffaatsaadaz-zumarghafirfussilatash-shuraaz-zukhrufad-dukhaanal-jaathiyaal-ahqafmuhammadal-fathal-hujuraatqaafadh-dhaariyatat-turan-najmal-qamarar-rahmaanal-waaqiaal-hadidal-mujaadilaal-hashral-mumtahanaas-saffal-jumuaal-munaafiqoonat-taghaabunat-talaaqat-tahrimal-mulkal-qalamal-haaqqaal-ma-aarijnoohal-jinnal-muzzammilal-muddaththiral-qiyaamaal-insaanal-mursalaatan-nabaan-naaziaatabasaat-takwiral-infitaaral-mutaffifinal-inshiqaaqal-buroojat-taariqal-alaaal-ghaashiyaal-fajral-baladash-shamsal-lailad-dhuhaaash-sharhat-tinal-alaqal-qadral-bayyinaaz-zalzalaal-aadiyaatal-qaariaat-takaathural-asral-humazaal-filquraishal-maaunal-kawtharal-kaafiroonan-nasral-masadal-ikhlaasal-falaqan-naas
114 slugsComplete Quran

Chapter Resource

Fields returned by a chapter resource.

idinteger

Chapter number from 1 to 114.

namestring

Arabic chapter name.

name_transliterationstring

Transliterated chapter name.

slugstring

Unique chapter slug used as an identifier.

revelationobject

Revelation place, type and chronological order.

verses_countinteger

Total number of verses in the chapter.

pagesobject

Starting and ending Mushaf pages.

basmalaobject

Basmala inclusion and verse status.

prostrationsarray

Prostration markers associated with the chapter.

versesarray

Complete list of verses when returned by the chapter resource.

Revelation Metadata

Each chapter includes structured revelation information.

placestring

Revelation location.

مكّة المكرّمة
typestring

Revelation classification.

مكية
orderinteger

Chronological revelation order.

5

Basmala

The Basmala object indicates whether the Basmala is included and whether it is considered a verse for the chapter.

includedboolean

Indicates whether the Basmala is included in the chapter response.

is_verseboolean

Indicates whether the Basmala is treated as a verse.

For example, Al-Fatiha currently returns:

included: false · is_verse: true

Verse Resource

Verse resources contain the Quranic text and Mushaf references.

numberinteger

Verse number within the chapter.

textstring

Verse text in the requested language.

text_simplestring

Simplified Quranic text without the full diacritic notation.

recitationstring

Quran recitation associated with the verse, such as Warsh.

lineinteger

Mushaf line reference.

juzinteger

Juz containing the verse.

pageinteger

Mushaf page containing the verse.

tafsirsarray

Available tafsir entries for the requested language.

Prostrations

Chapters containing a prostration marker expose it through the prostrations array.

verse_numberinteger

Verse containing the prostration marker.

recommendedboolean

Whether the prostration is recommended.

obligatoryboolean

Whether the prostration is obligatory.

RecommendedObligatory

Response Structure

API responses expose request metadata together with the requested resource.

{
  "request": {
    "status": 200,
    "response_time": "240.34ms",
    "cache": {
      "hit": true,
      "key": "chapter.al-alaq.en.SF.all+Tfs",
      "store": "redis",
      "time": "0.54ms"
    }
  },
  "language": {
    "code": "en",
    "direction": "ltr"
  },
  "id": 96,
  "name": "The Clot",
  "name_transliteration": "Al-`Alaq",
  "slug": "al-alaq",
  "revelation": {
    "place": "Makkah Al-Mukarramah",
    "type": "Meccan",
    "order": 1
  },
  "verses_count": 19,
  "pages": {
    "start": 597,
    "end": 597
  },
  "basmala": {
    "included": true,
    "is_verse": false,
    "value": "In the name of Allah, the Most Gracious, the Most Merciful."
  },
  "prostrations": [
    {
      "verse_number": 19,
      "recommended": false,
      "obligatory": true,
      "page": 597
    }
  ],
  "verses": [
    {
      "number": 1,
      "transliteration": "iqraʾ bi-smi rabbika lladhī khalaqa",
      "translations": [
        {
          "title": "The Qur'an with a Phrase-by-Phrase",
          "author": "Ali Quli Qarai",
          "book_name": "The Qur'an with a Phrase-by-Phrase English Translation",
          "text": "Read in the Name of your Lord who created;"
        }
      ],
      "line": 6107,
      "juz": 30,
      "page": 597
    },
    {
      "number": 2,
      "transliteration": "khalaqa l-ʾinsāna min ʿalaqin-i",
      "translations": [
        {
          "title": "The Qur'an with a Phrase-by-Phrase",
          "author": "Ali Quli Qarai",
          "book_name": "The Qur'an with a Phrase-by-Phrase English Translation",
          "text": "created man from a clinging mass."
        }
      ],
      "line": 6108,
      "juz": 30,
      "page": 597
    },
    {
      "number": 3,
      "transliteration": "iqraʾ wa-rabbuka l-ʾakramu",
      "translations": [
        {
          "title": "The Qur'an with a Phrase-by-Phrase",
          "author": "Ali Quli Qarai",
          "book_name": "The Qur'an with a Phrase-by-Phrase English Translation",
          "text": "Read, and your Lord is the most generous,"
        }
      ],
      "line": 6109,
      "juz": 30,
      "page": 597
    },
    {
      "number": 4,
      "transliteration": "alladhī ʿallama bi-l-qalami",
      "translations": [
        {
          "title": "The Qur'an with a Phrase-by-Phrase",
          "author": "Ali Quli Qarai",
          "book_name": "The Qur'an with a Phrase-by-Phrase English Translation",
          "text": "who taught by the pen,"
        }
      ],
      "line": 6110,
      "juz": 30,
      "page": 597
    },
    {
      "number": 5,
      "transliteration": "ʿallama l-ʾinsāna mā lam yaʿlam",
      "translations": [
        {
          "title": "The Qur'an with a Phrase-by-Phrase",
          "author": "Ali Quli Qarai",
          "book_name": "The Qur'an with a Phrase-by-Phrase English Translation",
          "text": "taught man what he did not know."
        }
      ],
      "line": 6111,
      "juz": 30,
      "page": 597
    },
    {
      "number": 6,
      "transliteration": "kallā ʾinna l-ʾinsāna la-yaṭghā",
      "translations": [
        {
          "title": "The Qur'an with a Phrase-by-Phrase",
          "author": "Ali Quli Qarai",
          "book_name": "The Qur'an with a Phrase-by-Phrase English Translation",
          "text": "Indeed man becomes rebellious"
        }
      ],
      "line": 6112,
      "juz": 30,
      "page": 597
    },
    {
      "number": 7,
      "transliteration": "ʾan raʾāhu staghnā",
      "translations": [
        {
          "title": "The Qur'an with a Phrase-by-Phrase",
          "author": "Ali Quli Qarai",
          "book_name": "The Qur'an with a Phrase-by-Phrase English Translation",
          "text": "when he considers himself without need."
        }
      ],
      "line": 6113,
      "juz": 30,
      "page": 597
    },
    {
      "number": 8,
      "transliteration": "ʾinna ʾilā rabbika r-rujʿā",
      "translations": [
        {
          "title": "The Qur'an with a Phrase-by-Phrase",
          "author": "Ali Quli Qarai",
          "book_name": "The Qur'an with a Phrase-by-Phrase English Translation",
          "text": "Indeed to your Lord is the return."
        }
      ],
      "line": 6114,
      "juz": 30,
      "page": 597
    },
    {
      "number": 9,
      "transliteration": "ʾa-raʾayta lladhī yanhā",
      "translations": [
        {
          "title": "The Qur'an with a Phrase-by-Phrase",
          "author": "Ali Quli Qarai",
          "book_name": "The Qur'an with a Phrase-by-Phrase English Translation",
          "text": "Tell me, he who forbids"
        }
      ],
      "line": 6115,
      "juz": 30,
      "page": 597
    },
    {
      "number": 10,
      "transliteration": "ʿabdan ʾidhā ṣallā",
      "translations": [
        {
          "title": "The Qur'an with a Phrase-by-Phrase",
          "author": "Ali Quli Qarai",
          "book_name": "The Qur'an with a Phrase-by-Phrase English Translation",
          "text": "a servant when he prays,"
        }
      ],
      "line": 6116,
      "juz": 30,
      "page": 597
    },
    {
      "number": 11,
      "transliteration": "ʾa-raʾayta ʾin kāna ʿalā l-hudā",
      "translations": [
        {
          "title": "The Qur'an with a Phrase-by-Phrase",
          "author": "Ali Quli Qarai",
          "book_name": "The Qur'an with a Phrase-by-Phrase English Translation",
          "text": "tell me, should he be on [true] guidance,"
        }
      ],
      "line": 6117,
      "juz": 30,
      "page": 597
    },
    {
      "number": 12,
      "transliteration": "ʾaw ʾamara bi-t-taqwā",
      "translations": [
        {
          "title": "The Qur'an with a Phrase-by-Phrase",
          "author": "Ali Quli Qarai",
          "book_name": "The Qur'an with a Phrase-by-Phrase English Translation",
          "text": "or bid [others] to Godwariness,"
        }
      ],
      "line": 6118,
      "juz": 30,
      "page": 597
    },
    {
      "number": 13,
      "transliteration": "ʾa-raʾayta ʾin kadhdhaba wa-tawallā",
      "translations": [
        {
          "title": "The Qur'an with a Phrase-by-Phrase",
          "author": "Ali Quli Qarai",
          "book_name": "The Qur'an with a Phrase-by-Phrase English Translation",
          "text": "tell me, should he call him a liar and turn away"
        }
      ],
      "line": 6119,
      "juz": 30,
      "page": 597
    },
    {
      "number": 14,
      "transliteration": "ʾa-lam yaʿlam bi-ʾanna llāha yarā",
      "translations": [
        {
          "title": "The Qur'an with a Phrase-by-Phrase",
          "author": "Ali Quli Qarai",
          "book_name": "The Qur'an with a Phrase-by-Phrase English Translation",
          "text": "—does he not know that Allah sees [him]?"
        }
      ],
      "line": 6120,
      "juz": 30,
      "page": 597
    },
    {
      "number": 15,
      "transliteration": "kallā la-ʾin lam yantahi la-nasfaʿan bi-n-nāṣiyati",
      "translations": [
        {
          "title": "The Qur'an with a Phrase-by-Phrase",
          "author": "Ali Quli Qarai",
          "book_name": "The Qur'an with a Phrase-by-Phrase English Translation",
          "text": "No indeed! If he does not cease, We shall seize him by the forelock,"
        }
      ],
      "line": 6121,
      "juz": 30,
      "page": 597
    },
    {
      "number": 16,
      "transliteration": "nāṣiyatin kādhibatin khāṭiʾatin",
      "translations": [
        {
          "title": "The Qur'an with a Phrase-by-Phrase",
          "author": "Ali Quli Qarai",
          "book_name": "The Qur'an with a Phrase-by-Phrase English Translation",
          "text": "a lying, sinful forelock!"
        }
      ],
      "line": 6122,
      "juz": 30,
      "page": 597
    },
    {
      "number": 17,
      "transliteration": "fa-l-yadʿu nādiyahū",
      "translations": [
        {
          "title": "The Qur'an with a Phrase-by-Phrase",
          "author": "Ali Quli Qarai",
          "book_name": "The Qur'an with a Phrase-by-Phrase English Translation",
          "text": "Then let him call out his gang!"
        }
      ],
      "line": 6123,
      "juz": 30,
      "page": 597
    },
    {
      "number": 18,
      "transliteration": "sa-nadʿu z-zabāniyata",
      "translations": [
        {
          "title": "The Qur'an with a Phrase-by-Phrase",
          "author": "Ali Quli Qarai",
          "book_name": "The Qur'an with a Phrase-by-Phrase English Translation",
          "text": "We [too] shall call the keepers of hell."
        }
      ],
      "line": 6124,
      "juz": 30,
      "page": 597
    },
    {
      "number": 19,
      "transliteration": "kallā lā tuṭiʿhu wa-sjud wa-qtarib",
      "translations": [
        {
          "title": "The Qur'an with a Phrase-by-Phrase",
          "author": "Ali Quli Qarai",
          "book_name": "The Qur'an with a Phrase-by-Phrase English Translation",
          "text": "No indeed! Do not obey him, but prostrate and draw near [to Allah]!"
        }
      ],
      "line": 6125,
      "juz": 30,
      "page": 597
    }
  ],
  "pagination": null
}

Random Verse Response

Example response returned by /v2/verse/random. This endpoint is not cached, so the request cache metadata is always reported with no cache key, store or cache time.

{
  "request": {
    "status": 200,
    "response_time": "156.86ms",
    "cache": {
      "hit": false,
      "key": null,
      "store": null,
      "time": null
    }
  },
  "lang": "العربية",
  "recitation": "ورش",
  "chapter": {
    "number": 11,
    "slug": "hud",
    "name": "هود"
  },
  "verse": {
    "number": 49,
    "text": "تِلْكَ مِنَ اَنۢبَآءِ اِ۬لْغَيْبِ نُوحِيهَآ إِلَيْكَۖ مَا كُنتَ تَعْلَمُهَآ أَنتَ وَلَا قَوْمُكَ مِن قَبْلِ هَٰذَاۖ فَاصْبِرِۖ اِنَّ اَ۬لْعَٰقِبَةَ لِلْمُتَّقِينَۖ",
    "text_simple": "تلك من أنباء الغيب نوحيها إليك ما كنت تعلمها أنت ولا قومك من قبل هذا فاصبر إن العاقبة للمتقين",
    "juz": 12,
    "page": 227
  },
  "tafsirs": [
    {
      "title": "التفسير الميسر",
      "author": "نخبة من العلماء",
      "book_name": "التفسير الميسر",
      "text": "تلك القصة التي قصصناها عليك -أيها الرسول- عن نوح وقومه هي من أخبار الغيب السالفة، نوحيها إليك، ما كنت تعلمها أنت ولا قومك مِن قبل هذا البيان، فاصبر على تكذيب قومك وإيذائهم لك، كما صبر الأنبياء من قبل، إن العاقبة الطيبة في الدنيا والآخرة للمتقين الذين يخشون الله."
    },
    {
      "title": "تفسير الجلالين",
      "author": "جلال الدين المحلي و السيوطي",
      "book_name": "تفسير الجلالين",
      "text": "«تلك» أي هذه الآيات المتضمنة قصة نوح «من أنباء الغيب» أخبار ما غاب عنك «نوحيها إليك» يا محمد «ما كنت تعلمها أنت ولا قومك من قبل هذا» القرآن «فاصبر» على التبليغ وأذى قومك كما صبر نوح «إن العاقبة» المحمودة «للمتقين»."
    }
  ]
}

Caching

Cacheable API responses use Redis to improve performance and reduce database load. The /v2/verse/random endpoint is intentionally not cached.

Store
Redis
Cache hit
Boolean
Cache key
String
Timing
Milliseconds
Random verse
No cache

Cache information is available under request.cache. This includes the cache hit state, cache key, storage driver and cache operation time.

Errors

Errors are returned as JSON with a status code, error identifier, message and documentation URL.

{
  "status": 404,
  "error": "chapter_not_found",
  "message": "No chapter found for identifier 'al-fatiha-typo'.",
  "documentation_url": "https://admin.jaloot.org/api-documentation"
}
missing_parametersRequired request parameters are missing.
invalid_identifierThe supplied chapter identifier is invalid.
chapter_not_foundNo chapter matches the supplied identifier.

HTTP Status Codes

Common HTTP status codes returned by the API.

200OK

The request completed successfully.

401Unauthorized

API credentials are missing or invalid.

404Not Found

The requested chapter could not be found.

422Unprocessable Entity

The supplied identifier or request data is invalid.

429Too Many Requests

The API rate limit has been exceeded.

500Server Error

An unexpected server-side error occurred.

Example Requests

Common ways to request Quran data.

GETChapter by number
curl "https://api.jaloot.org/v2/chapter/1" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "X-API-Secret: YOUR_API_SECRET" \
  -H "Accept: application/json"
GETChapter by slug
curl "https://api.jaloot.org/v2/chapter/al-faatiha" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "X-API-Secret: YOUR_API_SECRET" \
  -H "Accept: application/json"
GETRandom verseNo cache
curl "https://api.jaloot.org/v2/verse/random" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "X-API-Secret: YOUR_API_SECRET" \
  -H "Accept: application/json"
GETAll chapters
curl "https://api.jaloot.org/v2/chapters" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "X-API-Secret: YOUR_API_SECRET" \
  -H "Accept: application/json"
The lang parameter is optional. Arabic is used by default. ?lang=ar|en|es|fr

Security Recommendations

Follow these practices when integrating the Jaloot API.

Protect your API secret

Keep X-API-Secret exclusively on your server.

Do not commit credentials

Never store API credentials in public Git repositories.

Avoid client-side exposure

Never expose your API secret in browser JavaScript or mobile applications.

Rotate compromised credentials

Generate new credentials immediately if a secret is exposed.

Use HTTPS

Always communicate with the Jaloot API over HTTPS.

Quick Reference

The essentials for getting started with Jaloot API v2.

Get a chapter
GET /v2/chapter/{identifier}
Get all chapters
GET /v2/chapters
Get a random verse
GET /v2/verse/random
Portrait of Hassan ELKHAROUA
Creator of Jaloot.org

Hassan ELKHAROUA

Full-stack developer — creator of jaloot.org

Marrakech, Morocco

8+ years of experience in full-stack web development. Creator and developer of jaloot.org, a Quran recitation and translation platform, as well as several high-traffic web projects.

Skills
PHPReact.jsHTML / CSSNext.jsNode.jsSEOWordPressDrupal