Siraat Open Data API
Free, public, read-only access to anonymised Salah analytics from the Siraat community — the first measurable record of how a community prays. Build visualisations, run research, or create new platforms on top of the data. No key required, no sign-up.
About the dataset
For the first time in history, Muslims can measure the quality of their Salah — not just whether it was prayed, but how present, sincere and complete it was. Siraat turns that into a structured, anonymised, open dataset for the whole Ummah.
First of its kind
A measurable, longitudinal record of Salah quality — something that has never existed before at community scale.
Rich & structured
Nearly 40 fields per prayer: focus, intention, the physical pillars, timing, congregation, location and more.
Open & global
Free for anyone, anywhere — researchers, mosques, students and builders — with no key and no sign-up.
Understanding the Salah Quality Score
Every prayer is scored from 1 to 10 (also shown as a percentage and an A–F grade). The score is not a black box — it is a transparent, additive formula. It begins with the average of seven quality dimensions, then adds small bonuses for the sunnah acts that beautify a prayer and subtracts penalties for lapses, before being clamped to the 1–10 range.
The formula
score = clamp( BASE + BONUSES − PENALTIES , 1.0 , 10.0 )
BASE = ( khushu + wudu + niyyah + confidence
+ tadabbur + ruku + sujud ) / 7Each of the seven inputs is rated 1–10, so BASE is always between 1 and 10. Bonuses and penalties nudge that figure up or down; the result is rounded to two decimals.
Base quality — the seven dimensions
Rated 1–10 each and averaged to form the BASE. They split into the inward state and the outward pillars.
Khushu
InnerHumility, presence of heart and concentration during the prayer.
Niyyah clarity
InnerClarity and sincerity of intention before beginning.
Tadabbur
InnerReflecting on and understanding the meaning of the recitation.
Wudu
PhysicalCare and completeness of the ablution / state of purity.
Ruku quality
PhysicalStillness and correctness of the bowing.
Sujud quality
PhysicalStillness and correctness of the prostration.
Confidence level
PhysicalCommand of the words and movements without hesitation.
Bonuses added
- +0.50Prayed in jamaah (congregation)
- +0.30Prayed early in its window
- +0.30Decent dress (covering the awrah)
- +0.25Performed istinja
- +0.20Gaze controlled at the place of sujud
- +0.20Dua after salah
- +0.20Dhikr after salah
- +0.15On time (when not early)
- +0.15Prayed behind an imam
- +0.10 per rakat, max +0.50Sunnah rawatib
Sunnah rawatib add +0.10 per rakat, capped at +0.50. “Early” and “on time” are mutually exclusive — a prayer earns one or the other, never both.
Penalties subtracted
- −0.50Rushed through the prayer
- −0.30Prayed late / outside the window
- −0.20Interruption during the prayer
- −0.15Mistake requiring sujud al-sahw
How timing is decided
- •On time — prayed within 30 minutes of the expected prayer time.
- •Early — prayed between 5 minutes before and 10 minutes after the time enters (earns the early bonus instead of the on-time one).
- •Qada (make-up) — a fard prayer logged after its window closes, or on a past date. Qada is always counted as neither early nor on time.
- •If no expected time is available, the prayer is assumed on time and never penalised for lateness.
Grade scale
≥ 9.0
Excellent — deeply focused, complete
7.0 – 8.9
Good — strong with minor lapses
5.0 – 6.9
Fair — acceptable, room to grow
4.0 – 4.9
Weak — distracted or rushed
< 4.0
Needs attention — major lapses
A worked example
Imagine a Dhuhr prayed in congregation, early in its window, with the sunnah rawatib observed. The seven dimensions are rated khushu 7, wudu 9, niyyah 8, confidence 8, tadabbur 6, ruku 8, sujud 8.
Because the raw total exceeds 10, the clamp caps it at a perfect 10.0. Ma sha Allah — a beautifully complete prayer.
Privacy comes first
Every record is de-identified before it ever leaves Siraat. The data is rich enough for serious analysis, yet no individual can be recognised.
No personal identity
Names, emails, phone numbers, sign-in ids and photos are never included. Each person appears only as a stable anonymous id (like sr_a1b2c3d4e5f6).
Mappable, not pinpointable
Records include country, city and coordinates so you can project prayers on a map — but coordinates are rounded to about 1 km so no one’s exact home can be identified.
k-anonymity on aggregates
In the aggregated by-country view, countries with fewer than 5 members are grouped into "Other", so no summary row can point to a near-unique individual.
Stable, non-reversible ids
Anonymous ids are a one-way salted hash. The same person always maps to the same id — enabling per-person analysis — but the id can never be traced back.
Endpoints
All endpoints are open GET requests that return JSON. Click any URL to try it.
Machine-readable description of the whole API: every endpoint, the privacy model, and the full field dictionary.
Headline totals and community-wide averages — members, prayers tracked, average Salah Quality Score, on-time rate, jamaah rate, grade distribution.
Averages and rates broken down by prayer (Fajr, Dhuhr, Asr, Maghrib, Isha, Witr, and more).
Aggregated metrics per country. Countries with very few members are grouped together to protect privacy.
Average Salah Quality Score over time.
Query parameters
period— daily | weekly | monthly (default: weekly)
One de-identified row per logged prayer — including country, city and approximate coordinates for map projection. Each person is a stable anonymous id, so you can run per-person analysis without anyone being identifiable.
Query parameters
limit— rows per page (default 1,000,000 — effectively every record in one request)offset— rows to skip (default 0)prayer— filter by prayer name, e.g. Fajrcountry— filter by country name, e.g. Ghanafrom— ISO date lower bound (YYYY-MM-DD)to— ISO date upper bound (YYYY-MM-DD)format— json (default) | csv
Quick start
No authentication needed. Point any tool at the endpoints — or pull the CSV straight into spreadsheets, Looker Studio, or a data notebook.
// Fetch community stats
const res = await fetch('https://siraat.org/api/public/stats')
const stats = await res.json()
console.log(stats)
// Fetch the first 1000 de-identified prayer records
const r = await fetch('https://siraat.org/api/public/records?limit=1000')
const { records } = await r.json()import pandas as pd
# Load every de-identified record straight into a DataFrame as CSV
url = "https://siraat.org/api/public/records?format=csv"
df = pd.read_csv(url)
# Ready to plot on a map: each row has latitude, longitude, city & country
map_df = df.dropna(subset=["latitude", "longitude"])
print(map_df[["city", "latitude", "longitude", "quality_score"]].head())# Community stats
curl https://siraat.org/api/public/stats
# Records as CSV, only Fajr prayers in Ghana
curl "https://siraat.org/api/public/records?prayer=Fajr&country=Ghana&format=csv"library(readr)
# Load de-identified records directly into R
df <- read_csv("https://siraat.org/api/public/records?format=csv")
summary(df$quality_score)Connect to Power BI, Tableau & other dashboards
Build live, auto-refreshing dashboards straight from the endpoints — no key, no database access.
Power BI
- Home → Get data → Web
- Paste an endpoint URL, e.g.
https://siraat.org/api/public/by-country - Power BI auto-detects the JSON — click To table, then expand the columns.
- Set a scheduled refresh to keep it live.
Tableau
- Connect → Web Data Connector or the JSON file connector.
- Point it at an endpoint URL and choose the fields you need.
- Publish and schedule an extract refresh.
Looker Studio
- Add data → community connector for JSON/CSV, or the built-in CSV upload.
- Use the
?format=csvoption on/api/public/records. - Chart directly on the live feed.
Excel / Google Sheets
- Excel: Data → From Web and paste an endpoint URL.
- Sheets:
=IMPORTDATA(".../api/public/records?format=csv") - Refresh on demand or on a schedule.
Tip: endpoints return JSON by default; add ?format=csv on /api/public/records for tools that prefer flat files. CORS is open, so browser-based tools can read the feeds directly.
Field dictionary
Every column returned by the /records endpoint. Dates use the ISO 8601 calendar format (YYYY-MM-DD) and times are plain time-of-day values in UTC (HH:MM:SS), so the feed reads identically anywhere in the world.
| Field | Description |
|---|---|
anon_user_id | Stable anonymous person id (prefix sr_). Same person = same id, but not reversible. |
prayer_name | Fajr, Dhuhr, Asr, Maghrib, Isha, Witr, Jumuah, Tahajjud |
prayer_date | The calendar date the prayer belongs to (YYYY-MM-DD) |
expected_prayer_time | The scheduled/expected time of day for this prayer, as a plain time value (HH:MM:SS, UTC). For prayers with no fixed time (Witr, Tahajjud) this equals actual_prayer_time. |
actual_prayer_time | The time of day the prayer was actually performed, as a plain time value (HH:MM:SS, UTC). Compare with expected_prayer_time to study punctuality. |
quality_score | The Salah Quality Score, 1–10 |
quality_percent | quality_score expressed as a percentage (0–100) |
grade | Letter grade A–F |
khushu | Focus / presence of heart, 1–10 |
wudu | Quality of ablution, 1–10 |
niyyah_clarity | Clarity of intention, 1–10 |
confidence_level | Self-rated confidence, 1–10 |
tadabbur | Reflection on meaning, 1–10 |
ruku_quality | Quality of ruku (bowing), 1–10 |
sujud_quality | Quality of sujud (prostration), 1–10 |
duration_minutes | Length of the prayer in minutes (may be null) |
prayer_streak | Consecutive-prayer streak at time of logging |
prayed_in_jamaah | Prayed in congregation (1 = yes, 0 = no) |
prayed_on_time | Prayed within the time window (1 = yes, 0 = no) |
is_qada | Made-up (late) prayer (1 = yes, 0 = no) |
is_qasr | Shortened (travel) prayer (1 = yes, 0 = no) |
had_khushu_focus | 1 = yes, 0 = no |
understood_recitation | 1 = yes, 0 = no |
gaze_controlled | 1 = yes, 0 = no |
rush_through | 1 = yes, 0 = no |
mind_wandered | 1 = yes, 0 = no |
interruption | 1 = yes, 0 = no |
mistake | 1 = yes, 0 = no |
reflection | 1 = yes, 0 = no |
dua | 1 = yes, 0 = no |
dhikr | 1 = yes, 0 = no |
decent_dress | 1 = yes, 0 = no |
performed_istinja | 1 = yes, 0 = no |
prayed_behind_imam | 1 = yes, 0 = no |
rawatib_before | Sunnah units before the fard prayer |
rawatib_after | Sunnah units after the fard prayer |
country | Country (or "Unknown") |
city | City (may be null) |
latitude | Latitude, rounded to ~1 km for map projection (may be null) |
longitude | Longitude, rounded to ~1 km for map projection (may be null) |
What can you build?
The data is open for good. Here are a few of the many ways it can be put to use.
Researchers & academics
Study Salah quality across time, geography and prayer type. The dataset is the first of its kind — a measurable, anonymised record of how a community prays.
Data visualisers
Map prayers by city and country, chart quality trends, or build dashboards. City, country and approximate coordinates make geospatial work straightforward.
Dashboards & BI tools
Connect the JSON and CSV endpoints straight into Power BI, Tableau, Looker Studio or Excel to build live, auto-refreshing dashboards — no database access or key needed. Point your tool at a URL and it just works.
Mosques & communities
Understand jamaah rates, on-time patterns and how quality shifts through the week to better serve worshippers.
Students & developers
A clean, well-documented, open dataset for a class project, a portfolio piece, or a new app built on top of Siraat — no sign-up, no key.
Frequently asked
Is the API really free?+
Yes — completely free, with no key and no sign-up. You can call it from a browser, a script, a notebook or a spreadsheet. We only ask that you attribute Siraat as the source, and that you tell others about it so the dataset keeps growing.
Can I identify a specific person?+
No. Names, emails, phone numbers, sign-in ids and photos are never included. Each person appears only as a stable, non-reversible anonymous id, and coordinates are rounded to about 1 km so no exact home can be found.
How often is the data updated?+
The data reflects the live Siraat community and updates continuously as members log their prayers. Responses are cached for a few minutes for speed, so you may see changes reflected shortly after they happen.
What is the Salah Quality Score?+
It is a 1–10 measure of the quality of a single prayer, combining focus (khushu), intention, reflection, the physical pillars and more. It is also expressed as a percentage and a letter grade (A–F).
Can I build a product on top of this?+
Absolutely. Build dashboards, research tools, or entirely new platforms. The more the data is used and shared for good, the greater the benefit to the Ummah, in sha Allah.
How large is the dataset?+
It grows every day. Call /api/public/stats for the current totals — members, prayers tracked, countries and date range — at any moment.
License & attribution
The Siraat Open Data is free to use for research, analysis, visualisation and building other platforms. We simply ask that you attribute “Siraat (siraat.org)” as the source. May it be of benefit to the Ummah, in sha Allah.