Apify actor · whoareyouanas/nmc-doctor-lookup

NMC Doctor Lookup & Verification India

Look up India's public NMC Indian Medical Register by registration number, or search candidate records by name, year, and council. Preserve the distinction between an exact registry match and a search candidate.

Documentation checked 2026-10-29 · deployed build 0.1.4 · run through your Apify account

01 / Overview

Match the actor to the job.

Registration lookup

Verify one registration number or a batch using the public register endpoints.

Council disambiguation

Use the State Medical Council when a registration number matches more than one council.

Candidate search

Explore name, year, or council matches without labeling a search candidate a verified identity.

02 / Input

Start with a clear, bounded input.

Use registrationId or registrationIds for exact registration lookup. Without an ID, name/year/council inputs select search mode. A council name can disambiguate collisions; council ID is useful for precise searches.

input.json · example based on the deployed schema
{
  "registrationId": "2000010031",
  "stateMedicalCouncil": "Maharashtra Medical Council"
}

Replace example targets and credential placeholders before running. These are documentation examples, not a promise of currently available source results.

Deployed actor input fields, types, defaults, and descriptions
FieldType / requiredDefaultPurpose
registrationIdstringNot specifiedSingle doctor registration number to verify against NMC IMR.
registrationIdsarrayNot specifiedBatch registration numbers. Duplicates are removed after whitespace normalization.
namestringNot specifiedAdvanced search name filter. Used only when no registration ID is provided.
yearintegerNot specifiedAdvanced search registration year filter, from 1947 through the current year.
stateMedicalCouncilstringNot specifiedCouncil name. In verify mode it disambiguates duplicate registration IDs. In search mode it filters returned rows by council name.
All other input controls (9)
Deployed actor input fields, types, defaults, and descriptions
FieldType / requiredDefaultPurpose
stateMedicalCouncilIdstringNot specifiedOfficial NMC smcId for precise council search. Prefer this over council name for broad search.
maxResultsinteger100Maximum candidate rows to emit in search mode.

Minimum: 1 · Maximum: 10000

includeDetailsbooleanfalseIn search mode, fetch the detail payload for each candidate row.
includeRawbooleanfalseAttach raw parsed row/detail data for audit or debugging.
maxConcurrencyinteger3Maximum concurrent verification/detail workers.

Minimum: 1 · Maximum: 10

delayMsinteger0Optional polite delay after each detail request worker iteration.

Minimum: 0 · Maximum: 10000

requestTimeoutSecsinteger120Timeout for each NMC request in seconds. The default is high because NMC can respond slowly.

Minimum: 1 · Maximum: 120

maxRetriesinteger2Additional retry attempts after the first failed NMC request.

Minimum: 0 · Maximum: 5

allowInsecureTlsbooleanfalseLast-resort fallback if Node rejects NMC's certificate chain. Secure certificate verification is enabled by default and the actor already bundles NMC's current missing intermediate CA.

03 / Output

Know what each returned row represents.

Illustrative output shape · not a live run
{
  "mode": "verify",
  "query": {
    "registrationId": "2000010031"
  },
  "status": "valid",
  "isValid": true,
  "doctorName": "salunkhe deepak vasantrao",
  "registrationId": "2000010031",
  "nmcDoctorId": 3631,
  "stateMedicalCouncil": "Maharashtra Medical Council",
  "registrationDate": "10/01/2000",
  "yearInfo": 2000,
  "qualification": "MBBS",
  "source": "NMC Indian Medical Register"
}

Example values illustrate the published contract. Available fields and populated values depend on the source, mode, and result status.

Fields in the documented output view

mode

mode

query

query

status

status

isValid

isValid

doctorName

doctorName

registrationId

registrationId

nmcDoctorId

nmcDoctorId

stateMedicalCouncil

stateMedicalCouncil

registrationDate

registrationDate

yearInfo

yearInfo

qualification

qualification

source

source

Output views select columns. They do not necessarily filter record types or exhaust the full JSON payload. Use structured JSON when you need nested arrays or objects.

04 / Pricing

Understand the billable unit.

These are the active public event prices checked on 2026-10-29, in USD. They describe each event, not a universal flat price for a run. Confirm your current Apify plan and run budget before starting.

Actor event prices and billing units
Billable eventRate (USD)When it applies

Actor Start

apify-actor-start

$0.00005 / event

Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event).

Start units depend on allocated memory: one event per GB, with at least one event.

result

apify-default-dataset-item

$0.005 / event

Single result in the default dataset.

$5.00 per 1,000 of this event. Other events and separate services are additional.

  • Dataset-item billing can apply to each lookup result or emitted search candidate, plus the configured startup event.
  • Broad searches can emit many candidates. Use maxResults and review mode/status before treating row counts as successful verifications.

A result limit and a spending cap are different controls. Account charges, applicable taxes, and separately billed providers or proxies must be considered where relevant. A cap setting is not a minimum invoice charge.

05 / API & automation

Use the same input from your workflow.

Test a small run in Apify Console, inspect its records and charges, then save a task or call the actor from your own application. Keep your Apify token in an environment variable. Source-specific credentials, if required, are separate from the Apify API token.

cURL · start an asynchronous actor run
# Save the input example as input.json and set APIFY_TOKEN.
# This request starts an asynchronous, potentially billable run.
curl --request POST \
  'https://api.apify.com/v2/acts/whoareyouanas~nmc-doctor-lookup/runs' \
  --header "Authorization: Bearer $APIFY_TOKEN" \
  --header 'Content-Type: application/json' \
  --data @input.json

The response identifies the run. Wait for it to finish, inspect its status, and use its default dataset and key-value store to retrieve results. A successful run can still contain partial or failed records; check the output contract above before continuing downstream.

Coverage & interpretation

Check the result before relying on it.

Questions

Before you build an integration.

What do I need to provide?

Use registrationId or registrationIds for exact registration lookup. Without an ID, name/year/council inputs select search mode. A council name can disambiguate collisions; council ID is useful for precise searches.

What should I check in the output?
  • Verification emits a result per registration number; search mode emits candidates with status candidate and isValid null.
  • Statuses include valid, removed, restored, not_found, ambiguous, candidate, and error. The record reflects the source register, not an independent identity or clinical qualification assessment.
How do I budget the run?
  • Dataset-item billing can apply to each lookup result or emitted search candidate, plus the configured startup event.
  • Broad searches can emit many candidates. Use maxResults and review mode/status before treating row counts as successful verifications.

Keep exploring

Practical guides for the next step.