Free public REST APIs for prayer times, Quran, hadith, duas, search, and more. No API key required — use them in your apps and websites with attribution to Zikr e Quran.
Base URL
https://zikrequran.com
Rate limits may apply for heavy usage. Cache responses when possible (many endpoints send Cache-Control headers).
Namaz times for a latitude/longitude. Uses AlAdhan on the server.
| Parameter | Type | Required | Description |
|---|---|---|---|
| lat | number | Yes | Latitude (-90 to 90) |
| lng | number | Yes | Longitude (-180 to 180) |
| date | string | No | Optional date: YYYY-MM-DD or DD-MM-YYYY |
GET https://zikrequran.com/api/prayer-times?lat=31.5204&lng=74.3587
Response: { success, data: { date, meta, timings, source } }
Full month of prayer times for a location.
| Parameter | Type | Required | Description |
|---|---|---|---|
| lat | number | Yes | Latitude |
| lng | number | Yes | Longitude |
| month | number | Yes | Month 1–12 |
| year | number | Yes | Gregorian year |
GET https://zikrequran.com/api/prayer-times?lat=31.5204&lng=74.3587&month=7&year=2026
Response: { success, data: { month, year, meta, days[] } }
Current Gregorian ↔ Hijri date.
| Parameter | Type | Required | Description |
|---|---|---|---|
| today | boolean | Yes | Set to 1 or true |
GET https://zikrequran.com/api/hijri-calendar?today=1
Response: { success, data: { gregorian, hijri, day, month, year, weekday, holidays } }
Gregorian month mapped to Hijri dates.
| Parameter | Type | Required | Description |
|---|---|---|---|
| month | number | No | Gregorian month 1–12 (default: current) |
| year | number | No | Gregorian year (default: current) |
GET https://zikrequran.com/api/hijri-calendar?month=7&year=2026
Response: { success, data: { month, year, days[] } }
Dua categories from IslamicAPI (Hisnul Muslim style).
| Parameter | Type | Required | Description |
|---|---|---|---|
| type | string | Yes | category | sub-category | translation | language |
| lang | string | No | ISO language code (e.g. en, ur, ar) |
| dua_id | string | No | Required when type=translation |
| random | boolean | No | true for a random dua translation |
GET https://zikrequran.com/api/islamic/dua?type=category&lang=en
Response: { success, data: [...] }
Public page for one dua with Arabic, transliteration, translation, and audio. Use ?lang= for language.
| Parameter | Type | Required | Description |
|---|---|---|---|
| duaId | number | Yes | Dua ID from sub-category dua-ids |
| lang | string | No | ISO language code (e.g. en, ur, ar) |
GET https://zikrequran.com/resources/islamic-duas/{duaId}?lang=enResponse: HTML page — data via /api/islamic/dua?type=translation&lang=en&dua_id={duaId}
Fetch one dua by ID for apps and integrations.
| Parameter | Type | Required | Description |
|---|---|---|---|
| type | string | Yes | translation |
| lang | string | Yes | ISO language code |
| dua_id | number | Yes | Dua ID |
GET https://zikrequran.com/api/islamic/dua?type=translation&lang=en&dua_id=1
Response: { success, data: { dua_id, title, arabic, translation, audioUrl, ... } }
All 114 surahs with metadata.
GET https://zikrequran.com/api/quran
Response: { success, data: [{ number, name, englishName, ayahs, revelation, ... }] }
Sura details by MongoDB id or sura number.
GET https://zikrequran.com/api/quran/{suraId}Response: { success, data: { ...sura } }
Arabic verses with optional translations.
| Parameter | Type | Required | Description |
|---|---|---|---|
| language | string | No | Translation language code |
| page | number | No | Page number (default 1) |
| limit | number | No | Per page, max 50 (default 20) |
| from | number | No | Ayah range start (use with to) |
| to | number | No | Ayah range end (use with from) |
GET https://zikrequran.com/api/quran/{suraId}/verses?language=ur&page=1&limit=20Response: { success, data: [...], pagination: { page, limit, total, totalPages } }
Bukhari, Muslim, and other collections with book counts.
GET https://zikrequran.com/api/hadith
Response: { success, data: [{ id, name, code, booksCount, ... }] }
collectionId can be MongoDB id or collection code (e.g. bukhari).
GET https://zikrequran.com/api/hadith/{collectionId}/booksResponse: { success, data: [{ id, name, number, hadithsCount, ... }] }
Paginated hadith text with optional translation.
| Parameter | Type | Required | Description |
|---|---|---|---|
| language | string | No | Translation language code |
| page | number | No | Page (default 1) |
| limit | number | No | Max 50 per page (default 20) |
GET https://zikrequran.com/api/hadith/books/{bookId}/hadiths?language=en&page=1&limit=20Response: { success, data: [...], pagination }
Site-managed duas from the database.
| Parameter | Type | Required | Description |
|---|---|---|---|
| category | string | No | Filter by category |
| publishedOnly | boolean | No | true to return published only |
| languageId | string | No | MongoDB language id |
GET https://zikrequran.com/api/duas?publishedOnly=true
Response: { success, data: [...] }
Prophet biography chapters and articles.
| Parameter | Type | Required | Description |
|---|---|---|---|
| chapter | string | No | Filter by chapter slug |
| publishedOnly | boolean | No | true for published only |
GET https://zikrequran.com/api/seerat
Response: { success, data: [...] }
Step-by-step prayer guides.
| Parameter | Type | Required | Description |
|---|---|---|---|
| prayerType | string | No | e.g. fajr, dhuhr |
| category | string | No | Guide category |
| publishedOnly | boolean | No | true for published only |
| languageId | string | No | MongoDB language id |
GET https://zikrequran.com/api/namaz
Response: { success, data: [...] }
Published articles and news.
| Parameter | Type | Required | Description |
|---|---|---|---|
| status | string | No | e.g. PUBLISHED |
| categoryId | string | No | Category filter |
| page | number | No | Page (default 1) |
| limit | number | No | Per page (default 100) |
GET https://zikrequran.com/api/blogs?status=PUBLISHED&limit=10
Response: { success, data: [...], pagination }
List of downloadable Quran PDFs by language.
GET https://zikrequran.com/api/downloads
Response: { success, data: [{ filename, language, title, size, url }] }
Quran audio files with filtering.
| Parameter | Type | Required | Description |
|---|---|---|---|
| surahNumber | number | No | Filter by surah |
| category | string | No | Audio category |
| language | string | No | Language code |
| page | number | No | Page (default 1) |
| limit | number | No | Per page (default 50) |
GET https://zikrequran.com/api/audio
Response: { success, data: [...], pagination }
Islamic images with category and tag filters.
| Parameter | Type | Required | Description |
|---|---|---|---|
| category | string | No | Image category |
| subcategory | string | No | Subcategory |
| tags | string | No | Comma-separated tags |
| page | number | No | Page (default 1) |
| limit | number | No | Per page (default 50) |
GET https://zikrequran.com/api/images
Response: { success, data: [...], pagination }
All languages supported on Zikr e Quran.
GET https://zikrequran.com/api/languages
Response: { success, data: [{ code, name, flag, ... }] }
Search Quran, hadith, duas, blogs, and pages.
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | Yes | Search query (min 2 characters) |
| type | string | No | quran | hadith | dua | namaz | blog | all |
| language | string | No | Language filter |
| limit | number | No | Max results per type (default 20) |
GET https://zikrequran.com/api/search?q=patience&type=all
Response: { success, data: { quran, hadith, duas, namaz, blogs, pages } }
Simple uptime check for monitoring.
GET https://zikrequran.com/api/health
Response: { ok: true, message: "API is running" }