ScanGeni Ventures All ventures Downloads
Doctor verification for India

Don't let a fake doctor become your liability.

A fake or lapsed registration ends up as a malpractice claim, a rejected insurance case or a failed audit. DocTrace checks any Indian doctor against the state council and National Medical Register in under a second, and returns the answer with its source, so you can prove you checked.

Verification record Verified
DocTrace IDDT-KMC-000000
CouncilKarnataka Medical Council
StatusActive
StandingClean
QualificationMBBS, MD (General Medicine)
Confirmed22 Oct 2026 · 14:42 UTC
Try a sample Open the sandbox →
Made-up doctors, not real people · independent verification, not an official registry
1.32Mverified doctor records (~95% of the central register)
26state medical councils, plus the National Medical Register
< 1stypical round trip, built for real-time onboarding and claims
0patient records stored. Practitioner registers only
Choose your view
Why this matters

This has already happened, and it is documented

Fake and borrowed registrations have reached operating theatres. These are reported cases, with sources. We do not quote a national count, because none exists.

Damoh, Madhya Pradesh · 2025

A man working as a heart specialist at a private hospital was found to have no valid registration with the state council, and the registration he claimed elsewhere could not be traced. The National Human Rights Commission reported seven deaths and recommended compensation for the families and suspending the hospital’s licence.

What a register check shows

The number is not on any register, so a lookup returns not found.

Source: NHRC press release ↗
Faridabad, Haryana · 2025

Police say an MBBS graduate worked for several months at a heart centre inside a civil hospital, run by a private contractor, using another cardiologist’s registration number. It came to light when a patient contacted the real doctor.

What a register check shows

The number is genuine, so a lookup returns the real doctor’s name and qualifications. The mismatch shows when you compare that record with the person’s ID and certificates. That is why DocTrace returns a full, sourced record, not a bare yes or no.

Source: The Tribune ↗
Delhi · 2017 to 2018

The Delhi Medical Council found that a man who treated a patient who later died was not registered in Delhi and that the Goa registration certificate he relied on was fake. It recommended prosecution and asked for action against the hospital for employing an unqualified person.

What a register check shows

Not registered in Delhi, and the claimed Goa registration does not match the Goa register.

Source: Medical Dialogues ↗

What officials have said

  • A Delhi Medical Council registrar has said every hospital should verify the credentials of the doctors it hires, and that hospitals can be held liable for employing unqualified people. Medical Dialogues
  • After a fake-credentials case, a district health officer in Himachal Pradesh told all private hospitals in the district to verify credentials before confirming appointments. The Tribune
  • The Union Health Ministry has told Parliament that action against unqualified practitioners is a matter for the states and that it keeps no central data on them. Lok Sabha reply (2019)

Summarised from public reporting and official releases. Allegations in news reports are not proven in court. DocTrace checks a registration against the register. It does not by itself confirm who is standing in front of you, and it is not legal advice.

Built for the teams that have to say yes

One check, four teams that need it

The question is always the same: is this person registered, and can we prove we checked?

Telehealth & digital health

Onboard doctors in minutes, not days

Verify doctors at sign-up, then re-check the whole roster on a schedule.

See how it works for you →
Hospitals & hospital networks

A credentialing file an assessor can verify

One standard, timestamped record for every doctor you credential.

See how it works for you →
Insurers & TPAs

Check the doctor before the claim is paid

Test the treating doctor’s registration while the claim is still open.

See how it works for you →
Pharma & medtech

One clean ID per doctor, and proof before you engage

Clean your doctor master and verify before every engagement.

See how it works for you →
Use-case guides

How DocTrace works for your team

Pick your role. Each guide walks through the problem, how it is handled today, where that falls short, how DocTrace changes it, and the value on five measures.

Telehealth & digital health

Verified doctors from the first sign-up screen

You answer for every e-prescription on your platform. Telemedicine guidelines require the consulting doctor to be a registered practitioner, so you need to know before the first consultation, and be able to show it later.

How it is handled today

  • Staff look up each doctor on council websites
  • A background-check agency, taking days
  • Certificate photos reviewed by hand

Where that falls short

  • Slow: doctors wait days, and some sign up elsewhere
  • Checked once: a later suspension goes unseen
  • Thin proof: a screenshot is hard to defend

The opportunity

Verification becomes a step in sign-up, and repeats across your whole roster on a schedule.

How DocTrace helps

  1. Check at sign-upSend the council and number. The verified record comes back in one call.GET /api/v1/doctors/verify
  2. Read the answerRegistration, qualification and standing, with source and time.JSON response
  3. Re-check the rosterA scheduled batch of up to 50 per call flags any change.POST /api/v1/doctors/bulk-verify
  4. Keep the proofStore the response as your dated record.Your database

The value, five ways

TodayWith DocTrace
TimeDays to verify a doctorSeconds, inside sign-up
EffortStaff search and read documentsStaff review exceptions only
CoordinationChasing doctors and agenciesNo document chasing
CorrectnessTypos and wrong numbers slip throughMatched on council plus number
RiskSuspensions go unnoticedScheduled re-checks, dated records
Hospitals & hospital networks

A credentialing file an assessor can verify

Before granting privileges, a hospital must verify a doctor's registration and qualifications at the source, and keep the evidence for accreditation reviews. Done properly, that means writing to councils and universities one by one.

How it is handled today

  • HR writes to the council and the university
  • A background-verification vendor
  • Photocopies in a physical file

Where that falls short

  • Slow: replies arrive when the council gets to them
  • Fragile evidence: letters are hard to audit
  • Skipped at renewal: lapsed doctors stay on the roster

The opportunity

A repeatable credentialing step with one standard record, at joining and at every renewal, across all your facilities.

How DocTrace helps

  1. Look up the doctorCouncil and number, or search by name.GET /api/v1/doctors/verify
  2. Get one standard recordStatus, qualification, university and standing, with source and time.JSON response
  3. File the evidenceAttach the response to the credentialing file.Your credentialing system
  4. Re-check the whole staffBulk-check at renewal and review only what changed.POST /api/v1/doctors/bulk-verify

The value, five ways

TodayWith DocTrace
TimeDays or weeks for repliesA moment for registration and qualification
EffortLetters, chasing, photocopiesReview exceptions, not every file
CoordinationPaper between HR, medical affairs and councilsOne lookup replaces the round trips
CorrectnessEvery file built differentlyOne standard record per doctor
RiskA thin trail at an accreditation reviewA timestamped source record per doctor
Health insurers & TPAs

Check the doctor before the claim is paid

Cashless approvals move in minutes, and a claim is only as trustworthy as the practitioner behind it. Mistyped, forged or lapsed registration numbers are hard to catch at that speed.

How it is handled today

  • The hospital's declaration is taken at face value
  • Analysts spot-check a sample by hand
  • Audits after payment

Where that falls short

  • Late: recovery after payment is slow and costly
  • No instant test of a registration number
  • Re-typed details hide errors and fabrications

The opportunity

A credential check on every claim that names a doctor, so invalid or sanctioned practitioners are flagged while the claim is still open. The same check works when you empanel doctors and hospitals.

How DocTrace helps

  1. Check on intakeSend the treating doctor's council and number as the claim is registered.GET /api/v1/doctors/verify
  2. Read the verdictDoes the record exist, does the name match, and what is the standing.JSON response
  3. Route exceptionsYour rules send mismatches and sanctions to the fraud queue.Your claims rules
  4. Audit in bulkRe-check a day's or a month's claims, 50 doctors per call.POST /api/v1/doctors/bulk-verify

The value, five ways

TodayWith DocTrace
TimeDoubts surface weeks after paymentA moment added to intake
EffortRandom samplingA short list of flagged claims
CoordinationCalls to providers to confirm who treatedFewer provider queries
CorrectnessNumbers accepted as typedTested against council records
RiskRecovered after payment, if at allCaught before payment, with a reason on file
Pharma & medtech

A clean doctor master, and proof before you engage

Your CRM holds a large doctor database, and you engage doctors for advisory boards and education under marketing codes. Duplicate or unverified records waste field effort and create compliance exposure.

How it is handled today

  • Purchased doctor lists
  • Representatives edit records by hand
  • Periodic clean-up projects

Where that falls short

  • No single key: one doctor, several entries
  • No quick registration check before an engagement
  • Clean-ups decay, and proof is an email

The opportunity

One stable ID per doctor across the CRM, and a registration check inside the engagement workflow.

How DocTrace helps

  1. Match your CRMSend records in batches of 50 and store the DocTrace ID.POST /api/v1/doctors/bulk-verify
  2. Merge on the IDMerge duplicates and queue the unresolved records.Your data team
  3. Verify before engagingCheck the doctor and file the response with the approval.GET /api/v1/doctors/verify
  4. Keep it cleanRe-run the match on a schedule.Scheduled job

The value, five ways

TodayWith DocTrace
TimeA clean-up project of weeksScripted batch matching
EffortHand-fixing recordsMerge on one key, review the unresolved
CoordinationEach team has its own versionOne shared record
CorrectnessDuplicates and stale entriesOne verified identity per doctor
RiskEngaging unchecked doctorsA dated registration check on every engagement
How it works

From request to proof in four steps

Your system sends a number. DocTrace sends back the record, with its source. It works from an HMIS, CRM, claims engine or onboarding app.

01

Send a number

A council and registration number, or the DocTrace ID, by REST API or bulk file.

02

We match the record

Matched on council plus number, because registration numbers repeat across councils.

03

Source attached

The answer comes back with its source and the time it was last confirmed.

04

You decide, and can prove it

Keep the response in your credentialing file, claims record or audit pack.

Your developers can try it without a key in the sandbox, or read the API docs.

What's in it

Official registers, normalised into one record

DocTrace is built from the official registers of the National Medical Commission and the state medical councils, cleaned into one standard record. This is how complete the registry is, field by field.

Qualification98.4%
National Medical Register ID99.9%
Registration date98.6%
Practice address98.7%
University / college (College alone: 18.2%)97.9%

Share of registry records carrying each field, from the platform's live statistics.

Disciplinary standing and hospitals

Penal erasures and sanctions from state councils and the NMC ethics board are screened, and apex-hospital appointments are linked. Coverage is growing, and we share the current figures on request.

One format across councils

The National Medical Register and 26 state councils, normalised to one record shape: names, registration numbers, qualifications and universities cleaned and standardised.

Trust & compliance

Practitioner registers in, no patient data anywhere

Doing a security or procurement review? See the security and trust details.

Public registers in, nothing patient-side

Records come from registers that councils publish for public inspection. DocTrace holds no patient, clinical or prescription data.

An audit trail you can keep

Each result carries its source and the time it was confirmed, ready to file in a credentialing record or a claims pack.

Controlled access

Traffic is encrypted in transit. Every API key has its own usage limits, so access stays private, metered and logged.

Plans

Start with a pilot. Scale when it earns its place.

Try it on your own records first, then pick the plan that matches how you buy.

Pilot

Try it on your own records

100 lookups, free for qualified teams. Test it against doctors you already know, in one afternoon.

Request a pilot
Telehealth & platforms

Metered API

Per-verification pricing with a monthly base, higher rate limits and an uptime commitment for products that verify at sign-up.

Talk to us
Hospitals & networks

Annual facility licence

Unlimited credentialing checks for your facilities, with bulk verification and a dedicated account manager.

Talk to us
Insurers & TPAs

Volume retainer

High-volume claims verification with burst capacity and priority support, priced on expected monthly checks.

Talk to us
Questions buyers ask

Straight answers

Will it catch a fake doctor?

It catches a registration number that is not on a register, one that has been suspended or cancelled, and a name or qualification that does not match the register’s record. It cannot tell by itself that the person in front of you is the registered doctor, so compare the record with their ID and certificates. That check is still yours, now with a fast, sourced answer to compare against.

Can’t our team just search the council websites?

They can, one council at a time. Each has its own format, some are often offline, and none gives your HR or claims software a structured answer. DocTrace gives one request format, one response shape and a source on every result, fast enough to sit inside a sign-up flow or a claims approval.

How fresh is the data?

Every result carries the time its record was last confirmed, so you can see its age rather than take it on trust. We share the refresh schedule for each council before you integrate, so you know how current a lookup can be.

A doctor is registered in more than one state. What then?

Registration numbers repeat across councils, so the verify call takes the council as well as the number and returns the record for the council you asked about. In bulk checks, every result names its council so you can confirm the match.

Which councils do you cover?

The National Medical Register and 26 state medical councils, including Karnataka, Maharashtra, Tamil Nadu, Andhra Pradesh, West Bengal, Uttar Pradesh, Gujarat, Kerala (Travancore Cochin), Delhi and Bihar, representing ~95% of the central register. We send the council list and coverage per council before you integrate, so you know exactly what a lookup can answer.

Is DocTrace an official registry?

No. DocTrace is an independent verification service built on registers that councils publish for public inspection. For a legal determination of a doctor’s standing, the issuing council remains the authority.

Does this replace verifying a degree with the university?

No. DocTrace confirms the registration and the qualification the register records. If a role needs a degree checked with the university, that step stays with you, but DocTrace removes the registration lookup and leaves you only the exceptions.

How hard is it to integrate?

It is a standard REST API returning JSON over HTTPS, so it slots into an HMIS, CRM, claims engine or onboarding app with an ordinary HTTP call. Most teams run their first lookup within the hour.

For developers

One REST API. JSON in, source attached.

Verify a doctor, check a whole roster, or search by name. Plain HTTPS and JSON, so any backend can call it.

  • Base URLhttps://api.doctrace.scangeni.us
  • AuthBearer key
  • Pilot100 lookups · 60 req/min
  • Latencytypically under 1 s
  • FormatJSON over HTTPS

Quickstart

Three steps to your first verified doctor.

  1. Get a key. Email us for an API key. It comes with 100 lookups, usually within one working day.
  2. Call verify with a council and a registration number.
  3. Branch on the answer. Check verified, then registration_status, then disciplinary_standing.status.
Request
curl "https://api.doctrace.scangeni.us/api/v1/doctors/verify?council=Karnataka%20Medical%20Council&reg_no=000000" \
  -H "Authorization: Bearer YOUR_API_KEY"
Request
import requests

r = requests.get(
    "https://api.doctrace.scangeni.us/api/v1/doctors/verify",
    params={"council": "Karnataka Medical Council", "reg_no": "000000"},
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    timeout=5,
)
data = r.json()

if data.get("verified"):
    p = data["practitioner"]
    print(p["name"], p["registration_status"], data["disciplinary_standing"]["status"])
else:
    print(data.get("message"))
Request
const url = new URL("https://api.doctrace.scangeni.us/api/v1/doctors/verify");
url.search = new URLSearchParams({ council: "Karnataka Medical Council", reg_no: "000000" });

const res = await fetch(url, { headers: { Authorization: "Bearer YOUR_API_KEY" } });
const data = await res.json();

if (data.verified) {
  console.log(data.practitioner.name, data.disciplinary_standing.status);
} else {
  console.log(data.message);
}

The name, number and key above are placeholders. Use your own key and a real registration number.

Try it now

A sandbox that needs no key and no sign-up. It runs in your browser on made-up doctors, so nothing here is real data and no request leaves the page.

Try:
Requestsimulated
Responsewaiting
Press Send request.

Your code should

Two ways to start

Sandbox, now

The console above, plus the same sample responses as a file to mock against in your own tests.

Download sample responses (JSON) ↓

API key, by email

Email us and we send a real key for the live API with 100 lookups, usually within one working day.

Email for an API key →

Authentication

Send your key on every request, in a header.

Either header
Authorization: Bearer YOUR_API_KEY
# or
X-API-Key: YOUR_API_KEY
Every response reports your quota
X-Quota-Limit: 100
X-Quota-Used: 3
X-Quota-Remaining: 97
  • Pilot keys carry 100 lookups at up to 60 requests a minute. When the 100 are used, calls return 403 QUOTA_EXHAUSTED.
  • Paid plans raise both limits. We agree them with you before you go live.
  • Keep keys server-side. A key in a URL or in browser code will leak.

Endpoints

Six endpoints. Open one to see parameters, a request and a response.

GET /api/v1/doctors/verify Verify by council and number

The everyday call. Send the council and the registration number you were given and get the record back.

ParameterNotes
councilrequiredCouncil name, for example Karnataka Medical Council.
reg_norequiredThe registration number.
uidoptionalA DocTrace ID, if you already hold one.
Request
curl "https://api.doctrace.scangeni.us/api/v1/doctors/verify?council=Karnataka%20Medical%20Council&reg_no=000000" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response200 · illustrative
{
  "ok": true,
  "verified": true,
  "canonical_uid": "DT-KMC-000000",
  "practitioner": {
    "name": "A. Example",
    "registration_number": "000000",
    "state_medical_council": "Karnataka Medical Council",
    "registration_date": "2015-06-01T00:00:00.000Z",
    "registration_year": 2015,
    "registration_status": "active",
    "qualification": "MBBS, MD (General Medicine)",
    "university": "Example University of Health Sciences",
    "college": null
  },
  "disciplinary_standing": {
    "has_disciplinary_record": false,
    "status": "CLEAN_STANDING",
    "orders": []
  },
  "hospital_affiliations": [],
  "statutory_provenance": {
    "source": "National Medical Commission & State Medical Council Statutory Rolls",
    "verified_at": "2026-10-22T14:42:48.673Z"
  }
}
GET /api/v1/doctors/:canonical_uid Fetch by DocTrace ID

Once you store a DocTrace ID against a doctor, this is the fastest way to re-check them.

ParameterNotes
canonical_uidpathFor example DT-KMC-000000: council code plus registration number.
Request
curl "https://api.doctrace.scangeni.us/api/v1/doctors/DT-KMC-000000" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response200 · same shape as verify
{
  "ok": true,
  "verified": true,
  "canonical_uid": "DT-KMC-000000",
  "practitioner": {
    "name": "A. Example",
    "registration_number": "000000",
    "state_medical_council": "Karnataka Medical Council",
    "registration_date": "2015-06-01T00:00:00.000Z",
    "registration_year": 2015,
    "registration_status": "active",
    "qualification": "MBBS, MD (General Medicine)",
    "university": "Example University of Health Sciences",
    "college": null
  },
  "disciplinary_standing": {
    "has_disciplinary_record": false,
    "status": "CLEAN_STANDING",
    "orders": []
  },
  "hospital_affiliations": [],
  "statutory_provenance": {
    "source": "National Medical Commission & State Medical Council Statutory Rolls",
    "verified_at": "2026-10-22T14:42:48.673Z"
  }
}
POST /api/v1/doctors/bulk-verify Bulk verify, up to 50 a call

For credentialing runs, CRM clean-ups and scheduled roster checks. Each item is a registration number or a name.

ParameterNotes
doctorsrequiredArray of up to 50 items, each { "registration_number": "…" } or { "name": "…" }.

Heads up. Registration numbers repeat across councils. A bare number can match a doctor in a different council, so check the council returned on every result, or use the verify call when you need one exact match.

Request
curl -X POST "https://api.doctrace.scangeni.us/api/v1/doctors/bulk-verify" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "doctors": [
        { "registration_number": "000000" },
        { "name": "B. EXAMPLE" }
      ] }'
Response200 · illustrative
{
  "ok": true,
  "summary": {
    "total_queried": 2,
    "verified_in_registry": 2,
    "timestamp": "2026-10-22T14:42:50.403Z"
  },
  "results": [
    {
      "input_query": "000000",
      "status": "found",
      "doctor_id": "00000000-0000-0000-0000-000000000000",
      "name": "A. Example",
      "registration_number": "000000",
      "council": "Karnataka Medical Council",
      "qualification": "MBBS, MD (General Medicine)"
    },
    {
      "input_query": "B. EXAMPLE",
      "status": "found",
      "doctor_id": "00000000-0000-0000-0000-000000000001",
      "name": "B. Example",
      "registration_number": "000001",
      "council": "Maharashtra Medical Council",
      "qualification": "MBBS"
    }
  ]
}
GET /api/doctors/passport Doctor passport

The fuller dossier for one doctor, with identity details and the trail of where each field came from.

ParameterNotes
qrequiredA DocTrace ID or a registration number.
Request
curl "https://api.doctrace.scangeni.us/api/doctors/passport?q=DT-KMC-000000" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response200 · illustrative
{
  "ok": true,
  "passport": {
    "doctor_id": "00000000-0000-0000-0000-000000000000",
    "identity": {
      "name": "A. Example",
      "registration_number": "000000",
      "state_medical_council": "Karnataka Medical Council",
      "registration_year": 2015,
      "qualification": "MBBS, MD (General Medicine)",
      "address": "Example address, City 000000"
    },
    "field_provenance_trail": [],
    "verification_status": "registry_only",
    "generated_at": "2026-10-22T14:42:49.365Z"
  }
}
GET /healthz Health check

Is the service up and talking to its database? Use it for your own monitoring. GET or HEAD.

Request
curl "https://api.doctrace.scangeni.us/healthz"
Response200
{ "ok": true, "service": "doctrace-website" }

Reading a response

Five outcomes cover almost every call. Try each one in the sandbox: it shows the response and what your code should do.

A simple decision, in code
const res = await fetch(url, { headers });
if (res.status === 404) return "not_found";
if (res.status === 429 || res.status === 503) return retryLater();

const d = await res.json();
if (!d.verified) return "not_found";
if (d.practitioner.registration_status !== "active") return "inactive";
if (d.disciplinary_standing.status === "SANCTIONED") return "review";
return "ok";

Errors

Standard HTTP status codes. Failed calls return { "ok": false, "message": "…" }.

CodeMeaningWhat to do
200OKRequest succeeded. Check verified in the body.
400Bad requestA required parameter is missing, or the JSON body is invalid.
401UnauthorisedNo key, or an invalid key. Error code API_KEY_REQUIRED.
403Quota used upThe key has no lookups left. Error code QUOTA_EXHAUSTED.
404Not foundNo such doctor in the registers.
429Too many requestsOver the rate limit. Wait, then retry with backoff.
500Server errorUnexpected failure. Retry once, then contact us.
503BusyHeavy burst load. Retry with backoff.

Data model

One standard record, whichever council it came from. Fields can be null, so handle missing values.

practitioner
namestringFull name, as on the register.
registration_numberstringThe council’s licence number.
state_medical_councilstringThe council that issued it.
registration_datedate | nullISO-8601, when known.
registration_statusstringactive, suspended or cancelled.
qualificationstringFor example MBBS, MD (General Medicine).
universitystringDegree-granting university.
collegestring | nullMedical college, when known.
disciplinary_standing
has_disciplinary_recordbooleanTrue if any order is on file.
statusstringCLEAN_STANDING or SANCTIONED.
orders[]arrayevent_type, event_date, authority, order_reference, description, source_url.
hospital_affiliations[]
hospital_namestringCanonical hospital name.
hospital_citystringCity and state are also returned.
nabh_accreditedbooleanWhether the hospital is NABH-accredited.
department · designationstringWhere and in what role.
is_current · last_verified_atboolean · dateWhether it is a current post, and when it was last confirmed.
statutory_provenance
sourcestringThe registers the record was built from.
verified_attimestampWhen it was last confirmed. Keep it with your record.

How often each field is filled

Qualification98.4%
National Medical Register ID99.9%
Registration date98.6%
Practice address98.7%
University / college97.9%

Share of registry records carrying each field, from the platform’s own statistics.

Integration notes

Match on council plus number

Registration numbers repeat across councils. Use the verify call with both, and check the council on bulk results.

Keep the proof

Store the response and its verified_at beside your own record. That is your dated evidence.

Re-check on a schedule

Run bulk-verify across your roster or CRM, 50 at a time, and review only what changed.

Expect retries

In our tests from India a round trip took about half a second, mostly network time. Set a timeout of 5 seconds, retry 429 and 503 with backoff, and do not retry 404.

Call from your server

Keep the key in a header on your backend. Never put it in a URL or in browser code.

No patient data

You send a registration number or a name and get practitioner data back. No patient data is involved. Requests are metered and logged per key.

Ready to try it?

Email us for an API key. We usually reply within one working day.

Email for an API key
Security & trust

What we can tell you now, and what we put in writing

Short answers for security, legal and procurement teams. Anything we cannot state as a fact today is listed under “In writing before go-live”, not guessed.

What we can state today

What we hold

Records from public medical registers, one record per doctor. No patient, clinical or prescription data.

Source and time on every result

Each result names the register it came from and shows when it was last confirmed.

Encrypted in transit

All API traffic uses HTTPS.

One key per customer, with limits

Access uses a bearer key. Every key has its own quota and rate limit, and usage is metered and logged per key.

What you send us

A registration number or a name on each request. You never send patient data.

Independent, not official

DocTrace is an independent service built on published registers. The issuing council stays the authority.

What DocTrace does not do

  • It does not confirm that the person in front of you is the registered doctor. Compare the record with their ID and certificates.
  • It does not verify a degree with the university.
  • It is not an official registry, and it is not legal advice.
  • It does not hold or process patient data.

In writing before go-live

We answer these in a written pack before any production key is issued. Send us your own questionnaire and we will answer it too.

TopicWhat you get
Data-processing termsA written agreement covering what we receive from you and how it is used.
HostingWhere the service runs and who hosts it.
LogsWhich request logs we keep, and for how long.
Encryption and backupsHow data is protected at rest and how it is backed up.
IncidentsA named contact, and how fast we tell you about a security incident.
Availability and supportUptime reporting, support hours and escalation.
Change policyHow we announce API changes and retire old versions.
Access controlsKey rotation and IP allow-list options.
Send us your security questionnaire

Company and contact

ScanGeni Ventures Pvt Ltd

DocTrace is a ScanGeni Ventures product.

Contact

doctrace@scangeni.us
We reply within one working day.

Legal pages

Privacy policy · Terms
These cover this website. API use will be covered by a separate written agreement.

Request pilot access

Check a hundred of your own doctors this week

Tell us what you verify and roughly how many checks a month. We'll set up a pilot and walk you through coverage, so you know what it will and won't answer.

  1. You write to us. We reply within one working day.
  2. You get an API key with 100 lookups.
  3. You run your own doctors and see how many matched, which did not and why, and how fast.
Request pilot access

Or write to doctrace@scangeni.us. We reply within one working day.

DocTrace is an independent verification service, not an official registry. It does not replace the issuing council's determination. Photographs on this page are AI-generated illustrations.