A community project by msociety — free, open-source JSON datasets for Singapore's Islamic institutions
Maintained by the msociety community, this project provides free, structured JSON datasets scraped from MUIS (Majlis Ugama Islam Singapura) and MUIS Halal — Singapore's Islamic Religious Council. The data is auto-updated daily and served as static JSON files you can fetch directly from GitHub — no API key required, no rate limits, no sign-up.
Fetch any dataset with a single URL:
# Mosque directory (with coordinates, contacts, features)
https://raw.githubusercontent.com/msocietyhq/muis-datasets-unofficial/main/mosque-directory/data.json
# 5,200+ certified asatizah (religious teachers)
https://raw.githubusercontent.com/msocietyhq/muis-datasets-unofficial/main/ars-directory/data.json
# 468 Islamic education centres
https://raw.githubusercontent.com/msocietyhq/muis-datasets-unofficial/main/iecp-directory/data.json
# 4,600+ halal-certified eating establishments
https://raw.githubusercontent.com/msocietyhq/muis-datasets-unofficial/main/halal-directory/data.json
| Loading data… |
Build with it: mosque finder apps, prayer time widgets, community maps, accessibility directories, navigation tools.
// JavaScript — fetch all mosques
const res = await fetch(
'https://raw.githubusercontent.com/msocietyhq/muis-datasets-unofficial/main/mosque-directory/data.json'
);
const { mosques } = await res.json();
console.log(mosques[0].name, mosques[0].coordinates);
Each mosque includes:
Build with it: teacher verification tools, search portals, community directories, analytics dashboards.
# Python — search for a teacher
import requests
data = requests.get(
'https://raw.githubusercontent.com/msocietyhq/muis-datasets-unofficial/main/ars-directory/data.json'
).json()
matches = [a for a in data['asatizah']
if 'Ahmad' in a['name']]
Each entry includes:
Build with it: education centre finders, enrolment portals, community resource listings.
# curl + jq — list first 5 centres
curl -s https://raw.githubusercontent.com/\
msocietyhq/muis-datasets-unofficial/\
main/iecp-directory/data.json \
| jq '.iecps[:5][] | .name'
Each entry includes:
The meta.breakdown object gives counts by type: mosques, madrasahs, and other centres.
Build with it: halal restaurant finders, food delivery integrations, neighbourhood dining guides, travel apps for Muslim visitors.
// JavaScript — find halal bakeries
const res = await fetch(
'https://raw.githubusercontent.com/msocietyhq/muis-datasets-unofficial/main/halal-directory/data.json'
);
const { establishments } = await res.json();
const bakeries = establishments.filter(
e => e.sub_scheme?.name === 'Snack Bar / Bakery'
);
Each establishment includes:
Spotted incorrect or outdated info? Open an issue with details and we'll investigate.
Community-contributed logos live in mosque-directory/logos/. Submit a PR with a PNG named after the mosque slug.
Scrapers are in plain Node.js with Cheerio. Fork the repo, make changes, and open a PR. See the README for setup.
Use the JSON data to build apps, maps, bots, or analysis. Let us know what you've made!
git clone https://github.com/msocietyhq/muis-datasets-unofficial.git
cd muis-datasets-unofficial
pnpm install
# Run a full scrape
npm run scrape:mosques
# Or run diff-aware updates (what CI uses)
npm run update:all
Data auto-syncs daily at 6 AM SGT via GitHub Actions. Only changed records are committed. Scrapers use polite delays (300-500ms) and identify via User-Agent.