I'm Muslim API
A REST API providing access to the I'm Muslim (أنا المسلم) content platform. Build Islamic apps powered by Quran reciters, Hadith collections, Azkar, Islamic content, Scholars, and more.
Authentication
All API requests must include a valid Bearer token in the Authorization header. To obtain a token, contact us via the contact page.
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json
Accept: application/json
curl -X GET "https://anaalmuslim.com/api/quran/reciters" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
Keep your API token confidential. Do not expose it in client-side code or public repositories. If compromised, contact us immediately to revoke and regenerate.
Error Codes
All errors return JSON with an error string.
| Code | Status | Description |
|---|---|---|
| 401 | Unauthorized | Missing, invalid, or expired API token. |
| 403 | Forbidden | Token is valid but has been revoked or the account is suspended. |
| 404 | Not Found | The requested resource does not exist. |
| 422 | Unprocessable | Validation error. Check query parameter types and bounds. |
| 429 | Too Many Requests | Rate limit exceeded. Slow down your request rate. |
| 500 | Server Error | Unexpected server error. Contact support if it persists. |
{
"error": "API token required. Obtain a token at https://anaalmuslim.com/api-docs",
"docs": "https://anaalmuslim.com/api-docs"
}
Rate Limiting
Each API token has a configurable rate limit, defaulting to 60 requests per minute. When exceeded the API returns 429 Too Many Requests. Contact us if your application requires a higher throughput.
Conventions
All responses are JSON. Successful list responses return an array or an object with a data key. Dates are Unix timestamps (integer seconds) unless noted as YYYY-MM-DD strings.
Most endpoints accept a `language` query parameter. Supported values: `ar` (Arabic, default), `en` (English), `fr` (French). Content availability varies by language.
Paginated endpoints accept `page` (default 1) and `limit` (varies per endpoint). Responses include a `pagination` or `links` object with `total`, `pages_number`, and `has_more`.
Responses are cached server-side (6–48 hours per endpoint). Real-time data like Ramadan prayer times is refreshed more frequently.
Quran Reciters
50+ world-renowned Quran reciters with multiple Mushafs and surah audio URL templates.
/api/quran/reciters
alias: /api/mp3quran/reciters
Returns all active reciters sorted by priority and display order. Each reciter includes their available Mushafs (recording sets) with direct surah audio URLs.
› Response
{
"reciters": [
{
"id": 1,
"name": "عبد الباسط عبد الصمد",
"letter": "ع",
"nationality": "EG",
"priority": true,
"moshaf": [
{
"id": 10,
"name": "رواية حفص عن عاصم",
"server": "https://server8.mp3quran.net/basit/",
"surah_list": "1,2,3,...,114",
"surah_total": 114,
"direct_surah_urls": {
"1": "https://server8.mp3quran.net/basit/001.mp3",
"2": "https://server8.mp3quran.net/basit/002.mp3",
"114": "https://server8.mp3quran.net/basit/114.mp3"
}
}
]
}
]
}
Quran Media
Islamic radio stations, live TV channels, videos, and Quran tafsir/tadabbur content.
/api/mp3quran/radios
Returns a list of live Islamic radio streams.
Accepts optional language query parameter (ar / en / fr). Availability depends on admin feature flags.
/api/mp3quran/live-tv
Returns live Islamic TV channel streams.
Accepts optional language query parameter (ar / en / fr). Availability depends on admin feature flags.
/api/mp3quran/videos
Returns categorized Quran-related videos grouped by type.
Accepts optional language query parameter (ar / en / fr). Availability depends on admin feature flags.
/api/mp3quran/insights
Returns Quran tafsir (exegesis) and tadabbur (reflection) content, grouped into `tafasir` and `tadabor` keys.
Accepts optional language query parameter (ar / en / fr). Availability depends on admin feature flags.
Islamic Content Hub
A comprehensive Islamic content library sourced from IslamHouse. Browse audio lectures, videos, books, fatwas, Friday sermons, and articles.
| Type Value | Description |
|---|---|
showall |
All content types combined |
audios |
Audio lectures and lessons |
videos |
Video content and sermons |
books |
Islamic books (PDF) |
fatwa |
Religious fatwas (legal opinions) |
khotab |
Friday sermons (Khutbah) |
articles |
Islamic articles |
poster |
Infographic posters |
scholar_series_{id} |
All episodes of a specific scholar series (use series ID) |
category_{id} |
All items in a specific category (use category ID) |
/api/islamic-content/types
Returns all available content type categories with their item counts.
| Parameter | Type | Default | Description |
|---|---|---|---|
| language | string | ar | Content language (ar / en / fr). |
| source_language | string | = language | Language of the original source material. |
› Response
[
{
"block_name": "الصوتيات",
"type": "audios",
"items_count": 4821,
"api_url": "https://anaalmuslim.com/api/islamic-content/items/audios"
},
{
"block_name": "الفيديو",
"type": "videos",
"items_count": 1203,
"api_url": "https://anaalmuslim.com/api/islamic-content/items/videos"
}
]
/api/islamic-content/highlights
Returns featured/highlighted content items for home screen display.
| Parameter | Type | Range | Default |
|---|---|---|---|
| language | string | — | ar |
| limit | integer | 1 – 24 | 12 |
/api/islamic-content/latest
Returns the most recently added content items, paginated.
| Parameter | Type | Range | Default |
|---|---|---|---|
| language | string | — | ar |
| limit | integer | 1 – 50 | 20 |
| page | integer | ≥ 1 | 1 |
› Response
{
"data": [
{
"id": 481932,
"source_id": 481932,
"title": "فقه الصيام",
"type": "audios",
"description": "محاضرة صوتية عن فقه الصيام",
"full_description": null,
"image": "https://cdn.islamhouse.com/img/481932.jpg",
"source_language": "ar",
"translated_language": null,
"add_date": 1709500800,
"update_date": 1709500800,
"api_url": "https://anaalmuslim.com/api/islamic-content/items/details/481932"
}
],
"links": {
"current_page": 1,
"pages_number": 241,
"total_items": 4820,
"per_page": 20,
"has_more": true
}
}
/api/islamic-content/items/{type}
Returns paginated content items for a specific type. {type} can be any value from the types table above, including the special scholar_series_{id} and category_{id} patterns.
| Parameter | Type | Range | Default |
|---|---|---|---|
| language | string | — | ar |
| limit | integer | 1 – 50 | 20 |
| page | integer | ≥ 1 | 1 |
/api/islamic-content/items/details/{id}
Returns the full details for a single content item, including all attachments (audio files, PDFs), contributors, and available language translations.
› Response
{
"id": 481932,
"source_id": 481932,
"title": "فقه الصيام",
"type": "audios",
"description": "محاضرة صوتية عن فقه الصيام",
"full_description": "وصف تفصيلي للمحتوى...",
"content": null,
"source_language": "ar",
"translated_language": null,
"add_date": 1709500800,
"update_date": 1709500800,
"image": "https://cdn.islamhouse.com/img/481932.jpg",
"contributors": [
{ "name": "الشيخ محمد العريفي" }
],
"prepared_by": [
{ "id": 42, "title": "الشيخ محمد العريفي", "kind": "speaker" }
],
"attachments": [
{
"url": "https://cdn.islamhouse.com/audio/481932.mp3",
"description": "ملف الصوت",
"extension_type": "mp3",
"size": "14.2 MB"
}
],
"locales": [
{ "language": "en", "url": "https://islamhouse.com/en/articles/481932" }
]
}
Scholars
Islamic scholars with their lecture series and episode collections.
/api/scholars
Returns all active scholars with their series metadata. Use the series id with /api/islamic-content/items/scholar_series_{id} to fetch episodes.
› Response
[
{
"id": 3,
"name": "الشيخ محمد العريفي",
"bio": "عالم إسلامي سعودي...",
"image_url": "https://anaalmuslim.com/storage/scholars/arifi.jpg",
"series": [
{
"id": 12,
"scholar_id": 3,
"title": "شرح رياض الصالحين",
"description": "دروس في شرح كتاب رياض الصالحين",
"image_url": "https://anaalmuslim.com/storage/series/12.jpg",
"episodes_count": 48,
"type_key": "audios"
}
]
}
]
Hadith
Access 6 major Hadith collections with full text, chain of narration, and full-text search.
| Slug | Collection |
|---|---|
bukhari |
Sahih Al-Bukhari (صحيح البخاري) |
muslim |
Sahih Muslim (صحيح مسلم) |
tirmidhi |
Jami At-Tirmidhi (جامع الترمذي) |
nasai |
Sunan An-Nasai (سنن النسائي) |
ibnmajah |
Sunan Ibn Majah (سنن ابن ماجه) |
abudawud |
Sunan Abu Dawud (سنن أبي داود) |
malik |
Muwatta Malik (موطأ مالك) |
riyadussalihin |
Riyad As-Salihin (رياض الصالحين) |
/api/hadith/collections
Returns all available Hadith collections with Arabic/English titles and total counts.
› Response
{
"collections": [
{
"slug": "bukhari",
"title_ar": "صحيح البخاري",
"title_en": "Sahih Al-Bukhari",
"total_chapters": 97,
"total_hadith": 7563
}
]
}
/api/hadith/books/{collection}
Returns all books (chapters) within a collection with Arabic and English names and Hadith number ranges.
› Response
{
"books": [
{
"bookNumber": "1",
"book": [
{ "lang": "ar", "name": "كتاب الوحي" },
{ "lang": "en", "name": "Revelation" }
],
"hadithStartNumber": 1,
"hadithEndNumber": 7,
"numberOfHadith": 7
}
]
}
/api/hadith/books/{collection}/{bookNumber}
Returns Hadiths within a specific book of a collection, paginated.
| Parameter | Type | Range | Default |
|---|---|---|---|
| offset | integer | ≥ 0 | 0 |
| limit | integer | 1 – 200 | 60 |
› Response
{
"hadiths": [
{
"collection": "bukhari",
"bookNumber": "1",
"chapterId": "1",
"hadithNumber": "1",
"hadith": [
{
"lang": "ar",
"chapterNumber": "1",
"chapterTitle": "كيف كان بدء الوحي",
"urn": 19740,
"body": "إِنَّمَا الأَعْمَالُ بِالنِّيَّاتِ...",
"grades": []
},
{
"lang": "en",
"chapterNumber": "1",
"chapterTitle": "How the Divine Revelation started",
"urn": 1,
"body": "Narrated 'Umar bin Al-Khattab: I heard Allah's Messenger...",
"grades": []
}
]
}
],
"pagination": {
"offset": 0,
"limit": 60,
"returned": 7,
"hasMore": false,
"total": 7
}
}
/api/hadith/search/{collection}
Full-text search within a Hadith collection. Searches both Arabic and English text.
| Parameter | Type | Range | Default |
|---|---|---|---|
| q required | string | — | — |
| limit | integer | 1 – 120 | 60 |
/api/hadith/all/{collection}
Returns all Hadiths in a collection in a single response (up to 1,000). Useful for local caching.
| Parameter | Type | Range | Default |
|---|---|---|---|
| limit | integer | 1 – 1000 | 500 |
Azkar
Islamic remembrances (أذكار) organized by daily occasion: Morning, Evening, Sleep, Prayer, Travel, and more.
/api/azkar/categories
Returns all Azkar categories.
› Response
{
"categories": [
{ "id": 1, "name": "أذكار الصباح" },
{ "id": 2, "name": "أذكار المساء" },
{ "id": 3, "name": "أذكار النوم" },
{ "id": 4, "name": "أذكار الاستيقاظ" },
{ "id": 5, "name": "أذكار الصلاة" },
{ "id": 6, "name": "أذكار المسجد" },
{ "id": 7, "name": "أذكار الطعام" },
{ "id": 8, "name": "أذكار السفر" }
]
}
/api/azkar/items
Returns Azkar items with pagination and optional filtering by category or search query.
| Parameter | Type | Range | Default |
|---|---|---|---|
| chapter_id | integer | — | all categories |
| category | string | — | all categories |
| q | string | — | no filter |
| limit | integer | 1 – 5000 | 5000 |
| page | integer | ≥ 1 | 1 |
› Response
{
"items": [
{
"id": 1,
"chapter_id": 1,
"category": "أذكار الصباح",
"zekr": "أَصْبَحْنَا وَأَصْبَحَ الْمُلْكُ لِلَّهِ...",
"description": "يقال هذا الذكر في الصباح",
"count": 1,
"reference": "رواه مسلم",
"search": "اصبحنا واصبح الملك لله"
}
],
"pagination": {
"page": 1,
"limit": 5000,
"total": 87,
"total_pages": 1,
"has_more": false
}
}
Asma Al-Husna
The 99 Beautiful Names of Allah with Arabic text, transliteration, and meaning.
/api/asma-allah
Returns all 99 Names of Allah — no parameters required.
› Response
{
"asma_allah": [
{
"id": 1,
"number": 1,
"name": "الله",
"transliteration": "Allah",
"meaning": "The Greatest Name. The One who has all the rights of divinity."
},
{
"id": 2,
"number": 2,
"name": "الرَّحْمَن",
"transliteration": "Ar-Rahman",
"meaning": "The Entirely Merciful"
}
]
}
Hisnmuslim — Fortress of the Muslim
Supplications and remembrances from the book Hisnmuslim (حصن المسلم), organized by chapter.
/api/hisnmuslim/chapters
Returns all active chapters of Hisnmuslim with id, title, and sort order.
/api/hisnmuslim/duas/{chapterId}
Returns the chapter details and all duas within it.
› Response
{
"chapter": {
"id": 1,
"title": "دعاء الاستيقاظ من النوم",
"sort_order": 1
},
"duas": [
{
"id": 1,
"chapter_id": 1,
"body": "الحَمْدُ لِلَّهِ الَّذِي أَحْيَانَا بَعْدَ مَا أَمَاتَنَا...",
"reference": "البخاري",
"audio_url": null
}
]
}
Ramadan
Ramadan Suhoor & Iftar schedules for multiple cities, with daily duas and hadiths.
/api/ramadan/cities
Returns all cities for which Ramadan schedules are available, with their GPS coordinates.
› Response
{
"code": 200,
"status": "success",
"data": [
{ "key": "mecca", "lat": 21.3891, "lon": 39.8579 },
{ "key": "medina", "lat": 24.4672, "lon": 39.6150 },
{ "key": "riyadh", "lat": 24.6877, "lon": 46.7219 }
]
}
/api/ramadan
Returns the full 30-day Ramadan fasting schedule for the nearest city to the given coordinates. Includes White Days, daily duas, and Ramadan hadiths.
| Parameter | Type | Default | Description |
|---|---|---|---|
| lat | float | 21.3891 | Latitude. Nearest city is selected via Haversine distance. |
| lon | float | 39.8579 | Longitude. |
| lang | string | ar | Response language (ar / en). |
› Response
{
"code": 200,
"status": "success",
"data": {
"city_key": "mecca",
"total_days": 30,
"days": [
{
"date": "2025-03-01",
"day_name": "السبت",
"hijri": "1446-09-01",
"hijri_readable": "1 رمضان 1446",
"is_white_day": false,
"sahur_time": "05:14",
"iftar_time": "18:29",
"fasting_duration": "13:15",
"dua": {
"title": "دعاء اليوم الأول",
"arabic": "اللهم اجعل صيامي فيه صيام الصائمين...",
"translation": "O Allah, make my fasting in it the fasting of those who truly fast...",
"transliteration": "Allahumma ij'al siyami fihi...",
"reference": "مفاتيح الجنان"
},
"hadith": {
"arabic": "مَنْ صَامَ رَمَضَانَ إِيمَانًا وَاحْتِسَابًا...",
"english": "Whoever fasts during Ramadan out of sincere faith...",
"source": "صحيح البخاري",
"grade": "صحيح"
}
}
],
"white_days": ["2025-03-13", "2025-03-14", "2025-03-15"]
}
}
/api/ramadan/today
Returns only today's entry from the schedule. Accepts the same lat, lon, lang parameters. Returns 404 if no Ramadan data exists for today.
Categories
Hierarchical content category tree. Use category IDs with /api/islamic-content/items/category_{id} to fetch category items.
/api/categories
Returns all non-empty root (top-level) categories.
› Response
[
{
"id": 7,
"title": "العقيدة",
"block_name": "العقيدة",
"language": "ar",
"parent_id": null,
"items_count": 312,
"children_count": 5
}
]
/api/categories/{id}/children
Returns all sub-categories of a given parent category. Same response shape as /api/categories.
Changelog
Initial public API release Quran reciters, Hadith, Azkar, Islamic content, Scholars, Ramadan, Categories endpoints Bearer token authentication via Sanctum Multilingual support: Arabic, English, French