Surah names

Surah by Surah

Tags

Download Links

About surah metadata

QUL exports metadata for each Surah of the Quran in both JSON and SQLite formats.

Sample JSON

An example of the JSON structure:

JSON
{
  "1": {
    "id": 1,
    "name": "Al-Fātiĥah",
    "name_simple": "Al-Fatihah",
    "name_arabic": "الفاتحة",
    "revelation_order": 5,
    "revelation_place": "makkah",
    "verses_count": 7,
    "bismillah_pre": false
  }
}

Field descriptions

Field Type Description
id Integer Surah number (1–114)
name String Transliterated Surah name with diacritic
name_simple String Transliterated name of the Surah (e.g., Al-Fatihah)
name_arabic String Arabic name of the Surah (e.g., الفاتحة)
revelation_order Integer Order in which the Surah was revealed historically
revelation_place String makkah or madinah – based on location of revelation
verses_count Integer Total number of verses in the Surah
bismillah_pre Boolean true if the Surah starts with Bismillah and it should be recited; false otherwise

How to use this resource

Download the JSON or SQLite file from the download links on this page. The JSON file is one object: each key is the surah number as a string ("1" to "114") and always equals the id field. The SQLite file has the same fields in the chapters table (surahs are called chapters there), with bismillah_pre stored as 0 or 1.

  • Build verse keys. Use id and verses_count to generate every surah:ayah key of a surah. These keys match verse_key in the other QUL resources.
  • Sort and filter. Sort by revelation_order (1 to 114) to list surahs in the order of revelation. Filter on revelation_place, which is "makkah" or "madinah".
  • Check for Bismillah. If bismillah_pre is true, show the Bismillah before the first ayah. It is false for two surahs only: Al-Fatihah, where the Bismillah is the first ayah, and At-Tawbah, which has none.
JavaScript
// Setup: unzip the download and serve quran-metadata-surah-name.json from your app (here at /data/)
const surahs = await fetch('/data/quran-metadata-surah-name.json').then((res) => res.json());

// Get a surah by number
const alBaqarah = surahs['2']; // { id: 2, name_simple: "Al-Baqarah", verses_count: 286, ... }

// Every verse key of a surah
const verseKeys = Array.from({ length: alBaqarah.verses_count }, (_, i) => `${alBaqarah.id}:${i + 1}`);

// Surahs in the order of revelation
const chronological = Object.values(surahs).sort((a, b) => a.revelation_order - b.revelation_order);
SQL
-- SQLite: surahs are stored in the chapters table
SELECT id, name_simple, verses_count
FROM chapters
WHERE revelation_place = 'madinah'
ORDER BY revelation_order;

For a longer walkthrough, see Tutorial 7: Quran Metadata End-to-End.