The Doctolib data catalog inside one practitioner profile
Behind every profile page sits one structured record, and it is the cleanest part of the site to extract. At profile level Doctolib data holds the display name with title, a specialty with its own id and slug or, for organizations, a practice type such as cabinet medical, centre de sante, Einzelpraxis, MVZ, centro medico or accredited private hospital, a free-text presentation, skills listed per practice, spoken languages as ISO codes, a video consultation flag beside in-person booking and a directory flag that separates bookable profiles from listing-only entries.
Practice and access. Each practice carries street, postcode, city and coordinates, floor, lift, intercom and parking, nearby transit stops with their lines, a home-visit flag and, where published, opening hours by weekday.
Money. Fees come per act with a fixed flag and a minimum and maximum price, which is what makes Doctolib price monitoring possible where fees are published: French acts and Italian tariffs. France adds the convention sector with the site's own wording on excess fees and reimbursement, Carte Vitale acceptance, a tiers payant flag and payment means - cheque, cash, card, bank transfer - and Italy adds Satispay.
Booking structure. Each profile lists its motifs de consultation, and every motive points to a reference motive id that search uses to match motives across practices, with flags for video, new-patient restrictions and age limits. Agendas tie a practitioner to a practice and to a subset of motives. Two signals can disagree - the structured accepts-new-patients flag and a free-text notice from the practitioner saying the list is closed - so we keep both.
Identifiers. French profiles print the RPPS number, an ADELI field for some paramedical professions and the SIREN business number, which join cleanly to public registers such as the Annuaire Sante. Everywhere, the stable key is the profile id plus the practice id: one practitioner at two addresses is two rows.