Doctoralia Scraper avatar

Doctoralia Scraper

Pricing

from $30.00 / 1,000 doctor profiles

Go to Apify Store
Doctoralia Scraper

Doctoralia Scraper

[πŸ’° $30 / 1K doctors Β· $1.50 / 1K reviews] Extract doctors from Doctoralia across 11 countries β€” names, specialties, addresses, phones, GPS, ratings, services, prices, and patient reviews. Search by city and specialty, or paste profile URLs.

Pricing

from $30.00 / 1,000 doctor profiles

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

2

Monthly active users

5 days ago

Last modified

Share

Turn any Doctoralia specialty-and-city page into a structured dataset: doctor names and specialties, each clinic they practise at β€” with coordinates, phone numbers and postal codes wherever the practice publishes them β€” the services each clinic charges for and what it charges, star ratings, next-available appointment slots, and the complete text of every patient opinion you collect, across 11 localized country sites. Built for healthcare marketers, medical recruiters, and clinic intelligence teams who need thousands of provider records without opening profiles one at a time.

Why This Scraper?

  • 11 localized country sites, one dropdown β€” Spain, Brazil, Mexico, Argentina, Chile, Peru, Colombia, plus the same network under its local brands: MioDottore (Italy), ZnanyLekarz (Poland), DoktorTakvimi (Turkey), ZnamyLekar (Czech Republic).
  • Prices attributed to the clinic that charges them β€” a Milan gynaecologist bills ecografia ostetrica at €220 at her city-centre clinic and €150 at her suburban one, and you get both rows, each carrying the addressId of the clinic it belongs to. Across a 19,516-service benchmark, 58% of services came back with a numeric price and 22% with the price label exactly as the clinic prints it.
  • Complete patient opinions, not review counts β€” author handle, 1–5 star rating, ISO 8601 publish date and full review body on 100% of 7,564 benchmark reviews, capped exactly at your per-doctor limit.
  • Clinic geolocation you can map β€” latitude and longitude on 81% of 1,809 benchmark clinic addresses, with postal code on 74% and a direct phone number on 78%, ready to join to territory or CRM data.
  • Booking signals on 93% of doctors β€” the soonest open appointment as an ISO 8601 timestamp plus a calendar flag, so you can separate providers actively taking patients from dormant listings.
  • Headline reputation on 99.9% of doctors β€” the aggregate star average and lifetime opinion total, alongside how many opinions this run actually pulled, so you always know your sample size.
  • Two record types, already split for you β€” one doctor row per professional and one review row per opinion, joined by doctorId, shown as separate Doctors and Patient reviews tabs and exportable independently.
  • Paste a URL or search structurally β€” drop in any profile or results URL from any of the 11 sites, or search by country, city and specialty. If the specialty word does not exist on the country you chose, the run tells you the exact address that came back empty instead of finishing silently with nothing.
  • Multi-clinic doctors come back whole β€” a doctor practising at six addresses returns six location entries with their own postal codes, phones and availability, not just the primary one.

Use Cases

Healthcare Lead Generation

  • Build specialty-and-city outreach lists with clinic phone numbers and postal addresses
  • Plot clinic coordinates to plan field-sales territories and route reps efficiently
  • Target providers who already sell specific paid services in a chosen price band
  • Prioritise doctors with near-term open appointments β€” the ones actively taking patients

Market & Competitive Research

  • Benchmark what a procedure costs across cities, clinics and countries
  • Measure provider density for a specialty in any metro across 11 markets
  • Track which clinics offer online booking and online payment
  • Compare Spanish, Italian, Brazilian and Polish markets on one consistent schema

Reputation & Review Monitoring

  • Pull full opinion text for sentiment and theme analysis on a doctor or specialty
  • Track a provider's star average and opinion volume over time
  • Surface recurring complaints by filtering reviews to 1- and 2-star ratings
  • Collect dated testimonials with star ratings for marketing collateral

Healthcare Recruitment

  • Source specialists by specialty, city and country site
  • Read a candidate's public rating and patient feedback before first contact
  • Map where target specialists practise across multiple clinics and cities

Getting Started

Search by Country, City, and Specialty

The simplest run β€” dentists in Madrid:

{
"country": "es",
"city": "Madrid",
"specialty": "dentista",
"maxResults": 50
}

Write the specialty the way that country's site writes it: dentista in Spain, ginecologo in Italy, cardiologista in Brazil.

Doctors Without Reviews (Lighter, Cheaper)

Skip opinion collection when you only need provider and clinic details:

{
"country": "it",
"city": "Milano",
"specialty": "Ginecologo",
"includeReviews": false,
"maxResults": 100
}

Paste Doctoralia URLs Directly

Mix individual profiles and already-filtered results pages from any country site:

{
"startUrls": [
"https://www.doctoralia.es/barbara-lizaur-ajuria/dentista/madrid",
"https://www.miodottore.it/cardiologo/roma"
],
"maxReviewsPerDoctor": 30
}
{
"country": "br",
"city": "SΓ£o Paulo",
"specialty": "Cardiologista",
"maxResults": 200,
"includeReviews": true,
"maxReviewsPerDoctor": 50
}

Input Reference

What to Scrape

ParameterTypeDefaultDescription
startUrlsstring[][]Paste Doctoralia doctor profile or search-results URLs. The most direct way to get exactly the doctors you want. Clinic pages are skipped β€” they describe the centre, not the doctors in it. Leave empty to use the search options below.
countryselectSpainWhich country site to search: Spain, Brazil, Mexico, Argentina, Chile, Peru, Colombia, Italy, Poland, Turkey, or Czech Republic. Used with City and Specialty; ignored when you paste URLs.
citystring""City or area within the chosen country, e.g. "Madrid", "SΓ£o Paulo". Leave empty to search the whole country.
specialtystring""Medical specialty, written the way the chosen country's site writes it, e.g. "dentista" in Spain, "cardiologista" in Brazil, "ginecologo" in Italy. Leave empty to include all specialties.

Options

ParameterTypeDefaultDescription
maxResultsinteger100Maximum doctors to collect. Set to 0 for no limit. Keep a limit to control cost.
includeReviewsbooleantrueCollect each doctor's patient opinions. Turn off for faster, cheaper runs when you only need provider and clinic details.
maxReviewsPerDoctorinteger20Maximum opinions per doctor. Set to 0 to collect all available, up to a safety maximum of 5,000 per doctor. Popular doctors carry hundreds β€” a limit keeps runs fast and affordable.

Output

The dataset holds two kinds of rows, marked by recordType: one doctor row per professional, followed by one review row for each opinion collected for that doctor. They share doctorId, so you can keep them together or export each tab on its own.

The Filled column below is measured on a benchmark of 850 doctors, 1,809 clinic addresses, 19,516 services and 7,564 reviews across seven country sites. A field below 100% is absent because the clinic or doctor did not publish it, not because it was missed.

Doctor Records

{
"recordType": "doctor",
"doctorId": "608709",
"fullName": "Dott.ssa Federica Baltaro",
"title": "Dott.ssa",
"profileUrl": "https://www.miodottore.it/profilo/federica-baltaro",
"specialties": [
{ "id": 28, "name": "ginecologo" }
],
"rating": 5,
"opinionsTotal": 38,
"reviewsCollected": 10,
"locations": [
{
"clinicName": "WELCOMED-GEPO",
"addressStreet": "F. Burlamacchi 1/A",
"city": "Milano",
"province": "MI",
"postalCode": "20135",
"phone": "335 198 2363",
"latitude": 45.4507294,
"longitude": 9.2055302,
"onlinePayment": false,
"isOnlineOnly": false,
"nextAvailable": "2026-09-14T18:30:00+02:00",
"addressId": "1023168"
},
{
"clinicName": "Centro Polisalute",
"addressStreet": "Via E. de Amicis 67",
"city": "Cinisello Balsamo",
"province": "MI",
"postalCode": "20092",
"phone": "02 3670 4424",
"latitude": 45.5645409,
"longitude": 9.2269869,
"onlinePayment": false,
"isOnlineOnly": false,
"nextAvailable": "2026-10-15T16:30:00+02:00",
"addressId": "1044925"
}
],
"services": [
{
"name": "ecografia ostetrica",
"description": "Esclusa ecografia morfologica e ecografia con traslucenza nucale",
"price": 220,
"priceText": "220 €",
"isFromPrice": false,
"addressId": "1023168"
},
{
"name": "ecografia ostetrica",
"description": "Ecografia Ostetrica",
"price": 150,
"priceText": "150 €",
"isFromPrice": false,
"addressId": "1044925"
}
],
"insurances": ["Faschim", "Fasdac", "Previmedical", "Allianz"],
"hasCalendar": true,
"nextAvailable": "2026-09-14T18:30:00+02:00",
"country": "it",
"scrapedAt": "2026-09-11T21:47:46.179857+00:00"
}

A real row, shortened for the page: this doctor actually returned 21 services and 17 insurance names, plus 10 separate review rows. Note the same service, ecografia ostetrica, priced €220 and €150 at two different addressId values.

Core Fields

FieldTypeFilledDescription
recordTypestring100%Always "doctor" for these rows
doctorIdstring100%Stable Doctoralia doctor identifier; joins to the review rows
fullNamestring100%Doctor's full display name
profileUrlstring100%Canonical doctor profile URL
specialtiesobject[]100%Every specialty as { id, name } β€” the numeric id is stable across languages
titlestring93%Professional title or prefix, e.g. "Dr.", "Dra.", "Dott.ssa". Spanish profiles often publish none (69% there)
countrystring100%Country site the record came from
scrapedAtstring100%ISO 8601 timestamp of collection

Ratings & Availability

FieldTypeFilledDescription
ratingnumber99.9%Average star rating. 0 means the doctor has no opinions yet, not a zero-star review β€” check opinionsTotal alongside it
opinionsTotalnumber99.9%Lifetime opinions on file, including ones this run did not collect
reviewsCollectednumber100%How many opinion rows this run produced for the doctor
hasCalendarboolean100%Whether the doctor offers online booking
nextAvailablestring93%Soonest open appointment, ISO 8601. Highest in Brazil, Poland and Turkey (100%), lowest in Colombia (55%)

Practice Data

FieldTypeFilledDescription
locationsobject[]100%One entry per clinic the doctor practises at β€” fields below
servicesobject[]100%Everything the doctor lists as a bookable service β€” fields below
insurancesstring[]13%Accepted insurer names. A minority of doctors publish these anywhere (Spain highest at 28%), and Polish profiles publish none at all β€” treat it as a bonus field, not a filter

locations[] β€” one entry per clinic

FieldTypeFilledDescription
addressIdstring100%Clinic identifier; matches services[].addressId
clinicNamestring99%Name of the practice or medical centre
onlinePaymentboolean97%Whether the clinic accepts payment online
isOnlineOnlyboolean97%True for remote-consultation entries with no physical address
addressStreetstring83%Street and number
latitude / longitudenumber81%Exact clinic coordinates. Highest in Turkey (99%) and Italy (90%), lowest in Poland (72%)
phonestring78%Direct clinic phone number
citystring78%Clinic city
postalCodestring74%Clinic postal code where the practice publishes one
nextAvailablestring70%Soonest open slot at this specific clinic, ISO 8601
provincestring68%Province or region. The Turkish site publishes no province field at all, so this is always empty there

services[] β€” what each clinic charges for

FieldTypeFilledDescription
namestring100%Service name as the clinic lists it
addressIdstring91%The clinic this price belongs to; matches locations[].addressId. The Turkish site does not publish a per-clinic service breakdown (23% there)
isFromPriceboolean87%True when the price is a starting-from estimate rather than a fixed fee
pricenumber58%Numeric price when the clinic publishes one. Highest in Poland (96%) and Italy (91%); Turkish clinics publish essentially no service prices and show a "request the price" prompt instead
descriptionstring23%The clinic's own description of the service
priceTextstring22%The price label exactly as printed, e.g. "220 €", "Desde 149 €", "R$ 180", "Od 1 000 zΕ‚". This is the only field that carries a currency symbol, and 89% of the labels include one

Review Records

{
"recordType": "review",
"doctorId": "608709",
"doctorName": "Dott.ssa Federica Baltaro",
"reviewId": "4221703",
"authorName": "FIORELLA",
"rating": 5,
"datePublished": "2026-09-11T17:42:16+02:00",
"body": "La dott.ssa Baltaro ha seguito entrambe le mie gravidanze, mi sono trovata benissimo. È una professionista completa sia umanamente che professionalmente.",
"isAnonymous": false,
"country": "it",
"scrapedAt": "2026-09-11T21:47:46.179857+00:00"
}

A real row; the body is shortened here, and the dataset carries the complete text.

FieldTypeFilledDescription
recordTypestring100%Always "review" for these rows
doctorIdstring100%Identifier of the doctor this opinion belongs to β€” join key back to the doctor row
doctorNamestring100%Name of the reviewed doctor, repeated so review exports stand alone
reviewIdstring100%Stable opinion identifier, useful for de-duplicating across repeat runs
authorNamestring100%The handle the patient published under β€” a first name, initials such as J.F.P.N, or the site's own deleted-account placeholder
ratingnumber100%Star rating, 1–5
datePublishedstring100%When the opinion was posted, ISO 8601. The newest opinions carry a full timestamp with UTC offset and older ones a YYYY-MM-DD date β€” both parse with any date library
bodystring100%Complete opinion text
isAnonymousboolean100%True when the author published under initials or a placeholder rather than a name β€” about 22% of opinions
countrystring100%Country site the opinion came from
scrapedAtstring100%ISO 8601 timestamp of collection

Tips for Best Results

  • Use the word for the professional, not the word for the field β€” this is the single biggest cause of an empty run. dermatologo lists dermatologists; dermatologia sends you to the clinic directory instead, which holds almost no individual doctors. The same holds for odontologia versus dentista and ginecologia versus ginecologo. When a run reports a redirected page, this is usually why.
  • Write the specialty in the site's own language β€” an English word on a Spanish or Italian site finds nothing at all. Use "Cardiologo" in Italy, "Cardiologista" in Brazil, "CardiΓ³logo" in Spain. When in doubt, browse to the results page yourself and paste that URL.
  • Start with 25–50 doctors to confirm your city and specialty return the providers you expect, then scale the same input up.
  • Cap opinions with maxReviewsPerDoctor β€” 10 to 20 is plenty for sentiment sampling and keeps runs fast and affordable. Set it to 0 only when you genuinely need every opinion on file.
  • Switch includeReviews off for pure lead lists β€” when you only need names, specialties, addresses and phone numbers, runs get noticeably leaner and cheaper.
  • Join services to clinics with addressId β€” the same procedure often carries different prices at a doctor's different addresses, and addressId is what tells you which price applies where.
  • Expect country differences before you build a filter on them β€” Turkish clinics publish no service prices and no province; Polish profiles list no insurers; Colombian listings carry thinner availability and contact data than Spanish or Italian ones. Sample one country before committing a pipeline to a field.

Pricing

From $30.00 per 1,000 doctor profiles and $1.50 per 1,000 patient opinions at Gold rates. Two separate charges keep this fair: a doctor profile is a large record with clinics, coordinates, services and prices, while an opinion is a single short row β€” and each doctor can carry hundreds of them. You pay the doctor rate once per professional and the opinion rate only for the opinions you chose to collect. Bronze, Silver and Gold subscribers pay progressively less on both.

Doctor Profiles

Doctor profilesNo discountBronzeSilverGold
100$3.60$3.40$3.20$3.00
1,000$36.00$34.00$32.00$30.00
10,000$360.00$340.00$320.00$300.00
100,000$3,600.00$3,400.00$3,200.00$3,000.00

Patient Opinions

OpinionsNo discountBronzeSilverGold
100$0.18$0.17$0.16$0.15
1,000$1.80$1.70$1.60$1.50
10,000$18.00$17.00$16.00$15.00
100,000$180.00$170.00$160.00$150.00

Worked example: 100 doctors with 20 opinions each at Gold rates is 100 Γ— $0.030 plus 2,000 Γ— $0.0015 = $3.00 + $3.00 = $6.00, plus a small fixed per-run start fee.

No compute or time-based charges β€” you pay per result. Use includeReviews and maxReviewsPerDoctor to put the opinion half of that bill exactly where you want it.

Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

  • Zapier / Make / n8n β€” Workflow automation
  • Google Sheets β€” Direct spreadsheet export
  • Slack / Email β€” Notifications on new results
  • Webhooks β€” Trigger custom APIs on run completion
  • Apify API β€” Full programmatic access

This actor is designed for legitimate market research, recruitment, and reputation-monitoring use. The data includes information about named medical professionals and patient opinions β€” treat it as personal data. You are responsible for complying with applicable laws (including GDPR and other privacy regulations), the relevant Doctoralia site's Terms of Service, and any restrictions on processing health-related or personal data. Do not use extracted data for spam, harassment, or any unlawful purpose, and honor individuals' privacy and data-subject rights.