Practo Doctor Scraper avatar

Practo Doctor Scraper

Pricing

from $5.00 / 1,000 doctor scrapeds

Go to Apify Store
Practo Doctor Scraper

Practo Doctor Scraper

Scrape the Practo.com India doctor directory by specialty and city or URL: name, qualifications, experience, fee, recommendation rate, review count, clinic address, services and coordinates. No login needed.

Pricing

from $5.00 / 1,000 doctor scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

17

Total users

5

Monthly active users

21 hours ago

Last modified

Share

What is Practo Doctor Scraper?

Practo Doctor Scraper turns a specialty and an Indian city, or a list of Practo URLs, into a dataset with one row per doctor. Each row returns the doctor's name, specialties, years of experience, qualifications with college and year, consultation fee in INR, patient recommendation percentage, review count, clinic name and address, latitude and longitude, and the Practo profile link. Healthcare marketers, pharma and medical-device field teams, medical recruiters and market researchers use it to build doctor lists by city and specialty, with no Practo account or login.

Why teams use it for doctor research in India

  • Credentials in structured form. qualifications lists each degree with its college and graduation year, ready for filtering.
  • Fee and reputation side by side. consultationFee, recommendationPercent and reviewsCount sit in the same row, so benchmarking a city takes one sort.
  • Map-ready clinics. clinicName, addressLine, locality, zipcode, latitude and longitude place every doctor on a map.
  • Optional full profile. Turn on enrichDetails to add the full bio, every listed service, council registrations, memberships, languages, awards and work history.
  • Two ways in. Search by specialty plus city, or paste listing and profile links into startUrls.

Best fit for this Actor

  • Best fit for teams who need public Practo doctor listings for a specialty in one or more Indian cities.
  • Designed for segmentation by fee band, experience, recommendation rate and neighborhood.
  • Use startUrls with /doctor/ profile links when you already have a shortlist and want fresh, complete records for those doctors.
  • When you want clinic phone numbers and websites as well, continue with Google Maps Scraper and search the clinic names from clinicName.

Example workflow: a dermatology brand plans its Bangalore launch

A skincare brand starts with specialty set to Dermatologist, city set to Bangalore and maxItems at 200. The dataset returns each dermatologist's fee, experience, recommendation rate and clinic coordinates. The team exports the rows to a spreadsheet, keeps doctors with experienceYears of 10 or more and recommendationPercent of 90 or higher, then groups them by locality to plan territory routes for medical representatives. They compare fee bands across localities to choose launch clinics, then re-run the shortlist through startUrls with enrichDetails on to read memberships and registrations before outreach. A monthly schedule keeps the list current as doctors join or move clinics.

Input

Search by specialty and city:

{
"specialty": "Cardiologist",
"city": "Pune",
"maxItems": 15,
"enrichDetails": false
}

Paste Practo links and add full profile details:

{
"startUrls": [
"https://www.practo.com/delhi/dentist",
"https://www.practo.com/bangalore/dermatologist"
],
"maxItems": 40,
"enrichDetails": true
}
InputWhat it controls
specialtySpecialty or treatment term, such as Dermatologist, Dentist or Gynecologist. Used with city.
cityIndian city name, such as Bangalore, Delhi, Mumbai, Hyderabad or Chennai.
startUrlsPracto listing URLs (/bangalore/dermatologist) or doctor profile URLs (/doctor/...). These take priority over specialty and city.
maxItemsTotal doctors to return across all pages, from 1 to 5,000 (default 50). Pagination is automatic.
enrichDetailsVisit each doctor's profile for the full bio, services, registrations and more (default off).
proxyConfigurationApify Residential proxy in India by default, which is the route Practo serves reliably.

Output

A listing row from a Pune cardiologist search (doctor name, IDs and links are fictional; clinic and address are the real hospital):

{
"doctorName": "Dr. Rohan Kulkarni",
"doctorId": 204517,
"practiceId": 1402959,
"specialization": "Cardiologist",
"specialties": ["Cardiologist"],
"experienceYears": 35,
"qualifications": [
{ "degree": "MBBS", "college": "Government Medical College Aurangabad", "year": 1991 },
{ "degree": "MD - General Medicine", "college": "Dr. B R Ambedkar Marathwada University", "year": 1995 },
{ "degree": "DNB - Cardiology", "college": "National Board Of Examinations Nbe", "year": 2003 }
],
"consultationFee": 1500,
"feeCurrency": "INR",
"recommendationPercent": 99,
"patientsCount": 774,
"reviewsCount": 774,
"waitTime": 30,
"clinicName": "Manipal Hospitals",
"clinicType": "Hospital",
"addressLine": "Survey No 111/11/1, Veerbhadra Nagar Rd,, Baner",
"locality": "Baner",
"city": "Pune",
"zipcode": "411045",
"latitude": 18.5664264,
"longitude": 73.7696778,
"popularServices": [],
"servicesCount": 24,
"isPractoPrime": false,
"nextAvailable": null,
"imageUrl": "https://imagesx.practo.com/providers/dr-rohan-kulkarni-cardiologist-pune.jpg",
"profileUrl": "https://www.practo.com/pune/doctor/dr-rohan-kulkarni-cardiologist",
"summary": "Dr. Rohan Kulkarni is a consultant interventional cardiologist in Pune with training in clinical and interventional cardiology.",
"scrapedAt": "2026-10-01T12:40:05.327Z"
}

With enrichDetails on, the same row gains profile fields like these (values from a Delhi dentist, names shortened):

{
"about": "Dr. Mehta is a Dentist in Delhi with 43 years of experience and practises at a dental and implant centre.",
"registrationVerified": true,
"allServices": ["Dental Implant Fixing", "Crowns and Bridges Fixing", "Scaling / Polishing", "Gum Disease Treatment/ Surgery"],
"procedures": ["Dental Aligners", "Dental Crowns"],
"registrations": ["A-10162 — Delhi State Dental Council — 2012"],
"memberships": ["Association of Implantologists", "Association of Oral and Maxillofacial Surgeons of India (AOMSI)"],
"languages": ["English"],
"experiences": ["Professor Oral and Maxillofacial Surgery at Santosh Dental College"]
}
FieldWhat it contains
doctorName, doctorId, practiceIdDoctor name and Practo identifiers
specialization, specialtiesPrimary specialty and every tagged specialty
experienceYears, qualificationsYears in practice; each degree with college and year
consultationFee, feeCurrencyConsultation fee and its currency (INR)
recommendationPercent, patientsCount, reviewsCountPatient recommendation rate and feedback counts
waitTimeTypical wait in minutes, when Practo shows it
clinicName, clinicTypePractice name and type, such as Hospital or Clinic
addressLine, locality, city, zipcodeClinic address parts
latitude, longitudeClinic coordinates for mapping
servicesCount, popularServicesNumber of services listed, plus highlighted services when the listing card shows them
isPractoPrime, nextAvailablePracto Prime flag and next open slot when the card publishes one
imageUrl, profileUrl, summaryPhoto, profile link and short bio
scrapedAtCollection time
about, specialistYears, registrationVerified, allServices, procedures, registrations, memberships, languages, awards, experiencesProfile fields added by enrichDetails

OUTPUT in the default key-value store summarizes each run for automations.

Pricing

This Actor uses Pay per event with Apify platform usage included in the event price. Each doctor row is one Doctor scraped event. With enrichDetails on, each enriched doctor adds one Profile deep-enrich event. Every run also has a small Actor Start event. Open the live Pricing tab on this page for current rates.

  • 50 doctors from a listing search = 50 Doctor scraped events plus one Actor Start.
  • The same 50 doctors with enrichDetails on = 50 Doctor scraped events, 50 Profile deep-enrich events and one Actor Start.
  • maxItems caps every run, so it doubles as your cost ceiling.

API example

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~practo-doctor-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"specialty": "Pediatrician", "city": "Hyderabad", "maxItems": 30}'
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("khadinakbar/practo-doctor-scraper").call(
run_input={"specialty": "Dentist", "city": "Chennai", "maxItems": 25}
)
for doctor in client.dataset(run["defaultDatasetId"]).iterate_items():
print(doctor["doctorName"], doctor["consultationFee"], doctor["recommendationPercent"])

Use Practo Doctor Scraper with AI agents (MCP)

Connect this Actor to Claude, ChatGPT, Cursor or any MCP client through Apify MCP, then ask in plain language:

Find 30 gynecologists in Mumbai on Practo, then list the ones with at least 15 years of experience and a recommendation rate above 95%, with their fee and clinic locality.

What the agent does and gets back:

  1. Calls khadinakbar/practo-doctor-scraper with specialty, city and maxItems close to the request.
  2. Reads the rows with get-dataset-items; each row is one doctor with fee, experience, recommendation rate and clinic location.
  3. Filters and sorts on experienceYears, recommendationPercent and consultationFee before answering.
  4. Keeps enrichDetails off unless the user asks for registrations, memberships, languages or full service lists, which keeps the run lean and the event count equal to the doctor count.

Best results

Starting situationHelpful actionExpected outcome
A quick look at a citySet maxItems to 10–20A fast, low-cost sample of the market
Specialty namesUse Practo's terms, such as Dentist or DermatologistListing pages that match Practo's own categories
A shortlist of doctorsPaste /doctor/ profile links into startUrlsFresh records for exactly those doctors
Credential checksTurn on enrichDetailsRegistrations, memberships, languages and full services
Territory planningGroup rows by locality and plot latitude/longitudeClear clinic clusters per neighborhood
Several citiesRun one search per city, or paste each city's listing URL into startUrlsOne combined dataset across markets

Builder's note

I built this around the data Practo already embeds in its listing pages, with the page's structured data as a second source, so rows stay consistent when the page layout shifts. I kept profile visits optional because most segmentation work only needs fee, experience and location, while credential checks need the deeper profile fields. Qualifications stay as separate degree, college and year entries because recruiters filter on each part.

FAQ

Which cities and specialties work?

Any city and specialty pair that Practo lists, including the major metros and many tier-2 cities. Pairs with no listed doctors finish quickly with an empty dataset.

Do I need a Practo account?

No. The Actor reads public listing and profile pages.

Does it return doctor emails or phone numbers?

Practo publishes clinic details rather than direct doctor contacts, so each row carries the clinic name, address, coordinates and profile link. For clinic phone numbers and websites, search the clinic names with Google Maps Scraper.

Is maxItems per search or per run?

Per run. With several startUrls, the doctors are shared across them.

Responsible use

This Actor collects public professional information that Practo publishes about doctors and clinics. Professional contact and profile details can still be personal data under India's DPDP Act and laws such as the GDPR, so use them with a lawful basis, keep outreach relevant to the doctor's practice, and follow Practo's terms of use. Read Apify's guide on whether web scraping is legal for more context. This independent Actor is not affiliated with or endorsed by Practo. For questions, open a ticket in the Issues tab.