Doctolib scraper avatar
Doctolib scraper

Pricing

$15.00/month + usage

Go to Apify Store
Doctolib scraper

Doctolib scraper

Extract medical professionals data from Doctolib.fr, Doctolib.it, and Doctolib.de. Scrapes doctor profiles, contact information, specializations, and clinic details across France, Italy, and Germany. Supports multiple cities, professions, and automated pagination with structured JSON output.

Pricing

$15.00/month + usage

Rating

1.7

(2)

Developer

Giovanni Bianciardi

Giovanni Bianciardi

Maintained by Community

Actor stats

1

Bookmarked

13

Total users

1

Monthly active users

50 days

Issues response

3 days ago

Last modified

Share

Apify Actor for Doctolib Data Scraping

Optimize your data extraction from Doctolib with our advanced Apify actor, designed for scraping comprehensive information about healthcare professionals and medical facilities.

Usage Instructions

Input Parameters

  • City: Specify the list of cities to scrape.
  • Professions: Specify the list of medical professions/specialties to scrape.

Output Data

The Apify actor for Doctolib produces JSON files containing detailed healthcare professional information, including:

Basic Information

  • nome: Doctor/facility name
  • profile_url: Direct link to the professional's Doctolib profile
  • id: Unique practice/establishment identifier
  • immagine: Profile image URL
  • tipo: Type of provider (medico, ospedale, etc.)
  • city: Location city
  • doctor_name: Full name of the healthcare professional
  • doctor_subtitle: Professional title/specialty

Location Details

  • places: Array of practice locations with:
    • address: Full street address
    • city: City name
    • zipcode: Postal code
    • latitude: Geographic latitude coordinate
    • longitude: Geographic longitude coordinate
    • phone: Contact phone number
  • main_address: Primary practice address
  • main_phone: Primary contact number

Professional Information

  • practitioner_id: Unique practitioner identifier
  • practitioner_name: Doctor's full name
  • practitioner_speciality: Medical specialty
  • specialities: Array of all specialties offered, including:
    • id: Specialty identifier
    • name: Specialty name (e.g., "Médecin généraliste", "Psychologue")
    • slug: URL-friendly specialty identifier
    • kind: Category type (medical, paramedical, official)

Booking & Services

  • has_online_booking: Online appointment availability
  • telehealth_available: Video consultation availability
  • agendas: Array of available booking schedules with:
    • agenda_id: Schedule identifier
    • speciality_id: Associated specialty
    • practitioner_id: Associated practitioner
    • booking_disabled: Booking availability status
    • visit_motive_count: Number of available appointment types
  • visit_motives: Array of appointment types available (e.g., "Consultation de suivi", "Dépistage VIH/IST")
  • visit_categories: Categorized appointment types
  • vaccination_motives: Available vaccination services

Example Output

[
{
"nome": "Centre de santé sexuelle - Le 190",
"profile_url": "https://www.doctolib.fr/centre-de-sante/paris/cds-190?pid=practice-58081",
"id": "practice-58081",
"immagine": "https://media.doctolib.com/image/upload/q_auto:eco,f_auto,dpr_2/w_62,h_62,c_fill,g_face/uhf09k73j9ndwe2irtbp",
"tipo": "ospedale",
"city": "paris",
"doctor_name": "Centre de santé sexuelle - Le 190",
"doctor_subtitle": "Centre de santé",
"practitioner_name": "Dr Thibault Orriere",
"practitioner_speciality": "Médecin généraliste",
"places": [
{
"practice_name": "Centre de santé sexuelle - Le 190",
"city": "Paris",
"zipcode": "75011",
"address": "2 Impasse de la Baleine",
"latitude": 48.86752509999999,
"longitude": 2.377154700000006,
"phone": "01 55 25 32 72"
}
],
"main_address": "2 Impasse de la Baleine, 75011 Paris",
"main_phone": "01 55 25 32 72",
"has_online_booking": true,
"telehealth_available": true,
"visit_motives": [
"Suivi VIH",
"Suivi PrEP",
"Dépistage VIH/IST et/ou commencer la PrEP",
"Remise des résultats",
"Urgence IST : symptômes, résultat positif, cas contact"
],
"specialities": [
{
"id": 2,
"name": "Médecin généraliste",
"slug": "medecin-generaliste",
"kind": "medical"
},
{
"id": 14,
"name": "Psychologue",
"slug": "psychologue",
"kind": "official"
}
],
"agendas": [
{
"agenda_id": 149704,
"practice_id": 58081,
"speciality_id": 2,
"practitioner_id": 11184257,
"booking_disabled": false,
"phone": "01 55 25 32 72",
"visit_motive_count": 4
}
]
}
]

Data Types Included

The scraper captures various types of healthcare providers:

  • medico: Individual doctors and medical practitioners
  • ospedale: Hospitals and medical centers
  • establishment: Public hospitals and healthcare institutions

Pay-Per-Event Charging

This actor implements Apify's Pay-Per-Event charging system with automatic cost protection.

Tracked Events

  • doctor-scraped: Charged when a doctor's data is successfully scraped and saved
  • api-call: Charged for each Doctolib API call made
  • page-processed: Charged when a page is fully processed

Protection Features

The integrated CostProtectionManager provides automatic safeguards:

  • Negative Margin Protection: Stops execution if losses exceed $0.10
  • Runtime Protection: Maximum execution time of 1 hour
  • Event Limit Protection: Maximum 10,000 events per run
  • Real-time Status Updates: Live margin and progress tracking

Financial Summary

At the end of each run, a detailed summary is saved to charging_summary including:

  • Total revenue and costs
  • Margin percentage and profitability
  • Per-event breakdown
  • Event counts and runtime statistics

Configuration

Event costs are configured in src/main.py. Currently all events are tracked at $0.00 cost, but can be configured for actual Pay-Per-Event pricing when published to Apify Store.

event_costs = {
"doctor-scraped": Decimal('0.00'), # Configure actual cost per doctor
"api-call": Decimal('0.00'), # Configure actual cost per API call
"page-processed": Decimal('0.00') # Configure actual cost per page
}

Important Notes

  • Ensure compliance with Doctolib's terms of service and applicable data protection regulations
  • The scraper handles multiple practice locations for providers who work at different facilities
  • Booking availability and appointment types are dynamic and reflect real-time data
  • Some providers may have booking disabled or limited telehealth options
  • You can customize the scraper's behavior by adjusting the logic in src/main.py
  • For support or issues, contact the developer at [your contact details]

Optimized Features

Our Apify actor for Doctolib is perfect for:

  • Doctolib data scraper: Efficiently scrape comprehensive data from Doctolib
  • Healthcare professionals scraping: Gather detailed information about medical practitioners
  • French medical data extraction: Extract medical provider data from France's leading booking platform
  • Scrape Doctolib profiles: Extract complete profiles and practice details
  • Medical appointment data: Collect information about available services and booking options
  • Healthcare facility mapping: Extract location and contact information for medical facilities
  • Specialty-based medical data: Filter and extract data by medical specialties

By using this optimized Apify actor, you can efficiently gather and utilize extensive data on healthcare professionals from Doctolib, enhancing your healthcare data projects and analysis capabilities.