Singapore CHAS Clinics Scraper
hipersoft/singapore-chas-clinics-scraper
Export all CHAS (Community Health Assist Scheme) participating clinics in Singapore (~1,193): name, clinic type, phone, full address, lat/lng and health programmes (CHAS, CDMP). Filter by name, type, programme or radius. Public open data, no setup.
Total users
1Monthly users
1Total runs
99Per clinic scraped
$0.003Last rebuilt
Oct 26, 2026Overview
Export every CHAS (Community Health Assist Scheme) participating clinic in Singapore — around 1,193 clinics — into clean JSON, CSV or Excel. Each record has clinic name, licence type, phone, full address, latitude/longitude and health programmes (CHAS, CDMP). Powered by MOH's open data (data.gov.sg).
Perfect for healthcare directories, clinic-finder apps, patient-facing tools, medical-supplier lead lists and location analysis.

What you get, per clinic
- 🏥 Clinic — name, HCI code, licence type
- ☎️ Contact — telephone
- 📍 Address — structured (block, floor, unit, street, building, postal) + formatted, plus latitude & longitude
- 🩺 Programmes — participating schemes (
CHAS,CDMP, …) and anisChasflag
Filters
query— clinic name or address containsclinicType— HCI licence type code (e.g.MC,MD)programme— programme code, e.g.CHAS,CDMPcenterLat/centerLng/radiusKm— radius search: return only clinics within N km of a point, sorted nearest-first (adds adistanceKmfield)maxItems— cap the export (~1,193 total)
Example input
{ "centerLat": "1.3048", "centerLng": "103.8318", "radiusKm": "2", "maxItems": 100 }
Output

{
"hciCode": "15M0211",
"name": "Acumed Medical Group",
"clinicType": "Medical Clinic",
"licenceTypeCode": "MC",
"telephone": "68615755",
"programmes": ["CDMP", "CHAS"],
"isChas": true,
"formattedAddress": "1 JOO KOON CIRCLE, #01-23, FAIRPRICE HUB, Singapore 629117",
"latitude": 1.32561767794228,
"longitude": 103.678409741881,
"sourceUrl": "https://data.gov.sg/collections/2036/view",
"collectedAt": "2026-07-30T12:00:00.000Z"
}
Output schema
| Field | Type | Description |
|---|---|---|
id |
string | Stable record ID for the clinic. |
hciCode |
string | Healthcare Institution (HCI) code. |
name |
string | Clinic name. |
clinicType |
string | Clinic type (e.g. Medical Clinic). |
licenceTypeCode |
string | Licence type code (e.g. MC, MD). |
telephone |
string | Clinic phone number. |
programmes |
array | Health schemes the clinic participates in (CHAS, CDMP). |
isChas |
boolean | Whether the clinic participates in CHAS. |
address |
object | Structured address (block, floor, unit, street, building, postal). |
formattedAddress |
string | Full single-line address. |
latitude |
number | Latitude coordinate. |
longitude |
number | Longitude coordinate. |
sourceUrl |
string (URL) | Source dataset URL. |
collectedAt |
string (ISO date) | When the record was collected. |
Pricing
Pay-per-event: a small charge per run plus a small amount per clinic returned — you only pay for what you get. See the Pricing tab for current rates.
FAQ
Where does the data come from? Singapore's official MOH CHAS clinic open dataset on data.gov.sg, reused under the Singapore Open Data Licence.
Can I search for clinics near a location?
Yes. Set centerLat, centerLng and radiusKm for a radius search — results come back sorted nearest-first with a distanceKm field added.
What's the output format? Structured JSON — one record per clinic with name, HCI code, licence type, phone, structured and formatted address, latitude/longitude and programmes. Export as JSON, CSV or Excel.
Can I connect this to other apps? The Singapore CHAS Clinics Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JavaScript/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Notes
Data is © MOH / CHAS, published under the Singapore Open Data Licence (commercial reuse permitted). Use responsibly and in line with the licence terms.
Input
| Field | Type | Description |
|---|---|---|
querySearch (name or address) | string | Match clinics whose name or address contains this text. Leave empty for all. |
clinicTypeLicence type code | string | Filter by HCI licence type code (e.g. MC, MD). Leave empty for all. |
programmeHealth programme | string | Filter by programme code, e.g. CHAS, CDMP. Leave empty for all. |
centerLatCenter latitude | string | For radius search: latitude of the search center. |
centerLngCenter longitude | string | For radius search: longitude of the search center. |
radiusKmRadius (km) | string | For radius search: return only clinics within this many km of the center (sorted nearest-first). |
maxItemsMax clinics | integer | Maximum clinics to return. ~1,193 in total. Default: 5000 |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~singapore-chas-clinics-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"query": "",
"clinicType": "",
"programme": "",
"centerLat": "",
"centerLng": "",
"radiusKm": ""
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/singapore-chas-clinics-scraper").call(run_input={
"query": "",
"clinicType": "",
"programme": "",
"centerLat": "",
"centerLng": "",
"radiusKm": ""
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/singapore-chas-clinics-scraper').call({
"query": "",
"clinicType": "",
"programme": "",
"centerLat": "",
"centerLng": "",
"radiusKm": ""
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Clinic scraped One CHAS clinic record scraped. | $0.003 | $0.0015 |
| API request One CHAS dataset download. | $0.001 | $0.001 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
North Data Scraper
Look up European companies on North Data: legal name, former names, register number, address, founding date, LEI, business purpose, managing directors and officers, and recent register publications. Germany, UK, France, Austria and 20+ countries. Bulk lookups.
2,467 runs · 5 users · $0.004 / companyWebsite Content Crawler
Extract clean, readable content from any list of websites: page title, meta description, headings, main body text, word count and link/image counts. Optional same-domain crawl. Bulk-ready. Great for LLM/RAG ingestion, content audits and research.
206 runs · 20 users · $0.0024 / page scrapedSpyFu Domain Scraper
Bulk SEO and PPC reports for any domain from SpyFu: organic keywords, monthly SEO clicks and value, Google Ads budget, paid keywords, top keywords, competitors, top countries and monthly history. Competitor research for agencies. Export CSV/JSON.
185 runs · 7 users · $0.008 / domain reportTrustpilot Reviews Scraper
Scrape Trustpilot reviews and company ratings by company domain or Trustpilot URL: star rating, title, text, reviewer name & country, verification, date, company reply, plus company TrustScore and total reviews.
146 runs · 4 users · $0.0006 / review scrapedACRA Singapore Company Registry Scraper
Search and export Singapore's full ACRA corporate registry: UEN, entity name, status, incorporation date, address, SSIC industry codes, officers, former names and audit firms. Filter by name, status, entity type or industry. Public open data, no setup.
138 runs · 10 users · $0.01 / company scrapedWayback Machine Scraper
List every Internet Archive (Wayback Machine) snapshot of a URL or whole domain: timestamp, snapshot URL, status code, MIME type and content digest. Filter by date, status and dedupe. For SEO, OSINT and historical research. No setup.
135 runs · 15 users · $0.002 / snapshot scrapedSend the site and the fields. We build it and you get it first.