I'm Muslim

Getting Started

Overview Authentication Errors & Codes Rate Limiting Conventions

Endpoints

Quran Reciters Quran Media Islamic Content Hub Scholars Hadith Azkar Asma Al-Husna Hisnmuslim Ramadan Categories

Resources

Changelog Support & Contact
REST API · Version 1

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.

50+
Quran Reciters
6
Hadith Collections
99
Names of Allah
200+
Haramain POIs
Base URL
https://anaalmuslim.com/api

Authentication

All API requests must include a valid Bearer token in the Authorization header. To obtain a token, contact us via the contact page.

Required Header
HTTP
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json
Accept: application/json
Example — cURL
bash
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 response shape
{
  "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

Response Format

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.

Language Parameter

Most endpoints accept a `language` query parameter. Supported values: `ar` (Arabic, default), `en` (English), `fr` (French). Content availability varies by language.

Pagination

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`.

Caching

Responses are cached server-side (6–48 hours per endpoint). Real-time data like Ramadan prayer times is refreshed more frequently.

Endpoints

Quran Reciters

50+ world-renowned Quran reciters with multiple Mushafs and surah audio URL templates.

GET /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
200 OK
{
  "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.

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

GET /api/mp3quran/live-tv

Returns live Islamic TV channel streams.

Accepts optional language query parameter (ar / en / fr). Availability depends on admin feature flags.

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

GET /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)
GET /api/islamic-content/types

Returns all available content type categories with their item counts.

ParameterTypeDefaultDescription
languagestringarContent language (ar / en / fr).
source_languagestring= languageLanguage of the original source material.
Response
200 OK
[
  {
    "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"
  }
]
GET /api/islamic-content/highlights

Returns featured/highlighted content items for home screen display.

ParameterTypeRangeDefault
languagestringar
limitinteger1 – 2412
GET /api/islamic-content/latest

Returns the most recently added content items, paginated.

ParameterTypeRangeDefault
languagestringar
limitinteger1 – 5020
pageinteger≥ 11
Response
200 OK
{
  "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
  }
}
GET /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.

ParameterTypeRangeDefault
languagestringar
limitinteger1 – 5020
pageinteger≥ 11
GET /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
200 OK
{
  "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.

GET /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
200 OK
[
  {
    "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 (رياض الصالحين)
GET /api/hadith/collections

Returns all available Hadith collections with Arabic/English titles and total counts.

Response
200 OK
{
  "collections": [
    {
      "slug": "bukhari",
      "title_ar": "صحيح البخاري",
      "title_en": "Sahih Al-Bukhari",
      "total_chapters": 97,
      "total_hadith": 7563
    }
  ]
}
GET /api/hadith/books/{collection}

Returns all books (chapters) within a collection with Arabic and English names and Hadith number ranges.

Response
200 OK · /api/hadith/books/bukhari
{
  "books": [
    {
      "bookNumber": "1",
      "book": [
        { "lang": "ar", "name": "كتاب الوحي" },
        { "lang": "en", "name": "Revelation" }
      ],
      "hadithStartNumber": 1,
      "hadithEndNumber": 7,
      "numberOfHadith": 7
    }
  ]
}
GET /api/hadith/books/{collection}/{bookNumber}

Returns Hadiths within a specific book of a collection, paginated.

ParameterTypeRangeDefault
offsetinteger≥ 00
limitinteger1 – 20060
Response
200 OK
{
  "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
  }
}
GET /api/hadith/search/{collection}

Full-text search within a Hadith collection. Searches both Arabic and English text.

ParameterTypeRangeDefault
q requiredstring
limitinteger1 – 12060
GET /api/hadith/all/{collection}

Returns all Hadiths in a collection in a single response (up to 1,000). Useful for local caching.

ParameterTypeRangeDefault
limitinteger1 – 1000500

Azkar

Islamic remembrances (أذكار) organized by daily occasion: Morning, Evening, Sleep, Prayer, Travel, and more.

GET /api/azkar/categories

Returns all Azkar categories.

Response
200 OK
{
  "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": "أذكار السفر" }
  ]
}
GET /api/azkar/items

Returns Azkar items with pagination and optional filtering by category or search query.

ParameterTypeRangeDefault
chapter_idintegerall categories
categorystringall categories
qstringno filter
limitinteger1 – 50005000
pageinteger≥ 11
Response
200 OK
{
  "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.

GET /api/asma-allah

Returns all 99 Names of Allah — no parameters required.

Response
200 OK
{
  "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.

GET /api/hisnmuslim/chapters

Returns all active chapters of Hisnmuslim with id, title, and sort order.

GET /api/hisnmuslim/duas/{chapterId}

Returns the chapter details and all duas within it.

Response
200 OK
{
  "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.

GET /api/ramadan/cities

Returns all cities for which Ramadan schedules are available, with their GPS coordinates.

Response
200 OK
{
  "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 }
  ]
}
GET /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.

ParameterTypeDefaultDescription
latfloat21.3891Latitude. Nearest city is selected via Haversine distance.
lonfloat39.8579Longitude.
langstringarResponse language (ar / en).
Response
200 OK
{
  "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"]
  }
}
GET /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.

GET /api/categories

Returns all non-empty root (top-level) categories.

Response
200 OK
[
  {
    "id": 7,
    "title": "العقيدة",
    "block_name": "العقيدة",
    "language": "ar",
    "parent_id": null,
    "items_count": 312,
    "children_count": 5
  }
]
GET /api/categories/{id}/children

Returns all sub-categories of a given parent category. Same response shape as /api/categories.

Changelog

v1.0 March 2026
  • Initial public API release
  • Quran reciters, Hadith, Azkar, Islamic content, Scholars, Ramadan, Categories endpoints
  • Bearer token authentication via Sanctum
  • Multilingual support: Arabic, English, French

Support & Contact

© 2026 I'm Muslim (أنا المسلم) · anaalmuslim.com