Virginia License Leads Scraper - Contractors, Realtors & Pros
Pricing
$6.00 / 1,000 license lead records
Virginia License Leads Scraper - Contractors, Realtors & Pros
Scrape Virginia DPOR licensed pros & businesses: contractors, tradesmen, realtors/brokers, appraisers, architects, engineers, home inspectors, HOA managers, cosmetologists & more. Get name, e-mail, address, license number, type, status & expiration. Filter by profession, city & renewal date.
Pricing
$6.00 / 1,000 license lead records
Rating
0.0
(0)
Developer
Scrape Sage
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Virginia License Leads Scraper — Contractors, Realtors, Appraisers & Pros (with Email)
Build a clean, sales-ready B2B lead list of every licensed professional and business in Virginia straight from the official Virginia DPOR Regulant Lists — the Commonwealth's public-records roster of contractors, tradesmen, real-estate agents & brokers, appraisers & AMCs, architects, engineers & surveyors, home inspectors, HOA managers, cosmetologists & salons, auctioneers, opticians and more.
Every record ships with the licensee or business name, e‑mail address of record, full mailing address, license number, license type, rank & specialty, status, and the issue & expiration dates — so you can prospect by profession, by city, and by renewal-timing window.
No login, no API key, no browser — fast, reliable extraction straight from the official Virginia DPOR public files.
Why this Virginia license scraper?
Most "Virginia license" tools are single-board lookup utilities that make you type one license number at a time and hand back a bare status. This actor downloads the entire official roster for any board and turns it into a rich, deduplicated, lead-scored dataset — with the e‑mail address DPOR publishes (most state license rolls have none).
| Data | Typical lookup tools | This actor |
|---|---|---|
| Bulk roster (no license number needed) | ❌ one-at-a-time | ✅ whole board(s) |
| Licensee / business name (parsed) | partial | ✅ first / middle / last / suffix + firm |
| E‑mail address of record | ❌ | ✅ ~80–95% coverage |
| Full mailing address (street, city, state, ZIP+4) | partial | ✅ |
| License number, type, rank & specialty | partial | ✅ |
| Status + expiration date (renewal timing) | partial | ✅ |
| Issue date → newly-licensed / business-age signal | ❌ | ✅ |
| Individuals and businesses / firms | partial | ✅ both |
| 18 boards / 170+ license types in one run | ❌ | ✅ |
| Lead score (0–100) + lead signals | ❌ | ✅ |
| Only-new monitoring of new & renewed licenses | ❌ | ✅ |
| One clean table — no empty columns | ❌ | ✅ |
Use cases
- Lead generation — licensed pros and firms are active buyers: contractors need insurance, surety bonds, financing, materials, software & marketing; real-estate agents, brokers & appraisers need lead tools, CRMs, signage and E&O; HOA managers need vendors; salons need supplies and booking software. Reach them directly with the published e‑mail + mailing address.
- Renewal-timing campaigns — filter by
expiringWithinDaysto catch licenses approaching their renewal date for CE providers, insurers and bond agencies. - New-business / new-licensee feeds — filter by
issuedAfterto find pros and companies that just got licensed. - Market & competitive intelligence — size and map a profession across Virginia by city, ZIP, rank and specialty.
- Compliance, verification & enrichment — append official license numbers, status, expiration and classifications to your existing records.
How to use
- Sign up for Apify — the free plan is enough to try this actor.
- Open the Virginia License Leads Scraper, pick one or more boards / professions, set filters (status, city, ZIP, renewal window, etc.) and click Start.
- Watch results stream into the dataset table.
- Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.
Input
{"boards": ["contractors", "real-estate", "real-estate-appraisers"],"statusFilter": "active","cities": ["Richmond", "Virginia Beach", "Arlington"],"withEmailOnly": true,"expiringWithinDays": 120,"sortBy": "leadScore","maxResults": 1000}
- boards (default
["contractors"]) — which DPOR rosters to pull. Choose any of: Contractors & Tradesmen, Real Estate (brokers/salespersons/firms/settlement agents), Real Estate Appraisers & AMCs, Architects/Engineers/Surveyors/Interior Designers, Asbestos/Lead/Home Inspectors, Community Association (HOA) Managers, Barbers/Cosmetologists/Nail/Wax/Tattoo/Esthetics & Salons, Auctioneers, Opticians & Hearing Aid Specialists, Soil Scientists & Geologists, Waterworks/Wastewater/Onsite Sewage, Waste Management, Cemetery, Branch Pilots, Polygraph Examiners, Athlete Agents, Boxing/Wrestling/Martial Arts, Fair Housing. - statusFilter (default
active) —active,all, orinactive. Real-estate & appraiser boards publish separate active/inactive rosters; other boards publish a current roster (expired records inside it are flagged). - recordTypes — keep only
individualorbusinessrecords. - licenseCodes — filter to specific DPOR codes (board+occupation), e.g.
2701(Class A Contractor),2710(Tradesman),0226(Real Estate Firm),4009(AMC),0402(Professional Engineer). - cities / zipCodes / states — geographic filters.
- nameQuery / businessNameQuery — substring match on the licensee or company name.
- withEmailOnly / withBusinessNameOnly / withStreetAddressOnly — quality filters.
- expiringWithinDays — keep licenses expiring within N days (renewal timing).
- issuedAfter (YYYY-MM-DD) — keep licenses originally issued on/after this date (newly licensed).
- minLeadScore / sortBy / maxResults / deduplicateResults / includeRawFields — output controls.
- monitorMode / monitorKey — emit only new/changed licenses across runs (see below).
Output
One record per license:
{"state2": "VA","board": "Board for Contractors","boardKey": "contractors","category": "Construction & Trades","licenseNumber": "2701030496","certificateNumber": "030496","licenseCode": "2701","boardCode": "27","occupationCode": "01","licenseType": "Class A Contractor","licenseRank": "A","licenseSpecialty": "H/H","recordType": "business","name": "Froehling & Robertson INC","firstName": null,"lastName": null,"businessName": "Froehling & Robertson INC","email": "jclingenpeel@fandr.com","street": "3015 Dumbarton Rd","city": "Richmond","state": "VA","zip": "23228","zipExtension": null,"country": "US","issueDate": "1987-08-31","expirationDate": "2027-08-31","fullAddress": "3015 Dumbarton Rd, Richmond, VA, 23228","hasEmail": true,"isActive": true,"status": "Active","expiresInDays": 436,"isExpiringSoon": false,"isExpired": false,"businessAgeYears": 38.8,"isNewlyLicensed": false,"licenseLookupUrl": "https://dporweb.dpor.virginia.gov/LicenseLookup/Search?licenseNumber=2701030496","leadScore": 82,"leadSignals": ["Business / firm licensee"],"scrapedAt": "2026-06-21T12:00:00.000Z"}
Set includeRawFields: true (default) to also attach the raw DPOR sourceFields row for full transparency.
Automate & schedule
Run this actor on autopilot and pull results into your own stack:
- Apify API — start runs, fetch datasets, and manage schedules over REST.
- apify-client for JavaScript and apify-client for Python — official SDKs.
- Schedules — run it weekly/monthly to catch newly-issued and just-renewed licenses; DPOR refreshes the rosters every ~5 business days.
- Webhooks — trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });const run = await client.actor('scrapesage/virginia-license-leads-scraper').call({boards: ['contractors', 'real-estate'],statusFilter: 'active',withEmailOnly: true,expiringWithinDays: 120,maxResults: 2000,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Got ${items.length} Virginia license leads`);
Monitor mode — only new & renewed licenses
Turn on monitorMode and the actor remembers everything it has emitted (in a named key-value store) and, on the next run, returns only new or changed licenses — newly issued, renewed (new expiration), moved (new address) or updated e‑mail. Pair it with a Schedule to build an always-fresh feed of new Virginia license leads. Monitor mode works independently of the Apify scheduler — use any cadence you like, and use a distinct monitorKey per saved search.
Integrate with any app
Connect the dataset to 5,000+ apps — no code required:
- Make — multi-step automation scenarios.
- Zapier — push new license leads straight into your CRM.
- Slack — get notified when a monitored search finds new licensees.
- Google Drive / Sheets — auto-export every run to a spreadsheet.
- Airbyte — pipe results into your data warehouse.
- GitHub — trigger runs from commits or releases.
Use with AI assistants (MCP)
The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "find active Class A contractors in Richmond with an email and a license expiring in the next 90 days" and let it run this scraper for you.
Agent-ready: autonomous payments (x402 & Skyfire)
This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:
- x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
- Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.
Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.
More scrapers from scrapesage
Build a complete US license & local-business lead-gen stack:
- Florida License Leads Scraper — the Florida DBPR sibling: contractors, realtors, CAMs, vets, cosmetologists & more.
- US Contractor License Scraper — official state contractor boards (CSLB, WA, OR) with bond & insurance.
- US Real Estate License Scraper — agents, brokers, brokerages & appraisers from NY/TX/CO boards.
- US Professional License Scraper — licensed pros across TX, CO, CT & DE boards.
- BuildZoom Scraper — contractor profiles, licenses, permits & reviews.
- US Building Permits Scraper — construction & contractor activity by city.
- US Property Records Scraper — property owner leads.
- Website Contact Scraper — enrich any licensee's website for extra emails, phones & socials.
Tips
- Cost & speed — each board downloads its full official roster, so add boards deliberately. The default
contractorsboard is fast and cheap; Real Estate and Cosmetology are the largest. - Renewal campaigns — combine
statusFilter: active,expiringWithinDays, andsortBy: expirationSoon. - Find firms — set
withBusinessNameOnly: true(orrecordTypes: ["business"]) for B2B company leads such as contracting firms, brokerages and AMCs. - Recurring monitoring — combine Schedules with
monitorModeto track only newly issued & renewed licenses.
FAQ
Where does the data come from? The official Virginia Department of Professional & Occupational Regulation (DPOR) "Regulant Lists" — public-records files published by the Commonwealth and refreshed every ~5 business days. No API key or login needed.
Does it include e‑mail addresses? Yes — DPOR publishes the regulant's e‑mail address of record, and most records have one (roughly 80–95% depending on the board). Use withEmailOnly: true to keep only records that have one.
Is there a phone number? No — DPOR does not publish phone numbers in the regulant lists. You get name, e‑mail and full mailing address. To add phones, enrich the licensee's website with the Website Contact Scraper.
Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.
How do I get only newly licensed or just-renewed pros? Use issuedAfter for new licenses, expiringWithinDays for upcoming renewals, or turn on monitorMode with a Schedule to receive only new/changed records each run.
Is scraping this data legal? This actor collects publicly available government records published by Virginia DPOR. You are responsible for using the data in compliance with applicable laws (e.g. CAN-SPAM, TCPA, GDPR/CCPA) and DPOR's terms.
A field is null — why? Some records genuinely omit a street, e‑mail or specialty. Fields are null only when the source doesn't publish them, not because the scraper skipped them.
Need help?
Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests — including additional states — are welcome; this actor is actively maintained.