Open Data · Knowledge Base

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.

Knowledge base

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.

The core metric

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 ) / 7

Each 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

Inner

Humility, presence of heart and concentration during the prayer.

Niyyah clarity

Inner

Clarity and sincerity of intention before beginning.

Tadabbur

Inner

Reflecting on and understanding the meaning of the recitation.

Wudu

Physical

Care and completeness of the ablution / state of purity.

Ruku quality

Physical

Stillness and correctness of the bowing.

Sujud quality

Physical

Stillness and correctness of the prostration.

Confidence level

Physical

Command 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

A

≥ 9.0

Excellent — deeply focused, complete

B

7.0 – 8.9

Good — strong with minor lapses

C

5.0 – 6.9

Fair — acceptable, room to grow

D

4.0 – 4.9

Weak — distracted or rushed

F

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

BASE = (7+9+8+8+6+8+8) / 7 = 7.71 BONUSES = jamaah 0.50 + early 0.30 + dress 0.30 + istinja 0.25 + behind imam 0.15 + gaze 0.20 + dua 0.20 + dhikr 0.20 + rawatib 0.40 = 2.50 PENALTIES = none = 0.00 score = clamp(7.71 + 2.50 − 0.00, 1, 10) = 10.0 → grade A

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

  • perioddaily | 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

  • limitrows per page (default 1,000,000 — effectively every record in one request)
  • offsetrows to skip (default 0)
  • prayerfilter by prayer name, e.g. Fajr
  • countryfilter by country name, e.g. Ghana
  • fromISO date lower bound (YYYY-MM-DD)
  • toISO date upper bound (YYYY-MM-DD)
  • formatjson (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.

JavaScript
// 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()
Python (pandas)
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())
curl
# 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"
R
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

  1. Home → Get data → Web
  2. Paste an endpoint URL, e.g. https://siraat.org/api/public/by-country
  3. Power BI auto-detects the JSON — click To table, then expand the columns.
  4. Set a scheduled refresh to keep it live.

Tableau

  1. Connect → Web Data Connector or the JSON file connector.
  2. Point it at an endpoint URL and choose the fields you need.
  3. Publish and schedule an extract refresh.

Looker Studio

  1. Add data → community connector for JSON/CSV, or the built-in CSV upload.
  2. Use the ?format=csv option on /api/public/records.
  3. Chart directly on the live feed.

Excel / Google Sheets

  1. Excel: Data → From Web and paste an endpoint URL.
  2. Sheets: =IMPORTDATA(".../api/public/records?format=csv")
  3. 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.

FieldDescription
anon_user_idStable anonymous person id (prefix sr_). Same person = same id, but not reversible.
prayer_nameFajr, Dhuhr, Asr, Maghrib, Isha, Witr, Jumuah, Tahajjud
prayer_dateThe calendar date the prayer belongs to (YYYY-MM-DD)
expected_prayer_timeThe 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_timeThe 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_scoreThe Salah Quality Score, 1–10
quality_percentquality_score expressed as a percentage (0–100)
gradeLetter grade A–F
khushuFocus / presence of heart, 1–10
wuduQuality of ablution, 1–10
niyyah_clarityClarity of intention, 1–10
confidence_levelSelf-rated confidence, 1–10
tadabburReflection on meaning, 1–10
ruku_qualityQuality of ruku (bowing), 1–10
sujud_qualityQuality of sujud (prostration), 1–10
duration_minutesLength of the prayer in minutes (may be null)
prayer_streakConsecutive-prayer streak at time of logging
prayed_in_jamaahPrayed in congregation (1 = yes, 0 = no)
prayed_on_timePrayed within the time window (1 = yes, 0 = no)
is_qadaMade-up (late) prayer (1 = yes, 0 = no)
is_qasrShortened (travel) prayer (1 = yes, 0 = no)
had_khushu_focus1 = yes, 0 = no
understood_recitation1 = yes, 0 = no
gaze_controlled1 = yes, 0 = no
rush_through1 = yes, 0 = no
mind_wandered1 = yes, 0 = no
interruption1 = yes, 0 = no
mistake1 = yes, 0 = no
reflection1 = yes, 0 = no
dua1 = yes, 0 = no
dhikr1 = yes, 0 = no
decent_dress1 = yes, 0 = no
performed_istinja1 = yes, 0 = no
prayed_behind_imam1 = yes, 0 = no
rawatib_beforeSunnah units before the fard prayer
rawatib_afterSunnah units after the fard prayer
countryCountry (or "Unknown")
cityCity (may be null)
latitudeLatitude, rounded to ~1 km for map projection (may be null)
longitudeLongitude, 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.

Questions

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.

Help it grow — recommend Siraat

This data is free because it is meant to serve the Ummah. The more Muslims who track their Salah with Siraat, the richer and more useful this open dataset becomes for everyone — researchers, mosques, students and builders alike. If it has benefited you, please share it with others. It may become a sadaqah jariyah, in sha Allah.

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.