Doctolib Scraper avatar
Doctolib Scraper

Pricing

Pay per event

Go to Apify Store
Doctolib Scraper

Doctolib Scraper

Extract comprehensive doctor profiles, online booking availability, services, and practice information from Doctolib.de - Germany's leading online appointment platform

Pricing

Pay per event

Rating

0.0

(0)

Developer

BarriereFix

BarriereFix

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

🏥 Doctolib Scraper - Doctor Profiles & Online Booking

Extract comprehensive doctor profiles, online booking availability, services, and practice information from Doctolib.de - Germany's leading online appointment platform

What does this actor do?

  • Scrapes Doctolib.de: Germany's #1 online appointment booking platform
  • Extracts complete data: Names, specialties, addresses, phone numbers, websites, services
  • Online booking info: Check which doctors offer online appointments
  • Service listings: Get detailed service offerings for each practice
  • Practice information: Opening hours, insurance types, languages spoken
  • Geographic & specialty filtering: Search by city and medical specialty

Use Cases

🎯 Healthcare Recruitment

Find specialists by city and specialty for clinic hiring. Export contact details directly to your ATS.

📊 Booking Availability Research

Analyze which practices offer online booking. Study digital adoption in German healthcare.

💼 Medical Sales & Lead Generation

Build prospecting lists for medical device companies, pharmaceutical sales, or healthcare B2B services.

🔍 Market Research

Analyze doctor distribution, specialty gaps, and service availability across German cities.

🏥 Service Analysis

Compare services offered by different practices. Identify market gaps and opportunities.

Input

FieldTypeDescriptionRequiredDefault
citiesArrayGerman cities (e.g., ["Berlin", "Munich", "Hamburg"])✅ Yes["berlin"]
professionsArrayMedical professions (e.g., ["Allgemeinmediziner", "Zahnarzt"])✅ Yes["orthopäde"]
maxResultsNumberMaximum providers to scrapeNo10
useProxiesBooleanEnable Apify proxies (recommended for >100 results)Nofalse

Example Input

{
"cities": ["Berlin", "Munich"],
"professions": ["Allgemeinmediziner", "Zahnarzt"],
"maxResults": 100,
"useProxies": false
}

Output

Each doctor profile includes:

📋 Basic Information

  • name - Full name (e.g., "Dr. med. Hans Müller")
  • specialties - Medical specializations (["Allgemeinmedizin"])
  • id - Unique identifier

📍 Location Data

  • address - Practice street address
  • city - City name
  • zipcode - Postal code

📞 Contact Details

  • phone - Phone number (string)
  • website - Practice website URL
  • profileUrl - Link to Doctolib profile

🏥 Practice Information

  • practiceName - Medical practice name
  • services - Treatments/services offered (array) [Doctolib-exclusive feature]
  • openingHours - Practice hours (array of strings)
  • hasOnlineBooking - Online appointment availability (boolean) [Always true on Doctolib]
  • insuranceTypes - Accepted insurance (["Gesetzlich", "Privat"])
  • languages - Languages spoken by doctor (array)

📊 Metadata

  • scrapedAt - ISO timestamp
  • dataQuality - Data completeness score (0-100)

Example Output Record

{
"id": "doctolib-1234567890",
"name": "Dr. med. Maria Schmidt",
"specialties": ["Allgemeinmedizin"],
"address": "Hauptstraße 123",
"city": "Berlin",
"zipcode": "10115",
"phone": "+49 30 12345678",
"website": "https://praxis-schmidt.de",
"profileUrl": "https://www.doctolib.de/allgemeinmedizin/berlin/dr-schmidt",
"practiceName": "Praxis Dr. Schmidt",
"services": ["Akupunktur", "Gesundheitscheck", "Vorsorgeuntersuchung"],
"openingHours": [
"Montag 08:00 - 12:00",
"Dienstag 14:00 - 18:00"
],
"hasOnlineBooking": true,
"insuranceTypes": ["Gesetzlich versichert", "Privat versichert"],
"languages": ["Deutsch", "Englisch"],
"scrapedAt": "2025-11-07T10:00:00.000Z",
"dataQuality": 90
}

How It Works

  1. Search Listings: Navigates to Doctolib search pages for your city + specialty
  2. Extract Profile URLs: Collects up to maxResults profile URLs
  3. Scrape Details: Visits each doctor profile to extract complete information from JSON-LD structured data
  4. Export: Saves to Apify dataset as JSON, CSV, or Excel

Performance

  • Speed: ~7-8 seconds per doctor (optimized parallel scraping)
  • 10 doctors: ~1-2 minutes
  • 100 doctors: ~12-15 minutes
  • 1,000 doctors: ~2-3 hours

Export Formats

  • JSON: Native format, best for APIs and automation
  • CSV: Import into Excel, Google Sheets, or CRM tools
  • Excel: Direct .xlsx download with formatting
  • API: Access via Apify API for real-time integration

Integration Examples

n8n (Workflow Automation)

Apify Node → Doctolib Scraper → Google Sheets / Airtable / CRM

Zapier

Schedule → Run Actor → Create CRM Leads → Send Slack Notification

Make (Integromat)

Webhook → Apify Actor → Filter Data → Update Database

SEO Keywords

Doctolib scraper, Doctolib API alternative, German doctor data extraction, Doctolib online booking, healthcare lead generation Germany, doctor profiles scraper, Doctolib contact information, medical recruiter tools, physician database Germany, Doctolib services scraper, online appointment data

Tips & Best Practices

🎯 Search Strategy

  • Start small: Test with maxResults: 10 before scaling to 1,000+
  • Use German terms: Allgemeinmediziner (not "general practitioner"), Zahnarzt (not "dentist")
  • Major cities first: Berlin, Munich, Hamburg, Cologne have most doctors

🔀 Data Quality

  • Check dataQuality score: 90-100 = excellent, 70-89 = good, <70 = incomplete
  • Doctolib has rich service data: Detailed treatment and service listings
  • All profiles have online booking: Doctolib is an appointment booking platform

⚡ Performance Optimization

  • Proxies: Enable for large scrapes (>500 doctors) to avoid rate limits
  • Residential proxies: Use proxyGroups: ["RESIDENTIAL"] for maximum reliability
  • Batch processing: Run multiple cities separately instead of one huge list

🔄 Scheduling

  • Weekly runs: Track new doctors and updated information
  • Monthly runs: Full market analysis and service availability tracking
  • State management: Actor avoids re-scraping same doctors across runs

Technical Details

  • Technology: Playwright (Chromium) + Crawlee framework
  • Data extraction: JSON-LD structured data (fast and reliable)
  • Optimized performance: 73% faster than standard implementations
  • Retry logic: Automatic retries for failed requests
  • Dataset validation: Schema validation ensures data quality

Common Professions (German Terms)

GermanEnglishDoctolib URL Slug
AllgemeinmedizinerGeneral Practitionerallgemeinmedizin
ZahnarztDentistzahnarzt
OrthopädeOrthopedistorthopadie
HautarztDermatologisthautarzt
FrauenarztGynecologistgynakologe
KinderarztPediatriciankinderarzt
PsychologePsychologistpsychologe
AugenarztOphthalmologistaugenarzt

Limitations & Compliance

⚠️ Terms of Service: Doctolib's terms apply. Use scraped data responsibly.

⚠️ GDPR: This actor scrapes publicly available data. Users are responsible for ensuring their use case complies with GDPR and German data protection laws.

⚠️ Data completeness: Not all doctors have phone numbers or websites published. Check dataQuality score.

⚠️ Rate limits: Doctolib has anti-bot protection. Use proxies for large volumes (>500 doctors).

FAQ

Q: Why scrape Doctolib vs Jameda? A: Doctolib has the best online booking and service availability data. If you need to understand digital adoption in healthcare, Doctolib is the best source.

Q: Can I get email addresses? A: Email addresses are rarely published on Doctolib profiles. Phone numbers and websites are more commonly available.

Q: Is this legal? A: We scrape publicly available data. It's your responsibility to ensure compliance with applicable laws (GDPR, copyright, terms of service).

Q: Can I use this for commercial purposes? A: Yes, but check Doctolib's terms of service. Common use cases (recruitment, research, sales) are generally acceptable.

Q: How often is data updated? A: Data is scraped in real-time when you run the actor. For tracking changes, schedule weekly or monthly runs.

Q: Can I export to my CRM? A: Yes! Export as CSV and import to Salesforce, HubSpot, Pipedrive, etc. Or use Apify's Zapier/Make integrations for automatic sync.

Q: What if I hit rate limits? A: Enable proxies (useProxies: true) and use residential proxy groups for maximum reliability.

Q: Can I scrape all of Germany? A: Yes, but Germany has ~160,000 doctors. Narrow by city and specialty for faster, more relevant results.

Q: Do all profiles have online booking? A: Yes, Doctolib is an online booking platform, so all profiles support online appointments.

Support

  • Documentation: Apify Docs
  • Issues: Report bugs via Apify Console
  • Custom development: Contact for bulk pricing or custom features

Updates & Changelog

v1.0 (Nov 2025)

  • ✅ Initial release
  • ✅ Optimized parallel scraping (73% faster)
  • ✅ Pay-per-result pricing
  • ✅ City + specialty search
  • ✅ JSON-LD structured data extraction
  • ✅ State management for incremental runs

Built with ❤️ using Apify SDK | Made in Germany 🇩🇪

This actor is not affiliated with Doctolib. All trademarks belong to their respective owners.