French Physician Directory Database (RPPS) - Doctolib
Pricing
from $0.80 / 1,000 record scrapeds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
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
- Pick which of the three country domains to crawl — fr, de, it, or all three — and set a record limit.
- The scraper walks Doctolib's sitemap to discover every practitioner and establishment profile URL in scope.
- Each profile page is parsed for identity, national IDs, conventionnement/tariff data, and the rest of the field set below.
- 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"]}
| Field | Type | Default | Description |
|---|---|---|---|
maxItems | integer | 10 | Maximum number of practitioner/establishment records to return. 0 = unlimited — pair with resumeCursor for a full-corpus crawl across multiple runs. |
countries | array | ["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
resumeCursoris no longer valid. resumeCursoris 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"}
| Field | Type | Description |
|---|---|---|
country | string | Country domain the record was crawled from (fr, de, it). |
profile_url | string | Canonical Doctolib profile URL. |
profile_slug | string | Last path segment of the profile URL. |
rpps | string | French national practitioner ID (Repertoire Partage des Professionnels de Sante). |
adeli | string | Legacy French practitioner ID, used where RPPS is absent (paramedical professions). |
full_name | string | Practitioner or establishment name, no title. |
name_with_title | string | Display name including title (e.g. "Dr", "M."). |
speciality | string | Primary medical speciality or establishment category. |
speciality_slug | string | URL slug of the primary speciality. |
secondary_specialities | array | Additional procedures or services listed on the profile. |
practice_addresses | array | Practice location(s), formatted as name | street, postal city | phone. |
phone | string | Primary practice phone number. |
convention_sector | string | French conventionnement sector (e.g. "Conventionne secteur 1/2", "Non conventionne"). |
accepts_carte_vitale | boolean | Whether the practice accepts Carte Vitale tele-transmission. |
payment_methods | array | Accepted payment methods. |
languages_spoken | array | Languages spoken at the practice. |
insurance_agreements | array | German insurance agreements (gesetzlich / privat), where published. |
online_booking_available | boolean | Whether the profile has a live Doctolib booking widget. |
video_consultation | boolean | Whether teleconsultation is offered. |
new_patients_accepted | boolean | Whether the practice is accepting new patients via Doctolib. |
price_list | array | Published per-act tariffs, formatted as act name: price range. |
diplomas | array | Diplomas/formations, formatted as year: description. |
professional_experience | array | Professional experience periods, formatted as period: description. |
association_memberships | array | Published works, publications or professional affiliations. |
is_doctolib_customer | boolean | Whether the practice has a paying, bookable Doctolib agenda — false means a directory-only listing. |
establishment_type | string | Establishment category for non-individual profiles (e.g. laboratoire, clinique) — empty for individual practitioners. |
scraped_at | string | Timestamp 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.