Virginia Contractor License Lookup (DPOR Bulk) avatar

Virginia Contractor License Lookup (DPOR Bulk)

Pricing

from $4.00 / 1,000 contractor license records

Go to Apify Store
Virginia Contractor License Lookup (DPOR Bulk)

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

Muhammad Afzal

Maintained by Community

Actor 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 codeList
2701, 2705aClass A Contractor
2705bClass B Contractor
2705cClass C Contractor
2703Temporary 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:

FieldsMeaning
licenseNumber, licenseType, licenseTypes, licenseRankCertificate number, DPOR list class, any classes merged for the same certificate, and the source rank value
businessName, individualNameDPOR business or individual name where present
address, addressLine1, addressLine2, poBox, city, state, zipCode, zipCodeExtension, province, country, postalCodeAddress fields from the bulk list; ZIP and certificate numbers remain text to preserve leading zeroes
expirationDate, certificationDate, specialtiesDPOR dates and specialty codes
emailPublished DPOR email value, or null if absent or omitted
sourceFileCode, sourceListCodes, sourceUrl, sourceListUrl, sourceFileLastModified, scrapedAtSource 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.

EventFREEBRONZESILVERGOLD, 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:

RunFREEBRONZESILVERGOLD, 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.