Qur'an
Surahs, ayahs, multi-language translations, word-by-word (8 languages), tafsir, per-reciter audio and search — all public, read-only.
All Qur'an endpoints are under /api/v1/quran and are public.
List surahs
GET /quran/surahs/quran/surahsLiveGET /quran/surahscurl "https://api.housemuslim.org/api/v1/quran/surahs"const res = await fetch('https://api.housemuslim.org/api/v1/quran/surahs');
const { data } = await res.json();
console.log(data[0].name_latin); // Al-Fatihah{
"success": true,
"data": [
{
"id": 1,
"name_arabic": "الفاتحة",
"name_latin": "Al-Fatihah",
"name_translation": "Pembukaan",
"revelation_type": "makki",
"ayah_count": 7
}
]
}Surah detail — translation & word-by-word
GET /quran/surahs/{id}This is the main endpoint: it returns ayahs and can attach translations, word-by-word, tafsir and tajweed markup in one call.
Query parameters
| Param | Description |
|---|---|
page, per_page | Paginate ayahs |
tajweed | true → include text_tajweed markup |
translations | Comma-separated translation resource IDs (e.g. 33 = Kemenag) |
tlang | Comma-separated translation languages (e.g. indonesian,english) |
tafsir | Comma-separated tafsir resource IDs |
words | true → include word-by-word |
word_lang | Word-by-word language: id,en,ur,bn,tr,fa,hi,ta |
Find resource IDs
Use GET /quran/translations and GET /quran/tafsirs to list
resource_id values. Commonly bundled translations include 33 Indonesian
(Kemenag), 134 Indonesian (King Fahad), 20 English (Sahih International),
22 English (Yusuf Ali) and 85 English (Abdel Haleem). Pass several at once,
e.g. translations=33,20.
/quran/surahs/{id}LiveGET /quran/surahs/1?per_page=1&translations=33&words=true&word_lang=id&tajweed=falseEach ayah then carries translations[] and words[]:
curl "https://api.housemuslim.org/api/v1/quran/surahs/1?per_page=1&words=true&word_lang=id&translations=33"const params = new URLSearchParams({
per_page: '1', words: 'true', word_lang: 'id', translations: '33',
});
const res = await fetch(`https://api.housemuslim.org/api/v1/quran/surahs/1?${params}`);
const { data } = await res.json();
const ayah = data.ayahs[0];
console.log(ayah.translations[0].text, ayah.words[0].translation);{
"id": 1,
"surah_id": 1,
"number_in_surah": 1,
"juz": 1,
"page": 1,
"text_uthmani": "بِسْمِ ٱللَّهِ ٱلرَّحْمَـٰنِ ٱلرَّحِيمِ",
"translations": [
{
"ayah_id": 1,
"resource_id": 33,
"language": "indonesian",
"source": "Indonesian Islamic Affairs Ministry",
"text": "Dengan nama Allah Yang Maha Pengasih, Maha Penyayang."
}
],
"words": [
{ "position": 1, "text_arabic": "بِسْمِ", "translation": "dengan nama", "transliteration": "bis'mi" },
{ "position": 2, "text_arabic": "ٱللَّهِ", "translation": "Allah", "transliteration": "l-lahi" },
{ "position": 3, "text_arabic": "ٱلرَّحْمَـٰنِ", "translation": "Maha Pengasih", "transliteration": "l-raḥmāni" }
]
}Word-by-word is multilingual
The same word carries a per-language translation. Switch word_lang in the
playground above to see Indonesian, English, Urdu, Bengali, Turkish, Persian,
Hindi or Tamil.
Translations & tafsir resources
GET /quran/translations
GET /quran/tafsirs/quran/translationsLiveGET /quran/translationscurl "https://api.housemuslim.org/api/v1/quran/translations"const res = await fetch('https://api.housemuslim.org/api/v1/quran/translations');
const { data } = await res.json();
const indonesian = data.filter((t) => t.language === 'indonesian');{
"success": true,
"data": [
{ "resource_id": 33, "language": "indonesian", "source": "Indonesian Islamic Affairs Ministry" },
{ "resource_id": 131, "language": "english", "source": "Dr. Mustafa Khattab, The Clear Qur'an" }
]
}Audio
GET /quran/audio?reciter={id}&surah={id}GET /quran/reciters lists qaris ({ id, name, style, audio_base_url }). The
response is an array of { ayah_id, reciter_id, url }.
/quran/audioLiveGET /quran/audio?reciter=1&surah=1Search
GET /quran/search?q={query}&lang={lang}/quran/searchLiveGET /quran/search?q=rahman&lang=id&page=1Other reads
| Endpoint | Description |
|---|---|
GET /quran/ayahs/{id} | A single ayah by global ID |
GET /quran/juz/{n} | All ayahs in Juz n (1–30) |
GET /quran/page/{n} | All ayahs on Mushaf page n |
GET /quran/reciters | Available reciters (qaris) |