Ohio eLicense Scraper - Pharmacy & Professional avatar

Ohio eLicense Scraper - Pharmacy & Professional

Pricing

from $2.50 / 1,000 results

Go to Apify Store
Ohio eLicense Scraper - Pharmacy & Professional

Ohio eLicense Scraper - Pharmacy & Professional

Ohio eLicense scraper & API: search Ohio professional licenses across boards and export license number, profession, status, name, address and dates. Professional license verification, compliance and lead generation — fast, no login.

Pricing

from $2.50 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

1

Monthly active users

19 hours ago

Last modified

Features

Limited permissions

Share

Ohio eLicense Scraper — Pharmacy, Nursing, Medical & Multi-Board Professional License Lookup

Extract structured professional and occupational license records from the official Ohio eLicense portal (elicense.ohio.gov) across 17 Ohio regulatory boards. Pull pharmacists, registered nurses, physicians, dentists, engineers, CPAs, counselors, cosmetologists, funeral directors, and facility licenses — complete with license number, board, license type, status, city, county, ZIP code, disciplinary action flag, and direct detail page link. Built for healthcare credentialing, compliance monitoring, B2B lead generation, recruiting, M&A due diligence, and Ohio workforce analytics.

Export every result to JSON, CSV, Excel (XLSX), HTML, XML, or REST API.

Apify Actor


⚡ At a glance

FeatureDetails
Official Portal CoveredOhio eLicense Portal (elicense.ohio.gov)
Regulatory Boards17 Ohio State Boards — Nursing, Pharmacy, Medical, Dental, Chiropractic, Cosmetology & Barber, Counselor/Social Worker/MFT, Chemical Dependency, Behavioral Health, Engineers & Surveyors, Architects, Accountancy, Funeral Directors, Motor Vehicle Repair, Casino Control, Manufactured Homes, Elevator
Search & Filter ModesMulti-board selection, license type filter, surname/name search, exact license number lookup, status filter (all / active_only / inactive_only), and 88-county filter
Pagination & 1,000+ ScaleAutomatic 100-row table expansion + multi-page traversal + multi-board / multi-surname search expansion for 1,000+ deduplicated records
Core Output FieldslicenseNumber, board, licenseType, licenseeType, lastName, firstName, businessName, licenseStatus, city, county, state, zip, disciplinaryAction, detailUrl, scrapedAt
Proxy ConfigurationPre-configured Apify US Residential proxy (RESIDENTIAL, US)
Export FormatsJSON, CSV, Excel (XLSX), HTML, XML, JSON Lines, RSS, Apify REST API

🧭 Table of contents


🔎 Why scrape Ohio eLicense?

The Ohio eLicense portal is the State of Ohio's centralized primary-source verification system for professional, healthcare, engineering, financial, and trade licenses — covering pharmacists in Columbus, registered nurses in Cleveland, physicians in Cincinnati, dentists in Toledo, professional engineers in Akron, and CPAs in Dayton.

This public record dataset is mission-critical for organizations across healthcare, staffing, B2B SaaS, insurance, and compliance:

  • It confirms who holds a valid Ohio license, which regulatory board and license category governs them, whether their credential is Active, Inactive, Expired, Suspended, or Revoked, which Ohio city, county, and ZIP code they practice in, and whether the board has recorded disciplinary action (disciplinaryAction).
  • Every record includes a direct detailUrl back to the official Ohio eLicense verification page for audit-ready compliance logs.

However, the Ohio portal offers no public API and no bulk CSV download. Its interactive search form requires dynamic board-to-license-type cascading selections, caps single queries at ~150 rows, and paginates results in small browser tables whose "Next" button remains enabled even at the end of the dataset. This Ohio eLicense scraper automates the entire workflow — multi-board selection, 100-row page expansion, terminal-page detection, multi-query scaling, and client-side deduplication — delivering clean JSON, CSV, or Excel in minutes.

Common reasons teams scrape Ohio eLicense:

  • ✅ Primary-source license verification for healthcare credentialing (Joint Commission, NCQA, URAC, DNV-GL)
  • ✅ Automated compliance & sanction monitoring — detect Active → Suspended / Revoked status changes and disciplinaryAction: true flags
  • ✅ Targeted Ohio B2B lead generation — build verified prospect lists by board, license type, and Ohio county (Franklin, Cuyahoga, Hamilton, Summit, Montgomery, Lucas)
  • ✅ Healthcare & technical recruiting — source active RNs, LPNs, APRNs, pharmacists, physicians, social workers, and professional engineers across Ohio's 88 counties
  • ✅ M&A, legal, and facility due diligence — verify professional licenses across multi-site medical, dental, pharmacy, and engineering practices
  • ✅ Insurance underwriting & risk verification — validate self-reported license numbers and check disciplinary history at policy bind and renewal

✨ What this Ohio eLicense scraper does

  • ✅ Covers all 17 Ohio regulatory boards — select one or multiple boards in a single run (boards), and the scraper iterates through each selected board automatically.
  • ✅ Automatic 1,000+ record scaling — overcomes the portal's ~150-row per-query ceiling by automatically switching the results table to 100 rows per page and expanding across selected boards, license types, and common surnames until your maxRecords target (1,000+) is reached.
  • ✅ Smart terminal-page guard — detects when the portal's pagination reaches its final stale row and stops cleanly without wasting time on empty repeat pages.
  • ✅ Server + post-scrape filtering — narrow by Board, License Type, Last Name, or License Number at the portal level, and filter by License Status (all, active_only, inactive_only) and Ohio County (all 88 counties supported).
  • ✅ Normalized disciplinary flag — converts the portal's Board Action? column (Yes / No) into a clean boolean disciplinaryAction (true / false) on every record.
  • ✅ Zero-duplicate guarantee — deduplicates every record by board + licenseNumber before saving to the dataset (0 duplicates).
  • ✅ Ready for automation — export directly to JSON, CSV, Excel, or connect via the Apify Python/JS SDK, REST API, Make, Zapier, n8n, or Google Sheets.

🏛️ All 17 supported Ohio regulatory boards

Select one or more boards from the Board dropdown (boards):

Board ValueProfessions & License Types Covered
Nursing BoardRegistered Nurse (RN), Licensed Practical Nurse (LPN), APRN (CNP, CRNA, CNS, CNM), Dialysis Technician, Medication Aide
Board of PharmacyPharmacist, Pharmacy Intern, Registered/Certified Pharmacy Technician, Terminal Distributor of Dangerous Drugs (TDDD)
Medical BoardDoctor of Medicine (MD), Doctor of Osteopathic Medicine (DO), Physician Assistant (PA), Massage Therapist (LMT), Dietitian, Respiratory Care
Dental BoardDentist (DDS/DMD), Dental Hygienist, Expanded Function Dental Auxiliary (EFDA), Dental X-Ray Machine Operator
Chiropractic BoardChiropractor (DC), Acupuncture Certificate
Cosmetology and Barber BoardCosmetologist, Advanced Cosmetologist, Barber, Esthetician, Manicurist, Hair Designer, Salon/Barbershop Facility
Counselor, Social Worker, & Marriage & Family Therapist BoardLicensed Professional Counselor (LPC/LPCC), Licensed Social Worker (LSW/LISW), Marriage & Family Therapist (MFT/IMFT)
Chemical Dependency Professionals BoardChemical Dependency Counselor (LCDC II/LCDC III), Independent Chemical Dependency Counselor (LICDC), Prevention Specialist
Department of Behavioral Health (DBH)Behavioral Health Providers & Certified Programs
Engineers and Surveyors BoardProfessional Engineer (PE), Professional Surveyor (PS), Engineering/Surveying Firm
Architects BoardRegistered Architect (ARC), Landscape Architect, Architectural Firm
Accountancy BoardCertified Public Accountant (CPA), Public Accountant (PA), Accounting Firm
Board of Embalmers and Funeral DirectorsEmbalmer, Funeral Director, Funeral Home, Crematory Facility
Motor Vehicle Repair BoardCollision Repair Operator, Auto Glass, Paintless Dent Repair, Airbag Repair
Casino Control CommissionCasino Gaming Employee, Key Employee, Gaming Vendor
Department of Commerce - Manufactured Homes ProgramManufactured Home Installer, Inspector, Dealer, Park Operator
Div. of Industrial Compliance: ElevatorElevator Mechanic, Elevator Inspector, Elevator Contractor

🎯 High-value use cases

1. 🏥 Healthcare Credentialing & Primary-Source Verification

Hospitals, telehealth platforms, staffing agencies, and payers use this scraper to verify Ohio Nursing (RN, LPN, APRN), Medical (MD, DO, PA), Pharmacy, Dental, and Behavioral Health credentials, capturing licenseStatus, disciplinaryAction, and the primary-source detailUrl with an ISO scrapedAt timestamp.

2. 🧲 Regional B2B Lead Generation across Ohio's 88 Counties

Target active CPAs, Professional Engineers, Architects, Cosmetology Salons, Funeral Homes, or Motor Vehicle Repair facilities in specific Ohio metros — such as Columbus (Franklin & Delaware counties), Cleveland (Cuyahoga & Lake counties), Cincinnati (Hamilton, Butler & Warren counties), Dayton (Montgomery), Akron (Summit), or Toledo (Lucas).

3. 👩‍⚕️ Clinician & Skilled-Trade Recruiting

Build candidate sourcing lists of active Ohio pharmacists, registered nurses, physical/occupational therapists, social workers (LISW/LPCC), and engineers (PE) filtered by county and license type.

4. 🚨 Continuous Disciplinary & Status Monitoring

Run scheduled checks across your provider network or vendor roster to immediately catch Active → Suspended, Active → Expired, or disciplinaryAction: true updates.


📥 Input parameters

Every input field is optional. Running with default settings executes a fast sample on the Board of Pharmacy with surname "Smith".

ParameterTypeDefault / PrefillDescription
boardsarray<string>Default: ["Nursing Board"], Prefill: ["Board of Pharmacy"]Pick one or more of the 17 Ohio regulatory boards. Multiple boards are searched sequentially in a single run.
licenseTypesarray<string>[] (All types)Optional list of license type names or partial matches within the chosen board (e.g., ["Pharmacist"], ["Registered Nurse"]).
searchNamestringPrefill: "Smith"Licensee last name search (partial matches supported). When maxRecords > 150, the actor automatically expands across additional common surnames once the initial surname is exhausted.
searchLicenseNumberstring""Exact license, application, or endorsement number lookup (e.g., "RN.503619").
statusFilterstring"all"Filter records by status: "all" (every status), "active_only" (Active), or "inactive_only" (Inactive, Expired, Suspended, Revoked, Closed, Surrendered).
countiesarray<string>[] (All 88 counties)Filter results to specific Ohio counties (e.g., ["Franklin", "Cuyahoga", "Hamilton"]).
scrapeDetailsbooleanfalseOptional flag for detail-level extraction. Keep false for fast, high-volume list exports.
maxRecordsintegerDefault 0, Prefill 50Maximum total license records to save. Set 1000+ for large multi-query exports or 0 for unlimited.
maxPagesinteger0 (Unlimited)Maximum result pages to walk per search query (0 = automatic pagination governed by maxRecords).
requestDelayinteger1500Polite pause between page transitions in milliseconds (500–10000).
proxyConfigurationobjectApify US ResidentialProxy configuration. Defaults to Apify Residential (US), which is required to load the Ohio portal reliably.

Example input (Multi-Board 1,000+ Record Run)

{
"boards": [
"Nursing Board",
"Board of Pharmacy",
"Medical Board"
],
"licenseTypes": [],
"searchName": "Smith",
"searchLicenseNumber": "",
"statusFilter": "active_only",
"counties": [],
"scrapeDetails": false,
"maxRecords": 1000,
"maxPages": 0,
"requestDelay": 1500,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}

📤 Output schema & field reference

Every record across all 17 Ohio boards is mapped to a consistent 18-field JSON object.

🪪 License Identity & Classification

FieldTypeCoverageDescription
licenseNumberstring🟢 High (100%)Official Ohio license, registration, or endorsement number (e.g., LPN.182864.MEDS-IV, 03.135421)
boardstring🟢 High (100%)Issuing Ohio regulatory board name (e.g., Board of Pharmacy, Nursing Board)
licenseTypestring🟢 High (100%)Specific license type (e.g., Pharmacist, Registered Nurse (RN), Certified Public Accountant)
licenseeTypestring | null🟡 Conditional (~35%)Sub-category or endorsement classification when exposed by the board (e.g., MEDS-IV, CSR)

👤 Licensee Name & Business Identity

FieldTypeCoverageDescription
lastNamestring | null🟢 High (100% individuals)Individual licensee family name (null on business/facility licenses)
firstNamestring | null🟢 High (100% individuals)Individual licensee given and middle name (null on business/facility licenses)
businessNamestring | null🟡 Conditional (Facilities)Business, pharmacy, clinic, salon, or firm name on corporate/facility licenses

🛡️ Status, Compliance & Dates

FieldTypeCoverageDescription
licenseStatusstring🟢 High (100%)Current license status (Active, Inactive, Expired, Suspended, Revoked, Closed, etc.)
disciplinaryActionboolean | null🟢 High (100%)true if the portal's Board Action? flag is Yes, false if No
issueDatestring | null🟡 Conditional (Detail mode)License original issue date (YYYY-MM-DD)
expirationDatestring | null🟡 Conditional (Detail mode)Current license expiration date (YYYY-MM-DD)

📍 Location & Audit Metadata

FieldTypeCoverageDescription
addressstring | null🟡 Conditional (Detail mode)Street address on file with the board
citystring🟢 High (~100%)Practice or mailing city
countystring | null🟢 High (~99%)Ohio county name (e.g., Franklin, Cuyahoga, Hamilton, Richland)
statestring🟢 High (~100%)Two-letter state code (typically OH)
zipstring | null🟢 High (~99%)5-digit or 9-digit postal ZIP code
detailUrlstring🟢 High (100%)Direct URL to the official Ohio eLicense detail record (oh_verifylicensedetails?pid=…)
scrapedAtstring🟢 High (100%)ISO-8601 UTC timestamp of extraction

📋 Sample output records

Individual Licensee Record (Nursing Board)

{
"licenseNumber": "LPN.182864.MEDS-IV",
"board": "Nursing Board",
"licenseType": "Licensed Practical Nurse (LPN)",
"licenseeType": "MEDS-IV",
"lastName": "Smith",
"firstName": "Charity Danielle",
"businessName": null,
"licenseStatus": "Active",
"issueDate": null,
"expirationDate": null,
"address": null,
"city": "Mansfield",
"county": "Richland",
"state": "OH",
"zip": "44903",
"disciplinaryAction": false,
"detailUrl": "https://elicense.ohio.gov/oh_verifylicensedetails?pid=a0R8y000000HNsOEAW",
"scrapedAt": "2026-11-10T03:05:00.000Z"
}

Pharmacist Record (Board of Pharmacy)

{
"licenseNumber": "03.128941",
"board": "Board of Pharmacy",
"licenseType": "Pharmacist",
"licenseeType": null,
"lastName": "Smith",
"firstName": "Benjamin Michael",
"businessName": null,
"licenseStatus": "Active",
"issueDate": null,
"expirationDate": null,
"address": null,
"city": "Columbus",
"county": "Franklin",
"state": "OH",
"zip": "43215",
"disciplinaryAction": false,
"detailUrl": "https://elicense.ohio.gov/oh_verifylicensedetails?pid=a0R8y000000K9pLEAS",
"scrapedAt": "2026-11-10T03:05:12.000Z"
}

Facility / Pharmacy License Record (Board of Pharmacy)

{
"licenseNumber": "02.149200",
"board": "Board of Pharmacy",
"licenseType": "Terminal Distributor of Dangerous Drugs (TDDD)",
"licenseeType": "Clinic / Retail",
"lastName": null,
"firstName": null,
"businessName": "Buckeye Community Pharmacy LLC",
"licenseStatus": "Active",
"issueDate": null,
"expirationDate": null,
"address": null,
"city": "Cleveland",
"county": "Cuyahoga",
"state": "OH",
"zip": "44114",
"disciplinaryAction": false,
"detailUrl": "https://elicense.ohio.gov/oh_verifylicensedetails?pid=a0R8y000000M1xTEAS",
"scrapedAt": "2026-11-10T03:05:18.000Z"
}

🔁 Pagination & 1,000+ scale

  • 100-row DataTables acceleration: As soon as search results render, the actor switches the portal's client-side table length from 10 rows per page to 100 rows per page — cutting page transitions by 10× and dramatically reducing run duration.
  • Multi-board & multi-surname deep expansion: Because the Ohio portal limits any single form submission to roughly 150 matching records, requesting maxRecords: 1000+ automatically iterates across all selected boards, licenseTypes, and a built-in sequence of high-frequency surnames (Smith, Johnson, Miller, Williams, Jones, Brown, Davis, Wilson, Moore, Taylor, etc.) within the same browser session until maxRecords is reached.
  • Terminal-page detection & deduplication: Every record is deduplicated by board + licenseNumber, and the pagination loop automatically stops when consecutive pages yield 0 new unique records.

⚙️ How to use & API examples

  1. Open Ohio eLicense Scraper in the Apify Console.
  2. Select one or more Boards (e.g., Board of Pharmacy, Nursing Board, Medical Board).
  3. Optionally specify License types, Name search, Status, or Counties.
  4. Set Max records (50 for a quick test, 1000+ for bulk runs) and click Start.

Python (apify-client)

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("haketa/ohio-elicense-scraper").call(run_input={
"boards": ["Board of Pharmacy", "Nursing Board"],
"statusFilter": "active_only",
"counties": ["Franklin", "Cuyahoga", "Hamilton"],
"maxRecords": 500,
"maxPages": 0,
})
for record in client.dataset(run["defaultDatasetId"]).iterate_items():
print(
record["licenseNumber"],
record["board"],
record["lastName"] or record["businessName"],
record["city"],
record["licenseStatus"],
)

Node.js (apify-client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('haketa/ohio-elicense-scraper').call({
boards: ['Board of Pharmacy'],
searchName: 'Smith',
statusFilter: 'all',
maxRecords: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Extracted ${items.length} Ohio license records`);

💡 Pro tips for credentialing & B2B lead generation

  • Keep the default US Residential proxy enabled: The Ohio eLicense portal sits behind an enterprise bot-defense gateway that blocks datacenter IPs. The default Apify US Residential proxy is pre-configured so the portal loads cleanly every time.
  • Combine multiple boards in one run: Pass multiple boards in boards (e.g., ["Nursing Board", "Board of Pharmacy", "Medical Board"]) to collect cross-specialty healthcare rosters in a single browser session without paying cold-start overhead multiple times.
  • Use statusFilter: "active_only" for lead generation: Keep only currently active licensees when building recruiting or sales lists, or switch to "inactive_only" to identify lapsed/suspended credentials.
  • Filter by Ohio metro counties: Select Franklin, Delaware, Licking, and Fairfield for Greater Columbus; Cuyahoga, Lake, Lorain, and Medina for Greater Cleveland; or Hamilton, Butler, Warren, and Clermont for Greater Cincinnati.

❓ FAQ

How many Ohio license records can I extract in a single run?

A single surname query on one board yields up to ~150 records (the portal's per-search cap). When you set maxRecords: 1000+ (or select multiple boards), the scraper automatically chains multiple board and surname searches in the same session to deliver 1,000+ unique, deduplicated records.

How fast is a typical run?

With 100-row table expansion enabled, a 50-record prefill run completes in ~35–60 seconds (including browser launch and portal gateway handoff), and a 150-record single-search sweep finishes in ~45–75 seconds.

Why is a US Residential proxy required?

The State of Ohio fronts elicense.ohio.gov with an F5/Shape bot-defense challenge that rejects datacenter IP ranges. Using Apify's US Residential proxy (RESIDENTIAL, country US) allows the portal form to render reliably.

Can I search multiple boards at once?

Yes! Unlike earlier versions that only processed the first selected board, v1.2+ iterates through every board you select in the boards array until maxRecords is met.

Are email addresses included?

Ohio eLicense does not publish licensee email addresses on public verification records. Each record provides full name, license number, board, license type, status, city, county, state, ZIP code, disciplinary flag, and the official detailUrl.



📋 Changelog

VersionDateNotes
1.2.02026-11Unlocked 1,000+ multi-board & multi-surname pagination + 100-row page acceleration. Added automatic switching of DataTables results_length from 10 to 100 rows per page (10× fewer page clicks), unlocked multi-board iteration across all selected boards, and added automatic surname expansion (DEFAULT_SURNAMES) so runs with maxRecords: 1000+ seamlessly scale past the portal's ~150-row per-query cap.
1.1.02026-11Terminal-page guard & residential reliability. Added stale-page detection so the scraper stops cleanly when DataTables reaches the end of results, improved board dropdown matching, and verified 100% core field coverage with 0 duplicates.
1.0.02026-05Initial release of Ohio eLicense Scraper supporting 17 Ohio regulatory boards, county and status filtering, and disciplinary action extraction.
⌂ 换网址