← Health board

DPOR Bulk

Virginia Contractor License Lookup (DPOR Bulk)

Download and filter 50,000+ Virginia DPOR contractor licenses — Class A, B & C plus tradespeople — direct from the official regulant lists. No CAPTCHA, no auth.

97%golden-diff pass
Run it on Apify verified nightly

Verification

97%golden-diff success
300canary runs
0days since last canary run

Output fields

Authoritative field set from the dataset schema.

FieldType
license_numberstring|null
license_typestring|null
license_rankstring|null
individual_namestring|null
business_namestring|null
addressstring|null
citystring|null
statestring|null
zip_codestring|null
countrystring|null
expiration_datestring|null
certification_datestring|null
specialtiesarray|null
emailstring|null
source_urlstring|null
scraped_atstring|null

Sample row

{
  "license_number": "082040",
  "license_type": "Class A Contractor",
  "license_rank": "A",
  "business_name": "CORNERSTONE ENGINEERING AND CONSULTING SERVICES PLLC",
  "individual_name": null,
  "address": "1272 NELLIE JONES RD",
  "city": "LA CROSSE",
  "state": "VA",
  "zip_code": "23950",
  "country": null,
  "expiration_date": "02/29/2028",
  "certification_date": "02/03/2004",
  "specialties": [
    "EMW",
    "ENV"
  ],
  "email": "bdougherty@cornerstoneusa.net",
  "source_url": "https://www.dpor.virginia.gov/RegulantLists"
}

Inputs

FieldTypeReqDefaultDescription
licenseTypes array no ["class_a","class_b","class_c"] Which DPOR license categories to include. Leave empty for Class A, B, and C contractors. Valid values: class_a, class_a_legacy, class_b, class_c, temporary, residential_tradesman, backflow_prevention, elevator_mechanic, water_well_provider, accessibility_mechanic, energy_analyst, energy_analyst_firm, sprinkler_inspector.
nameFilter string no Only return records where the individual or business name contains this text (case-insensitive). Leave blank for all.
nameFilters array no [] Look up many in ONE run instead of starting a run per lookup. Takes the same values as 'Name filter'. Combined with 'Name filter' if you fill both, and duplicates are removed. Billing is unchanged: you are charged per record returned, not per entry submitted.
cityFilter string no Only return records where the city contains this text (case-insensitive). Leave blank for all.
maxResults integer no 500 Cap on the number of records returned PER ENTRY, not per run — so a batch cannot silently return only the first 500 rows overall and read as 'the rest don't exist'.

Pricing

Pay per result (dataset-item) — no charge for empty runs.
Example: 1000 license records at $0.004/result ≈ $4.00.

FAQ

Where does the data come from?

Virginia DPOR publishes free public 'Regulant Lists' as tab-delimited files updated every ~5 business days. This actor downloads and parses those official files directly.

What license types are covered?

Class A, B, and C contractors (the main categories); plus residential tradespeople, backflow prevention workers, elevator mechanics, water well providers, accessibility mechanics, residential energy analysts, and sprinkler inspectors. See licenseTypes input for the full list.

How current is the data?

DPOR refreshes the regulant-list files every ~5 business days (usually Mondays). Each run fetches the current file at that moment.

Can I filter by specialty?

Each record includes a specialties field (e.g. CBC = Commercial Building Construction, ELE = Electrical, H/H = Heating & Air Conditioning). You can filter post-run on this field; the actor's nameFilter and cityFilter cover the most common pre-run narrowing needs.

How am I charged?

Pay per license record returned. Runs that return no matching records are not charged.

Does this need any account or API key?

No — the DPOR regulant lists are free public files, no auth required.

Guides & use cases

Related actors