Practo India Doctor Directory Scraper
Pricing
Pay per event
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
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
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:
| Field | Type | Description |
|---|---|---|
doctorName | string | Full name of the doctor |
specialty | string | Primary medical specialty (e.g. "Dentist") |
subspecialties | array | Additional specializations from the profile |
qualifications | array | Degrees and credentials (e.g. ["MBBS", "MDS"]) |
experienceYears | number | Years of clinical experience |
clinicName | string | Primary clinic or hospital name |
clinicAddress | string | Full street address of the practice |
city | string | City where the doctor practices |
locality | string | Neighborhood or locality within the city |
consultationFee | number | Consultation fee in INR |
ratingValue | number | Aggregate patient rating (out of 100) |
reviewCount | number | Total number of patient reviews |
recommendationPercent | number | Percentage of patients who recommend this doctor |
patientStoriesCount | number | Number of patient stories submitted |
services | array | Medical services offered (e.g. root canal, scaling) |
awards | array | Professional awards and recognitions |
registrationNumber | string | Medical council registration number |
onlineConsultation | boolean | Whether the doctor offers video consultations |
profilePhotoUrl | string | URL to the doctor's profile photo |
profileUrl | string | Full URL to the doctor's Practo profile |
scrapedAt | string | ISO 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
| Parameter | Type | Default | Description |
|---|---|---|---|
city | string | bangalore | Indian city to search. Examples: mumbai, delhi, hyderabad, chennai, pune |
specialty | string | (all doctors) | Medical specialty filter. Examples: dentist, dermatologist, gynecologist, cardiologist, orthopedic-surgeon |
maxItems | integer | 50 | Maximum number of doctor profiles to return |
maxPages | integer | 10 | Maximum number of listing pages to crawl (10 doctors per page) |
scrapeDetails | boolean | true | Fetch 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
- Open the actor on Apify and click Try for free
- Set
cityto your target city (e.g.mumbai) - Set
specialtyto your target specialty (e.g.cardiologist) — or leave blank for all doctors - Set
maxItemsto control dataset size - Leave
scrapeDetailsenabled for full profile data - 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.