BYTETOOLS

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.

No API key requiredCORS enabledHTTPSFree tier

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
curl 'https://api.quran.com/api/v4/chapters?language=en'
JavaScript (fetch)
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);
Python (requests)
import requests

res = requests.get("https://api.quran.com/api/v4/chapters?language=en", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "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 Wom

Parameters

ParameterTypeRequiredDescription
languagequeryOptionalISO language code for translated names and other localised fields. en
/verses/by_chapter/{id}pathOptionalVerses for one chapter, with optional translations and word-by-word data.
translationsqueryOptionalComma-separated translation resource ids to include with verses. 131
/resources/translationspathOptionalEvery available translation with its id, language and translator.
/chapter_recitations/{id}pathOptionalAudio 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

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.