Quran.com API
Free Quran API with no key: all 114 chapters with Arabic and transliterated names, revelation order and place, verse counts and page ranges. Tested example included.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the Quran.com API?
The Quran.com API serves Quranic text, translations and recitations without an API key. The chapters endpoint returns all 114 surahs with their Arabic, simple and complex names, revelation place and order, verse count and Mushaf page range.
This is the API behind Quran.com itself, which means it carries the full apparatus rather than just the text: hundreds of translations, word-by-word morphology, tafsir commentary and audio recitations from named reciters, all addressable through the same versioned interface.
The chapters listing is where any integration starts, and several of its fields do more than they appear to. `revelation_place` distinguishes Meccan from Medinan surahs, a division that matters for classical exegesis. `revelation_order` differs from the numeric `id` because the Mushaf order is not chronological, so surah 1 is fifth in revelation sequence. `bismillah_pre` records whether the surah begins with the Bismillah, which is false for exactly two of them and is precisely the kind of edge case that breaks naive rendering. `pages` gives the standard Mushaf page range, which lets you build a page-based reader.
Quick facts
- Base URL
https://api.quran.com/api/v4- Authentication
- No API key for the public content endpoints.
- Rate limit
- No published limit. The text is immutable — cache it permanently.
- Pricing
- Free. Quran.com is a non-profit project.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the Quran.com API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. List all chapters of the Quran
GET https://api.quran.com/api/v4/chapters?language=en
curl 'https://api.quran.com/api/v4/chapters?language=en'const res = await fetch("https://api.quran.com/api/v4/chapters?language=en");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://api.quran.com/api/v4/chapters?language=en", timeout=20)
res.raise_for_status()
print(res.json()){
"chapters": [
{
"id": 1,
"revelation_place": "makkah",
"revelation_order": 5,
"bismillah_pre": false,
"name_simple": "Al-Fatihah",
"name_complex": "Al-Fātiĥah",
"name_arabic": "الفاتحة",
"verses_count": 7,
"pages": [
1,
1
],
"translated_name": {
"language_name": "english",
"name": "The Opener"
}
},
{
"id": 2,
"revelation_place": "madinah",
"revelation_order": 87,
"bismillah_pre": true,
"name_simple": "Al-Baqarah",
"name_complex": "Al-Baqarah",
"name_arabic": "البقرة",
"verses_count": 286,
"pages": [
2,
49
],
"translated_name": {
"language_name": "english",
"name": "The Cow"
}
},
{
"id": 3,
"revelation_place": "madinah",
"revelation_order": 89,
"bismillah_pre": true,
"name_simple": "Ali 'Imran",
"name_complex": "Āli `Imrān",
"name_arabic": "آل عمران",
"verses_count": 200,
"pages": [
50,
76
],
"translated_name": {
"language_name": "english",
"name": "Family of Imran"
}
},
{
"id": 4,
"revelation_place": "madinah",
"revelation_order": 92,
"bismillah_pre": true,
"name_simple": "An-Nisa",
"name_complex": "An-Nisā",
"name_arabic": "النساء",
"verses_count": 176,
"pages": [
77,
106
],
"translated_name": {
"language_name": "english",
"name": "The WomParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
language | query | Optional | ISO language code for translated names and other localised fields. en |
/verses/by_chapter/{id} | path | Optional | Verses for one chapter, with optional translations and word-by-word data. |
translations | query | Optional | Comma-separated translation resource ids to include with verses. 131 |
/resources/translations | path | Optional | Every available translation with its id, language and translator. |
/chapter_recitations/{id} | path | Optional | Audio recitations of a chapter by a given reciter. |
Response fields
chaptersarray- All 114 surahs in Mushaf order.
chapters[].idinteger- Chapter number, 1 to 114, in the standard order.
chapters[].name_simple / name_complexstring- Transliterated name plain and with diacritics — `Al-Fatihah` and `Al-Fātiĥah`.
chapters[].name_arabicstring- The name in Arabic script.
chapters[].translated_nameobject- Meaning of the name in the requested language, with `language_name` and `name`.
chapters[].revelation_placestring- `makkah` or `madinah`, a distinction that matters for classical exegesis.
chapters[].revelation_orderinteger- Chronological position of revelation, which differs from `id` — surah 1 is fifth.
chapters[].verses_countinteger- Number of ayahs in the chapter.
chapters[].bismillah_preboolean- Whether the chapter is preceded by the Bismillah. False for two chapters — handle it rather than assuming.
chapters[].pagesarray- First and last page in the standard Mushaf, for building a page-based reader.
What you can build with the Quran.com API
- Build a Quran reader with chapter navigation
- Present surahs in chronological revelation order
- Offer multiple translations side by side
- Add recitation audio to a study application
Common errors and how to fix them
Bismillah rendered on every chapter
`bismillah_pre` is false for two of them.
Fix: Read the flag rather than assuming. It is the classic bug in Quran applications.
Chapters in the wrong order
`id` is Mushaf order, not chronological.
Fix: Sort by `revelation_order` when you specifically want revelation sequence, and label which you are showing.
Translation not found
Translations are referenced by numeric resource id.
Fix: Fetch `/resources/translations` to find the id for the translator you want, then pass it.
Arabic renders incorrectly
Text is UTF-8 Arabic, which is right-to-left.
Fix: Set `dir="rtl"` and use a font with proper Arabic shaping. This is a rendering problem, not an API one.
Quran.com API — frequently asked questions
Is the Quran.com API free?
Yes, free with no key for the public content endpoints. Quran.com is a non-profit project.
What is the difference between id and revelation_order?
`id` is the chapter's position in the standard Mushaf, which is how the Quran is arranged. `revelation_order` is the chronological sequence in which chapters were revealed, and the two differ considerably.
How do I get a specific translation?
Fetch `/resources/translations` for the list of available translators with their numeric ids, then pass the id you want in the `translations` parameter when requesting verses.
Why does bismillah_pre matter?
Because two chapters are not preceded by the Bismillah. Rendering it unconditionally is a common and immediately visible mistake.
Tools that pair with this API
Hijri Date Converter
Convert Gregorian dates to Hijri and back using the tabular civil Islamic calendar, with Arabic month names, weekday and a sighting adjustment.
Character Counter
Count characters with and without spaces in real time and check limits for Twitter/X, Instagram captions, meta descriptions and SMS messages.
Unicode Character Inspector
Inspect any text character by character: Unicode code points, UTF-8 bytes, UTF-16 units, HTML entities, CSS and JS escapes, plus NFC, NFD, NFKC and NFKD forms.
Quran.com API is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.