Doctolib Scraper
Pricing
Pay per event
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
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
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
| Field | Type | Description | Required | Default |
|---|---|---|---|---|
| cities | Array | German cities (e.g., ["Berlin", "Munich", "Hamburg"]) | ✅ Yes | ["berlin"] |
| professions | Array | Medical professions (e.g., ["Allgemeinmediziner", "Zahnarzt"]) | ✅ Yes | ["orthopäde"] |
| maxResults | Number | Maximum providers to scrape | No | 10 |
| useProxies | Boolean | Enable Apify proxies (recommended for >100 results) | No | false |
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 addresscity- City namezipcode- Postal code
📞 Contact Details
phone- Phone number (string)website- Practice website URLprofileUrl- Link to Doctolib profile
🏥 Practice Information
practiceName- Medical practice nameservices- 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 timestampdataQuality- 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
- Search Listings: Navigates to Doctolib search pages for your city + specialty
- Extract Profile URLs: Collects up to
maxResultsprofile URLs - Scrape Details: Visits each doctor profile to extract complete information from JSON-LD structured data
- 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: 10before 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)
| German | English | Doctolib URL Slug |
|---|---|---|
| Allgemeinmediziner | General Practitioner | allgemeinmedizin |
| Zahnarzt | Dentist | zahnarzt |
| Orthopäde | Orthopedist | orthopadie |
| Hautarzt | Dermatologist | hautarzt |
| Frauenarzt | Gynecologist | gynakologe |
| Kinderarzt | Pediatrician | kinderarzt |
| Psychologe | Psychologist | psychologe |
| Augenarzt | Ophthalmologist | augenarzt |
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.