Practo India Doctor Directory Scraper avatar

Practo India Doctor Directory Scraper

Pricing

Pay per event

Go to Apify Store
Practo India Doctor Directory Scraper

Practo India Doctor Directory Scraper

Extract 20+ fields from Practo.com doctor profiles — specialties, qualifications, experience, clinic details, fees, ratings, services, and medical registration number

Pricing

Pay per event

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Practo Doctor Scraper — India Healthcare Directory

Scrape doctor profiles from Practo.com, India's largest healthcare platform. Extract 20+ fields per doctor including specialties, qualifications, years of experience, clinic address, consultation fees, ratings, and medical council registration numbers — filtered by city and specialty.

Covers 50+ Indian cities and 50+ medical specialties. Practo indexes over 500,000 doctor profiles. The scraper runs a two-level crawl: listing pages for speed, individual profile pages for richer data.


What Data Does This Scraper Extract?

With detail pages enabled (default), each record contains:

FieldTypeDescription
doctorNamestringFull name of the doctor
specialtystringPrimary medical specialty (e.g. "Dentist")
subspecialtiesarrayAdditional specializations from the profile
qualificationsarrayDegrees and credentials (e.g. ["MBBS", "MDS"])
experienceYearsnumberYears of clinical experience
clinicNamestringPrimary clinic or hospital name
clinicAddressstringFull street address of the practice
citystringCity where the doctor practices
localitystringNeighborhood or locality within the city
consultationFeenumberConsultation fee in INR
ratingValuenumberAggregate patient rating (out of 100)
reviewCountnumberTotal number of patient reviews
recommendationPercentnumberPercentage of patients who recommend this doctor
patientStoriesCountnumberNumber of patient stories submitted
servicesarrayMedical services offered (e.g. root canal, scaling)
awardsarrayProfessional awards and recognitions
registrationNumberstringMedical council registration number
onlineConsultationbooleanWhether the doctor offers video consultations
profilePhotoUrlstringURL to the doctor's profile photo
profileUrlstringFull URL to the doctor's Practo profile
scrapedAtstringISO timestamp of when the record was scraped

With detail pages disabled (scrapeDetails: false), the scraper saves listing-level fields only: name, specialty, experience, clinic name, locality, city, fee, recommendation percent, patient stories, and profile URL. Runs significantly faster.


Practo Scraper Input Parameters

ParameterTypeDefaultDescription
citystringbangaloreIndian city to search. Examples: mumbai, delhi, hyderabad, chennai, pune
specialtystring(all doctors)Medical specialty filter. Examples: dentist, dermatologist, gynecologist, cardiologist, orthopedic-surgeon
maxItemsinteger50Maximum number of doctor profiles to return
maxPagesinteger10Maximum number of listing pages to crawl (10 doctors per page)
scrapeDetailsbooleantrueFetch full profile pages for qualifications, services, awards, and registration data

Leave specialty empty to scrape all doctors in a city without a specialty filter.


Sample Output

{
"doctorName": "Dr. Venkatesh M J",
"specialty": "Dentist",
"subspecialties": ["Cosmetic Dentist", "Oral and Maxillofacial Surgeon"],
"qualifications": ["BDS", "MDS"],
"experienceYears": 18,
"clinicName": "Smile Care Dental Clinic",
"clinicAddress": "12, 2nd Cross, Indiranagar, Bangalore, Karnataka",
"city": "Bangalore",
"locality": "Indiranagar",
"consultationFee": 400,
"ratingValue": 98,
"reviewCount": 312,
"recommendationPercent": 98,
"patientStoriesCount": 312,
"services": ["Root Canal Treatment", "Dental Implants", "Teeth Whitening", "Braces"],
"awards": ["Best Dentist Award - IDA Bangalore 2021"],
"registrationNumber": "KAR-12345",
"onlineConsultation": false,
"profilePhotoUrl": "https://assets.practo.com/practice_photo/venkatesh-mj.jpg",
"profileUrl": "https://www.practo.com/bangalore/doctor/venkatesh-m-j-dentist",
"scrapedAt": "2026-04-20T09:14:32.000Z"
}

How to Use the Practo Doctor Scraper

Quick Start

  1. Open the actor on Apify and click Try for free
  2. Set city to your target city (e.g. mumbai)
  3. Set specialty to your target specialty (e.g. cardiologist) — or leave blank for all doctors
  4. Set maxItems to control dataset size
  5. Leave scrapeDetails enabled for full profile data
  6. Click Start and download results as JSON or CSV

Example Inputs

Scrape 100 dermatologists in Mumbai:

{
"city": "mumbai",
"specialty": "dermatologist",
"maxItems": 100,
"maxPages": 10,
"scrapeDetails": true
}

Fast listing-only scrape (no detail pages) for all doctors in Delhi:

{
"city": "delhi",
"specialty": "",
"maxItems": 500,
"maxPages": 50,
"scrapeDetails": false
}

Scrape gynecologists across Hyderabad:

{
"city": "hyderabad",
"specialty": "gynecologist",
"maxItems": 200,
"maxPages": 20,
"scrapeDetails": true
}

Via the Apify API

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('jungle_synthesizer/practo-doctor-scraper').call({
city: 'bangalore',
specialty: 'dentist',
maxItems: 100,
scrapeDetails: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Supported Cities

The scraper works with any city that Practo covers. Common options:

bangalore · mumbai · delhi · hyderabad · chennai · pune · kolkata · ahmedabad · jaipur · lucknow · chandigarh · kochi · coimbatore · nagpur · bhopal

Use the city slug as it appears in Practo URLs (lowercase, hyphen-separated for multi-word cities, e.g. new-delhi).

Supported Specialties

dentist · dermatologist · gynecologist · cardiologist · orthopedic-surgeon · pediatrician · neurologist · ophthalmologist · ent-specialist · psychiatrist · urologist · gastroenterologist · endocrinologist · pulmonologist · oncologist

Leave specialty empty to scrape all available doctors in a city.


Use Cases

  • Lead generation for medical device and pharma companies — build contact lists of doctors filtered by specialty and city
  • Healthcare market research — analyze consultation fee ranges, doctor density by specialty, and geographic distribution across Indian cities
  • Doctor credentialing and verification — cross-reference medical council registration numbers with independent sources
  • Healthcare directory products — populate or supplement your own India doctor directory with Practo data
  • Competitive benchmarking — track how clinics and hospitals are represented on India's largest healthcare booking platform
  • Telemedicine and health-tech prospecting — identify doctors offering online consultations for partnership outreach

Pricing

This actor uses pay-per-result pricing. You are charged per doctor profile saved to the dataset.

  • With detail pages (scrapeDetails: true): each profile triggers two HTTP requests (listing + detail page). Runs slower but returns 20+ fields.
  • Without detail pages (scrapeDetails: false): one request per 10 doctors (full listing page). Faster and cheaper per record, but returns fewer fields.

Run a small test (maxItems: 10) to estimate cost before running large batches.


Proxy and Rate Limit Notes

  • No proxy required. Practo's public pages are served without Cloudflare or CAPTCHA. Standard datacenter IPs work without residential proxies.
  • Rate limiting: Practo runs on Akamai CDN which enforces moderate rate limits. The scraper caps concurrency at 5 requests and includes automatic rate-limit handling.
  • robots.txt: Practo's robots.txt permits crawling of doctor profiles and listing pages.
  • Memory: 512 MB default. Sufficient for most runs. Increase to 1 GB for very large runs (1,000+ profiles with detail pages).

FAQ

How do I scrape all doctors in a city without filtering by specialty? Leave the specialty field empty. The actor will crawl /bangalore/doctors (or your chosen city) which returns all available doctors.

How many doctor profiles does Practo have? Practo indexes over 500,000 doctor profiles across India. Coverage varies by city — Bangalore, Mumbai, and Delhi have the densest listings.

Can I scrape multiple cities in one run? The actor takes one city per run. Run it multiple times with different city inputs, or use the Apify scheduler to queue runs for each city.

What is the difference between scrapeDetails: true and scrapeDetails: false? With detail pages enabled, the actor visits each doctor's individual profile page to extract qualifications, subspecialties, services, awards, registration numbers, and full clinic addresses from JSON-LD structured data. Without detail pages, only the 10 fields visible on the listing card are returned.

How current is the data? The scraper returns whatever Practo shows at the time of the run. Practo profiles update in near real-time when doctors make changes. Run the actor on a schedule to keep your dataset fresh.

Is it legal to scrape Practo? This actor scrapes publicly accessible pages that Practo serves to all visitors without login. The data collected (doctor names, specialties, fees, and clinic addresses) is publicly listed by the doctors themselves for patient discovery. Review Practo's terms of service and your jurisdiction's data protection regulations before using scraped data commercially.


Need custom features or a different specialty/city scope? Get in touch.