French Physician Directory Database (RPPS) - Doctolib avatar

French Physician Directory Database (RPPS) - Doctolib

Pricing

from $0.80 / 1,000 record scrapeds

Go to Apify Store
French Physician Directory Database (RPPS) - Doctolib

French Physician Directory Database (RPPS) - Doctolib

Crawls Doctolib's France, Germany and Italy practitioner and establishment directories for identity, RPPS/ADELI national IDs, conventionnement sector, published tariffs, languages spoken, diplomas and experience.

Pricing

from $0.80 / 1,000 record scrapeds

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

France, Germany & Italy Physician Directory Database — Doctolib

Scrape practitioner and clinic profiles from Doctolib, the booking platform behind most outpatient care in France, Germany and Italy. Returns identity, the RPPS/ADELI national practitioner ID, conventionnement sector, published tariffs, languages spoken and more — for both individual practitioners and establishments across all three countries.


Doctolib Practitioner Directory Scraper Features

  • Extracts the RPPS or ADELI national practitioner ID for every French record — the join key into Annuaire Sante, SNDS and other national health datasets.
  • Returns conventionnement sector, Carte Vitale acceptance and published per-act tariffs where the practice lists them.
  • Covers practitioners and establishments (clinics, labs, centres de sante) across doctolib.fr, doctolib.de and doctolib.it from one run.
  • Collects languages spoken, diplomas, professional experience and payment methods per profile.
  • Flags whether a listing is a paying, bookable Doctolib customer or a directory-only entry — useful for scoring lead quality before you call anyone.
  • Runs against the full site sitemap, not a search query, so results aren't capped by what a single search term happens to surface.

Who Uses Doctolib Practitioner Data?

  • Healthcare analytics teams — join RPPS-tagged records into SNDS or Annuaire Sante datasets for prescriber-level analysis.
  • Medical device and pharma sales — build territory lists filtered by speciality and city, or at least the raw material for one.
  • Health-tech vendors — identify practices without an online booking system as sales leads for practice-management software.
  • Insurance and billing analysts — track conventionnement sector and Carte Vitale acceptance across a region.
  • Market researchers — measure tariff ranges for a given procedure across cities or specialities.
  • Recruiters and staffing firms — source practitioners by speciality and language spoken.

How Doctolib Practitioner Directory Scraper Works

  1. Pick which of the three country domains to crawl — fr, de, it, or all three — and set a record limit.
  2. The scraper walks Doctolib's sitemap to discover every practitioner and establishment profile URL in scope.
  3. Each profile page is parsed for identity, national IDs, conventionnement/tariff data, and the rest of the field set below.
  4. Results land in your dataset as they're collected, so you can start using them before a large run finishes.

Input

{
"maxItems": 200,
"countries": ["fr", "de"]
}
FieldTypeDefaultDescription
maxItemsinteger10Maximum number of practitioner/establishment records to return. 0 = unlimited — pair with resumeCursor for a full-corpus crawl across multiple runs.
countriesarray["fr", "de", "it"]Which Doctolib national domains to crawl. Leave empty for all three — France, Germany and Italy share the same sitemap layout and profile template, so widening costs nothing extra.

Resuming a large crawl

Every run emits a resumeCursor in its Output. If a large crawl stops before it finishes — because it hit maxItems, your spend cap (maxTotalChargeUsd), or was aborted — start a new run with the same input plus that resumeCursor to continue from where it left off. The crawl resumes from the queued work the previous run didn't reach.

  • You are not re-charged for records the earlier run already delivered.
  • Resume within your account's run-retention window — on the free tier, roughly your 10 most recent runs. Once the source run is pruned, its resumeCursor is no longer valid.
  • resumeCursor is opaque — supply it unmodified.

Doctolib Practitioner Directory Scraper Output Fields

{
"country": "fr",
"profile_url": "https://www.doctolib.fr/medecin-generaliste/paris/anne-moga",
"profile_slug": "anne-moga",
"rpps": "10000378991",
"adeli": "751497041",
"full_name": "Anne Vaillant Moga",
"name_with_title": "Dr Anne Vaillant Moga",
"speciality": "Medecin generaliste",
"speciality_slug": "medecin-generaliste",
"secondary_specialities": ["Acne", "Allergie", "Apnee du sommeil"],
"practice_addresses": ["Dr Anne Moga (Paris) | 76 avenue Raymond Poincare, 75116 Paris |"],
"phone": null,
"convention_sector": "Conventionne secteur 2",
"accepts_carte_vitale": true,
"payment_methods": ["Especes", "cartes bancaires", "virement bancaire"],
"languages_spoken": ["Anglais", "Francais"],
"insurance_agreements": [],
"online_booking_available": true,
"video_consultation": true,
"new_patients_accepted": true,
"price_list": ["Consultation prealable de medecine esthetique: de 50 EUR a 80 EUR"],
"diplomas": ["2013: Implants de cheveux synthetiques - Medicap"],
"professional_experience": ["depuis 2025: Cabinet - Epinay-sur-Orge"],
"association_memberships": [],
"is_doctolib_customer": true,
"establishment_type": null,
"scraped_at": "2026-09-01T18:28:43.124Z"
}
FieldTypeDescription
countrystringCountry domain the record was crawled from (fr, de, it).
profile_urlstringCanonical Doctolib profile URL.
profile_slugstringLast path segment of the profile URL.
rppsstringFrench national practitioner ID (Repertoire Partage des Professionnels de Sante).
adelistringLegacy French practitioner ID, used where RPPS is absent (paramedical professions).
full_namestringPractitioner or establishment name, no title.
name_with_titlestringDisplay name including title (e.g. "Dr", "M.").
specialitystringPrimary medical speciality or establishment category.
speciality_slugstringURL slug of the primary speciality.
secondary_specialitiesarrayAdditional procedures or services listed on the profile.
practice_addressesarrayPractice location(s), formatted as name | street, postal city | phone.
phonestringPrimary practice phone number.
convention_sectorstringFrench conventionnement sector (e.g. "Conventionne secteur 1/2", "Non conventionne").
accepts_carte_vitalebooleanWhether the practice accepts Carte Vitale tele-transmission.
payment_methodsarrayAccepted payment methods.
languages_spokenarrayLanguages spoken at the practice.
insurance_agreementsarrayGerman insurance agreements (gesetzlich / privat), where published.
online_booking_availablebooleanWhether the profile has a live Doctolib booking widget.
video_consultationbooleanWhether teleconsultation is offered.
new_patients_acceptedbooleanWhether the practice is accepting new patients via Doctolib.
price_listarrayPublished per-act tariffs, formatted as act name: price range.
diplomasarrayDiplomas/formations, formatted as year: description.
professional_experiencearrayProfessional experience periods, formatted as period: description.
association_membershipsarrayPublished works, publications or professional affiliations.
is_doctolib_customerbooleanWhether the practice has a paying, bookable Doctolib agenda — false means a directory-only listing.
establishment_typestringEstablishment category for non-individual profiles (e.g. laboratoire, clinique) — empty for individual practitioners.
scraped_atstringTimestamp the record was collected.

FAQ

How do I scrape Doctolib practitioner data?

Doctolib Practitioner Directory Scraper needs no account and no API key. Set maxItems and, optionally, which countries to cover — the default is all three — and it returns practitioner and establishment records as structured JSON.

What is RPPS and why does it matter?

RPPS (Repertoire Partage des Professionnels de Sante) is the French national practitioner identifier. It's the field that lets you join Doctolib records into Annuaire Sante, SNDS prescriber data, and most other French health datasets — a plain name-and-city listing can't do that.

Can I filter by country?

Yes. Pass countries: ["fr"], ["de"], ["it"], or any combination. Leave it empty and you get all three — the sitemap layout and profile template are identical across domains.

Does this include establishments, or just individual practitioners?

Both. Establishment profiles (clinics, labs, centres de sante) come back with establishment_type set; individual practitioner records leave that field empty.

Do I need an account or API key for Doctolib?

No. Doctolib Practitioner Directory Scraper works against publicly listed profile pages — no login, no API key, no scraping credentials to manage.


Need More Features?

Need custom fields, filters, or a different target site? File an issue or get in touch.

Why Use Doctolib Practitioner Directory Scraper?

  • RPPS included — the national practitioner ID that turns a name-and-address list into a joinable spine for French healthcare analytics.
  • Three countries, one run — France, Germany and Italy share a sitemap layout and profile template, so covering all three costs nothing extra over covering one.
  • Richer than a search-page scrape — profile pages carry conventionnement sector, Carte Vitale acceptance and per-act tariffs that a search results list never shows.