Doctoralia Clinics & Medical Centers Scraper avatar

Doctoralia Clinics & Medical Centers Scraper

Pricing

from $8.00 / 1,000 clinics

Go to Apify Store
Doctoralia Clinics & Medical Centers Scraper

Doctoralia Clinics & Medical Centers Scraper

Extract clinics, hospitals and medical centers from Doctoralia across Latin America and Spain. For each center get its name, full address, city, phone, specialties, affiliated doctors, opening hours, services and patient rating. Built for healthcare lead generation and provider-network research.

Pricing

from $8.00 / 1,000 clinics

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 days ago

Last modified

Share

Doctoralia Clinics & Medical Centers Scraper

Doctoralia Clinics & Medical Centers Scraper

Here is one real result, with every field the actor returns (the reviews array is trimmed here to two entries; the actor returns every review it collects):

{
"imageUrl": "https://s3-eu-west-1.amazonaws.com/doctoralia.es/doctor/b2ac04/b2ac04debe9f4da1e70aba3066a925e0_large.jpg",
"clinicName": null,
"specialty": "Cardiología",
"city": null,
"address": null,
"rating": 5,
"reviewsCount": 2941,
"url": "https://www.doctoralia.es/clinicas/my-medica",
"listingId": "33167",
"phone": "+34663631999",
"fullAddress": "Doctoralia Internet SL C/ Josep Pla 2 - Building B2, floor 13 08019 Barcelona, Spain",
"description": null,
"priceRange": null,
"doctors": null,
"openingHours": null,
"insurances": null,
"reviews": [
{ "author": null, "rating": 0, "date": null, "text": "Experiencia excelente. Desde un primer momento súper profesional, con explicaciones detalladas y soluciones personalizadas a cada caso." },
{ "author": null, "rating": 0, "date": null, "text": "The doctor could communicate in English, which made me feel much more at ease, and his explanations were very clear and professional." }
],
"observedAt": "2026-08-14T06:39:15.339Z",
"error": null,
"aiLeadScore": null,
"aiLeadTier": null,
"aiLeadRationale": null,
"aiSummary": "This clinic specializes in cardiology and has received a high rating of 5 based on 2,941 reviews, indicating strong patient satisfaction.",
"aiIndustry": null,
"aiCategories": null
}

The most complete Doctoralia clinics scraper available. It returns every field Doctoralia exposes for each clinic or medical center (name, address, phone, specialty, rating, reviews, services, doctors, opening hours, accepted insurances), plus optional AI enrichment, and gives you specialty, city and country filters to target exactly the centers you need.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor searches Doctoralia for a specialty or clinic type in the country and city you choose, and returns one record per clinic or medical center. With withDetails enabled (the default), it also opens each clinic profile to add phone, full address, description, services and prices, the doctors practising there, opening hours, accepted insurances and patient reviews. Missing source values are returned as null and missing lists as null, never invented.

Coverage spans the Doctoralia country sites for Mexico, Spain, Brazil, Argentina, Colombia, Chile and Peru. Optional paid add-ons can find a public contact email and name, score each clinic as a B2B lead, write an AI summary, and classify its primary medical field.

Quickstart

Open the actor, paste this into the input, and press Run. It returns 10 cardiology clinics in Mexico City with detail pages fetched.

{
"specialty": "Cardiología",
"location": "Ciudad de México",
"country": "mx",
"maxClinics": 10,
"withDetails": true
}

Leave location empty to search the whole country. Paste a full Doctoralia clinics search URL into startUrl to override the specialty and location fields.

Input reference

FieldTypeRequiredDefaultDescription
specialtystringnoCardiologíaSpecialty or clinic type to search, for example Cardiología, Odontología, Laboratorio.
locationstringnoCiudad de MéxicoCity or area to narrow the search. Leave empty to search the whole country.
countryenumnomxDoctoralia country site: mx, es, br, ar, co, cl, pe.
maxClinicsintegerno10Maximum number of clinics to collect. Free plans are capped at 10.
withDetailsbooleannotrueFetch each clinic profile for phone, full address, services, doctors, opening hours and insurances. Slower but richer.
startUrlstringno(empty)Optional. A full Doctoralia clinics search URL that overrides specialty and location.
enrichContactsbooleannofalsePaid add-on. For each result without an email, attempt to find a public business contact email and name. Billed per attempt plus an extra charge only when an email is found.
enrichContactsMaxintegerno50Cap on how many results the contact add-on tries to enrich. Free accounts are capped at 3.
withLeadScorebooleannofalsePaid add-on. AI qualifies each clinic as a B2B lead (0 to 100, hot/warm/cold, rationale). Charged per clinic scored.
withProfileSummarybooleannofalsePaid add-on. AI writes a concise summary of each clinic. Charged per clinic summarised.
withIndustrybooleannofalsePaid add-on. AI classifies each clinic's primary medical field and specialty tags. Charged per clinic classified.

Output reference

One dataset item per clinic. Types: string, integer, number, object[], or null when the source value is absent.

FieldTypeDescription
clinicNamestringClinic or medical center name, or null when Doctoralia does not expose a distinct center name.
imageUrlstringProfile image URL.
specialtystringSpecialty or clinic type matched.
citystringCity, when exposed, else null.
addressstringShort address from the listing, else null.
ratingnumberAverage patient rating, or null.
reviewsCountintegerNumber of reviews.
reviewsobject[]Review entries, each with author, rating, date, text. Populated with withDetails.
servicesobject[]Services and prices offered, or null.
urlstringDoctoralia clinic profile URL.
listingIdstringDoctoralia internal listing ID.
phonestringContact phone in international format, or null.
priceRangestringPrice range indicator, or null.
fullAddressstringFull postal address from the detail page, or null.
descriptionstringClinic description text, or null.
doctorsobject[]Doctors practising at the clinic, or null.
openingHoursobjectOpening hours by day, or null.
insurancesstring[]Accepted insurances, or null.
observedAtstringISO 8601 timestamp of when the record was collected.
aiLeadScoreintegerAI lead score 0 to 100 (lead-score add-on).
aiLeadTierstringAI lead tier hot, warm, or cold (add-on).
aiLeadRationalestringAI rationale for the lead score (add-on).
aiSummarystringAI summary of the clinic (summary add-on).
aiIndustrystringAI-classified primary medical field (industry add-on).
aiCategoriesstring[]AI specialty tags (industry add-on).
enrichedEmailstringPublic contact email found by the contact add-on, or null.
enrichedContactNamestringContact person name found by the add-on, or null.
enrichedJobTitlestringContact job title found by the add-on, or null.
enrichedEmailStatusstringVerification status of the enriched email.
enrichedSourcestringSource URL where the contact was found.
enrichedConfidencenumberConfidence score for the enriched contact.
errorstringPresent only on a failed run: a single item with a populated error field is written instead.

Example output record

Real record from a live run (input {"specialty":"Cardiología","country":"es","maxClinics":10,"withDetails":true}), reviews trimmed:

{
"clinicName": null,
"specialty": "Cardiología",
"rating": 5,
"reviewsCount": 2941,
"url": "https://www.doctoralia.es/clinicas/my-medica",
"listingId": "33167",
"phone": "+34663631999",
"fullAddress": "Doctoralia Internet SL C/ Josep Pla 2 - Building B2, floor 13 08019 Barcelona, Spain",
"observedAt": "2026-08-14T06:39:15.339Z",
"error": null
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~doctoralia-clinics-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"specialty":"Cardiología","location":"Ciudad de México","country":"mx","maxClinics":10,"withDetails":true}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~doctoralia-clinics-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"specialty":"Odontología","country":"es","maxClinics":50}'

Apify CLI:

apify call scrapers_lat/doctoralia-clinics-scraper \
--input '{"specialty":"Laboratorio","country":"co","maxClinics":10}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per clinic returned (result event). See the pricing tab for the current per-result price.
  • Paid add-ons. Contact enrichment, AI lead scoring, AI summary and AI classification are optional and billed separately per the events described above. They are disabled by default.
  • No charge on failure. If a run errors before any clinic is collected, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 clinics per run (and 3 contact enrichments). Upgrade for higher maxClinics.

FAQ and troubleshooting

A run returned 0 records. Why? The specialty and location combination matched no clinics. Try a broader specialty or remove the city. Zero-result runs are not charged.

Why is clinicName null on some records? Doctoralia sometimes lists a center under a professional profile without a distinct clinic name. The record still ships with the URL, rating, phone and address. Missing values are returned as null, never invented.

Why are services, doctors or openingHours null? Those come from the detail page. Enable withDetails (on by default) and note that not every clinic publishes all of them.

Which countries are supported? Mexico, Spain, Brazil, Argentina, Colombia, Chile and Peru, selected with the country field.

Is this an official Doctoralia tool? No. This actor is independent and has no affiliation with Doctoralia or Docplanner. It reads only data that is publicly available on Doctoralia. Use it in accordance with the Doctoralia terms of service.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with Doctoralia or Docplanner. Accesses only publicly available Doctoralia data. Use in accordance with the Doctoralia terms of service.