Islamic Network
App · Misc References · 28 actions
The Islamic calendar as a set of free, keyless APIs: the devotional year with what to read on each blessed day, what happened on this day in history, the prophets, saints, scholars and companions, their sayings in the original with translations, and the stories told of them.
Actions
| Action | What it does |
|---|---|
| Browse devotions | Browse one collection of devotions: the duas, the adhkaar or the salawaat. |
| Browse events | Browse every recorded event in calendar order, paginated. |
| Browse people | Browse the registry of people, optionally narrowed to one kind such as the prophets or the companions. |
| Browse prayers | Browse the prayers, each with the days and months it belongs to. |
| Browse quotes | Browse the sayings, narrowed by author, theme or language. |
| Browse stories | Browse the stories, newest first, narrowed by theme or by the person they concern. |
| Check service status | Check whether Islamic Network is answering, and how quickly. |
| Find a person | Find a prophet, saint, scholar or companion by name and get back the slug the other steps need. |
| Get a day's devotions | Everything the calendar holds for one day of the Hijri year, named by month and day. |
| Get a day's events | Every event recorded on one Hijri day, named by month and day. |
| Get a devotion | One prayer, salawaat, dhikr or dua in full, by collection and slug, including the formula to recite. |
| Get a month's devotions | One Hijri month at a glance: its blessed days and the devotions kept through it. |
| Get a month's events | Every event recorded through one Hijri month, for a monthly digest or a look ahead. |
| Get a person | One person in full: their name in three scripts, the honorific traditionally said after it, their kind, their biography and how much the rest of the ecosystem holds about them. |
| Get a person's events | Every event involving one person, by their slug. |
| Get a person's quotes | Every saying attributed to one person, by their slug. |
| Get a quote | One specific saying by its id, for re-posting something an earlier step found. |
| Get a random quote | One saying of the saints, ready to post, in the original with its translation. |
| Get a story | One story in full, with its prose, the people it concerns, its themes and its artwork. |
| Get an event | One event in full by its slug, with its description and the people it concerns. |
| Get today's devotions | What to read today: the day's name, what is traditionally done on it, and the prayers, salawaat, adhkaar and duas offered. |
| Get today's events | What happened on today's Hijri date. |
| List story themes | The themes the stories are filed under, each with how many it holds. |
| List the Hijri months | The twelve months of the Hijri year, each named in English, in Arabic and in transliteration. |
| Search devotions | Search the devotional calendar by name. |
| Search events | Search the events by name, with diacritics folded for you. |
| Search quotes | Search the sayings, with diacritics folded for you. |
| Search stories | Search the stories, with diacritics folded for you. |
Browse devotions
Browse one collection of devotions: the duas, the adhkaar or the salawaat. Paginated. No API key required.
Inputs
- Collection
collectiontextRequired - Which collection to read: 'duas', 'adhkaars' or 'salawaats'. The routes spell these in the plural and answer the singular with a 404, so the singular is accepted here and translated: 'dua' and 'dhikr' both work.One of:
salawaats,adhkaars,duas. - Page
pagenumber - Which page of results to read, counting from 1. Every result reports 'total', 'total_pages' and 'has_more', so a loop can tell when it is done.From 1 to 10000.
- Results per page
limitnumber - How many results per page, from 1 to 200. Defaults to 50.From 1 to 200.
Outputs
collectiontextcountnumberdevotionslisthas_moretrue/falselimitnumberpagenumbertotalnumbertotal_pagesnumber
Example output
{
"collection": "duas",
"count": 1,
"devotions": [
{
"days": null,
"formula": null,
"id": "ab9bf275-a40a-4764-8929-0dd2aca0536c",
"months": null,
"name": {
"ar": "\u0635\u064e\u0644\u064e\u0627\u0629\u064f \u0627\u0644\u062a\u064e\u0651\u0633\u0652\u0628\u0650\u064a\u062d",
"ar_latn": "\u1e62al\u0101t al-Tasb\u012b\u1e25",
"en": "Salat al-Tasbih",
"text": "Salat al-Tasbih"
},
"slug": "salat-al-tasbih",
"url": "https://pray.api.islamic.network/v1/salaats/salat-al-tasbih"
}
],
"has_more": false,
"limit": 50,
"page": 1,
"total": 57,
"total_pages": 2
}Browse events
Browse every recorded event in calendar order, paginated. No API key required.
Inputs
- Page
pagenumber - Which page of results to read, counting from 1. Every result reports 'total', 'total_pages' and 'has_more', so a loop can tell when it is done.From 1 to 10000.
- Results per page
limitnumber - How many results per page, from 1 to 200. Defaults to 50.From 1 to 200.
Outputs
countnumbereventslisthas_moretrue/falselimitnumberpagenumbertotalnumbertotal_pagesnumber
Example output
{
"count": 1,
"events": [
{
"date": {
"day": 10,
"month": 1
},
"description": {
"html": null,
"language": null,
"text": null
},
"people": [],
"slug": "acceptance-of-the-repentance-of-adam",
"title": {
"ar": "\u0642\u064e\u0628\u064f\u0648\u0644\u064f \u062a\u064e\u0648\u0652\u0628\u064e\u0629\u0650 \u0622\u062f\u064e\u0645\u064e \u0639\u064e\u0644\u064e\u064a\u0652\u0647\u0650 \u0627\u0644\u0633\u064e\u0651\u0644\u064e\u0627\u0645",
"ar_latn": "Qab\u016bl Tawbat \u0100dam \u02bfalayhis-sal\u0101m",
"en": "The acceptance of the repentance of Adam (peace be upon him)",
"text": "The acceptance of the repentance of Adam (peace be upon him)"
},
"url": "https://events.api.islamic.network/v1/events/acceptance-of-the-repentance-of-adam"
}
],
"has_more": false,
"limit": 50,
"page": 1,
"total": 120,
"total_pages": 3
}Browse people
Browse the registry of people, optionally narrowed to one kind such as the prophets or the companions. Paginated. No API key required.
Inputs
- Only this kind
person_kindtext - Narrow to one kind of person, such as 'prophet'. Leave empty for everyone. The kinds a record carries are reported on every result, so browsing once shows what is available.
- Page
pagenumber - Which page of results to read, counting from 1. Every result reports 'total', 'total_pages' and 'has_more', so a loop can tell when it is done.From 1 to 10000.
- Results per page
limitnumber - How many results per page, from 1 to 200. Defaults to 50.From 1 to 200.
Outputs
countnumberhas_moretrue/falsekindtextlimitnumberpagenumberpeoplelisttotalnumbertotal_pagesnumber
Example output
{
"count": 1,
"has_more": false,
"kind": null,
"limit": 50,
"page": 1,
"people": [
{
"biography": {
"html": null,
"language": null,
"text": null
},
"honorific": {
"ar": null,
"ar_latn": null,
"en": "may Allah be pleased with him",
"text": "may Allah be pleased with him"
},
"image_url": null,
"kind": "family-of-the-prophet",
"lifespan": null,
"name": {
"ar": "\u0627\u0644\u0639\u0628\u0627\u0633 \u0628\u0646 \u0639\u0644\u064a",
"ar_latn": "al-\u02bfAbb\u0101s ibn \u02bfAl\u012b",
"en": "al-Abbas ibn Ali (Abu al-Fadl)",
"text": "al-Abbas ibn Ali (Abu al-Fadl)"
},
"slug": "abbas-ibn-ali",
"traces": {
"events": 1
},
"url": "https://people.api.islamic.network/v1/people/abbas-ibn-ali"
}
],
"total": 120,
"total_pages": 3
}Browse prayers
Browse the prayers, each with the days and months it belongs to. Kept on its own route by the service rather than in the three collections, which is why it is its own step. No API key required.
Inputs
- Page
pagenumber - Which page of results to read, counting from 1. Every result reports 'total', 'total_pages' and 'has_more', so a loop can tell when it is done.From 1 to 10000.
- Results per page
limitnumber - How many results per page, from 1 to 200. Defaults to 50.From 1 to 200.
Outputs
countnumberhas_moretrue/falselimitnumberpagenumbersalaatslisttotalnumbertotal_pagesnumber
Example output
{
"count": 1,
"has_more": false,
"limit": 50,
"page": 1,
"salaats": [
{
"days": null,
"formula": null,
"id": "ab9bf275-a40a-4764-8929-0dd2aca0536c",
"months": null,
"name": {
"ar": "\u0635\u064e\u0644\u064e\u0627\u0629\u064f \u0627\u0644\u062a\u064e\u0651\u0633\u0652\u0628\u0650\u064a\u062d",
"ar_latn": "\u1e62al\u0101t al-Tasb\u012b\u1e25",
"en": "Salat al-Tasbih",
"text": "Salat al-Tasbih"
},
"slug": "salat-al-tasbih",
"url": "https://pray.api.islamic.network/v1/salaats/salat-al-tasbih"
}
],
"total": 12,
"total_pages": 1
}Browse quotes
Browse the sayings, narrowed by author, theme or language. Paginated. No API key required.
Inputs
- From this person
authortext - Only this person's sayings, by their slug. Leave empty for everyone's.
- On this theme
tagtext - Only this theme. Leave empty for any.
- In this language
languagetext - Only quotes available in this language, as a code such as 'en'. Leave empty for any.
- Page
pagenumber - Which page of results to read, counting from 1. Every result reports 'total', 'total_pages' and 'has_more', so a loop can tell when it is done.From 1 to 10000.
- Results per page
limitnumber - How many results per page, from 1 to 200. Defaults to 50.From 1 to 200.
Outputs
countnumberhas_moretrue/falselimitnumberpagenumberquoteslisttotalnumbertotal_pagesnumber
Example output
{
"count": 1,
"has_more": false,
"limit": 50,
"page": 1,
"quotes": [
{
"author": {
"name": {
"ar": null,
"ar_latn": null,
"en": "Bayazid Bistami",
"text": "Bayazid Bistami"
},
"slug": "bayazid-bistami",
"url": "https://people.api.islamic.network/v1/people/bayazid-bistami"
},
"id": 1,
"original": {
"language": "ar",
"text": "\u0645\u064e\u0646\u0652 \u0644\u064e\u0627 \u0634\u064e\u064a\u0652\u062e\u064e \u0644\u064e\u0647\u064f \u0641\u064e\u0634\u064e\u064a\u0652\u062e\u064f\u0647\u064f \u0627\u0644\u0634\u064e\u0651\u064a\u0652\u0637\u064e\u0627\u0646"
},
"source": null,
"tags": [],
"text": "He who does not have a shaykh, his shaykh is Satan.",
"translations": [
{
"language": "en",
"text": "He who does not have a shaykh, his shaykh is Satan."
}
],
"url": "https://quotes.api.islamic.network/v1/quotes/1"
}
],
"total": 240,
"total_pages": 5
}Browse stories
Browse the stories, newest first, narrowed by theme or by the person they concern. These are summaries: the service leaves the prose out of a list, so use 'Get a story' for the body. No API key required.
Inputs
- On this theme
tagtext - Only stories filed under this theme, by its slug. Use 'List story themes' to see what there is. Leave empty for all.
- About this person
persontext - Only stories concerning this person, by their slug. Leave empty for all.
- Page
pagenumber - Which page of results to read, counting from 1. Every result reports 'total', 'total_pages' and 'has_more', so a loop can tell when it is done.From 1 to 10000.
- Results per page
limitnumber - How many results per page, from 1 to 200. Defaults to 50.From 1 to 200.
Outputs
countnumberhas_moretrue/falselimitnumberpagenumberpersontextstorieslisttagtexttotalnumbertotal_pagesnumber
Example output
{
"count": 1,
"has_more": false,
"limit": 50,
"page": 1,
"person": null,
"stories": [
{
"body": {
"html": null,
"language": null,
"text": null
},
"description": {
"html": null,
"language": "en",
"text": "A story of obedience and its reward."
},
"image_url": null,
"people": [],
"published": "2026-01-01",
"slug": "the-blessing-of-following-without-question",
"source": null,
"tags": [],
"title": {
"ar": null,
"ar_latn": null,
"en": "The Blessing of Following Without Question",
"text": "The Blessing of Following Without Question"
},
"url": "https://stories.api.islamic.network/v1/stories/the-blessing-of-following-without-question"
}
],
"tag": null,
"total": 29,
"total_pages": 1
}Check service status
Check whether Islamic Network is answering, and how quickly. This is five separate services on five hosts, so each is checked and reported on its own: 'ok' is true only when all five answered. Put this in front of a long workflow and branch on it, rather than discovering one service is down halfway through. Never fails the step. No API key required.
Inputs
None.
Outputs
api_countnumberapisobjecthealthy_countnumberoktrue/false
Example output
{
"api_count": 5,
"apis": {
"events": {
"latency_ms": 640.0,
"message": null,
"ok": true,
"status_code": 200
},
"people": {
"latency_ms": 640.0,
"message": null,
"ok": true,
"status_code": 200
},
"pray": {
"latency_ms": 640.0,
"message": null,
"ok": true,
"status_code": 200
},
"quotes": {
"latency_ms": 640.0,
"message": null,
"ok": true,
"status_code": 200
},
"stories": {
"latency_ms": 640.0,
"message": null,
"ok": true,
"status_code": 200
}
},
"healthy_count": 5,
"ok": true
}Find a person
Find a prophet, saint, scholar or companion by name and get back the slug the other steps need. The step to put in front of the rest when all a workflow has is a name out of a form field. Diacritics are folded by the service, so 'ali' finds the names written with their marks. No API key required.
Inputs
- Name
querytextRequired - What to look for. Islamic Network folds diacritics itself, so 'ashura' finds 'ʿĀshūrāʾ' without the marks. At least 2 characters.
- Page
pagenumber - Which page of results to read, counting from 1. Every result reports 'total', 'total_pages' and 'has_more', so a loop can tell when it is done.From 1 to 10000.
- Results per page
limitnumber - How many results per page, from 1 to 200. Defaults to 50.From 1 to 200.
Outputs
countnumberhas_moretrue/falselimitnumberpagenumberquerytextresultslisttotalnumbertotal_pagesnumber
Example output
{
"count": 1,
"has_more": false,
"limit": 50,
"page": 1,
"query": "ali",
"results": [
{
"honorific": {
"ar": null,
"ar_latn": null,
"en": "may Allah be pleased with him",
"text": "may Allah be pleased with him"
},
"id": null,
"kind": "family-of-the-prophet",
"matched_in": [
"name"
],
"name": {
"ar": "\u0627\u0644\u0639\u0628\u0627\u0633 \u0628\u0646 \u0639\u0644\u064a",
"ar_latn": "al-\u02bfAbb\u0101s ibn \u02bfAl\u012b",
"en": "al-Abbas ibn Ali (Abu al-Fadl)",
"text": "al-Abbas ibn Ali (Abu al-Fadl)"
},
"slug": "abbas-ibn-ali",
"type": "person",
"url": "https://people.api.islamic.network/v1/people/abbas-ibn-ali"
}
],
"total": 29,
"total_pages": 1
}Get a day's devotions
Everything the calendar holds for one day of the Hijri year, named by month and day. An ordinary day comes back with 'has_devotions' false rather than as an error, because most days are ordinary. No API key required.
Inputs
- Hijri month
monthnumberRequired - The Hijri month, as a number from 1 to 12. 1 is Muharram and 12 is Dhu al-Hijjah. Use 'List the Hijri months' if you need the names.From 1 to 12.
- Day of the month
daynumberRequired - The day of the Hijri month, from 1 to 30. Most days are ordinary days with nothing recorded on them, which comes back as an empty result rather than an error.From 1 to 30.
Outputs
dayobjectday_numbernumberdevotion_countnumberhas_devotionstrue/falsemonth_numbernumber
Example output
{
"day": {
"adhkaars": [],
"description": {
"html": "<p>On this day, many significant occurrences have occurred.</p>",
"language": "en",
"text": "On this day, many significant occurrences have occurred."
},
"devotion_count": 1,
"duas": [],
"events": [
{
"date": {
"day": 10,
"month": 1
},
"description": {
"html": null,
"language": null,
"text": null
},
"people": [],
"slug": "acceptance-of-the-repentance-of-adam",
"title": {
"ar": "\u0642\u064e\u0628\u064f\u0648\u0644\u064f \u062a\u064e\u0648\u0652\u0628\u064e\u0629\u0650 \u0622\u062f\u064e\u0645\u064e \u0639\u064e\u0644\u064e\u064a\u0652\u0647\u0650 \u0627\u0644\u0633\u064e\u0651\u0644\u064e\u0627\u0645",
"ar_latn": "Qab\u016bl Tawbat \u0100dam \u02bfalayhis-sal\u0101m",
"en": "The acceptance of the repentance of Adam (peace be upon him)",
"text": "The acceptance of the repentance of Adam (peace be upon him)"
},
"url": "https://events.api.islamic.network/v1/events/acceptance-of-the-repentance-of-adam"
}
],
"id": "0e23cec0-2cf1-459b-b12d-4c8df75c6454",
"month": {
"description": {
"html": null,
"language": null,
"text": null
},
"name": {
"ar": "\u0645\u064f\u062d\u064e\u0631\u064e\u0651\u0645",
"ar_latn": "Mu\u1e25arram",
"en": "Muharram",
"text": "Muharram"
},
"number": 1,
"url": "https://pray.api.islamic.network/v1/calendar/1"
},
"name": {
"ar": "\u064a\u064e\u0648\u0652\u0645\u064f \u0639\u064e\u0627\u0634\u064f\u0648\u0631\u064e\u0627\u0621",
"ar_latn": "Yawm \u02bf\u0100sh\u016br\u0101\u02be",
"en": "Day of Ashura",
"text": "Day of Ashura"
},
"number": 10,
"salaats": [
{
"days": null,
"formula": null,
"id": "ab9bf275-a40a-4764-8929-0dd2aca0536c",
"months": null,
"name": {
"ar": "\u0635\u064e\u0644\u064e\u0627\u0629\u064f \u0627\u0644\u062a\u064e\u0651\u0633\u0652\u0628\u0650\u064a\u062d",
"ar_latn": "\u1e62al\u0101t al-Tasb\u012b\u1e25",
"en": "Salat al-Tasbih",
"text": "Salat al-Tasbih"
},
"slug": "salat-al-tasbih",
"url": "https://pray.api.islamic.network/v1/salaats/salat-al-tasbih"
}
],
"salawaats": [],
"slug": "muharram-10",
"url": "https://pray.api.islamic.network/v1/calendar/1/10",
"what_to_do": {
"html": "<ul><li>Salam should be given to at least 10 Muslims.</li></ul>",
"language": "en",
"text": "Salam should be given to at least 10 Muslims."
}
},
"day_number": 10,
"devotion_count": 1,
"has_devotions": true,
"month_number": 1
}Get a day's events
Every event recorded on one Hijri day, named by month and day. A day with nothing recorded comes back empty rather than as an error. No API key required.
Inputs
- Hijri month
monthnumberRequired - The Hijri month, as a number from 1 to 12. 1 is Muharram and 12 is Dhu al-Hijjah. Use 'List the Hijri months' if you need the names.From 1 to 12.
- Day of the month
daynumberRequired - The day of the Hijri month, from 1 to 30. Most days are ordinary days with nothing recorded on them, which comes back as an empty result rather than an error.From 1 to 30.
Outputs
day_numbernumberevent_countnumbereventslisthas_eventstrue/falsemonth_numbernumber
Example output
{
"day_number": 10,
"event_count": 1,
"events": [
{
"date": {
"day": 10,
"month": 1
},
"description": {
"html": null,
"language": null,
"text": null
},
"people": [],
"slug": "acceptance-of-the-repentance-of-adam",
"title": {
"ar": "\u0642\u064e\u0628\u064f\u0648\u0644\u064f \u062a\u064e\u0648\u0652\u0628\u064e\u0629\u0650 \u0622\u062f\u064e\u0645\u064e \u0639\u064e\u0644\u064e\u064a\u0652\u0647\u0650 \u0627\u0644\u0633\u064e\u0651\u0644\u064e\u0627\u0645",
"ar_latn": "Qab\u016bl Tawbat \u0100dam \u02bfalayhis-sal\u0101m",
"en": "The acceptance of the repentance of Adam (peace be upon him)",
"text": "The acceptance of the repentance of Adam (peace be upon him)"
},
"url": "https://events.api.islamic.network/v1/events/acceptance-of-the-repentance-of-adam"
}
],
"has_events": true,
"month_number": 1
}Get a devotion
One prayer, salawaat, dhikr or dua in full, by collection and slug, including the formula to recite. Slugs come from the browse and search steps and are stable, so one stored last month still names the same devotion. No API key required.
Inputs
- Collection
collectiontextRequired - Which collection to read: 'duas', 'adhkaars' or 'salawaats'. The routes spell these in the plural and answer the singular with a 404, so the singular is accepted here and translated: 'dua' and 'dhikr' both work. 'salaats' is accepted too, for a prayer.
- Slug
slugtextRequired - The devotion's slug, as an earlier step reported it, such as 'dua-al-afiyah'.
Outputs
collectiontextdevotionobject
Example output
{
"collection": "salaats",
"devotion": {
"days": null,
"formula": null,
"id": "ab9bf275-a40a-4764-8929-0dd2aca0536c",
"months": null,
"name": {
"ar": "\u0635\u064e\u0644\u064e\u0627\u0629\u064f \u0627\u0644\u062a\u064e\u0651\u0633\u0652\u0628\u0650\u064a\u062d",
"ar_latn": "\u1e62al\u0101t al-Tasb\u012b\u1e25",
"en": "Salat al-Tasbih",
"text": "Salat al-Tasbih"
},
"slug": "salat-al-tasbih",
"url": "https://pray.api.islamic.network/v1/salaats/salat-al-tasbih"
}
}Get a month's devotions
One Hijri month at a glance: its blessed days and the devotions kept through it. The step to build a monthly calendar or digest from. No API key required.
Inputs
- Hijri month
monthnumberRequired - The Hijri month, as a number from 1 to 12. 1 is Muharram and 12 is Dhu al-Hijjah. Use 'List the Hijri months' if you need the names.From 1 to 12.
Outputs
adhkaarslistday_countnumberdayslistdescriptionobjectduaslistmonthobjectsalaatslistsalawaatslist
Example output
{
"adhkaars": [],
"day_count": 1,
"days": [
{
"month": {
"description": {
"html": null,
"language": null,
"text": null
},
"name": {
"ar": "\u0645\u064f\u062d\u064e\u0631\u064e\u0651\u0645",
"ar_latn": "Mu\u1e25arram",
"en": "Muharram",
"text": "Muharram"
},
"number": 1,
"url": "https://pray.api.islamic.network/v1/calendar/1"
},
"name": {
"ar": "\u0623\u064e\u064a\u064e\u0651\u0627\u0645\u064f \u0627\u0644\u0652\u0628\u0650\u064a\u0636",
"ar_latn": "Ayy\u0101m al-B\u012b\u1e0d",
"en": "The White Days (Ayy\u0101m al-B\u012b\u1e0d)",
"text": "The White Days (Ayy\u0101m al-B\u012b\u1e0d)"
},
"number": 13,
"slug": "rabi-al-thani-13",
"url": "https://pray.api.islamic.network/v1/calendar/4/13"
}
],
"description": {
"html": null,
"language": null,
"text": null
},
"duas": [],
"month": {
"description": {
"html": null,
"language": null,
"text": null
},
"name": {
"ar": "\u0645\u064f\u062d\u064e\u0631\u064e\u0651\u0645",
"ar_latn": "Mu\u1e25arram",
"en": "Muharram",
"text": "Muharram"
},
"number": 1,
"url": "https://pray.api.islamic.network/v1/calendar/1"
},
"salaats": [
{
"days": null,
"formula": null,
"id": "ab9bf275-a40a-4764-8929-0dd2aca0536c",
"months": null,
"name": {
"ar": "\u0635\u064e\u0644\u064e\u0627\u0629\u064f \u0627\u0644\u062a\u064e\u0651\u0633\u0652\u0628\u0650\u064a\u062d",
"ar_latn": "\u1e62al\u0101t al-Tasb\u012b\u1e25",
"en": "Salat al-Tasbih",
"text": "Salat al-Tasbih"
},
"slug": "salat-al-tasbih",
"url": "https://pray.api.islamic.network/v1/salaats/salat-al-tasbih"
}
],
"salawaats": []
}Get a month's events
Every event recorded through one Hijri month, for a monthly digest or a look ahead. No API key required.
Inputs
- Hijri month
monthnumberRequired - The Hijri month, as a number from 1 to 12. 1 is Muharram and 12 is Dhu al-Hijjah. Use 'List the Hijri months' if you need the names.From 1 to 12.
Outputs
event_countnumbereventslistmonthobjectmonth_numbernumber
Example output
{
"event_count": 1,
"events": [
{
"date": {
"day": 10,
"month": 1
},
"description": {
"html": null,
"language": null,
"text": null
},
"people": [],
"slug": "acceptance-of-the-repentance-of-adam",
"title": {
"ar": "\u0642\u064e\u0628\u064f\u0648\u0644\u064f \u062a\u064e\u0648\u0652\u0628\u064e\u0629\u0650 \u0622\u062f\u064e\u0645\u064e \u0639\u064e\u0644\u064e\u064a\u0652\u0647\u0650 \u0627\u0644\u0633\u064e\u0651\u0644\u064e\u0627\u0645",
"ar_latn": "Qab\u016bl Tawbat \u0100dam \u02bfalayhis-sal\u0101m",
"en": "The acceptance of the repentance of Adam (peace be upon him)",
"text": "The acceptance of the repentance of Adam (peace be upon him)"
},
"url": "https://events.api.islamic.network/v1/events/acceptance-of-the-repentance-of-adam"
}
],
"month": {
"description": {
"html": null,
"language": null,
"text": null
},
"name": {
"ar": "\u0645\u064f\u062d\u064e\u0631\u064e\u0651\u0645",
"ar_latn": "Mu\u1e25arram",
"en": "Muharram",
"text": "Muharram"
},
"number": 1,
"url": "https://pray.api.islamic.network/v1/calendar/1"
},
"month_number": 1
}Get a person
One person in full: their name in three scripts, the honorific traditionally said after it, their kind, their biography and how much the rest of the ecosystem holds about them. No API key required.
Inputs
- Person's slug
slugtextRequired - The person's slug, as 'Find a person' reported it.
Outputs
personobject
Example output
{
"person": {
"biography": {
"html": null,
"language": null,
"text": null
},
"honorific": {
"ar": null,
"ar_latn": null,
"en": "may Allah be pleased with him",
"text": "may Allah be pleased with him"
},
"image_url": null,
"kind": "family-of-the-prophet",
"lifespan": null,
"name": {
"ar": "\u0627\u0644\u0639\u0628\u0627\u0633 \u0628\u0646 \u0639\u0644\u064a",
"ar_latn": "al-\u02bfAbb\u0101s ibn \u02bfAl\u012b",
"en": "al-Abbas ibn Ali (Abu al-Fadl)",
"text": "al-Abbas ibn Ali (Abu al-Fadl)"
},
"slug": "abbas-ibn-ali",
"traces": {
"events": 1
},
"url": "https://people.api.islamic.network/v1/people/abbas-ibn-ali"
}
}Get a person's events
Every event involving one person, by their slug. Put 'Find a person' in front of this to turn a name into a slug. No API key required.
Inputs
- Person's slug
slugtextRequired - The person's slug, as 'Find a person' or 'Get a person' reported it.
- Page
pagenumber - Which page of results to read, counting from 1. Every result reports 'total', 'total_pages' and 'has_more', so a loop can tell when it is done.From 1 to 10000.
- Results per page
limitnumber - How many results per page, from 1 to 200. Defaults to 50.From 1 to 200.
Outputs
countnumbereventslisthas_moretrue/falselimitnumberpagenumberpersonobjectperson_slugtexttotalnumbertotal_pagesnumber
Example output
{
"count": 1,
"events": [
{
"date": {
"day": 10,
"month": 1
},
"description": {
"html": null,
"language": null,
"text": null
},
"people": [],
"slug": "acceptance-of-the-repentance-of-adam",
"title": {
"ar": "\u0642\u064e\u0628\u064f\u0648\u0644\u064f \u062a\u064e\u0648\u0652\u0628\u064e\u0629\u0650 \u0622\u062f\u064e\u0645\u064e \u0639\u064e\u0644\u064e\u064a\u0652\u0647\u0650 \u0627\u0644\u0633\u064e\u0651\u0644\u064e\u0627\u0645",
"ar_latn": "Qab\u016bl Tawbat \u0100dam \u02bfalayhis-sal\u0101m",
"en": "The acceptance of the repentance of Adam (peace be upon him)",
"text": "The acceptance of the repentance of Adam (peace be upon him)"
},
"url": "https://events.api.islamic.network/v1/events/acceptance-of-the-repentance-of-adam"
}
],
"has_more": false,
"limit": 50,
"page": 1,
"person": {
"name": {
"ar": "\u0627\u0644\u0639\u0628\u0627\u0633 \u0628\u0646 \u0639\u0644\u064a",
"ar_latn": "al-\u02bfAbb\u0101s ibn \u02bfAl\u012b",
"en": "al-Abbas ibn Ali (Abu al-Fadl)",
"text": "al-Abbas ibn Ali (Abu al-Fadl)"
},
"slug": "abbas-ibn-ali",
"url": "https://people.api.islamic.network/v1/people/abbas-ibn-ali"
},
"person_slug": "abbas-ibn-ali",
"total": 1,
"total_pages": 1
}Get a person's quotes
Every saying attributed to one person, by their slug. No API key required.
Inputs
- Person's slug
slugtextRequired - The person's slug, as 'Find a person' reported it.
- Page
pagenumber - Which page of results to read, counting from 1. Every result reports 'total', 'total_pages' and 'has_more', so a loop can tell when it is done.From 1 to 10000.
- Results per page
limitnumber - How many results per page, from 1 to 200. Defaults to 50.From 1 to 200.
Outputs
countnumberhas_moretrue/falselimitnumberpagenumberpersonobjectperson_slugtextquoteslisttotalnumbertotal_pagesnumber
Example output
{
"count": 1,
"has_more": false,
"limit": 50,
"page": 1,
"person": {
"name": {
"ar": "\u0628\u064e\u0627\u064a\u064e\u0632\u0650\u064a\u062f \u0627\u0644\u0652\u0628\u0650\u0633\u0652\u0637\u064e\u0627\u0645\u0650\u064a",
"ar_latn": "B\u0101yaz\u012bd al-Bis\u1e6d\u0101m\u012b",
"en": "Bayazid Bistami",
"text": "Bayazid Bistami"
},
"slug": "bayazid-bistami",
"url": "https://people.api.islamic.network/v1/people/bayazid-bistami"
},
"person_slug": "bayazid-bistami",
"quotes": [
{
"author": {
"name": {
"ar": null,
"ar_latn": null,
"en": "Bayazid Bistami",
"text": "Bayazid Bistami"
},
"slug": "bayazid-bistami",
"url": "https://people.api.islamic.network/v1/people/bayazid-bistami"
},
"id": 1,
"original": {
"language": "ar",
"text": "\u0645\u064e\u0646\u0652 \u0644\u064e\u0627 \u0634\u064e\u064a\u0652\u062e\u064e \u0644\u064e\u0647\u064f \u0641\u064e\u0634\u064e\u064a\u0652\u062e\u064f\u0647\u064f \u0627\u0644\u0634\u064e\u0651\u064a\u0652\u0637\u064e\u0627\u0646"
},
"source": null,
"tags": [],
"text": "He who does not have a shaykh, his shaykh is Satan.",
"translations": [
{
"language": "en",
"text": "He who does not have a shaykh, his shaykh is Satan."
}
],
"url": "https://quotes.api.islamic.network/v1/quotes/1"
}
],
"total": 8,
"total_pages": 1
}Get a quote
One specific saying by its id, for re-posting something an earlier step found. Ids are stable, so one stored last month still means the same saying. No API key required.
Inputs
- Quote ID
quote_idtextRequired - The quote's id, as an earlier step reported it.
Outputs
quoteobject
Example output
{
"quote": {
"author": {
"name": {
"ar": null,
"ar_latn": null,
"en": "Bayazid Bistami",
"text": "Bayazid Bistami"
},
"slug": "bayazid-bistami",
"url": "https://people.api.islamic.network/v1/people/bayazid-bistami"
},
"id": 1,
"original": {
"language": "ar",
"text": "\u0645\u064e\u0646\u0652 \u0644\u064e\u0627 \u0634\u064e\u064a\u0652\u062e\u064e \u0644\u064e\u0647\u064f \u0641\u064e\u0634\u064e\u064a\u0652\u062e\u064f\u0647\u064f \u0627\u0644\u0634\u064e\u0651\u064a\u0652\u0637\u064e\u0627\u0646"
},
"source": null,
"tags": [],
"text": "He who does not have a shaykh, his shaykh is Satan.",
"translations": [
{
"language": "en",
"text": "He who does not have a shaykh, his shaykh is Satan."
}
],
"url": "https://quotes.api.islamic.network/v1/quotes/1"
}
}Get a random quote
One saying of the saints, ready to post, in the original with its translation. Narrow it to one author, one theme or one language, or leave all three empty to draw from everything. No API key required.
Inputs
- From this person
authortext - Only draw from this person, by their slug. Leave empty to draw from anyone.
- On this theme
tagtext - Only draw from this theme. Leave empty for any.
- In this language
languagetext - Only draw quotes available in this language, as a code such as 'en'. Leave empty for any.
Outputs
quoteobject
Example output
{
"quote": {
"author": {
"name": {
"ar": null,
"ar_latn": null,
"en": "Bayazid Bistami",
"text": "Bayazid Bistami"
},
"slug": "bayazid-bistami",
"url": "https://people.api.islamic.network/v1/people/bayazid-bistami"
},
"id": 1,
"original": {
"language": "ar",
"text": "\u0645\u064e\u0646\u0652 \u0644\u064e\u0627 \u0634\u064e\u064a\u0652\u062e\u064e \u0644\u064e\u0647\u064f \u0641\u064e\u0634\u064e\u064a\u0652\u062e\u064f\u0647\u064f \u0627\u0644\u0634\u064e\u0651\u064a\u0652\u0637\u064e\u0627\u0646"
},
"source": null,
"tags": [],
"text": "He who does not have a shaykh, his shaykh is Satan.",
"translations": [
{
"language": "en",
"text": "He who does not have a shaykh, his shaykh is Satan."
}
],
"url": "https://quotes.api.islamic.network/v1/quotes/1"
}
}Get a story
One story in full, with its prose, the people it concerns, its themes and its artwork. The browse and search steps return summaries without the prose, so this is the step that fetches the body. No API key required.
Inputs
- Slug
slugtextRequired - The story's slug, as an earlier step reported it.
Outputs
storyobject
Example output
{
"story": {
"body": {
"html": null,
"language": null,
"text": null
},
"description": {
"html": null,
"language": "en",
"text": "A story of obedience and its reward."
},
"image_url": null,
"people": [],
"published": "2026-01-01",
"slug": "the-blessing-of-following-without-question",
"source": null,
"tags": [],
"title": {
"ar": null,
"ar_latn": null,
"en": "The Blessing of Following Without Question",
"text": "The Blessing of Following Without Question"
},
"url": "https://stories.api.islamic.network/v1/stories/the-blessing-of-following-without-question"
}
}Get an event
One event in full by its slug, with its description and the people it concerns. Put 'Search events' in front of this when all a workflow has is a name. No API key required.
Inputs
- Slug
slugtextRequired - The event's slug, as an earlier step reported it.
Outputs
eventobject
Example output
{
"event": {
"date": {
"day": 10,
"month": 1
},
"description": {
"html": null,
"language": null,
"text": null
},
"people": [],
"slug": "acceptance-of-the-repentance-of-adam",
"title": {
"ar": "\u0642\u064e\u0628\u064f\u0648\u0644\u064f \u062a\u064e\u0648\u0652\u0628\u064e\u0629\u0650 \u0622\u062f\u064e\u0645\u064e \u0639\u064e\u0644\u064e\u064a\u0652\u0647\u0650 \u0627\u0644\u0633\u064e\u0651\u0644\u064e\u0627\u0645",
"ar_latn": "Qab\u016bl Tawbat \u0100dam \u02bfalayhis-sal\u0101m",
"en": "The acceptance of the repentance of Adam (peace be upon him)",
"text": "The acceptance of the repentance of Adam (peace be upon him)"
},
"url": "https://events.api.islamic.network/v1/events/acceptance-of-the-repentance-of-adam"
}
}Get today's devotions
What to read today: the day's name, what is traditionally done on it, and the prayers, salawaat, adhkaar and duas offered. Most days of the year are ordinary days, so this usually comes back with 'has_devotions' false and a 'next' pointing at the coming blessed day, with the days until it where that can be counted. Branch on 'has_devotions' to stay quiet on an ordinary morning, or announce what is coming. No API key required.
Inputs
- Date
datedate - The Gregorian day to resolve, as YYYY-MM-DD. Leave empty for today. Islamic Network's own routes insist on DD-MM-YYYY and answer anything else with an error, so either spelling is accepted here and converted on the way out: a date picker's value can be passed straight in.
Outputs
dateobjectdayobjectdays_until_nextnumberdevotion_countnumberhas_devotionstrue/falsemonthobjectnextobject
Example output
{
"date": {
"gregorian": "2026-09-16",
"hijri": {
"day": 5,
"month": 4,
"year": 1448
},
"hijri_text": "5/4/1448 AH"
},
"day": null,
"days_until_next": 8,
"devotion_count": 0,
"has_devotions": false,
"month": {
"description": {
"html": null,
"language": null,
"text": null
},
"name": {
"ar": "\u0645\u064f\u062d\u064e\u0631\u064e\u0651\u0645",
"ar_latn": "Mu\u1e25arram",
"en": "Muharram",
"text": "Muharram"
},
"number": 1,
"url": "https://pray.api.islamic.network/v1/calendar/1"
},
"next": {
"month": {
"description": {
"html": null,
"language": null,
"text": null
},
"name": {
"ar": "\u0645\u064f\u062d\u064e\u0631\u064e\u0651\u0645",
"ar_latn": "Mu\u1e25arram",
"en": "Muharram",
"text": "Muharram"
},
"number": 1,
"url": "https://pray.api.islamic.network/v1/calendar/1"
},
"name": {
"ar": "\u0623\u064e\u064a\u064e\u0651\u0627\u0645\u064f \u0627\u0644\u0652\u0628\u0650\u064a\u0636",
"ar_latn": "Ayy\u0101m al-B\u012b\u1e0d",
"en": "The White Days (Ayy\u0101m al-B\u012b\u1e0d)",
"text": "The White Days (Ayy\u0101m al-B\u012b\u1e0d)"
},
"number": 13,
"slug": "rabi-al-thani-13",
"url": "https://pray.api.islamic.network/v1/calendar/4/13"
}
}Get today's events
What happened on today's Hijri date. Like the devotional calendar, most days carry nothing, so this usually returns 'has_events' false with a 'next' pointing at the coming anniversary. Branch on 'has_events' rather than posting an empty list. No API key required.
Inputs
- Date
datedate - The Gregorian day to resolve, as YYYY-MM-DD. Leave empty for today. Islamic Network's own routes insist on DD-MM-YYYY and answer anything else with an error, so either spelling is accepted here and converted on the way out: a date picker's value can be passed straight in.
Outputs
dateobjectdays_until_nextnumberevent_countnumbereventslisthas_eventstrue/falsemonthobjectnextobject
Example output
{
"date": {
"gregorian": "2026-09-16",
"hijri": {
"day": 5,
"month": 4,
"year": 1448
},
"hijri_text": "5/4/1448 AH"
},
"days_until_next": 6,
"event_count": 0,
"events": [],
"has_events": false,
"month": {
"description": {
"html": null,
"language": null,
"text": null
},
"name": {
"ar": "\u0645\u064f\u062d\u064e\u0631\u064e\u0651\u0645",
"ar_latn": "Mu\u1e25arram",
"en": "Muharram",
"text": "Muharram"
},
"number": 1,
"url": "https://pray.api.islamic.network/v1/calendar/1"
},
"next": {
"date": {
"day": 10,
"month": 1
},
"description": {
"html": null,
"language": null,
"text": null
},
"people": [],
"slug": "acceptance-of-the-repentance-of-adam",
"title": {
"ar": "\u0642\u064e\u0628\u064f\u0648\u0644\u064f \u062a\u064e\u0648\u0652\u0628\u064e\u0629\u0650 \u0622\u062f\u064e\u0645\u064e \u0639\u064e\u0644\u064e\u064a\u0652\u0647\u0650 \u0627\u0644\u0633\u064e\u0651\u0644\u064e\u0627\u0645",
"ar_latn": "Qab\u016bl Tawbat \u0100dam \u02bfalayhis-sal\u0101m",
"en": "The acceptance of the repentance of Adam (peace be upon him)",
"text": "The acceptance of the repentance of Adam (peace be upon him)"
},
"url": "https://events.api.islamic.network/v1/events/acceptance-of-the-repentance-of-adam"
}
}List story themes
The themes the stories are filed under, each with how many it holds. The step to put in front of 'Browse stories' when you want a themed selection. No API key required.
Inputs
- Page
pagenumber - Which page of results to read, counting from 1. Every result reports 'total', 'total_pages' and 'has_more', so a loop can tell when it is done.From 1 to 10000.
- Results per page
limitnumber - How many results per page, from 1 to 200. Defaults to 50.From 1 to 200.
Outputs
countnumberhas_moretrue/falselimitnumberpagenumbertagslisttotalnumbertotal_pagesnumber
Example output
{
"count": 1,
"has_more": false,
"limit": 50,
"page": 1,
"tags": [
{
"name": {
"ar": null,
"ar_latn": null,
"en": "Blessing",
"text": "Blessing"
},
"slug": "blessing",
"story_count": 4,
"url": "https://stories.api.islamic.network/v1/tags/blessing"
}
],
"total": 40,
"total_pages": 1
}List the Hijri months
The twelve months of the Hijri year, each named in English, in Arabic and in transliteration. Useful for turning a month number into a name, or for looping over the year. No API key required.
Inputs
None.
Outputs
month_countnumbermonthslist
Example output
{
"month_count": 12,
"months": [
{
"description": {
"html": null,
"language": null,
"text": null
},
"name": {
"ar": "\u0645\u064f\u062d\u064e\u0631\u064e\u0651\u0645",
"ar_latn": "Mu\u1e25arram",
"en": "Muharram",
"text": "Muharram"
},
"number": 1,
"url": "https://pray.api.islamic.network/v1/calendar/1"
}
]
}Search devotions
Search the devotional calendar by name. Diacritics are folded by the service, so 'dua al afiyah' finds the one written with its marks. Narrow to particular collections with the type filter. No API key required.
Inputs
- Search for
querytextRequired - What to look for. Islamic Network folds diacritics itself, so 'ashura' finds 'ʿĀshūrāʾ' without the marks. At least 2 characters.
- Only these kinds
typetext - Comma separated kinds to narrow to, such as 'salaats,adhkaars'. Leave empty to search everything.
- Page
pagenumber - Which page of results to read, counting from 1. Every result reports 'total', 'total_pages' and 'has_more', so a loop can tell when it is done.From 1 to 10000.
- Results per page
limitnumber - How many results per page, from 1 to 200. Defaults to 50.From 1 to 200.
Outputs
countnumberhas_moretrue/falselimitnumberpagenumberquerytextresultslisttotalnumbertotal_pagesnumber
Example output
{
"count": 1,
"has_more": false,
"limit": 50,
"page": 1,
"query": "tasbih",
"results": [
{
"honorific": {
"ar": null,
"ar_latn": null,
"en": "may Allah be pleased with him",
"text": "may Allah be pleased with him"
},
"id": null,
"kind": "family-of-the-prophet",
"matched_in": [
"name"
],
"name": {
"ar": "\u0627\u0644\u0639\u0628\u0627\u0633 \u0628\u0646 \u0639\u0644\u064a",
"ar_latn": "al-\u02bfAbb\u0101s ibn \u02bfAl\u012b",
"en": "al-Abbas ibn Ali (Abu al-Fadl)",
"text": "al-Abbas ibn Ali (Abu al-Fadl)"
},
"slug": "salat-al-tasbih",
"type": "salaat",
"url": "https://people.api.islamic.network/v1/people/abbas-ibn-ali"
}
],
"total": 1,
"total_pages": 1
}Search events
Search the events by name, with diacritics folded for you. A search that matches nothing comes back empty rather than failing the step. No API key required.
Inputs
- Search for
querytextRequired - What to look for. Islamic Network folds diacritics itself, so 'ashura' finds 'ʿĀshūrāʾ' without the marks. At least 2 characters.
- Page
pagenumber - Which page of results to read, counting from 1. Every result reports 'total', 'total_pages' and 'has_more', so a loop can tell when it is done.From 1 to 10000.
- Results per page
limitnumber - How many results per page, from 1 to 200. Defaults to 50.From 1 to 200.
Outputs
countnumberhas_moretrue/falselimitnumberpagenumberquerytextresultslisttotalnumbertotal_pagesnumber
Example output
{
"count": 1,
"has_more": false,
"limit": 50,
"page": 1,
"query": "ashura",
"results": [
{
"honorific": {
"ar": null,
"ar_latn": null,
"en": "may Allah be pleased with him",
"text": "may Allah be pleased with him"
},
"id": null,
"kind": "family-of-the-prophet",
"matched_in": [
"name"
],
"name": {
"ar": "\u0627\u0644\u0639\u0628\u0627\u0633 \u0628\u0646 \u0639\u0644\u064a",
"ar_latn": "al-\u02bfAbb\u0101s ibn \u02bfAl\u012b",
"en": "al-Abbas ibn Ali (Abu al-Fadl)",
"text": "al-Abbas ibn Ali (Abu al-Fadl)"
},
"slug": "abbas-ibn-ali",
"type": "event",
"url": "https://people.api.islamic.network/v1/people/abbas-ibn-ali"
}
],
"total": 1,
"total_pages": 1
}Search quotes
Search the sayings, with diacritics folded for you. A search that matches nothing comes back empty rather than failing the step. No API key required.
Inputs
- Search for
querytextRequired - What to look for. Islamic Network folds diacritics itself, so 'ashura' finds 'ʿĀshūrāʾ' without the marks. At least 2 characters.
- Page
pagenumber - Which page of results to read, counting from 1. Every result reports 'total', 'total_pages' and 'has_more', so a loop can tell when it is done.From 1 to 10000.
- Results per page
limitnumber - How many results per page, from 1 to 200. Defaults to 50.From 1 to 200.
Outputs
countnumberhas_moretrue/falselimitnumberpagenumberquerytextresultslisttotalnumbertotal_pagesnumber
Example output
{
"count": 1,
"has_more": false,
"limit": 50,
"page": 1,
"query": "heart",
"results": [
{
"honorific": {
"ar": null,
"ar_latn": null,
"en": "may Allah be pleased with him",
"text": "may Allah be pleased with him"
},
"id": null,
"kind": "family-of-the-prophet",
"matched_in": [
"name"
],
"name": {
"ar": "\u0627\u0644\u0639\u0628\u0627\u0633 \u0628\u0646 \u0639\u0644\u064a",
"ar_latn": "al-\u02bfAbb\u0101s ibn \u02bfAl\u012b",
"en": "al-Abbas ibn Ali (Abu al-Fadl)",
"text": "al-Abbas ibn Ali (Abu al-Fadl)"
},
"slug": "abbas-ibn-ali",
"type": "quote",
"url": "https://people.api.islamic.network/v1/people/abbas-ibn-ali"
}
],
"total": 12,
"total_pages": 1
}Search stories
Search the stories, with diacritics folded for you. A search that matches nothing comes back empty rather than failing the step. No API key required.
Inputs
- Search for
querytextRequired - What to look for. Islamic Network folds diacritics itself, so 'ashura' finds 'ʿĀshūrāʾ' without the marks. At least 2 characters.
- Page
pagenumber - Which page of results to read, counting from 1. Every result reports 'total', 'total_pages' and 'has_more', so a loop can tell when it is done.From 1 to 10000.
- Results per page
limitnumber - How many results per page, from 1 to 200. Defaults to 50.From 1 to 200.
Outputs
countnumberhas_moretrue/falselimitnumberpagenumberquerytextresultslisttotalnumbertotal_pagesnumber
Example output
{
"count": 1,
"has_more": false,
"limit": 50,
"page": 1,
"query": "light",
"results": [
{
"honorific": {
"ar": null,
"ar_latn": null,
"en": "may Allah be pleased with him",
"text": "may Allah be pleased with him"
},
"id": null,
"kind": "family-of-the-prophet",
"matched_in": [
"name"
],
"name": {
"ar": "\u0627\u0644\u0639\u0628\u0627\u0633 \u0628\u0646 \u0639\u0644\u064a",
"ar_latn": "al-\u02bfAbb\u0101s ibn \u02bfAl\u012b",
"en": "al-Abbas ibn Ali (Abu al-Fadl)",
"text": "al-Abbas ibn Ali (Abu al-Fadl)"
},
"slug": "abbas-ibn-ali",
"type": "story",
"url": "https://people.api.islamic.network/v1/people/abbas-ibn-ali"
}
],
"total": 3,
"total_pages": 1
}