← Use cases

Use case

Build a Fairfax County Roofing Contractor List

Every DPOR-licensed roofing contractor in Fairfax County, Virginia, with email, mailing address, licence class and expiry.

Suppose you run marketing for a roofing-materials supplier that has just opened a yard in Northern Virginia, and the launch plan is an email to every licensed roofer within reach of it: Fairfax County first, then Loudoun and Prince William. You need the list before the first send date, you need it as a CSV your email tool will take, and you will want it again in three months with expired licences gone. Every one of those roofers holds a licence from Virginia’s Board for Contractors, run by DPOR, so the list exists. On 2026-10-06 it was 118 contractors in Fairfax County and 234 across the three counties.

The manual way, and what it costs

DPOR does not hide this data. Its RegulantLists page publishes every current contractor licence as free tab-delimited files, one per licence class; the five behind Class A, B and C held 53,760 licences on 2026-10-06. Open them in Excel, stack them, filter the state to VA, then find roofers in a trade column that holds space-separated codes like “ROC HIC” (roofing is ROC, one of 57 codes). That part is tedious but doable.

DPOR's Regulant Lists page, which offers the licence files as free tab-delimited downloads
DPOR's Regulant Lists page. The files are free, and the page itself notes that phone numbers are not included.

The step that stops most people is the county. The files have no county column, only a mailing ZIP, so a Fairfax County list means knowing which ZIPs belong to Fairfax County and which straddle a county line. If you already keep a list of the ZIP codes your yard delivers to, filter the files on those ZIPs and you are done; for a one-off list that is good enough, and it is free. Two traps to watch for if you do: DPOR reuses certificate numbers across licence types (53,302 distinct numbers over 53,779 rows), and 22 rows have a stray tab inside the business name that shifts every later column.

The faster way

Virginia Contractor Directory & Leads Scraper (DPOR) does the same search once and hands back every row at once.

{
  "counties": ["Fairfax County", "Loudoun County", "Prince William County"],
  "trade": "Roofing"
}

“Roofing” resolves to DPOR’s ROC code, and the actor matches it inside the trade column for you. “Fairfax County” has to say County: Fairfax is also an independent city, and a bare “Fairfax” returns the free list of names rather than guessing. Putting all three counties in one run downloads DPOR’s files once, and each county is searched on its own, so on 2026-10-06 the log read 118 for Fairfax, 36 for Loudoun and 80 for Prince William. inVirginiaOnly stays at its default, which keeps out the 10,556 licences across the state with a mailing address in another state.

What comes back

{
  "business_name": "FSR ROOFING CONTRACTOR INC",
  "individual_name": null,
  "email": "fsrconstruction4u@gmail.com",
  "address": "8300 OLD COURTHOUSE RD",
  "city": "VIENNA",
  "zip_code": "22182",
  "address_state": "VA",
  "county": "Fairfax County",
  "county_method": "zip_single",
  "license_class": "B",
  "license_type": "Class B Contractor",
  "specialties": [
    "ROC",
    "HIC"
  ],
  "specialty_labels": [
    "Roofing",
    "Home Improvement"
  ],
  "certification_date": "03/09/2004",
  "expiration_date": "12/31/2027",
  "license_number": "083272",
  "board_occupation": "2705",
  "phone": null,
  "requested_county": "Fairfax County",
  "requested_trade": "Roofing",
  "source_url": "https://www.dpor.virginia.gov/sites/default/files/Records%20and%20Documents/Regulant%20List/2705b__crnt.txt"
}
FieldExample valueMeaning
business_nameFSR ROOFING CONTRACTOR INCBusiness name on the licence (null for a licence held by an individual)
individual_name—Individual licensee’s name, when the licence is held by a person
emailfsrconstruction4u@gmail.comEmail on file with DPOR (null when none is on file)
address8300 OLD COURTHOUSE RDMailing street address, including suite and PO box
cityVIENNAMailing city
zip_code22182Mailing ZIP code (ZIP+4 when DPOR has it)

For an email launch, email is the column that matters, and coverage is good but not complete: 94 of 118 in Fairfax, 30 of 36 in Loudoun, 66 of 80 in Prince William, so 190 of 234 overall. Expect a lot of personal webmail: 114 of those 234 rows use a Gmail, Yahoo, Hotmail, AOL or Outlook address, which is normal for small roofing firms and worth knowing before you judge open rates. specialty_labels helps you split the message: 161 of the 234 also hold a Home Improvement licence (HIC), and 56 are licensed for roofing alone.

What you’d do with it

Export the dataset as CSV, drop the 44 rows with no email into a postcard list using the mailing address, and import the other 190 into your email tool with board_occupation and license_number together as the external ID, so the next run updates the same contacts instead of duplicating them. Put the run on an Apify schedule for once a quarter: at today’s count it costs about $0.47 a time ($0.002 a row), and 23 of the 234 licences carry an expiry date in 2026, so the next pull is where you find out which of them renewed.

Worth knowing

There is no phone number. DPOR publishes none for any licence, so phone is null on all 234 rows, and a list for a calling team needs another source. The county is derived from the mailing ZIP, which makes it approximate: in Fairfax, 38 of the 118 rows sit in a ZIP that crosses a county line and were assigned to the county holding most of it (county_method says zip_majority). The mailing city is not the jurisdiction either; 20 of the Fairfax County roofers have a mailing city of ALEXANDRIA. If your yard’s territory is a set of ZIP codes, search with zips instead, which match exactly. A firm also appears only under its mailing address, not every county it roofs in, and this is a list of current licences only.


Run it yourself: How to run Virginia Contractor Directory & Leads Scraper (DPOR) walks the whole thing step by step.

Need to confirm a single contractor’s licence before you sign them up as a trade account? Virginia Contractor License Lookup checks one name at a time. Selling roofing supplies in Arkansas too, where the licensing board does publish phone numbers, use Arkansas Contractor Directory & Leads Scraper.

Last updated 2026-10-06