India NMC Doctor Registry Scraper
Pricing
Pay per event
India NMC Doctor Registry Scraper
Scrapes the Indian Medical Register (IMR) from the National Medical Commission of India — the authoritative registry of 1.4M+ registered doctors. Filter by name, year, SMC, or registration number. Returns registration, qualification, university, address, and year.
Pricing
Pay per event
Rating
0.0
(0)
Developer
BowTiedRaccoon
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape doctor records from the Indian Medical Register maintained by the National Medical Commission (NMC) of India. Returns 1.4M+ registered doctors with registration number, State Medical Council, qualification, university, permanent address, and year of registration — the authoritative government source, not a directory aggregator pretending to be one.
India NMC Doctor Registry Scraper Features
- Pulls records straight from the NMC's own REST API. No HTML parsing, no rendered browsers.
- Filters by doctor name, year of registration, State Medical Council, or registration number.
- Enumerates the full 1.4M+ registry when you need it. A safety cap catches accidental unfiltered runs.
- Returns 17 fields per doctor, including the SMC metadata you'd otherwise have to look up separately.
- Handles the NMC's incomplete TLS chain and DataTables-shaped pagination envelope without any configuration on your end.
Who Needs This Data?
- Healthcare credentialing teams — Verify a doctor's registration against the authoritative source before onboarding.
- Medical recruiters — Build targeted outreach lists filtered by state, specialty year, or qualifying university.
- Pharmaceutical sales ops — Segment India's prescribing physician universe by SMC and qualification.
- Insurance and claims verification — Confirm a provider's registration status is active before paying out.
- Health policy researchers — Aggregate registration trends by state, university, or decade.
- Legal and compliance due diligence — Run identity checks against the government registry rather than a third-party aggregator.
How India NMC Doctor Registry Scraper Works
- You supply a filter — a name substring, a year, a State Medical Council ID, a registration number, or nothing at all.
- The scraper queries the NMC's paginated listing API in batches of 500 records.
- For each hit, it issues a follow-up detail fetch to pull the full record — qualification, university, permanent address, additional qualifications.
- Records are streamed to the dataset as they arrive. If a detail lookup fails, the listing data is still saved so nothing is dropped silently.
Input
{"maxItems": 50,"name": "Sharma","year": 2020,"smc_id": 6,"registration_no": "","allow_full_enumeration": false}
| Field | Type | Default | Description |
|---|---|---|---|
maxItems | integer | 50 | Maximum records to return across the full crawl. |
name | string | "" | Case-insensitive substring match against the doctor's full name. "Sharma" alone returns ~20k records. |
year | integer | — | Calendar year of registration. The registry goes back to 1925. |
smc_id | integer | — | Numeric ID of the State Medical Council (see table below). |
registration_no | string | "" | Exact registration number. Usually returns a single record. |
allow_full_enumeration | boolean | false | Required to exceed 1,000 records when no filter is provided. Keeps accidental billion-record runs in check. |
Common State Medical Council IDs
| ID | Council |
|---|---|
| 1 | Andhra Pradesh Medical Council |
| 4 | Bihar Medical Council |
| 6 | Delhi Medical Council |
| 8 | Gujarat Medical Council |
| 13 | Karnataka Medical Council |
| 16 | Maharashtra Medical Council |
| 21 | Tamil Nadu Medical Council |
| 23 | Uttar Pradesh Medical Council |
| 25 | West Bengal Medical Council |
Use the NMC portal's dropdown for the full list of 30+ councils.
India NMC Doctor Registry Scraper Output Fields
{"doctor_id": "12437767","registration_number": "10087","doctor_name": "AYUSHI SHARMA","father_name": "Shri Rakesh Sharma","state_medical_council": "Uttarakhand Medical Council","smc_id": 24,"qualification": "MBBS","qualification_year": "2020","university": "U.HNB, Uttarakhand Medical Education","additional_qualifications": [],"year_of_registration": 2020,"date_of_registration": "03/07/2020","permanent_address": "Sharma House, Vishesh Township, Kamaluaganja, P.O - Katghariya, Haldwani, Distt - Nainital.","uprn_number": "","date_of_birth": "16/01/1996","profile_url": "https://www.nmc.org.in/information-desk/indian-medical-register/#doctorId=12437767®No=10087","scraped_at": "2026-04-23T12:19:07.018Z"}
| Field | Type | Description |
|---|---|---|
doctor_id | string | Internal NMC doctor identifier. Used internally for detail lookups; included for your own joins. |
registration_number | string | Registration number issued by the State Medical Council. |
doctor_name | string | Full name (first + middle + last, whitespace-normalized). |
father_name | string | Father's or husband's name as listed on the source record. Frequently empty for pre-1971 entries. |
state_medical_council | string | Name of the SMC that issued the registration. |
smc_id | number | Numeric ID of the issuing council. |
qualification | string | Primary medical degree. |
qualification_year | string | Year the primary qualification was earned. Kept as a string because older records contain free-form values. |
university | string | Qualifying university name. |
additional_qualifications | array | Up to three extra qualifications, each formatted as `degree |
year_of_registration | number | Calendar year the doctor entered the IMR. |
date_of_registration | string | Full registration date in DD/MM/YYYY. May be blank on very old records. |
permanent_address | string | Permanent correspondence address as reported to the SMC. |
uprn_number | string | Unique Permanent Registration Number when issued. |
date_of_birth | string | Date of birth in DD/MM/YYYY. Often blank on older records; sentinel value 01/01/1900 is normalized to empty. |
profile_url | string | Deep link back to the IMR portal with the doctor ID preserved for manual lookup. |
scraped_at | string | ISO-8601 timestamp of when the record was scraped. |
FAQ
Is this the official National Medical Commission registry?
Yes. India NMC Doctor Registry Scraper reads directly from the NMC's public REST API at nmc.org.in/MCIRest/. The same endpoints back the registry portal's DataTables UI.
How many doctors are in the registry?
1,421,853 as of April 2026. The count grows as State Medical Councils post new registrations. The oldest record on file is from 1925.
Do I need a proxy?
No. India NMC Doctor Registry Scraper runs without a proxy. The NMC API is public and has no rate limiting worth naming.
What's the deal with the allow_full_enumeration flag?
A safety fuse. Without a filter the scraper is pointed at 1.4M+ records, which is usually more than you intended. When no filter is provided and this flag is false, the run caps at 1,000 records.
Why is qualification_year a string instead of a number?
Older records contain free-form values like "" or non-numeric text. Keeping it as a string means you get the raw value intact. Cast it downstream if needed.
What happens when a detail fetch fails?
The record is still saved using the fields available from the listing response — name, registration number, SMC, year. You lose the richer detail fields but never drop a record silently.
Can I enumerate one SMC at a time?
Yes. Set smc_id to the target council's ID and leave other filters blank. A single SMC returns anywhere from a few thousand to several hundred thousand records depending on the state.
How fast is it?
Sequential pagination at ~500 records per listing page plus one POST per detail fetch, with a 150 ms courtesy delay. In practice, a 10-record test run completes in under 25 seconds on Apify's default 512 MB worker.
Need More Features?
Open an issue in the OrbLabs support tracker and describe what you need.
Why Use India NMC Doctor Registry Scraper?
- Authoritative source — Reads the government registry, not a commercial aggregator's cached copy.
- Structured output — 17 flat fields per record, no nested objects to flatten downstream.
- Handles the quirks — TLS chain, DataTables envelope, and two-phase detail fetch are all invisible to you.
- Safe by default — Unfiltered runs cap at 1,000 records unless you explicitly opt in to full enumeration.