Virginia Contractor License Lookup (DPOR Bulk)
Pricing
from $4.00 / 1,000 contractor license records
Virginia Contractor License Lookup (DPOR Bulk)
Download official Virginia DPOR contractor bulk lists. Filter Class A, B, C, or temporary contractor licenses by name, exact license number, city, or state, then export normalized records.
Pricing
from $4.00 / 1,000 contractor license records
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
Download Virginia contractor license records from the official Virginia Department of Professional and Occupational Regulation (DPOR) bulk lists. Filter the Class A, Class B, Class C, or temporary contractor lists by business/person name, exact license number, city, and state, then export normalized records from the Apify dataset.
Data and fields
DPOR provides free ASCII tab-delimited regulant lists and says the lists are updated every five business days. The Actor reads the current links from DPOR's Regulant Lists page, downloads only the selected contractor list files, and records each file's Last-Modified value when DPOR supplies it. The Actor uses these contractor source codes:
| DPOR code | List |
|---|---|
2701, 2705a | Class A Contractor |
2705b | Class B Contractor |
2705c | Class C Contractor |
2703 | Temporary Contractor |
The source lists identify licensees and may include business email and address information. DPOR notes that phone numbers are not included. The Actor does not add inferred contact details.
Each dataset item contains:
| Fields | Meaning |
|---|---|
licenseNumber, licenseType, licenseTypes, licenseRank | Certificate number, DPOR list class, any classes merged for the same certificate, and the source rank value |
businessName, individualName | DPOR business or individual name where present |
address, addressLine1, addressLine2, poBox, city, state, zipCode, zipCodeExtension, province, country, postalCode | Address fields from the bulk list; ZIP and certificate numbers remain text to preserve leading zeroes |
expirationDate, certificationDate, specialties | DPOR dates and specialty codes |
email | Published DPOR email value, or null if absent or omitted |
sourceFileCode, sourceListCodes, sourceUrl, sourceListUrl, sourceFileLastModified, scrapedAt | Source file identity, official source URLs, update header, and retrieval time |
Input
The prefilled run downloads the Class A files and returns up to 100 records. For a broader bulk export, add the other classes:
{"licenseTypes": ["class_a", "class_b", "class_c"],"nameFilters": [],"licenseNumbers": [],"cityFilter": "RICHMOND","stateFilter": "VA","maxResults": 1000,"includeEmail": true}
licenseTypes accepts class_a, class_b, class_c, and temporary. Name filters are case-insensitive substrings and match if any provided filter occurs in a business or individual name. licenseNumbers uses exact text matching and preserves leading zeroes. cityFilter and stateFilter are exact case-insensitive matches. Filters are applied to the selected local DPOR bulk files; they are not queries sent to DPOR's interactive License Lookup site.
maxResults accepts 1–50,000 unique records. A verified Apify free-plan run is limited to five delivered business records. The Actor does not treat an unknown local account-plan value as a free plan. includeEmail: false sets the output's email field to null while keeping the dataset shape stable.
Output example
{"licenseNumber": "030496","licenseType": "Class A Contractor","licenseTypes": ["Class A Contractor"],"licenseRank": "A","businessName": "EXAMPLE CONSTRUCTION LLC","individualName": null,"address": "100 MAIN ST, RICHMOND, VA, 23220","addressLine1": "100 MAIN ST","addressLine2": null,"poBox": null,"city": "RICHMOND","state": "VA","zipCode": "23220","zipCodeExtension": "0000","province": null,"country": null,"postalCode": null,"expirationDate": "08/31/2027","certificationDate": "08/31/1987","specialties": ["CBC", "RBC"],"email": "licensing@example.com","sourceFileCode": "2705a","sourceListCodes": ["2705a"],"sourceUrl": "https://www.dpor.virginia.gov/sites/default/files/Records%20and%20Documents/Regulant%20List/2705a__crnt.txt","sourceListUrl": "https://www.dpor.virginia.gov/RegulantLists","sourceFileLastModified": "Mon, 21 Sep 2026 12:42:31 GMT","scrapedAt": "2026-09-24T12:00:00.000Z","warnings": []}
OUTPUT in the run's key-value store summarizes selected source files, failed files, malformed rows, duplicates, free-plan limits, and item counts. If DPOR omits a selected file or a file is temporarily unavailable, the Actor reports a blocked or partial result and does not create placeholder records. Rows whose tab-delimited field count does not match the header are counted and skipped rather than mapped to potentially incorrect columns.
Pricing
Pay per event uses one automatic Actor-start event per run and one automatic apify-default-dataset-item event for each dataset record. No event is charged for a record that is not written. Platform-usage pass-through is disabled; the run does not add a separate platform-usage event to the user's total.
| Event | FREE | BRONZE | SILVER | GOLD, PLATINUM, DIAMOND |
|---|---|---|---|---|
| Actor start, once per run | $0.005 | $0.005 | $0.005 | $0.005 |
| Contractor license record, per dataset item | $0.005 | $0.004875 | $0.00475 | $0.004 |
Representative event totals, before any plan-specific treatment of event charges:
| Run | FREE | BRONZE | SILVER | GOLD, PLATINUM, DIAMOND |
|---|---|---|---|---|
| Start plus 1 record | $0.010 | $0.009875 | $0.00975 | $0.009 |
| Start plus 100 records | $0.505 | $0.4925 | $0.48 | $0.405 |
| Start plus 1,000 records | $5.005 | $4.88 | $4.755 | $4.005 |
The Actor honors Apify's maxTotalChargeUsd run limit. Increase maxResults gradually and choose a run spending limit that matches the number of records you expect.
When to use this Actor
Use it for repeatable Virginia contractor-license research, compliance prechecks, territory analysis, market sizing, licensed-contractor lead lists, and bulk CSV or JSON exports. Use the DPOR source URLs in each record to verify important licensing decisions against the current official source.
Use the separate Virginia DPOR Professional License Scraper when you need interactive DPOR text or exact license-number lookup across professions beyond contractors. This Actor is limited to the contractor regulant lists above; it does not return tradesman, architect, real-estate, or other DPOR professions.
API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/virginia-contractor-license-lookup').call({licenseTypes: ['class_a', 'class_b', 'class_c'],cityFilter: 'RICHMOND',maxResults: 250,includeEmail: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Reliability and responsible use
The source is a DPOR bulk publication, not a live license certification response. DPOR says its online information can be delayed or incomplete and disclaims warranties about accuracy and completeness. The public lists are refreshed on a schedule, so a record can change after the downloaded file's timestamp. Confirm current status with DPOR before making a legal, compliance, hiring, or payment decision.
Use published names, addresses, and emails only for lawful purposes. Minimize retention and outreach, and follow applicable privacy, consumer-protection, and email laws. This independent Actor is not affiliated with or endorsed by the Commonwealth of Virginia or DPOR.