Next: getting started
Languages, identifiers, pagination, errors and the rate limit, in five minutes. Read it.
https://islamenc.com/api| Base URL | https://islamenc.com/api |
| Format | JSON, UTF-8. Arabic text is returned as is (Uthmani script where the source has it). |
| Authentication | None. Every endpoint documented here is public and read-only. |
| Rate limit | 10 requests per second per IP address, with bursts of up to 40. Past that the API answers 429 Too Many Requests. |
| CORS | Enabled for every origin: the API can be called from a browser. |
| Caching | Most answers carry Cache-Control: public, max-age=600. Content changes a few times a week, so cache freely. |
| For assistants | /llms.txt and /llms-full.txt hold these docs as Markdown; /openapi.json is the machine-readable contract. |
| Terms | Free to use with attribution. See Terms of use. |
curl "https://islamenc.com/api/quran/surahs/112?lang=en"const res = await fetch("https://islamenc.com/api/quran/surahs/112?lang=en");const { surah, ayahs } = await res.json();console.log(surah.surah_name, ayahs.length); // الإخلَاص 4import requests
r = requests.get("https://islamenc.com/api/quran/surahs/112", params={"lang": "en"})data = r.json()print(data["surah"]["surah_name"], len(data["ayahs"])){ "surah": { "surah_no": 112, "surah_name": "الإخلَاص", "ar_uthmani_name": "ﰝ", "ayas_count": 4 }, "ayahs": [ { "id": 12458, "aya_no": 1, "aya_no_uthmani": "١", "aya_uthmani": "قُلۡ هُوَ ٱللَّهُ أَحَدٌ", "aya_imlaei": "قُلْ هُوَ اللَّهُ أَحَدٌ", "translations": [ { "id": 872051, "translationKey": { "key": "english_hilali_khan", "title": "الترجمة الإنجليزية - تقي الدين الهلالي ومحسن خان", "language": { "isoCode": "en", "englishName": "English", "direction": "ltr" } }, "content": "1. Say (O Muhammad صلى الله عليه وسلم): \"He is Allâh, (the) One.", "footnotes": null } ] } ]}Next: getting started
Languages, identifiers, pagination, errors and the rate limit, in five minutes. Read it.
Try it in the browser
Every public endpoint with a built-in client on the OpenAPI page.