Indonesia Doctor Directory Scraper (Alodokter) avatar

Indonesia Doctor Directory Scraper (Alodokter)

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Indonesia Doctor Directory Scraper (Alodokter)

Indonesia Doctor Directory Scraper (Alodokter)

Extract Indonesian doctor listings from Alodokter -- name, sub-specialty, hospital and address, consultation price in IDR, satisfaction rating, review count and next available schedule. Browse any specialty, optionally scoped to a city. No account or API key needed.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Faisal Ahdan naufal

Faisal Ahdan naufal

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Extract Indonesian doctor listings from Alodokter — specialty, hospital, consultation price, patient rating and next availability. No account, login, or API key needed.

Why use this actor

  • Consultation prices in rupiah on every listing row — the field most healthcare-market datasets are missing
  • Hospital and address per doctor, including every clinic a doctor practises at (profiles routinely list two or more)
  • Patient satisfaction and review counts as published, plus the next available appointment text ("Tersedia Hari Ini", "Jadwal Berikutnya : Besok, 16.00 Siang")
  • 17 specialties — paediatrics, obstetrics, general practice, dentistry, dermatology, cardiology, neurology, ENT, ophthalmology, internal medicine, surgery, pulmonology, nutrition, orthopaedics, urology, psychiatry
  • City targeting — scope any specialty to Jakarta, Bali, Balikpapan and more
  • Verified inputsreference mode checks every specialty slug against the live site, so a typo returns a clear error instead of an empty run
  • Stable JSON output for market research, pricing analysis or provider databases, with automatic retries

How it works

Pick a mode:

  1. specialty — list doctors in one or more specialties, optionally scoped to a city. Pages are followed automatically up to maxItems. Turn on enrichProfiles to also fetch each doctor's own page.
  2. doctor — full detail for specific doctors, by address or bare slug.
  3. reference — live specialty and city lists.

Input

Paediatricians in Jakarta:

{
"mode": "specialty",
"specialty": "dokter-anak",
"city": "jakarta",
"maxItems": 100,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

Several specialties at once, with full profiles:

{
"mode": "specialty",
"specialties": ["dokter-jantung", "dokter-saraf", "dokter-penyakit-dalam"],
"enrichProfiles": true,
"maxItems": 50
}

One doctor:

{
"mode": "doctor",
"doctorUrl": "https://www.alodokter.com/cari-dokter/dr-rifan-fauzie-spa-k"
}
FieldTypeDescription
modestringspecialty, doctor, or reference.
specialty / specialtiesstring / arrayWhich specialty slug(s) to list.
citystringOptional city slug, e.g. jakarta.
enrichProfilesbooleanAlso fetch each listed doctor's own page.
doctorUrl / doctorUrlsstring / arraydoctor mode: address or bare slug.
maxItemsintegerMax doctors per specialty (10 per page, followed automatically).
maxConcurrencyintegerDoctor pages fetched in parallel (default 4).
proxyConfigurationobjectApify Proxy settings; Residential on by default.

Output

specialty mode — real output:

{
"_input": "specialty:dokter-anak/jakarta",
"_source": "S1-jsonld",
"_scrapedAt": "2026-09-08T06:54:15Z",
"recordType": "DOCTOR_CARD",
"name": "dr. Markus Mualim Danusantoso, Sp.A",
"slug": "dr-markus-mualim-danusantoso-spa",
"profileUrl": "https://www.alodokter.com/cari-dokter/dr-markus-mualim-danusantoso-spa?sku_id=630829fca6839d7867009974",
"specialty": "Dokter Anak - Ahli Neonatologi",
"hospital": "Mayapada Hospital Kuningan",
"hospitalAddress": "Mayapada Hospital Kuningan, Setiabudi, Jakarta",
"consultationPrice": 350000,
"priceCurrency": "IDR",
"rating": "89%",
"reviewCount": 18,
"nextSchedule": "Jadwal Berikutnya : Besok, 16.00 Siang",
"listName": "Dokter Anak",
"_listingScope": "specialty:dokter-anak/jakarta"
}

doctor mode — real output, arrays truncated:

{
"recordType": "DOCTOR_PROFILE",
"name": "dr. Rifan Fauzie, Sp.A (K)",
"specialty": "Pediatrics",
"specialtyLabel": "Dokter Anak - Ahli Respirologi",
"hospital": "RSIA Bunda Jakarta",
"hospitals": [
{ "name": "RSIA Bunda Jakarta", "address": "Jl. Teuku Cik Ditiro No.28 Menteng Jakarta Pusat, Menteng, Gondangdia, Kota Jakarta Pusat" },
{ "name": "Brawijaya Hospital Saharjo", "address": "Jl. Dr. Saharjo No.199, Tebet Bar., Kec. Tebet, Kota Jakarta Selatan" }
],
"addresses": [
{ "streetAddress": "Jl. Teuku Cik Ditiro No.28 …", "locality": "Jakarta", "region": "Daerah Khusus Ibukota Jakarta", "country": "ID" },
"… 1 more"
]
}
FieldTypeDescription
recordTypestringDOCTOR_CARD, DOCTOR_PROFILE, SPECIALTY, or CITY.
namestringDoctor's name with title.
specialty / specialtyLabelstringSpecialty as published.
hospital / hospitalAddressstringPrimary hospital and its address.
hospitalsarrayEvery hospital the doctor practises at.
addressesarrayFull postal addresses with locality and region.
consultationPrice / priceCurrencyinteger / stringConsultation fee and currency.
ratingstringPatient satisfaction as a percentage, e.g. "98%".
reviewCountintegerNumber of patient reviews.
nextSchedulestringNext availability text.
profileUrlstringPublic doctor page.
_error / _errorDetailstringPresent only when a page could not be fetched.

Notes & limits

  • Listing pages hold 10 doctors. maxItems decides how many pages are walked; an empty page ends the run.
  • Rating is a percentage, not a 5-point score — the source publishes patient satisfaction as "98%", so it is passed through as text rather than converted.
  • Prices come from listing rows. A doctor's own page does not always repeat the fee, so run specialty mode (or enrichProfiles, which keeps both) when you need pricing.
  • Availability text is time-sensitive — "Tersedia Hari Ini" reflects the moment of the run; schedule a recurring run if you are tracking it.
  • Specialty slugs are Indonesian (dokter-anak, dokter-jantung…). An unknown slug returns a clear not_found error rather than an empty dataset.
  • Only publicly published professional listings are collected; no patient data is involved.