Free, read-only access to Quran text, tafsirs, translations, reciters, fatwas, and more. All endpoints return JSON — no authentication required.
[
{
"id": 1,
"name": "مصحف حفص",
"description": "...",
"image": "https://api2.quranpedia.net/front/assets/img/mushafs/hafs.png",
"bismillah": "﷽",
"font_file": "https://api2.quranpedia.net/assets/fonts/hafs/hafs.woff2",
"images": "https://api2.quranpedia.net/api-quran-svg/hafs.zip",
"images_png": "https://api2.quranpedia.net/api-quran-png/hafs.zip",
"rawi": {
"id": 1,
"name": "حفص",
"full_name": "حفص عن عاصم",
"qiraa": {
"id": 1,
"name": "عاصم",
"count": { "id": 1, "name": "متواترة" }
}
}
}
]id integer required Mushaf ID{
"id": 1,
"name": "مصحف حفص",
"description": "...",
"image": "hafs.png",
"bismillah": "﷽",
"font_file": "https://api2.quranpedia.net/assets/fonts/hafs/hafs.woff2",
"images": "https://api2.quranpedia.net/api-quran-svg/hafs.zip",
"images_png": "https://api2.quranpedia.net/api-quran-png/hafs.zip",
"rawi": { "id": 1, "name": "حفص", "full_name": "حفص عن عاصم", "qiraa": { ... } },
"surahs": [
{
"id": 1,
"name": "الفاتحة",
"coded_name": "...",
"ayahs": [
{
"id": 1, "number": 1, "surah": 1, "page_number": 1,
"text": "بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِيمِ",
"marker": "...",
"options": ["tafsir", "meanings", "similar", "topics", "fatwa", ...],
"number_in_hafs": [1]
}
]
}
]
}mushaf_id integer required Mushaf ID (e.g. 1 for Hafs)surah_id integer required Surah number (1-114)ayah_number integer optional Ayah number. Omit to get all ayahs.// Single ayah: GET /mushafs/1/1/1 { "id": 1, "number": 1, "surah": 1, "page_number": 1, "text": "بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِيمِ", "marker": "...", "options": ["tafsir", "meanings", "similar", "topics", "fatwa", "e3rab", "notes", "asbab", "translations"], "number_in_hafs": [1] } // All ayahs: GET /mushafs/1/1 → returns array of the above
surah_id integer required Surah number (1-114)ayah_number integer required Ayah number{
"id": 1,
"number": 1,
"surah": 1,
"page_number": 1,
"text": "بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِيمِ",
"marker": "...",
"options": ["tafsir", "meanings", "similar", "topics", "fatwa", "e3rab", "notes", "asbab", "translations"]
}surah_id integer required Surah numberayah_number integer required Ayah numberbook_id integer required Book ID{
"book": {
"id": 1,
"name": "تيسير التفسير",
"short_name": "القطان",
"language": { "id": 1, "name": "العربية", "code": "ar", "direction": "rtl" },
"parts": 1,
"author": { "id": 1050, "ar_name": "إبراهيم القطان", "full_name": "إبراهيم القطان" },
"mohaqeq": null, "introducer": null, "reviewer": null, "translator": null
},
"content": [
{ "text": "...", "part": 1, "page": 5, "ayahs": "1:1-1:7" }
]
}surah_id integer required Surah numberayah_number integer required Ayah number[
{ "id": 2, "name": "الإنجليزية", "en_name": "English", "local_name": "English", "code": "en", "direction": "ltr" },
{ "id": 3, "name": "الفرنسية", "en_name": "French", "local_name": "Français", "code": "fr", "direction": "ltr" },
{ "id": 4, "name": "الإسبانية", "en_name": "Spanish", "local_name": "Español", "code": "es", "direction": "ltr" }
]surah_id integer required Surah numberayah_number integer required Ayah numberlanguage string optional Language code (e.g. "en", "fr"). Omit for all.// GET /translations/1/1/en [ { "book": { "id": 1947, "name": "Saheeh International", "short_name": "Saheeh", "authors": [{ "id": 123, "ar_name": "..." }] }, "translation-content": "In the name of Allah, the Entirely Merciful, the Especially Merciful." } ] // GET /translations/1/1 (all languages) → grouped by language code { "en": [{ "book": { ... }, "translation-content": "..." }], "fr": [{ "book": { ... }, "translation-content": "..." }] }
language_code string optional Language code (e.g. "en"). Omit for all.[
{
"id": 1947,
"name": "Saheeh International",
"short_name": "Saheeh",
"card": "Description of the book...",
"content": "https://api2.quranpedia.net/translation-books/1947.json",
"language": { "name": "الإنجليزية", "en_name": "English", "local_name": "English", "code": "en", "direction": "ltr" }
}
]book_id integer required Translation book IDsurah_id integer required Surah numberayah_number integer optional Ayah number. Omit for entire surah.// Single ayah: GET /translation/1947/1/1 { "ayah_number": 1, "translation_text": "In the name of Allah, the Entirely Merciful, ..." } // Full surah: GET /translation/1947/1 → returns array of the above
surah_id integer required Surah number (1-114){
"introduction": { "title": "نبذة عن السورة", "value": "..." },
"surah_number": { "title": "ترتيبها المصحفي", "value": "1" },
"surah_type": { "title": "نوعها", "value": "مكية" },
"words_count": { "title": "ألفاظها", "value": "29" },
"descent": { "title": "ترتيب نزولها", "value": "5" },
"grace": { "title": "فضلها", "value": "..." },
"prophet": { "title": "أحاديث عنها", "value": "..." },
"revelation": { "title": "سبب نزولها", "value": "..." },
"topics": { "title": "موضوعاتها", "value": "..." },
"purposes": { "title": "مقاصدها", "value": "..." },
"asmaoha": { "title": "أسماؤها", "value": "..." },
"ayahs_count": { "title": "آياتها", "value": "7" }
}surah_id integer required Surah number[
{
"id": 1,
"name": "تيسير التفسير",
"short_name": "القطان",
"author": "إبراهيم القطان"
}
]surah_id integer required Surah number[
{
"id": 1,
"ar_title": "لا إثم على من داس على المصحف بغير قصد",
"question_summary": "دست على المصحف بغير قصد فما حكم ذلك؟...",
"author": "موقع إسلام ويب"
}
]surah_id integer required Surah number[
{
"id": 1,
"name": "تيسير التفسير",
"short_name": "القطان",
"author": "إبراهيم القطان"
}
][
{ "id": 2951, "name": "الرِّيش", "parent_id": null, "ayahs": "7:26" },
{ "id": 2860, "name": "أسماء الله الحسنى", "parent_id": null, "ayahs": "7:180,17:110,20:8,59:24" }
][
[
{
"id": 1,
"name": "حفص عن عاصم - مرتل",
"rawi": { "id": 1, "name": "حفص" },
"recitation_type": { "id": 1, "ar_name": "مرتل" },
"classification": { "id": 2, "name": "كامل" },
"surahs_list": [1, 2, 3, "... 1-114"],
"timing_url": "https://api2.quranpedia.net/data/timings/1.zip"
}
]
]type string optional "books", "fatwas", or "notes". Adds count per category.// GET /categories/books
[
{
"id": 1,
"name": "المصاحف",
"children": [ { "id": 10, "name": "مصاحف مخطوطة", "count": 15 } ],
"count": 126
}
]category_id integer required Category IDtype string required "books", "fatwas", or "notes"// GET /category/2/books
[
{ "id": 1, "name": "تيسير التفسير", "nasher": "", "language": "ar", "author": "إبراهيم القطان" }
]book_id integer required Book ID{
"id": 1,
"name": "تيسير التفسير",
"short_name": "القطان",
"type": "tafsir",
"language": { "id": 1, "name": "العربية", "code": "ar", "direction": "rtl" },
"category": { "id": 2, "name": "التفسير", "parent_id": null },
"parts": 1,
"publish_year": "1990",
"edition": "الأولى",
"nasher": "دار النشر",
"has_image": false,
"about": "نبذة عن الكتاب...",
"author": { "id": 1050, "ar_name": "إبراهيم القطان", "full_name": "إبراهيم القطان" },
"mohaqeq": null, "introducer": null, "reviewer": null, "translator": null,
"contents_url": "https://api2.quranpedia.net/books-contents/book-1.json",
"book_attachments": [{ "id": 1, "name": "...", "url": "...", "part": 1 }],
"relative_ayah_service": "tafsir"
}book_id integer required Book ID[
{
"key": "طبعات أخرى",
"related_books": [
{ "id": 10, "name": "تيسير التفسير - ط2", "author": "إبراهيم القطان", "publish_year": "1990" }
]
}
]
// Returns empty array [] if no related books existfatwa_id integer required Fatwa ID{
"id": 1,
"ar_title": "لا إثم على من داس على المصحف بغير قصد",
"ar_question": "دست على المصحف بغير قصد فما حكم ذلك؟...",
"ar_answer": "الحمد لله، والصلاة والسلام على رسول الله...",
"ar_source_url": "https://www.islamweb.net/ar/fatwa/...",
"mufti": "موقع إسلام ويب",
"attachments": [],
"category": { "id": 55, "name": "غير مصنف" }
}note_id integer required Note ID[
{
"note": "...",
"writer": "اسم الكاتب",
"ayahs": "1:1,1:2,1:3",
"attachments": [{ "id": 1, "name": "...", "url": "..." }],
"category": { "id": 10, "name": "..." },
"source": { "id": 1, "ar_name": "..." },
"book": { "id": 5, "name": "...", "short_name": "..." }
}
]query string required Search query (URL-encoded)type string optional "books", "fatwas", "notes", or "topics". Omit for all.// All types: GET /search/تفسير { "notes": { "items": [...], "currentPage": 1, "perPage": 15, "total": 42, "lastPage": 3 }, "fatwas": { "items": [...], "currentPage": 1, "perPage": 15, "total": 18, "lastPage": 2 }, "topics": { "items": [...], "currentPage": 1, "perPage": 15, "total": 7, "lastPage": 1 }, "books": { "items": [...], "currentPage": 1, "perPage": 15, "total": 31, "lastPage": 3 } } // Single type: GET /search/تفسير/books { "items": [ { "book_info": { "id": 1, "name": "تيسير التفسير", "category": "التفسير", "author": "إبراهيم القطان", "parts": 1, "contents_url": "...", "has_image": false, "publish_year": "1990" }, "highlighted_text": "...<em>تفسير</em>..." } ], "currentPage": 1, "perPage": 15, "total": 31, "lastPage": 3 }
When a resource is not found, the API returns a 404 status:
{ "error": "Mushaf not found" }Invalid parameters return 400:
{ "error": "TYPE NOT FOUND" }const BASE = 'https://api2.quranpedia.net/v1'; // Get Al-Fatiha from Hafs mushaf const ayahs = await fetch(`${BASE}/mushafs/1/1`) .then(r => r.json()); // Get English translation for ayah 2:255 (Ayat al-Kursi) const translation = await fetch(`${BASE}/translations/2/255/en`) .then(r => r.json()); // Search for books about "تفسير" const results = await fetch(`${BASE}/search/${encodeURIComponent('تفسير')}/books`) .then(r => r.json());
import requests BASE = "https://api2.quranpedia.net/v1" # Get all mushafs mushafs = requests.get(f"{BASE}/mushafs").json() # Get tafsir for ayah 2:255 from book 1 tafsir = requests.get(f"{BASE}/ayah/2/255/book/1").json() # Get all reciters reciters = requests.get(f"{BASE}/reciters").json()
# Get all topics curl https://api2.quranpedia.net/v1/topics # Get surah Al-Baqarah info curl https://api2.quranpedia.net/v1/surah/information/2 # Get book details curl https://api2.quranpedia.net/v1/book/1