HouseMuslim
API Reference

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
GET/quran/surahsLive
GET /quran/surahs
curl "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

ParamDescription
page, per_pagePaginate ayahs
tajweedtrue → include text_tajweed markup
translationsComma-separated translation resource IDs (e.g. 33 = Kemenag)
tlangComma-separated translation languages (e.g. indonesian,english)
tafsirComma-separated tafsir resource IDs
wordstrue → include word-by-word
word_langWord-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.

GET/quran/surahs/{id}Live
GET /quran/surahs/1?per_page=1&translations=33&words=true&word_lang=id&tajweed=false

Each 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
GET/quran/translationsLive
GET /quran/translations
curl "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 }.

GET/quran/audioLive
GET /quran/audio?reciter=1&surah=1
GET /quran/search?q={query}&lang={lang}
GET/quran/searchLive
GET /quran/search?q=rahman&lang=id&page=1

Other reads

EndpointDescription
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/recitersAvailable reciters (qaris)

On this page