Dubai DHA License Verification Scraper: Bulk Search and Monitor
Pricing
from $3.00 / 1,000 professional records
Dubai DHA License Verification Scraper: Bulk Search and Monitor
Verify Dubai Health Authority (DHA) healthcare professional licenses in seconds. Search the full 103,935+ professional registry in bulk by category, specialty, facility, nationality, area, or language, and monitor a roster on schedule for real status changes only. No login. $4 per 1,000 records.
Pricing
from $3.00 / 1,000 professional records
Rating
0.0
(0)
Developer
GetAScraper
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
π©Ί Dubai DHA License Verification Scraper: Bulk Search and Monitor
|
Know a DHA license status the moment it changes, not the moment someone asks Verify Dubai Health Authority (DHA) healthcare professional licenses, search the full public registry of 103,000+ professionals in bulk, and monitor a roster on a schedule so you only see what actually changed. No login required. |
|
β‘ Instant, not days A manual Primary Source Verification check can take days and cost per lookup. This Actor checks live in seconds. |
π A whole roster, one run Search the registry in bulk by category, specialty, facility, nationality, or area, not one professional at a time. |
π Only real changes, on schedule Roster monitor mode reports new or changed license status since the last check, not a full re-dump every time. |
π No login required Reads DHA's own public verification tool, the same anonymous lookup anyone can use in a browser. |
Point this Actor at a DHA Unique ID, a license number, or a set of registry filters, and pull structured license data, from a single check to a scheduled watch over a whole roster.
π What does this Actor do?
The Dubai Health Authority (DHA) keeps the public register of every healthcare professional licensed to practice in Dubai, over 103,000 doctors, nurses, dentists, pharmacists, and allied health workers. A license can lapse, get suspended, or simply expire without renewal after someone is already hired, placed, or insured.
This Actor checks that registry for you, in three ways. Look up one professional by their DHA Unique ID or license number. Search the whole registry in bulk with filters like category, specialty, facility, nationality, or area. Or turn on Roster monitor mode and let it re-check a saved roster on a schedule, only reporting professionals who are new or whose license status genuinely changed since the last check.
π‘ Who uses this?
- I run a healthcare staffing agency placing nurses and doctors in Dubai. I placed someone months ago. I need to know the day their license status changes, not the day a client asks me about it.
- I handle credentialing for a hospital or clinic. Re-verifying a roster of dozens of professionals one manual check at a time doesn't scale. I need the whole list checked in one pass.
- I work in insurance or compliance. A cancelled or expired license on staff is a liability I need to catch immediately, not discover during an audit.
- I run a background-check or verification service. My clients expect fast, structured license data, not a multi-day manual verification turnaround for every single check.
π How to use
|
STEP 1 Pick a mode Single lookup, a bulk directory search, or Roster monitor for scheduled re-checks. |
STEP 2 Get the full license record Status, facility, license number, issue and expiry dates for every license a professional has held. |
STEP 3 Schedule it and watch for change Name a monitor state and run it on a schedule. Later runs report only what's new or changed. |
π₯ Input
| Field | Type | Required | Description |
|---|---|---|---|
mode | enum | No | lookup for one professional, directorySearch for a bulk registry search, or watchlist for scheduled roster re-verification that only reports genuine changes. Default: lookup. |
query | string | No | Used in Single lookup mode. A DHA Unique ID (for example 73567070) or a full license number (for example 73567070-002). |
searchString | string | No | Used in Directory search mode. Free-text match against professional names. |
category | array (enum) | No | Used in Directory search mode. One or more of Physician, Dentist, Nurse and Midwife, Allied Health, or TCIM practitioners. |
licenseType | array (enum) | No | Used in Directory search mode. One or more of Full-time License, Part-time License, Registered Only, or Trainee License. |
gender | array (enum) | No | Used in Directory search mode. Female, Male, or both. |
speciality | array of strings | No | Used in Directory search mode. One specialty per line, matched against the registry's own values, for example Pharmacist or Registered Nurse. |
facilityName | array of strings | No | Used in Directory search mode. One facility name per line. |
nationality | array of strings | No | Used in Directory search mode. One nationality per line. |
area | array of strings | No | Used in Directory search mode. One Dubai area per line. |
language | array (enum) | No | Used in Directory search mode. One or more of 79 languages a professional speaks, taken live from the registry's own filter list. Filtering to Hindi alone, for example, narrows the full 103,935-professional registry to 4,362. |
dhaUniqueIds | array of strings | No | Used in Roster monitor mode. One DHA Unique ID or license number per line, the roster to check. |
maxItems | integer | No | Used in Directory search mode. Maximum registry records returned per run. Default: 20. |
fetchDetails | boolean | No | Used in Directory search mode. Also fetch each result's full license record (license number, status, dates), not just the directory summary. Default: false. |
maxRosterSize | integer | No | Used in Roster monitor mode. Maximum roster entries processed per run. Default: 20. |
stateName | string | No | Used only in Roster monitor mode. Names the saved history this run compares against. Use a different name per distinct roster so separate schedules never mix up their history. Default: default. |
onlyNewOrChanged | boolean | No | Used only in Roster monitor mode. When on, only new or genuinely changed professionals are output. When off, every roster entry is output every run with a change label attached. Default: true. |
proxyConfiguration | proxy | No | Keep the datacenter default; it reaches the DHA registry without issue. |
π Data table
| Field | Type | Description |
|---|---|---|
dhaUniqueId | string | The professional's DHA Unique ID, for example 73567070. |
name | string | absent | Professional's registered name. |
nationality | string | absent | As published on the registry. |
categoryOrSpeciality | string | absent | Directory-level category or specialty label, present on Directory search results. |
facilityName | string | absent | Directory-level current facility, present on Directory search results. |
licenseCount | number | absent | Number of licenses on file, present on Directory search results. |
detailFetched | boolean | Whether the full license record below was fetched for this row. |
licenses | array | absent | Every license/experience entry on file: profession, status, facility, license number, issue date, expiry date, duration, and whether it's the current position. |
currentStatus | string | absent | Status of the professional's current or most recent license, for example Fully Active or Cancelled. |
matchedQuery | string | absent | The lookup or roster entry that produced this row. |
sourceUrl | string | The DHA registry page this data comes from. |
scrapedAt | string | When this row was checked. |
changeType | string | absent | Only present in Roster monitor mode: NEW, UPDATED, or UNCHANGED. |
You can download the dataset in JSON, HTML, CSV, or Excel from the Output tab of any run.
π€ Sample output
{"dhaUniqueId": "73567070","name": "Aabida Bashir","nationality": "India","detailFetched": true,"licenses": [{"isCurrent": true,"profession": "Pharmacist","status": "Fully Active","startDate": "11 June 2026","endDate": "11 June 2027","durationText": "3 Months"},{"isCurrent": false,"profession": "Pharmacist","status": "Cancelled","facilityName": "Life Vision Pharmacy L L C","licenseNumber": "73567070-002","startDate": "19 November 2024","endDate": "11 June 2026","durationText": "1 years","location": "Dubai, UAE"}],"currentStatus": "Fully Active","matchedQuery": "73567070","sourceUrl": "https://services.dha.gov.ae/sheryan/wps/portal/home/medical-directory/professional-details?dhaUniqueId=73567070","scrapedAt": "2026-09-30T13:27:46.206Z"}
π° Pricing
Pricing is pay per result: you're charged for the professional records actually written to your dataset, not for the run itself. An empty run that finds no matches or no changes costs nothing. There are no monthly subscriptions or minimum commitments.
Free plan runs are limited in items per run, runs per day, and a short wait between runs. These limits do not apply to paid plans.
β Enjoying DHA License Verification Scraper?
|
β β β β β One run just told you exactly what changed on your roster since last time. A 5-star rating takes 10 seconds and helps other agencies and credentialing teams find this Actor. Your feedback also tells us what to build next. |
| β Β Β Rate this Actor on Apify |
β¨ Tips
- Look up by DHA Unique ID or license number when you have it. Either works: a license number is automatically reduced to its DHA Unique ID before the lookup.
- Give every monitored roster its own state name. Use a different
stateNameper client or roster so scheduled runs never mix up their change history. - Leave
fetchDetailsoff for a fast directory browse. Turn it on only when you actually need license numbers, status, and dates for every result, since it adds time per record. - Turn
onlyNewOrChangedoff for a full audit snapshot. Every roster entry is output on every run with its change label attached, useful for a point-in-time compliance record. - Schedule Roster monitor mode on the Apify Scheduler. Each run after the first reports only what actually moved.
β FAQ
Does this Actor need a login or a DHA account?
No. It reads DHA's own public verification and registry pages, the same anonymous lookup anyone can use in a browser without signing in.
How does Roster monitor mode know what changed?
Give it a stateName and run it on a schedule with the same roster. Each run compares the current license status, facility, license number, and dates against what was saved last time, and labels every professional NEW, UPDATED, or UNCHANGED.
What counts as a "change"?
A genuine difference in name, nationality, current status, or license history. Re-checking the same, unchanged record never counts as a change.
How fresh is the data?
Every run reads the DHA registry live at the moment it runs. Results reflect what the public registry shows right then.
Is checking the DHA registry legal?
This Actor reads publicly available verification and registry pages, the same pages DHA makes available to anyone without a login. It is an independent tool, not affiliated with or endorsed by the Dubai Health Authority. You are responsible for complying with DHA's terms of use and applicable law. For questions or custom fields, contact the author at devanshtiwari365@gmail.com.
π Other actors
- AHPRA Health Practitioner Register Scraper: Bulk Check & Watch β - the same bulk-check and recurring-monitor shape applied to Australia's health practitioner register.
- UAE Industrial Licence Monitor: Ψ¨ΩΨ§ΩΨ§Ψͺ Ψ§ΩΩ ΩΨ±Ψ―ΩΩ β - monitors UAE industrial licences for supplier and activity changes.
- PERM Green Card Sponsor Monitor: U.S. Labor Certifications β - tracks U.S. employer sponsorship filings for change, the same recurring-monitor shape applied to a different compliance register.
- Multi-state contractor license verifier β - bulk license-status verification across U.S. state contractor boards.
- US licensed contractor directory β - structured contractor licensing data pulled from public U.S. state registers.