Quranpedia API

Free, read-only access to Quran text, tafsirs, translations, reciters, fatwas, and more. All endpoints return JSON — no authentication required.

No auth required JSON responses RESTful
Base URL https://api2.quranpedia.net/v1

# Mushafs

Response

[
  {
    "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": "متواترة" }
      }
    }
  }
]

Parameters

id integer required Mushaf ID

Response

{
  "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]
        }
      ]
    }
  ]
}

# Ayahs

Parameters

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.

Response

// 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

Parameters

surah_id integer required Surah number (1-114)
ayah_number integer required Ayah number

Response

{
  "id": 1,
  "number": 1,
  "surah": 1,
  "page_number": 1,
  "text": "بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِيمِ",
  "marker": "...",
  "options": ["tafsir", "meanings", "similar", "topics", "fatwa", "e3rab", "notes", "asbab", "translations"]
}

Parameters

surah_id integer required Surah number
ayah_number integer required Ayah number
book_id integer required Book ID

Response

{
  "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" }
  ]
}

# Translations

Parameters

surah_id integer required Surah number
ayah_number integer required Ayah number

Response

[
  { "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" }
]

Parameters

surah_id integer required Surah number
ayah_number integer required Ayah number
language string optional Language code (e.g. "en", "fr"). Omit for all.

Response

// 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": "..." }]
}

Parameters

language_code string optional Language code (e.g. "en"). Omit for all.

Response

[
  {
    "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" }
  }
]

Parameters

book_id integer required Translation book ID
surah_id integer required Surah number
ayah_number integer optional Ayah number. Omit for entire surah.

Response

// 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 Info

Parameters

surah_id integer required Surah number (1-114)

Response

{
  "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" }
}

Parameters

surah_id integer required Surah number

Response

[
  {
    "id": 1,
    "name": "تيسير التفسير",
    "short_name": "القطان",
    "author": "إبراهيم القطان"
  }
]

Parameters

surah_id integer required Surah number

Response

[
  {
    "id": 1,
    "ar_title": "لا إثم على من داس على المصحف بغير قصد",
    "question_summary": "دست على المصحف بغير قصد فما حكم ذلك؟...",
    "author": "موقع إسلام ويب"
  }
]

Parameters

surah_id integer required Surah number

Response

[
  {
    "id": 1,
    "name": "تيسير التفسير",
    "short_name": "القطان",
    "author": "إبراهيم القطان"
  }
]

# Topics

Response

[
  { "id": 2951, "name": "الرِّيش", "parent_id": null, "ayahs": "7:26" },
  { "id": 2860, "name": "أسماء الله الحسنى", "parent_id": null, "ayahs": "7:180,17:110,20:8,59:24" }
]

# Reciters

Response

[
  [
    {
      "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"
    }
  ]
]

# Categories

Parameters

type string optional "books", "fatwas", or "notes". Adds count per category.

Response

// GET /categories/books
[
  {
    "id": 1,
    "name": "المصاحف",
    "children": [ { "id": 10, "name": "مصاحف مخطوطة", "count": 15 } ],
    "count": 126
  }
]

Parameters

category_id integer required Category ID
type string required "books", "fatwas", or "notes"

Response

// GET /category/2/books
[
  { "id": 1, "name": "تيسير التفسير", "nasher": "", "language": "ar", "author": "إبراهيم القطان" }
]

# Books

Parameters

book_id integer required Book ID

Response

{
  "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"
}

Parameters

book_id integer required Book ID

Response

[
  {
    "key": "طبعات أخرى",
    "related_books": [
      { "id": 10, "name": "تيسير التفسير - ط2", "author": "إبراهيم القطان", "publish_year": "1990" }
    ]
  }
]

// Returns empty array [] if no related books exist

# Fatwas

Parameters

fatwa_id integer required Fatwa ID

Response

{
  "id": 1,
  "ar_title": "لا إثم على من داس على المصحف بغير قصد",
  "ar_question": "دست على المصحف بغير قصد فما حكم ذلك؟...",
  "ar_answer": "الحمد لله، والصلاة والسلام على رسول الله...",
  "ar_source_url": "https://www.islamweb.net/ar/fatwa/...",
  "mufti": "موقع إسلام ويب",
  "attachments": [],
  "category": { "id": 55, "name": "غير مصنف" }
}

# Notes

Parameters

note_id integer required Note ID

Response

[
  {
    "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": "..." }
  }
]

# Error Responses

When a resource is not found, the API returns a 404 status:

{ "error": "Mushaf not found" }

Invalid parameters return 400:

{ "error": "TYPE NOT FOUND" }

# Usage Examples

JavaScript (fetch)

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());

Python (requests)

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()

cURL

# 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