UK GMC Doctors Register Scraper (LRMP Verification) avatar

UK GMC Doctors Register Scraper (LRMP Verification)

Pricing

from $17.00 / 1,000 results

Go to Apify Store
UK GMC Doctors Register Scraper (LRMP Verification)

UK GMC Doctors Register Scraper (LRMP Verification)

Scrape the UK GMC List of Registered Medical Practitioners. Search doctors by name or GMC reference number and get full name, GMC number, registration status, licence to practise, GP and Specialist register entries, specialty, qualification and registration dates. Export to JSON, CSV or Excel.

Pricing

from $17.00 / 1,000 results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

3 hours ago

Last modified

Share

UK GMC Doctors Register Scraper (LRMP Verification)

UK GMC Doctors Register Scraper (LRMP Verification)

Here is one real result, with every field the actor returns:

{
"recordType": "doctor",
"fullName": "Aaron David SMITH",
"gmcReferenceNumber": "7490012",
"profession": "Doctor",
"registrationStatus": "Registered with a licence to practise",
"onGpRegister": false,
"onSpecialistRegister": false,
"specialistRegisterSpecialty": null,
"trainingProgramme": "Gastroenterology",
"registeredQualification": "MB ChB 2015 University of Manchester",
"provisionalRegistrationDate": "20 Jul 2015",
"fullRegistrationDate": "03 Aug 2016",
"gender": "Male",
"subjectToRevalidation": true,
"designatedBody": "NHSE Education North West",
"responsibleOfficer": "Roisin Haslett",
"detailUrl": "https://www.gmc-uk.org/registrants/7490012",
"source": "UK General Medical Council (GMC) Register",
"observedAt": "2026-08-10T14:36:26.827Z",
"qualificationYear": "2015",
"searchQuery": "Smith"
}

The most complete UK GMC doctors register scraper available. It returns every field the GMC List of Registered Medical Practitioners publishes for each doctor, plus optional full-profile enrichment (GP and Specialist register status, specialty, qualification, registration dates and revalidation), and gives you four filters to target exactly the doctors you need.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor searches the UK General Medical Council List of Registered Medical Practitioners (LRMP), applies the filters you pass as input (names, GMC numbers, register, sounds-like matching), reads each matching registrant, and writes one normalized record per doctor to the run's dataset. Each record carries the full name, GMC reference number, profession and registration status. When fetchDetails is on, the actor opens each doctor's profile and adds GP and Specialist register status and specialty, training programme, registered qualification, provisional and full registration dates, revalidation status, designated body and responsible officer. Missing source values are returned as null.

The GMC register sits behind a Cloudflare challenge. The actor is HTTP-only; each page is fetched through a hosted solver service, so you never configure a proxy or a browser. Because each read passes through the solver, larger runs take longer than an unprotected source.

Quickstart

Open the actor, paste this into the input, and press Run. It returns registered doctors named Smith with full profile detail.

{
"queries": ["Smith"],
"registerType": "doctors",
"maxRecords": 20
}

Provide at least one name in queries, or at least one GMC number in registrationNumbers. GMC-number lookups are the fastest and most exact. Each name runs its own search across the register.

Input reference

FieldTypeRequiredDefaultDescription
queriesstring[]conditional(none)One or more doctor names to search, for example ["Smith"] or ["John Smith"]. Each is searched separately. Required unless you pass registrationNumbers.
registrationNumbersstring[]no(none)Look up specific doctors directly by 7-digit GMC reference number. Fastest and most exact.
registerTypeenumnodoctorsWhich registrants to include when searching by name: doctors, gp (on the GP Register), specialist (on the Specialist Register), or all.
soundsLikebooleannofalseBroaden a name search to phonetically similar spellings.
fetchDetailsbooleannotrueOpen each doctor's profile to add register status, specialty, qualification, registration dates and revalidation. Turn off for a faster name, status and gender listing.
maxRecordsintegerno20Maximum number of doctors to collect across all searches.

At least one of queries or registrationNumbers must be supplied.

Output reference

One dataset item per doctor. Types: string, boolean, or null when the source value is absent.

FieldTypeDescription
recordTypestringAlways doctor.
fullNamestringFull registered name of the doctor.
gmcReferenceNumberstring7-digit GMC reference number, unique per doctor.
professionstringProfession label, for example Doctor.
registrationStatusstringRegistration status, for example Registered with a licence to practise.
onGpRegisterbooleantrue if on the GP Register, false if not, null when not fetched.
onSpecialistRegisterbooleantrue if on the Specialist Register, false if not, null when not fetched.
specialistRegisterSpecialtystringSpecialty held on the Specialist Register, or null.
trainingProgrammestringTraining programme when in training, or null.
registeredQualificationstringPrimary registered medical qualification and awarding body.
provisionalRegistrationDatestringDate of provisional registration.
fullRegistrationDatestringDate of full registration.
genderstringMale, Female, or null when not published.
subjectToRevalidationbooleantrue if subject to revalidation, false if not, null when unknown.
designatedBodystringDesignated body responsible for revalidation, or null.
responsibleOfficerstringResponsible officer for the doctor, or null.
qualificationYearstringYear of primary qualification when shown in the list row.
detailUrlstringDirect link to the doctor's page on the GMC register.
searchQuerystringThe name query this record was found under, or absent for a direct GMC-number lookup.
sourcestringAlways UK General Medical Council (GMC) Register.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringPresent only on a failed run; a single item with this field is written instead of doctors.

Example output record

Real record from a live run (input {"queries":["Smith"],"registerType":"doctors","maxRecords":20}):

{
"recordType": "doctor",
"fullName": "Aaron David SMITH",
"gmcReferenceNumber": "7490012",
"profession": "Doctor",
"registrationStatus": "Registered with a licence to practise",
"onGpRegister": false,
"onSpecialistRegister": false,
"specialistRegisterSpecialty": null,
"trainingProgramme": "Gastroenterology",
"registeredQualification": "MB ChB 2015 University of Manchester",
"provisionalRegistrationDate": "20 Jul 2015",
"fullRegistrationDate": "03 Aug 2016",
"gender": "Male",
"subjectToRevalidation": true,
"designatedBody": "NHSE Education North West",
"responsibleOfficer": "Roisin Haslett",
"detailUrl": "https://www.gmc-uk.org/registrants/7490012",
"source": "UK General Medical Council (GMC) Register",
"observedAt": "2026-08-10T14:36:26.827Z",
"qualificationYear": "2015",
"searchQuery": "Smith"
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~uk-gmc-doctors-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"queries":["Smith"],"registerType":"doctors","maxRecords":20}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~uk-gmc-doctors-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"queries":["Patel"],"registerType":"specialist","maxRecords":100}'

Apify CLI:

apify call scrapers_lat/uk-gmc-doctors-scraper \
--input '{"registrationNumbers":["7490012"]}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per doctor returned (result event). See the pricing tab for the current per-result price.
  • Detail add-on. When fetchDetails is on, each doctor whose full profile is successfully fetched also charges a details event. Set fetchDetails to false to skip this.
  • No charge on failure. If a run errors or matches nothing, the actor writes a single item with an error field and does not charge for it.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 records per run. Upgrade for a higher maxRecords.
  • Solver-fronted source. The GMC register is behind Cloudflare, so pages are fetched through a hosted solver. Runs work within a wall-clock budget; very large name searches are best split into smaller runs.

FAQ and troubleshooting

A run returned only an error record. Why? You ran with neither queries nor registrationNumbers, or the search matched nothing. Add a name or a GMC number. These cases are not charged.

What is the fastest way to verify one doctor? Put their 7-digit GMC reference number in registrationNumbers. This skips the name search and reads the profile directly.

Why are the GP or Specialist register fields null? Those come from each doctor's profile and appear only when fetchDetails is on. With fetchDetails off, the actor returns the fast name, status and gender fields.

How do I find only GPs or only specialists? Set registerType to gp or specialist when searching by name. Then read onGpRegister and onSpecialistRegister on each record.

A big search seems to stop early. Why? Each read passes through the Cloudflare solver, so the actor works within a wall-clock budget and stops cleanly when it runs low. Split large jobs into several runs or use exact GMC numbers.

Is this an official GMC tool? No. This actor is independent and has no affiliation with the General Medical Council. It reads only data the GMC publishes in its public List of Registered Medical Practitioners. Use it in accordance with the GMC terms.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US, UK, European and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with the UK General Medical Council. Accesses only the publicly available GMC List of Registered Medical Practitioners. Use in accordance with the GMC terms.