Bookimed.com Medical Tourism Scraper — Clinics & Prices
Pricing
from $3.00 / 1,000 results
Bookimed.com Medical Tourism Scraper — Clinics & Prices
Scrape medical tourism clinics and hospitals from Bookimed.com across 50+ countries and 13 languages. Extract treatment prices, star ratings, verified patient reviews, doctor rosters, success rates and certifications by country, city and procedure. Export to JSON, CSV, Excel or API.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
2
Monthly active users
a day ago
Last modified
Categories
Features
Share
Bookimed Scraper 🏥🌍 — Medical Tourism Clinics, Treatment Prices, Doctors & Reviews
Extract structured medical tourism clinic and hospital data from Bookimed.com across 45+ destination countries and 13 languages — with zero login and zero coding. This Bookimed scraper pulls normalized records for 1,600+ accredited international clinics and hospitals — including clinic name, profile URL, country, city, itemized treatment prices (USD / EUR), star ratings, verified review counts, hospital certifications (JCI, ISO, TEMOS, NABH, ISQua), featured surgeons, and (in profile mode) full patient reviews, doctor rosters, success rates, facility metrics, and contact details.
Export your Bookimed data in bulk to JSON, CSV, Excel, XML, or via the Apify API for healthcare price benchmarking, medical tourism agency operations, and B2B healthcare lead generation.
Built for medical tourism facilitators and patient coordinators, cross-border procedure price-comparison teams, international insurers and self-funded health plans, health-content and SEO publishers, healthcare PE/VC analysts, medical-device and pharma sales teams, and public-health researchers.
⚡ At a glance
| Feature | Details |
|---|---|
| Target directory | Bookimed.com — global medical tourism directory covering 1,600+ clinics & hospitals across 50+ countries |
| Targeting modes | 45-country dropdown + 18-city dropdown + custom cities + 15-procedure dropdown, or direct listing/clinic URLs (startUrls) |
| Supported languages | 13 editions (us-uk, de, ru, es, fr, it, pt, ar, ja, tr, pl, ro, hu) |
| Listing-mode fields | Clinic name, profile URL, country, city, itemized treatmentPrices ({treatment, min, max, currency}), certifications, rating, reviewCount, search provenance |
| Profile-mode enrichment | scrapeDetails: true adds full patient reviews array, ratingBreakdown, doctors roster, specialties, accreditations, successRates, description, address, phone, email, foundedYear, beds, languages, patientOrigins, patientsPerYear, photos |
| Pagination & 1,000+ scale | Automatic "Load More" expansion (maxLoadMore: 0 auto-scales with maxClinics) + automatic procedure & multi-country expansion for 1,000+ clinic runs |
| De-duplication | 100% unique clinics per run — deduplicated globally by canonical clinicUrl |
| Export formats | JSON, CSV, Excel (XLSX), HTML, XML, RSS, JSON Lines, and live REST API / webhooks |
🔎 Why scrape Bookimed?
Bookimed is one of the world's largest medical tourism platforms, connecting international patients with 1,600+ accredited hospitals and specialized clinics across 50+ countries — including major medical hubs in Turkey, Thailand, India, Mexico, South Korea, Germany, Spain, Hungary, Poland, the Czech Republic, and the UAE. Every listing combines hard-to-find cross-border healthcare data:
- Itemized procedure pricing (
minandmaxprice ranges in USD or EUR for hair transplants, dental implants, veneers, rhinoplasty, breast augmentation, liposuction, knee/hip replacement, CABG, IVF, oncology, and stem-cell therapy). - Quality & accreditation signals (international hospital accreditations like
JCI,ISO 9001,TEMOS,NABH,ISQua, andGold Seal, plus verified patient review counts and star ratings). - Deep clinical profiles (surgeon rosters with years of experience and specializations, procedure success rates, annual international patient volumes, and full patient testimonials).
Collecting this intelligence manually requires clicking "Load More" dozens of times per country and copying nested price tables one clinic at a time. This Bookimed data extractor automates the entire workflow: it expands dynamic listings automatically, normalizes procedure prices into structured objects, deduplicates across overlapping country/procedure searches, and optionally enriches every record from its full hospital profile page.
✨ What this Bookimed scraper does
- ✅ No-code dropdown targeting + URL escape hatch: Pick any combination of 45 countries, 18 popular medical-tourism cities (plus unlimited custom cities via
citiesCustom), and 15 top procedures — or paste any Bookimed listing or clinic profile URL intostartUrls(for IVF, bariatric surgery, LASIK, oncology, etc.). - ✅ Unlocked 1,000+ clinic pagination: With
maxLoadMore: 0(the default), the scraper automatically expands "Load More" pagination as deep as needed to reach yourmaxClinicstarget, and whenmaxClinics > 150(or0for unlimited), it automatically fans out across procedures and destination countries so single-run extractions scale cleanly past 1,000+ unique clinics. - ✅ Normalized multi-currency treatment pricing: Parses USD (
$) and EUR (€) price tables into clean{ treatment, min, max, currency }objects, filtering out marketing teaser noise. - ✅ Hospital accreditation detection: Captures
JCI,ISO 9001,TEMOS,NABH,ISQua, andGold Sealbadges directly on listing cards and profile pages. - ✅ Full profile enrichment (
scrapeDetails: true): Opens each clinic's profile page to extract individual patientreviews(author, star rating, full text, date, procedure, patient country, attending doctor), 5-starratingBreakdown, fulldoctorsroster,specialties,successRates,description,address,phone,email,foundedYear,beds,languages,patientOrigins,patientsPerYear, andphotos. - ✅ 13 regional language editions: Scrape localized clinic names, treatment labels, and reviews in English (
us-uk), German (de), Russian (ru), Spanish (es), French (fr), Italian (it), Portuguese (pt), Arabic (ar), Japanese (ja), Turkish (tr), Polish (pl), Romanian (ro), or Hungarian (hu).
🎯 Use cases
| Persona | How they use Bookimed Scraper |
|---|---|
| Medical Tourism Agencies & Facilitators | Build instant clinic shortlists per inbound patient inquiry, compare min/max treatment quotes across countries, and keep CRM partner catalogs updated. |
| Procedure Price Benchmarking Teams | Compare FUE hair transplant, All-on-4 dental implant, rhinoplasty, and orthopedic surgery pricing across Istanbul, Bangkok, Tijuana, Budapest, and Mumbai. |
| Insurers & Self-Funded Health Plans | Evaluate cross-border and center-of-excellence referral savings by benchmarking domestic surgery costs against JCI-accredited international hospitals. |
| B2B Medical Device & SaaS Sales | Generate qualified hospital and specialty-clinic lead lists segmented by country, city, accreditation status, and surgical specialty. |
| Healthcare Content & SEO Publishers | Power "Best Hair Transplant Clinics in Turkey" and "Dental Implant Cost by Country" comparison pages with live ratings, review counts, and price ranges. |
| Healthcare PE/VC & Market Researchers | Map private clinic density, international patient origin flows (patientOrigins), and accreditation penetration across emerging medical-tourism corridors. |
📥 Input parameters
All fields are optional. Clicking Start with the prefill (countries: ["turkey"], maxClinics: 30) finishes in under a minute and delivers a ready-to-inspect dataset. Running with completely empty inputs returns a 100-clinic multi-country sample.
| Parameter | Type | Default / Prefill | Description |
|---|---|---|---|
countries | array<string> | Prefill: ["turkey"] | Select one or more of 45 medical tourism destination countries (turkey, thailand, india, mexico, germany, spain, republic-of-korea, hungary, poland, united-arab-emirates, etc.). Leave empty for a multi-country sample. |
procedures | array<string> | [] | Optional procedure filter (hair-transplant, dental-implant, rhinoplasty-nose-job, breast-augmentation, liposuction, knee-replacement, hip-replacement, coronary-artery-bypass-grafting, kidney-transplant, treatment-with-stem-cells, etc.). |
cities | array<string> | [] | Optional city filter (istanbul, antalya, izmir, ankara, bangkok, phuket, mumbai, delhi, chennai, berlin, munich, barcelona, madrid, cancun, tijuana, budapest, prague, warsaw). |
citiesCustom | array<string> | [] | Advanced: add any additional city slugs not listed in cities (e.g. adana, goa, seoul). Combined with cities. |
language | string (select) | "us-uk" | Regional language edition (us-uk, de, ru, es, fr, it, pt, ar, ja, tr, pl, ro, hu). |
scrapeDetails | boolean | false | Open each clinic's full profile page to extract patient reviews, doctors, description, address, phone, beds, foundedYear, languages, and photos. Leave false for fast listing collection. |
maxClinics | integer | 100 (Prefill: 30) | Maximum total unique clinics to collect across all searches. Set 0 for unlimited collection, or 1000+ for deep global extraction. |
maxLoadMore | integer | 0 | Maximum "Load more" expansions per listing page. 0 = automatic/unlimited expansion governed by maxClinics. |
startUrls | array<object> | [] | Optional direct Bookimed listing or clinic profile URLs ([{ "url": "https://..." }]). Scraped in addition to dropdown selections. |
proxyConfiguration | object | { "useApifyProxy": true } | Apify Proxy configuration. Default works out of the box. |
requestDelay | integer | 1500 | Delay in milliseconds between profile detail requests (0–30000). |
Example 1 — Fast multi-country clinic & price comparison
{"countries": ["turkey", "thailand", "mexico", "hungary"],"procedures": ["dental-implant", "hair-transplant"],"language": "us-uk","scrapeDetails": false,"maxClinics": 250,"maxLoadMore": 0,"proxyConfiguration": { "useApifyProxy": true }}
Example 2 — Deep 1,000+ global clinic directory extraction
{"countries": ["turkey", "india", "thailand", "germany", "spain", "mexico", "republic-of-korea", "poland"],"scrapeDetails": false,"maxClinics": 1000,"maxLoadMore": 0,"proxyConfiguration": { "useApifyProxy": true }}
Example 3 — Full profile enrichment (scrapeDetails: true) with reviews & doctors
{"countries": ["turkey"],"cities": ["istanbul"],"procedures": ["rhinoplasty-nose-job"],"scrapeDetails": true,"maxClinics": 25,"requestDelay": 1500}
📤 Output & field reference
Every clinic is emitted as a clean JSON object. Below is a real listing-mode record (scrapeDetails: false), followed by a profile-enriched record (scrapeDetails: true).
Sample JSON (Listing mode — fast)
{"clinicName": "Lokman Hekim Istanbul","clinicUrl": "https://us-uk.bookimed.com/clinic/lokman-hekim-istanbul/","country": "Turkey","city": "Istanbul","rating": 4.7,"reviewCount": 296,"certifications": ["JCI", "ISO 9001"],"treatmentPrices": [{ "treatment": "Blood test for hormonal profile", "min": 219, "max": 328, "currency": "USD" },{ "treatment": "Consultation with a neurosurgeon", "min": 112, "max": null, "currency": "USD" },{ "treatment": "Knee Arthroscopy", "min": 1820, "max": 2870, "currency": "USD" },{ "treatment": "Breast lift", "min": 2440, "max": 2700, "currency": "USD" }],"patientsPerYear": null,"specialties": null,"featuredDoctor": null,"description": null,"successRates": null,"patientOrigins": null,"doctors": null,"address": null,"photos": null,"verified": null,"searchCountry": "turkey","searchCity": null,"searchProcedure": null,"scrapedAt": "2026-11-02T00:24:17.306Z"}
Sample JSON (scrapeDetails: true — full profile enrichment)
{"clinicName": "Memorial Şişli Hospital","clinicUrl": "https://us-uk.bookimed.com/clinic/memorial-sisli-hospital/","country": "Turkey","city": "Istanbul","rating": 4.8,"reviewCount": 520,"certifications": ["JCI", "ISO 9001"],"accreditations": ["JCI"],"specialties": ["Oncology", "Cardiology", "Orthopedics", "Organ Transplant"],"treatmentPrices": [{ "treatment": "Bone marrow transplant", "min": 45000, "max": 60000, "currency": "USD" }],"doctors": [{"name": "Prof. Dr. Serkan Keskin","specialization": "Medical Oncology","qualifications": "24 years of experience","photo": "https://...","rating": 4.9,"reviewCount": 42}],"reviews": [{"author": "Maria K.","rating": 5,"text": "The international patient department coordinated every step from airport pickup to consultation...","date": "2026-08-14","treatment": "Oncology consultation","country": "Romania","doctor": "Prof. Dr. Serkan Keskin"}],"ratingBreakdown": { "5": 420, "4": 60, "3": 20, "2": 10, "1": 10 },"description": "Memorial Şişli Hospital is a JCI-accredited multi-specialty medical center in Istanbul...","patientOrigins": ["Germany", "United Kingdom", "Bulgaria", "United States"],"patientsPerYear": 15000,"address": "Kaptanpaşa Mah. Darülaceze Cad. No:14, Şişli, Istanbul","phone": "+90 212 314 66 66","email": null,"foundedYear": 2000,"beds": 252,"languages": ["English", "German", "Russian", "Arabic", "Turkish"],"photos": ["https://..."],"searchCountry": "turkey","searchCity": "istanbul","searchProcedure": null,"scrapedAt": "2026-11-02T00:25:00.000Z"}
🏥 Core clinic identity & pricing fields (Listing + Profile modes)
| Field | Type | Coverage | Description |
|---|---|---|---|
clinicName | string | 🟢 High (100%) | Official display name of the clinic or hospital. |
clinicUrl | string | 🟢 High (100%) | Canonical Bookimed clinic profile URL. Used as the global de-duplication key. |
country | string | 🟢 High (100%) | Destination country name (e.g. Turkey, Thailand, Mexico). |
city | string | 🟢 High (~80%) | City name extracted from the search filter, listing card, or structured profile data. |
treatmentPrices | array<object> | 🟢 High (~65–85%) | Array of procedure price objects { treatment, min, max, currency } (USD or EUR). |
certifications | array<string> | 🟡 Conditional (~35%) | International hospital accreditations (JCI, ISO 9001, TEMOS, NABH, ISQua, Gold Seal) when held by the clinic. |
rating | number | 🟡 Conditional (🟢 High in profile mode) | Aggregate Bookimed rating on a 0–5 scale. |
reviewCount | integer | 🟡 Conditional (🟢 High in profile mode) | Total count of verified patient reviews. |
featuredDoctor | object | 🟡 Conditional | Lead physician highlighted on the listing card ({ name, yearsExperience }). |
searchCountry / searchCity / searchProcedure | string | 🟢 High (100%) | Search filter provenance showing which query matched the clinic. |
scrapedAt | string | 🟢 High (100%) | ISO-8601 UTC extraction timestamp. |
🩺 Deep profile enrichment fields (scrapeDetails: true)
| Field | Type | Coverage | Description |
|---|---|---|---|
reviews | array<object> | 🟡 Conditional (scrapeDetails) | Detailed patient reviews { author, rating, text, date, treatment, country, doctor }. |
ratingBreakdown | object | 🟡 Conditional (scrapeDetails) | 5-star rating distribution { "5": n, "4": n, "3": n, "2": n, "1": n }. |
doctors | array<object> | 🟡 Conditional (scrapeDetails) | Full physician roster { name, specialization, qualifications, photo, rating, reviewCount }. |
specialties | array<string> | 🟡 Conditional (scrapeDetails) | Hospital departments and medical specialties. |
accreditations | array<string> | 🟡 Conditional (scrapeDetails) | Detailed accreditation list from the clinic profile. |
description | string | 🟡 Conditional (scrapeDetails) | Full hospital overview and clinical capabilities description. |
successRates | object | 🟡 Conditional (scrapeDetails) | Procedure success rate percentages when published by the facility. |
patientOrigins | array<string> | 🟡 Conditional (scrapeDetails) | Top countries from which international patients travel to this clinic. |
patientsPerYear | integer | 🟡 Conditional (scrapeDetails) | Annual patient volume when reported by the hospital. |
address / phone / email | string | 🟡 Conditional (scrapeDetails) | Facility street address and contact details when published on the profile. |
foundedYear / beds | integer | 🟡 Conditional (scrapeDetails) | Year founded and total hospital bed capacity. |
languages | array<string> | 🟡 Conditional (scrapeDetails) | Languages spoken by the international patient coordination staff. |
photos | array<string> | 🟡 Conditional (scrapeDetails) | Up to 10 high-resolution facility gallery image URLs. |
🔁 Pagination & 1,000+ clinic scale
Bookimed paginates its directory behind a dynamic "Load More" button (each click reveals ~5–10 additional clinics), and individual country pages typically contain 50–350 clinics. This scraper unlocks 1,000+ clinic extraction automatically:
- Automatic Load More scaling (
maxLoadMore: 0): By default (maxLoadMore: 0), you never have to calculate how many button clicks are needed — the scraper automatically clicks "Load More" as many times as required to satisfy yourmaxClinicstarget (or until the page is exhausted). - Automatic procedure & multi-country fan-out (
maxClinics > 150or0): When you request a large dataset (maxClinics: 1000or0for unlimited), once your primary country/procedure selections are exhausted, the scraper automatically expands across 15 procedure verticals and 40+ destination countries so you can harvest 1,000+ unique clinics across Bookimed's global catalog in a single run. - Global URL deduplication: Every clinic is deduplicated against a global
Setof canonicalclinicUrllinks, guaranteeing 0 duplicates even when a hospital appears under multiple procedures and cities.
⚙️ How to use
- Open Bookimed.com Medical Tourism Scraper in the Apify Console.
- Pick one or more Destination countries (and optionally Procedures or Cities), or paste specific URLs into Start URLs.
- Choose whether to keep Scrape full clinic profiles (
scrapeDetails) off for fast catalog/price collection, or turn it on for full patient reviews and doctor rosters. - Set Max clinics (
maxClinics) — e.g.30for a quick test,500–1000+for deep market mapping, or0for unlimited. - Click Start and export your results from the Dataset tab as JSON, CSV, Excel, HTML, or XML.
Run via API (Python, Node.js & cURL)
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("haketa/bookimed-scraper").call(run_input={"countries": ["turkey", "thailand", "mexico"],"procedures": ["hair-transplant", "dental-implant"],"language": "us-uk","scrapeDetails": False,"maxClinics": 500,})for clinic in client.dataset(run["defaultDatasetId"]).iterate_items():print(clinic["clinicName"], clinic.get("country"), len(clinic.get("treatmentPrices") or []))
JavaScript (Node.js)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('haketa/bookimed-scraper').call({countries: ['turkey'],cities: ['istanbul'],scrapeDetails: true,maxClinics: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Extracted ${items.length} enriched Istanbul clinics`);
cURL
curl -X POST "https://api.apify.com/v2/acts/haketa~bookimed-scraper/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"countries": ["india", "turkey", "thailand"],"maxClinics": 1000,"maxLoadMore": 0}'
💡 Pro tips
- Two-stage workflow for large projects: Run listing mode (
scrapeDetails: false,maxClinics: 1000) first to rapidly map all clinics, prices, and JCI/ISO certifications across countries. Then pass the top clinic URLs intostartUrlswithscrapeDetails: trueto pull full doctor rosters and patient reviews for your shortlist. - Target niche procedures via
startUrls: Need clinics for IVF, gastric sleeve, LASIK, or Car-T therapy that aren't in the 15-item quick dropdown? Copy the Bookimed category URL (e.g.https://us-uk.bookimed.com/clinics/country=spain/procedure=ivf/) intostartUrls. - Switch
languagefor localized market research: Setlanguage: "de"or"ru"to extract German- or Russian-language patient reviews and localized procedure names.
⚠️ Limitations & notes
- Listing vs. profile fields: In fast listing mode (
scrapeDetails: false), profile-exclusive fields (reviews,doctors,ratingBreakdown,description,address,phone,beds,foundedYear,languages,photos) are intentionallynullso runs finish 5–10× faster. EnablescrapeDetails: truewhenever you need those fields populated. - Published price teasers:
treatmentPricesreflects the procedures and price ranges published by each clinic on Bookimed; facilities that list "Price on request" without numeric figures will havetreatmentPrices: nullin listing mode.
❓ FAQ
Do I need a Bookimed account or API key? No. All data is collected from publicly accessible Bookimed directory and hospital profile pages.
How many clinics can I extract in a single run?
Bookimed lists 1,600+ clinics across 50+ countries. By setting maxClinics: 1000 (or 0 for unlimited) and leaving maxLoadMore: 0, the scraper automatically expands pagination and fans out across procedures and countries to collect 1,000+ unique clinics.
How fast is the scraper? A 30-clinic prefill run finishes in ~25–45 seconds. Collecting 100 clinics in listing mode takes ~1–2 minutes, and 500 clinics takes ~4–5 minutes.
Why was maxLoadMore changed to 0 by default in v1.2?
Previously, maxLoadMore: 10 stopped each listing page after 10 clicks (~55 clinics). Setting maxLoadMore: 0 lets the scraper automatically calculate the exact number of "Load More" expansions required to reach your maxClinics target without premature cutoffs.
Can I extract individual patient reviews and doctor lists?
Yes — set scrapeDetails: true. Each clinic record will include the reviews array (author, rating, full review text, date, procedure, patient country, doctor) and the doctors array (name, specialty, qualifications, rating, review count).
Are duplicate clinics removed when searching multiple procedures or cities?
Yes. Every clinic is deduplicated by its canonical clinicUrl, guaranteeing 0 duplicates across overlapping searches.
🔗 Related scrapers
Pair Bookimed Scraper with these healthcare, licensing, and B2B directory scrapers by haketa:
- WhatClinic.com Clinic Scraper — Global directory of dental, cosmetic, fertility, and aesthetic clinics.
- California DCA License Scraper — 3.3M+ licensed physicians, nurses, pharmacists, dentists, and healthcare facilities in California.
- Texas Pharmacy License Scraper — TSBP — Official Texas pharmacist and pharmacy license registry.
- BBB Business Scraper — Better Business Bureau ratings, accreditations, and business contacts.
📋 Changelog
v1.2 (2026-11)
- Unlocked 1,000+ clinic pagination: Changed
maxLoadMoredefault/prefill to0(auto-governed bymaxClinics) and added automatic procedure + multi-country task expansion whenmaxClinics > 150or0(unlimited). - Faster prefill experience: Tuned prefill to
maxClinics: 30so initial test runs complete in ~30 seconds. - Live status reporting: Added real-time
Actor.setStatusMessageprogress updates after each listing task and on run completion. - Documentation upgrade: Added
⚡ At a glancesummary table, emoji-grouped field tables with coverage indicators, and updated API snippets.
v1.1 (2026-10)
- Enhanced profile enrichment: Improved extraction of
reviews,ratingBreakdown,doctors,treatmentPrices,beds,foundedYear, andlanguageson clinic detail pages. - Cleaned treatment names: Added filtering to strip promotional prefix text from
treatmentPriceslabels.
v1.0 (2026-07)
- Initial release supporting 45 destination countries, 18 cities, 15 procedures, 13 language editions, and optional profile detail scraping.
⭐ Ready to pull live medical-tourism data? Click Start and export Bookimed clinic prices, ratings, certifications, and reviews to JSON, CSV, or Excel in minutes!