Illinois License Scraper | IDFPR 1.2M+ Records avatar

Illinois License Scraper | IDFPR 1.2M+ Records

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Illinois License Scraper | IDFPR 1.2M+ Records

Illinois License Scraper | IDFPR 1.2M+ Records

Illinois IDFPR license scraper & API: search Department of Financial and Professional Regulation licenses and export license number, profession, status, name, address and expiry. License verification, compliance and B2B lead generation β€” fast, no login.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

11

Total users

0

Monthly active users

an hour ago

Last modified

Security

Limited permissions

Share

Illinois IDFPR License Scraper β€” Healthcare, Real Estate, CPA & Professional Licenses

Extract 1.2M+ official Illinois professional and business license records from the Illinois Department of Financial and Professional Regulation (IDFPR). Filter by profession board, sub-type description, county, city, active/inactive status, issue date, and disciplinary history β€” and export clean, deduplicated data to JSON, CSV, Excel, or API.

Apify Platform Illinois IDFPR Registry 1,000+ Deep Pagination Verification & B2B Leads Export Formats


⚑ At a glance

FeatureDetails
πŸ›οΈ Source AuthorityIllinois Department of Financial and Professional Regulation (IDFPR) Statewide Roster
πŸ“‚ Professions Covered60+ Boards β€” Nursing, Medical, Pharmacy, Dental, Real Estate, CPA, Engineering, Cosmetology, Veterinary & more
πŸ“‡ Core Fields ExtractedLicense #, board, sub-type, status, individual or business name, city/county/state/ZIP, issue/expiration dates, CS schedule, discipline
βš–οΈ Compliance & Risk DataeverDisciplined boolean flag, caseNumber, action, disciplineStartDate, disciplineEndDate, and full disciplineReason
πŸ“ˆ Pagination & ScaleDeterministic ordered offset pagination supporting 1,000+ to 1,200,000+ records with zero duplicate drift
⚑ Speed & Cost100 records in ~3 seconds (prefill); 1,000+ records in ~5–10 seconds without browser or proxy overhead
πŸ“¦ Bulk Export FormatsJSON, CSV, Excel (XLSX), JSONL, XML, HTML Table, RSS, and REST API
πŸ”„ Data FreshnessUpdated daily from the official state licensure roster

πŸ”Ž Why scrape Illinois IDFPR licenses?

The Illinois Department of Financial and Professional Regulation (IDFPR) regulates over 1.2 million active and historical professional and business licenses across its Division of Professional Regulation, Division of Real Estate, and Division of Financial Institutions. It is the primary source of truth for verifying nurses, physicians, pharmacists, dentists, real estate brokers, appraisers, CPAs, professional engineers, architects, roofers, cosmetologists, social workers, and private detectives in Illinois.

While the consumer web lookup portal forces you to search one practitioner at a time behind slow interactive forms, and raw bulk tables mix individuals with corporate entities, inconsistent date formats, and fragmented disciplinary columns, this Illinois IDFPR license scraper delivers a clean, normalized, filterable dataset in seconds.

Key reasons teams use this Illinois IDFPR data extractor:

  • πŸ₯ Healthcare & travel-nursing recruitment: Build statewide or county-specific rosters of active Registered Nurses (RN), Advanced Practice Nurses (APN), Physicians, Physician Assistants, Physical Therapists, and Pharmacists.
  • πŸ›‘οΈ Automated credentialing & compliance monitoring: Re-verify clinician, broker, and contractor licenses on a schedule, track upcoming expirationDate windows, and catch ACTIVE β†’ SUSPENDED / REVOKED status changes immediately.
  • πŸ’Š Pharma & medical-device territory intelligence: Identify Illinois prescribers and licensed wholesale/retail pharmacies alongside their controlledSubstanceSchedule authority.
  • 🏘️ Real estate, appraisal & property management lead generation: Extract active Managing Brokers, Real Estate Brokers, Leasing Agents, Certified Appraisers, and Community Association Managers by city or county.
  • πŸ“Š B2B intelligence & entity segmentation: Separate licensed businesses (isBusiness: true β€” pharmacies, medical corporations, salons, design firms, collection agencies) from individual practitioners (isBusiness: false).
  • πŸ”Ž Risk underwriting & investigative due diligence: Filter specifically for disciplined_only licensees to audit sanction actions, case numbers, and disciplinary narratives.

✨ What this Illinois IDFPR scraper does

  • βœ… Covers 43 dropdown profession boards + all sub-types: Select major boards like PHARMACY, NURSING BOARD, MEDICAL BOARD, REAL ESTATE, DENTAL, PUBLIC ACCOUNTANT, PROF. ENGINEER, COSMO, ROOFING CONTRACTOR, or refine down to exact descriptions like REGISTERED NURSE or PHARMACIST.
  • βœ… Server-side multi-criteria filtering: Combine licenseTypes, descriptions, statusFilter (all, active_only, inactive_only), counties, cities, disciplineFilter (all, clean_only, disciplined_only), and issuedAfter (YYYY-MM-DD).
  • βœ… Unlocked 1,000+ deep pagination: Uses deterministic license_number ASC ordering with configurable pageSize (up to 50,000 records per request) and batched dataset writes to extract 1,000, 10,000, or 100,000+ licenses with zero duplicates.
  • βœ… Individual vs. Business classification: Automatically computes isBusiness (true/false) and maps every board into a clean high-level licenseCategory (Healthcare, Technical, Financial, Real Estate, Beauty, Legal, Other).
  • βœ… Complete disciplinary record extraction: Captures everDisciplined, caseNumber, action, disciplineStartDate, disciplineEndDate, and the full text disciplineReason.
  • βœ… Standardized ISO dates: Normalizes originalIssueDate, effectiveDate, expirationDate, lastModifiedDate, and discipline dates to YYYY-MM-DD.
  • βœ… Smart empty-run sampling: Running with no filters at all returns a fast, balanced sample of active licenses across 10 major professions rather than dumping millions of unfiltered rows.

🎯 Use cases

Industry / TeamHow they use this IDFPR license scraper
Healthcare Staffing & RecruitingSource active RNs, LPNs, APRNs, dentists, and allied health professionals across Cook, DuPage, Lake, and Will counties.
Credentialing & Compliance PlatformsAutomate monthly primary-source license verification and disciplinary sanction checks (disciplineFilter: "disciplined_only").
Real Estate & Proptech CompaniesExtract newly licensed real estate brokers, managing brokers, home inspectors, and appraisers (issuedAfter: "2026-01-01").
B2B SaaS, Insurance & Financial SalesTarget licensed CPAs (PUBLIC ACCOUNTANT), roofing contractors, engineering firms, and salons for commercial insurance or software outreach.
Pharmaceutical & Med-Device SalesMap Illinois practitioners and pharmacies with active controlled-substance schedules (controlledSubstanceSchedule).
Legal, Journalism & Policy ResearchAnalyze statewide workforce supply by county and audit regulatory enforcement actions across boards.

πŸ“₯ Input configuration

All fields are optional. Use the dropdown menus in the Apify Console or pass a JSON input via the Apify API.

ParameterTypeDefault / PrefillDescription
licenseTypesarray<string>[] (Prefill: ["PHARMACY"])One or more IDFPR profession boards (e.g., NURSING BOARD, MEDICAL BOARD, REAL ESTATE, PUBLIC ACCOUNTANT, COSMO). Leave empty for all boards.
statusFilterstring"all" (Prefill: "active_only")Filter by license status: "all", "active_only" (only ACTIVE), or "inactive_only" (expired, not renewed, revoked, suspended, etc.).
countiesarray<string>[] (All counties)Filter by Illinois county: COOK, DUPAGE, LAKE, WILL, KANE, WINNEBAGO, SANGAMON, MADISON, SAINT CLAIR, PEORIA, CHAMPAIGN, etc.
citiesarray<string>[] (All cities)Filter by mailing city: CHICAGO, SPRINGFIELD, ROCKFORD, NAPERVILLE, PEORIA, AURORA, JOLIET, EVANSTON, SCHAUMBURG, etc.
disciplineFilterstring"all"Filter by disciplinary record: "all", "clean_only" (never disciplined), or "disciplined_only" (has disciplinary history).
descriptionsarray<string>[] (All sub-types)Optional exact sub-type filter within a board (e.g., ["REGISTERED NURSE"], ["PHARMACIST"], ["MANAGING BROKER"]).
issuedAfterstring""Optional ISO date (YYYY-MM-DD). Returns only licenses originally issued after this date.
maxRecordsinteger0 (Prefill: 100)Maximum number of records to collect. Set 0 for unlimited (full query results), 100 for a fast preview, or 1000+ for bulk pulls.
pageSizeinteger1000Records fetched per page request (100–50000). Default 1000 is optimal for most runs.
requestDelayinteger300Delay between page requests in milliseconds (0–5000).
proxyConfigurationobject{ "useApifyProxy": false }Optional proxy settings. Not required for this open public data source.

Example 1: Fast prefill run (100 active Pharmacy licenses)

{
"licenseTypes": ["PHARMACY"],
"statusFilter": "active_only",
"maxRecords": 100,
"pageSize": 1000,
"requestDelay": 300,
"proxyConfiguration": {
"useApifyProxy": false
}
}

Example 2: 2,500 active Registered Nurses in the Chicago Metro area

{
"licenseTypes": ["NURSING BOARD"],
"descriptions": ["REGISTERED NURSE"],
"statusFilter": "active_only",
"counties": ["COOK", "DUPAGE", "LAKE", "WILL", "KANE"],
"disciplineFilter": "clean_only",
"maxRecords": 2500,
"pageSize": 1000
}

Example 3: Newly issued Real Estate & Roofing licenses statewide

{
"licenseTypes": ["REAL ESTATE", "ROOFING CONTRACTOR", "HOME INSPECTOR"],
"statusFilter": "active_only",
"issuedAfter": "2026-01-01",
"maxRecords": 5000
}

πŸ“€ Output schema & field reference

Every record shares a consistent 32-field flat JSON schema across all 60+ boards. Below is a verified business facility record followed by an individual practitioner record:

{
"licenseType": "PHARMACY",
"description": "LICENSED WHOLESALE DRUG DISTRIBUTOR",
"licenseNumber": "004000024",
"licenseStatus": "ACTIVE",
"isBusiness": true,
"title": null,
"firstName": null,
"middleName": null,
"lastName": null,
"prefix": null,
"suffix": null,
"businessName": "QK HEALTHCARE INC",
"businessDBA": null,
"originalIssueDate": "1992-09-15",
"effectiveDate": "2024-09-30",
"expirationDate": "2026-12-31",
"city": "BELLPORT",
"state": "NY",
"zip": "11713",
"county": "NEW YORK",
"specialtyQualifier": "Wholesale Drug",
"controlledSubstanceSchedule": null,
"delegatedControlledSubstance": null,
"everDisciplined": false,
"lastModifiedDate": "2024-09-30",
"caseNumber": null,
"action": null,
"disciplineStartDate": null,
"disciplineEndDate": null,
"disciplineReason": null,
"licenseCategory": "Healthcare",
"scrapedAt": "2026-11-10T02:30:00.000Z"
}

πŸͺͺ License Identity & Classification Fields

FieldTypeCoverageDescription
licenseNumberstring🟒 High (100%)Unique IDFPR license number (primary deduplication key)
licenseTypestring🟒 High (100%)Issuing IDFPR board code (e.g., PHARMACY, NURSING BOARD, REAL ESTATE)
descriptionstring🟒 High (100%)Detailed license sub-type (e.g., PHARMACIST, REGISTERED NURSE, MANAGING BROKER)
licenseStatusstring🟒 High (100%)Current status (ACTIVE, NOT RENEWED, INACTIVE, EXPIRED, REVOKED, SUSPENDED)
licenseCategorystring🟒 High (100%)Derived sector (Healthcare, Technical, Financial, Real Estate, Beauty, Legal, Other)
isBusinessboolean🟒 High (100%)true for corporate/facility licenses, false for individual professionals

πŸ‘€ Licensee Name & Entity Fields

FieldTypeCoverageDescription
firstNamestring🟒 High (~86%)Individual's first name (populated for individual licenses)
middleNamestring🟑 Conditional (~25%)Individual's middle name or initial
lastNamestring🟒 High (~86%)Individual's last name / surname
prefix / suffix / titlestring🟑 Conditional (~5%)Name prefix, generational suffix, or professional title when recorded
businessNamestring🟒 High (100%)Legal business name (for entities) or formatted full name (for individuals)
businessDBAstring🟑 Conditional (~8%)Doing-Business-As trade name for commercial facilities

πŸ“ Location & Key Dates

FieldTypeCoverageDescription
citystring🟒 High (~99%)Mailing city on file with IDFPR
statestring🟒 High (~99%)Two-letter state abbreviation (e.g., IL, IN, WI, MO, NY)
zipstring🟒 High (~99%)Postal ZIP code
countystring🟒 High (~98%)Illinois county name (or out-of-state indicator)
originalIssueDatestring🟒 High (~99%)Date the license was originally issued (YYYY-MM-DD)
effectiveDatestring🟒 High (~98%)Current renewal cycle effective date (YYYY-MM-DD)
expirationDatestring🟒 High (~98%)License expiration date (YYYY-MM-DD)
lastModifiedDatestring🟒 High (100%)Date the IDFPR record was last modified (YYYY-MM-DD)

βš–οΈ Authority, Specialty & Disciplinary History

FieldTypeCoverageDescription
specialtyQualifierstring🟑 Conditional (~12%)Board-specific specialty or clinical qualifier
controlledSubstanceSchedulestring🟑 Conditional (~9%)State controlled-substance schedule authority (Schedules II, III, IV, V)
delegatedControlledSubstancestring🟑 Conditional (~3%)Delegated controlled-substance prescribing authority
everDisciplinedboolean🟒 High (100%)true if the licensee has ever received disciplinary action from IDFPR
caseNumberstring🟑 Conditional (~2.5%)Official IDFPR disciplinary case number (populated when everDisciplined: true)
actionstring🟑 Conditional (~2.5%)Sanction type (Reprimand, Probation, Suspension, Revocation, Fine, etc.)
disciplineStartDatestring🟑 Conditional (~2.5%)Effective start date of the disciplinary action (YYYY-MM-DD)
disciplineEndDatestring🟑 Conditional (~1.2%)End date of the disciplinary action, if time-limited (YYYY-MM-DD)
disciplineReasonstring🟑 Conditional (~2.5%)Narrative summary of the violation and board order
scrapedAtstring🟒 High (100%)ISO 8601 extraction timestamp

πŸ” Pagination & 1,000+ scale architecture

  • Deterministic ordered pagination: Every query pages through the registry using license_number ASC ordering with in-memory licenseNumber deduplication, ensuring zero skipped or duplicated records across multi-page pulls.
  • High-speed bulk throughput: Default pageSize: 1000 retrieves 1,000 records per HTTP request and writes them in batches of 500. You can raise pageSize up to 50000 for massive statewide exports of 10,000 to 1,000,000+ records.
  • Adaptive request sizing: When maxRecords is small (such as the 100-record prefill), the scraper automatically sizes down the request limit so preview runs finish in ~3 seconds.

βš™οΈ How to use

  1. Open the Actor in the Apify Console.
  2. Choose your licenseTypes from the dropdown (or leave empty to include all boards).
  3. Set your filters: pick statusFilter (active_only), counties, cities, disciplineFilter, or issuedAfter.
  4. Set maxRecords: use 100 for a quick test, 1000–50000 for a targeted campaign, or 0 for every matching record.
  5. Click Start and export the results as CSV, Excel (XLSX), JSON, or JSONL from the Dataset tab.

Calling via Python (apify-client)

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("haketa/illinois-idfpr-license-scraper").call(run_input={
"licenseTypes": ["NURSING BOARD", "MEDICAL BOARD"],
"statusFilter": "active_only",
"counties": ["COOK", "DUPAGE"],
"disciplineFilter": "clean_only",
"maxRecords": 2000,
})
for rec in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{rec['licenseNumber']} | {rec['description']} | {rec['businessName']} | {rec['city']}, {rec['state']}")

Calling via Node.js (apify-client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('haketa/illinois-idfpr-license-scraper').call({
licenseTypes: ['REAL ESTATE', 'APPRAISAL', 'HOME INSPECTOR'],
statusFilter: 'active_only',
counties: ['COOK', 'DUPAGE', 'LAKE'],
disciplineFilter: 'clean_only',
maxRecords: 2000,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Extracted ${items.length} Illinois license records`);

Calling via cURL (REST API)

curl -X POST "https://api.apify.com/v2/acts/haketa~illinois-idfpr-license-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"licenseTypes": ["PHARMACY", "DENTAL"],
"statusFilter": "active_only",
"cities": ["CHICAGO", "NAPERVILLE", "EVANSTON"],
"maxRecords": 1000
}'

πŸ“š IDFPR Profession Board & Sub-Type Reference Guide

Use the exact licenseTypes board names below (or select them from the Console dropdown) and optionally combine them with descriptions for granular sub-type targeting:

SectorlicenseTypes Board CodeCommon descriptions (Sub-Types)
NursingNURSING BOARDREGISTERED NURSE, LICENSED PRACTICAL NURSE
Advanced NursingADV PRACTICE NURSEADVANCED PRACTICE NURSE, FULL PRACTICE AUTHORITY APRN
MedicineMEDICAL BOARDPHYSICIAN AND SURGEON, CHIROPRACTIC PHYSICIAN, TEMPORARY MEDICAL PERMIT
Physician AssistantsPHYSICIAN ASSISTANTPHYSICIAN ASSISTANT
PharmacyPHARMACYPHARMACIST, REGISTERED PHARMACY TECHNICIAN, IN-STATE PHARMACY, LICENSED WHOLESALE DRUG DISTRIBUTOR
DentistryDENTALDENTIST, REGISTERED DENTAL HYGIENIST, SPECIALTY DENTIST
Behavioral HealthSOCIAL WORKER, PROF. COUNSELOR, CLIN PSYCHOLOGIST, MAR AND FAM THERAPISTLICENSED CLINICAL SOCIAL WORKER, LICENSED PROFESSIONAL COUNSELOR, CLINICAL PSYCHOLOGIST
Rehab & Allied HealthPHYSICAL THERAPY, OCCUPATIONAL THERAPY, OPTOMETRY, PODIATRY, SPEECH-LANGUAGE PATH, RESPIRATORY CAREPHYSICAL THERAPIST, OCCUPATIONAL THERAPIST, OPTOMETRIST, PODIATRIC PHYSICIAN
Real Estate & PropertyREAL ESTATE, APPRAISAL, COMM ASSOC MGR, HOME INSPECTORMANAGING BROKER, REAL ESTATE BROKER, RESIDENTIAL LEASING AGENT, CERTIFIED RESIDENTIAL REAL ESTATE APPRAISER
Engineering & DesignPROF. ENGINEER, STRUCTURAL ENGINEER, ARCHITECT, LANDSCAPE ARCHITECT, LAND SURVEYOR BOARDLICENSED PROFESSIONAL ENGINEER, LICENSED ARCHITECT, STRUCTURAL ENGINEER
Construction & TradesROOFING CONTRACTORLICENSED ROOFING CONTRACTOR
Accounting & FinancePUBLIC ACCOUNTANT, COLLECTION AGENCYLICENSED CERTIFIED PUBLIC ACCOUNTANT, REGISTERED CPA, LICENSED COLLECTION AGENCY
Cosmetology & Personal CareCOSMO, MASSAGE LICENSING BDLICENSED COSMETOLOGIST, LICENSED BARBER, LICENSED ESTHETICIAN, SALON/SHOP REGISTRATION
Veterinary & OtherVETERINARY, DETECTIVE BOARD, FUNERAL AND EMBALMER, AUCTIONEER, ADULT USE CANNABIS BDLICENSED VETERINARIAN, PRIVATE DETECTIVE, PERMANENT EMPLOYEE REGISTRATION CARD

πŸ”„ Automated Compliance & Recruiting Workflows

  1. Nightly Credentialing & Sanction Watch: Schedule the actor nightly or weekly with disciplineFilter: "disciplined_only" across NURSING BOARD, MEDICAL BOARD, and PHARMACY, and push results via webhook to your compliance database to flag newly sanctioned clinicians.
  2. New Graduate & New Licensee Outreach: Set issuedAfter to the first day of the current month with statusFilter: "active_only" to capture newly licensed nurses, real estate brokers, CPAs, and engineers the week their license is issued.
  3. Expiration & Renewal Window Tracking: Pull active licenses for your target board and filter expirationDate in Google Sheets, Snowflake, or BigQuery to identify practitioners and facilities due for renewal in the next 60–90 days.

πŸ’‘ Pro tips for best results

  • Board vs. Sub-type: Use licenseTypes to select the board (e.g., NURSING BOARD, REAL ESTATE, PHARMACY) and descriptions to isolate a specific credential within that board (e.g., REGISTERED NURSE vs. LICENSED PRACTICAL NURSE).
  • Capture new licensees weekly: Schedule the actor to run every Monday with issuedAfter set to 7 days ago and statusFilter: "active_only" to feed newly licensed professionals directly into your CRM.
  • Separate companies from individuals: Filter your exported CSV/JSON on isBusiness: true to isolate licensed pharmacies, CPA firms, brokerages, and engineering corporations.

⚠️ Honest limitations

  • No email or phone numbers in the public roster: Like most U.S. state licensing boards, IDFPR publishes licensee names, license numbers, mailing cities/counties/states/ZIPs, dates, and discipline records, but does not publish personal email addresses or phone numbers in the public dataset.
  • Disciplinary fields are naturally sparse: Only ~2.5% of Illinois licensees have ever been disciplined. Those 5 columns (caseNumber, action, disciplineStartDate, disciplineEndDate, disciplineReason) are null for clean licensees and populated when everDisciplined: true (or when disciplineFilter: "disciplined_only" is selected).

❓ Frequently Asked Questions (FAQ)

How many Illinois license records can I extract? The full IDFPR database contains over 1.2 million active and historical licenses. Set maxRecords: 0 to extract all matching records for your filters, or set 1000, 10000, etc.

Do I need proxies or an IDFPR login? No. The actor queries the open public registry directly over HTTP β€” no login, no CAPTCHAs, and no paid proxies are required.

How fast does it run? A 100-record prefill run completes in ~3–5 seconds, and a 1,000-record run completes in ~5–10 seconds.

How often is the Illinois IDFPR data updated? The state updates the underlying licensure roster daily. Running this scraper on a daily or weekly Apify Schedule ensures you always have the latest license statuses and newly issued credentials.

Can I filter for only disciplined practitioners? Yes. Set disciplineFilter: "disciplined_only" to return only licensees with everDisciplined: true, complete with case numbers, board actions, and reasons.



πŸ“‹ Changelog

  • v1.2 (2026-11): Unlocked 1,000+ deep pagination optimizations β€” set maxRecords default to 0 (unlimited) with a fast 100-record prefill, added adaptive per-page $limit sizing for fast previews, implemented 500-record batched dataset writes for high-volume runs, and added maxItems alias support.
  • v1.1 (2026-10): Added full 43-board dropdown selection, Illinois county and city dropdowns, and isBusiness / licenseCategory classification.
  • v1.0 (2026-06): Initial release of the Illinois IDFPR License Scraper.