DPOR License Lookup — Virginia Professional Licenses avatar

DPOR License Lookup — Virginia Professional Licenses

Pricing

from $4.81 / 1,000 license records

Go to Apify Store
DPOR License Lookup — Virginia Professional Licenses

DPOR License Lookup — Virginia Professional Licenses

Search the Virginia DPOR license lookup by name or license number for professional licenses: board, rank, DBA names, expiration date. USD 6.01 per 1,000.

Pricing

from $4.81 / 1,000 license records

Rating

0.0

(0)

Developer

Muhammad Afzal

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Share

DPOR License Lookup searches the Virginia Department of Professional and Occupational Regulation (DPOR) License Lookup by name, business, address, license type or exact license number and returns the license number, licensee name, DBA names, address, license type, regulatory board, rank and expiration date. It costs USD 6.01 per 1,000 license records on the FREE tier (USD 0.006014 per record), and you pay only for records saved to your dataset.

It is built for compliance teams, background screeners, staffing firms and researchers who verify Virginia professional and occupational licenses in bulk across every DPOR board: contractors and tradesmen, real estate, architects and engineers, barbers and cosmetology, home inspectors and the rest.

What does the DPOR license lookup return?

It returns one row per unique DPOR license number, built from the search results page and that license's detail page.

FieldWhat it holds
licenseNumberDPOR license number as text (0401002296)
nameLicensee name as DPOR shows it (CHANDLER, DONALD R)
dbaNamesDoing-business-as names, or an empty list
addressAddress line from DPOR, often city, state and ZIP only
licenseTypeLicense description, such as Architect License
boardRegulatory board, such as Board for APELSCIDLA
rankLicense rank from the detail page, such as Architect
expirationDateExpiration date (YYYY-MM-DD)
sourceUrl, sourceSearchUrlOfficial DPOR detail and search endpoints
scrapedAt, warningsRetrieval time and any per-row note

There is no separate status field. DPOR's lookup lists current and expired licenses together, so use expirationDate to tell them apart.

How do I search Virginia professional licenses by name or license number?

Use searchQueries for free text and licenseNumbers for exact lookups; you can combine both in one run.

{
"searchQueries": ["home inspector", "SMITH, JOHN"],
"licenseNumbers": ["0401002296"],
"maxResults": 100,
"includeDetails": true,
"requestDelayMs": 750
}
  • searchQueries: names, business names, addresses or license types, typed as you would on DPOR's search box. The prefill is ["architect"]; an API call with only licenseNumbers runs no search.
  • licenseNumbers: exact DPOR numbers; each is fetched directly from the detail page.
  • maxResults: 1 to 1,000 unique records per run (default 25). Duplicates across queries are removed before saving.
  • includeDetails: keep true for rank, DBA names and expiration date. Setting it to false drops those three fields but, in the current version, does not reduce the number of requests.
  • requestDelayMs: 250 to 5,000 ms between requests (default 750). The Actor sends one request at a time and retries a failed request twice.

Each record needs one detail-page request, so a 25-record run makes about 26 requests spaced 750 ms apart.

Why do some results show expired licenses?

Because DPOR's own lookup returns them. Results come back in DPOR's order, which for a broad term like architect starts with the oldest license numbers; on 2026-10-27 the first two architect results had expiration dates in 2012 and 1995. Narrow the search with a name, business or city, or filter on expirationDate after the run.

How many results can one DPOR search return?

DPOR's search page showed 200 rows for the broad query architect on 2026-10-27, so treat 200 as the practical ceiling per search term. To collect more than 200 licenses, split the job into several narrower searchQueries; the run total is capped by maxResults (up to 1,000).

When should I use this Actor, and when not?

Use it when you need to:

  • verify a list of Virginia license numbers across any DPOR profession;
  • find every DPOR license that matches a name, business, address or license type;
  • check DPOR licenses for real estate agents, home inspectors, architects, engineers, tradesmen or contractors in one tool.

Do not use it for:

  • a bulk export of every Class A, B or C contractor with emails and specialty codes: use Virginia Contractor License Lookup — Class A, B & C Lists, which reads DPOR's official contractor files;
  • nurses, doctors, pharmacists and other health professions, which Virginia's Department of Health Professions licenses, not DPOR;
  • CPA licenses: use CPA License Lookup;
  • disciplinary case details, which this Actor does not read.

Output example

Two records as DPOR showed them on 2026-10-27:

[
{
"licenseNumber": "0401002296",
"name": "CHANDLER, DONALD R",
"address": "WASHINGTON, VA 22747",
"licenseType": "Architect License",
"board": "Board for APELSCIDLA",
"dbaNames": ["DONALD CHANDLER ARCHITECT"],
"rank": "Architect",
"expirationDate": "2012-12-31",
"sourceUrl": "https://dporweb.dpor.virginia.gov/LicenseLookup/LicenseDetail",
"sourceSearchUrl": "https://dporweb.dpor.virginia.gov/LicenseLookup/",
"scrapedAt": "2026-10-27T06:58:00.000Z",
"warnings": []
},
{
"licenseNumber": "0401005062",
"name": "DOANE, ARCHITECT, AIA, RICHARD LYNN",
"address": "KINGSPORT, TN 37663",
"licenseType": "Architect License",
"board": "Board for APELSCIDLA",
"dbaNames": [],
"rank": "Architect",
"expirationDate": "1995-11-30",
"sourceUrl": "https://dporweb.dpor.virginia.gov/LicenseLookup/LicenseDetail",
"sourceSearchUrl": "https://dporweb.dpor.virginia.gov/LicenseLookup/",
"scrapedAt": "2026-10-27T06:58:01.000Z",
"warnings": []
}
]

The run's OUTPUT record lists records collected, blocked and failed requests, the queries and license numbers used, and warnings such as "No Virginia DPOR license records matched".

How much does a DPOR license lookup cost?

Pay per event, with Apify platform usage included.

EventFREEBRONZESILVERGOLD / PLATINUM / DIAMOND
Actor start (per started GB of allocated memory)USD 0.006251USD 0.006094USD 0.005938USD 0.005
License recordUSD 0.006014USD 0.005863USD 0.005713USD 0.004811

The default memory is 512 MB, so a run pays one start event. Runs accept 512 to 2,048 MB; at 2,048 MB a run pays two.

  • 25 records (FREE, 512 MB): 0.006251 + 25 × 0.006014 = about USD 0.16.
  • 200 records (FREE, 512 MB): 0.006251 + 200 × 0.006014 = about USD 1.21.

Each saved record is charged once, right after it is saved. If you set a maximum cost per run, the Actor stops before saving a record it could not pay for and says so in the status message and OUTPUT.

Use it from an AI assistant

The Actor works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add https://mcp.apify.com/?tools=muhammadafzal/virginia-dpor-professional-license-scraper to your client.

Example prompt: "Check these Virginia DPOR license numbers and tell me the licensee name, board and expiration date for each: 0401002296, 0401005062."

Run it from the API

JavaScript (apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('muhammadafzal/virginia-dpor-professional-license-scraper').call({
searchQueries: ['home inspector'],
maxResults: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python (apify-client 3.x):

from apify_client import ApifyClient
client = ApifyClient(token='YOUR_APIFY_TOKEN')
run = client.actor('muhammadafzal/virginia-dpor-professional-license-scraper').call(run_input={
'searchQueries': [],
'licenseNumbers': ['0401002296', '0401005062'],
'maxResults': 10,
})
items = client.dataset(run.default_dataset_id).list_items().items

FAQ

Is this the official DPOR License Lookup?

No. It is an independent Actor that reads DPOR's public License Lookup pages and returns them as structured data. Every row keeps the official DPOR URLs so you can confirm a result on the source.

Which professions does it cover?

Every profession searchable in DPOR's License Lookup, including contractors, tradesmen, real estate licensees, architects, engineers, land surveyors, barbers, cosmetologists and home inspectors. It does not cover health professions, which DPOR does not license.

Can I look up a contractor license here?

Yes, by name or license number. For a full list of Virginia Class A, B and C contractors with emails and specialty codes, the Virginia Contractor License Lookup is the better fit.

Does it return license status?

It returns the expiration date and rank, not a separate status label. A past expirationDate means the license has expired.

What happens if DPOR blocks a request?

The Actor retries, then reports the run as blocked with zero records if nothing could be read. If DPOR starts challenging requests partway through, the records already saved are kept and the status message names that as the stop reason. On 2026-10-27 the default architect search was challenged after 10 detail lookups, so a run can return fewer records than maxResults; you pay only for the records saved. It never creates placeholder rows.

Does it need a DPOR account or login?

No. It reads only the public lookup pages and does not request license certifications or access account services.

Responsible use

DPOR states that online lookup data can be delayed or incomplete and is not its official record. Confirm important results with DPOR before a hiring, legal or compliance decision. Use licensee names and addresses lawfully and only as long as you need them. This Actor is not affiliated with or endorsed by the Commonwealth of Virginia or DPOR.

Last verified: 2026-10-27