DC Contractor License Lookup & List Scraper (DLCP)
Pricing
$0.004 / license record
DC Contractor License Lookup & List Scraper (DLCP)
Export every active Washington, DC contractor licence (5,909 on 2026-10-09): general contractors, home improvement and asbestos abatement firms, with address and registered agent. Filter by activity, status, state, city, ZIP, ward or name.
Pricing
$0.004 / license record
Rating
0.0
(0)
Developer
ScrapeBench
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
3
Monthly active users
2 days ago
Last modified
Categories
Share
Pain points
- DC has no contractor licensing board: a contractor holds a Basic Business Licence with a contracting activity, filed in the same table as restaurants, rentals and street vendors (280,169 rows of every kind of business when counted 2026-10-09).
- The licence table keeps every status ever recorded. Of 20,910 contractor licences only 5,909 are active; the rest are closed, cancelled or one of five different 'Expired' statuses (2026-10-09).
- The business address is one free-text string, and most DC-licensed contractors are not in DC at all: 2,863 of the 5,909 active licences have a Maryland address and 1,278 a Virginia one (2026-10-09).
What we solve
- One run returns only the three contracting activities — General Contractor/Construction Manager, Home Improvement Contractor and Asbestos Abatement Business — one row per licence number.
- Status is a filter with Active as the default, and 'expired' collects all five of DLCP's expired variants in one value.
- The premises address is split into street, city, state and ZIP, so you can keep only Maryland firms, one ZIP or one DC ward; a filter value the actor does not recognise is dropped and logged, never widened to every licence.
Summary
Get Washington, DC's contractor licences as clean data from the District's own open licence table (Department of Licensing and Consumer Protection, published by DC GIS and refreshed daily). Each row is one Basic Business Licence held for a contracting activity: 4,894 active General Contractor/Construction Manager licences, 925 Home Improvement Contractor licences and 90 Asbestos Abatement Business licences on 2026-10-09, with licence number, status, first-issue and expiry dates, legal and trade name, entity type, registered agent, premises address split into parts, DC ward and mailing address. Leave the input empty for every active licence, set status to 'all' for the full history (20,910 licences), or narrow by activity, licence number, name, address state, city, ZIP or ward. The table publishes no phone number or email, and the actor does not add any. Pay only per licence returned.
Who it's for
- Suppliers, distributors and software vendors selling to contractors licensed to work in Washington, DC — most of them based in Maryland and Virginia
- General contractors, developers and property managers checking that a DC subcontractor holds an active licence
- Insurers, sureties and lenders verifying licence status, first-issue date and expiry
- Data teams loading a District-wide contractor licence table into a CRM or warehouse
How to use
Set the input, run the actor, and collect results from the run's dataset (export to JSON/CSV/Excel, or pull via the Apify API). Example input:
{"addressState": "DC","maxResults": 2000}
See Inputs below for every available field.
What you get
One row per record:
| Field | Description |
|---|---|
license_number | DC Basic Business Licence number, one row per licence |
license_activity | General Contractor/Construction Manager, Home Improvement Contractor or Asbestos Abatement Business |
status | Licence status as filed, e.g. Active, Closed, Expired - Enforcement |
status_date | Date the status was last set |
initial_issue_date | Date the licence was first issued |
license_start_date | Start of the current licence term |
expiration_date | End of the current licence term |
business_name | Legal entity name |
trade_name | Trade name (DBA), when filed and different from the legal name |
entity_type | Entity type, e.g. Foreign Limited Liability Company |
owner_name | Owner's name, when filed (mostly sole proprietors) |
registered_agent | Registered agent company or person |
address | Premises address exactly as filed |
street | Street part of the premises address |
city | City of the premises address |
address_state | State of the premises address (DC, MD, VA, ...) |
zip_code | ZIP of the premises address |
premise_in_dc | Whether the premises is inside the District |
ward | DC ward of a premises inside the District |
mailing_address | Billing (mailing) address as filed |
source_url | DC GIS API query returning this licence's source row |
Sample:
{"license_number": "410521000073","license_activity": "General Contractor/Construction Manager","status": "Active","status_date": "2026-10-06","initial_issue_date": "2020-11-05","license_start_date": "2026-10-06","expiration_date": "2030-10-31","business_name": "Aku Consulting Inc.","trade_name": "GOTA Engineering","entity_type": "Domestic Business Corporation","owner_name": null,"registered_agent": "REGISTERED AGENTS INC.","address": "2402 17th Street SE, Washington, DC, 20020, USA","street": "2402 17th Street SE","city": "WASHINGTON","address_state": "DC","zip_code": "20020","premise_in_dc": true,"ward": "Ward 8","mailing_address": "2402 17th Street SE, Washington, DC, 20020, USA","state": "DC","source_url": "https://maps2.dcgis.dc.gov/dcgis/rest/services/FEEDS/DCRA/MapServer/0/query?where=CUSTOMERNUMBER%3D%27410521000073%27&outFields=%2A&f=json"}
Inputs
| Field | Required | Type | Default | Description |
|---|---|---|---|---|
activity | no | string | — | Which DLCP contractor licence activity to return: 'general_contractor' (General Contractor/Construction Manager), 'home_improvement' (Home Improvement Contractor) or 'asbestos' (Asbestos Abatement Business). Leave empty for all three. An unrecognised value is ignored with a log line; if nothing you gave is recognised, the run returns a free row saying so instead of every licence. |
activities | no | array | [] | Several activities in ONE run, e.g. general_contractor and home_improvement. Combined with 'Licence activity' if you fill both. |
status | no | string | — | Leave empty for Active licences (or for every status when you look up licence numbers). 'all' adds closed, cancelled, expired and suspended licences; 'expired' covers every 'Expired' variant DLCP files (Expired, Expired - Enforcement, Expired - 1st / 2nd / Final Penalty). |
licenseNumber | no | string | — | A DC Basic Business Licence number to verify, digits only, e.g. 420225000088. Searches every status unless you set one. |
licenseNumbers | no | array | [] | Several licence numbers in ONE run. The run log names any that matched nothing. Filters of different kinds combine (a licence must match all of them), so leave name, city and the other filters empty for a plain licence lookup. |
name | no | string | — | Text the business name or trade name contains (case-insensitive), e.g. 'ROOFING' or 'SMITH'. |
names | no | array | [] | Several name fragments in ONE run; a licence matching any of them is returned once. The run log says how many licences each one matched. |
addressState | no | string | — | Two-letter state of the business premises address, e.g. DC, MD or VA. Most DC-licensed contractors are based outside the District (on 2026-10-09: 2,863 active in MD, 1,278 in VA, 1,154 in DC). |
addressStates | no | array | [] | Several states in ONE run. Combined with 'Business address state' if you fill both. |
city | no | string | — | City of the business premises address, exact match ignoring case, e.g. 'Silver Spring'. DC premises file the city as 'Washington'. |
cities | no | array | [] | Several cities in ONE run. Combined with 'City' if you fill both. |
zip | no | string | — | ZIP of the business premises address, 5 digits (a ZIP+4 is matched on its first 5). |
zips | no | array | [] | Several ZIPs in ONE run. Combined with 'ZIP code' if you fill both. |
ward | no | string | — | DC ward of the business premises, 1 to 8 (only premises inside the District have a ward). |
wards | no | array | [] | Several wards in ONE run, e.g. 5 and 6. |
maxResults | no | integer | 500 | Cap on licences returned for the whole run (a spend control). DC had 5,909 active contractor licences and 20,910 in all statuses on 2026-10-09, so 100000 returns everything that matches. The run log states how many matched when the cap cuts it short. |
proxyConfiguration | no | object | {"useApifyProxy": false} | Optional. DC's open-data server answers direct requests; enable a proxy only if runs come back with a 'blocked' notice. |
Pricing (Pay Per Event)
You pay per result (dataset-item) — no charge for empty runs. Example: 1154 active contractor licences based in DC at $0.004/result ≈ $4.62.
Every active licence (5,909 on 2026-10-09) is about $24; the full history in all statuses (20,910) about $84. The default run (500 rows) costs $2.00. Apify platform usage is billed separately.
Use cases
- Full export: pull all 5,909 active DC contractor licences in one run and load them into your CRM.
- Local list: the 1,154 active contractor licences with a premises address inside DC, each with its ward (2026-10-09).
- Out-of-District firms: the 2,863 active licences held by Maryland-based contractors, or one Maryland city such as Silver Spring (269).
- Verification: look up a batch of licence numbers and get each one's status and expiry, including expired and closed licences.
Why this actor
- All three DC contracting activities in one table: 4,894 general contractor, 925 home improvement and 90 asbestos abatement licences active on 2026-10-09.
- One row per licence number (20,910 distinct of 20,910 rows), with every status on request and Active by default.
- Premises address split into street, city, state and ZIP on 5,892 of 5,909 active licences, plus ward on the 1,122 inside the District that DC GIS assigns one.
- Registered agent on 5,882 of 5,909 active licences, and trade name on the 879 that file one.
- Read live from the District's own open data on every run; an active export is 3 requests and pay-per-licence, with outage, bad-filter and no-match rows free.
Limitations & updates
Covers DC Basic Business Licences held for the three contracting activities (General Contractor/Construction Manager, Home Improvement Contractor, Asbestos Abatement Business). Not included: home improvement salesperson licences (individuals), and DC's separate occupational licences for electricians, plumbers and other trades, which are not in this table. No phone numbers or emails: the table publishes neither. The source's latitude/longitude columns hold one placeholder value for every licence, so no coordinates are returned. A few premises addresses (17 of 5,909 active on 2026-10-09) are not in 'street, city, ST, ZIP' form; those keep the full address with street, city, state and ZIP left empty. DLCP refreshes the table daily. Data: District of Columbia Department of Licensing and Consumer Protection via opendata.dc.gov, licensed CC BY 4.0. If the District's server does not answer, the run returns a free row saying so instead of an empty dataset.
FAQ
Where does the data come from?
From the 'Basic Business License' table that DC GIS publishes for the Department of Licensing and Consumer Protection (DLCP, formerly DCRA) on opendata.dc.gov, refreshed daily. The actor reads the three contracting business activities on every run.
Does it include phone numbers or emails?
No. The licence table publishes no phone number or email address, and the actor does not add any. Each licence carries a premises address, a mailing address and a registered agent.
Why are most of the contractors outside DC?
A contractor needs a DC licence to work in the District, wherever it is based. On 2026-10-09, 2,863 of the 5,909 active licences had a Maryland premises address, 1,278 a Virginia one and 1,154 a DC one. Set 'Business address state' to keep one state, or 'DC ward' for premises inside the District.
Are expired licences included?
Only when asked. The default is Active; 'all' returns every status DLCP records (20,910 licences on 2026-10-09), and 'expired' collects Expired, Expired - Enforcement and the three Expired penalty statuses. Looking up licence numbers searches every status unless you set one.
What happens if I type a value the actor does not know?
That value is ignored and the run log says so. If none of the values you gave for a filter is recognised, the run returns one free row explaining it instead of every licence.
How am I charged?
$0.004 per licence returned. The default input returns the first 500 active licences ($2.00); every active licence (5,909) is about $24. Rows explaining an outage, an unrecognised filter or an empty result are free.
Which actor to choose
Part of the contractor-data suite — pick the one that fits your goal:
- Virginia Contractor License Lookup (DPOR Bulk) — You need the Virginia side of the DC area — a statewide DPOR licence export, with email.
- Delaware Contractor License Lookup & List Scraper (DOR + DPR) — You need Delaware contractor business licences and electrical, plumbing and HVACR licences, statewide.
- Multi-State Contractor & Trade License Lookup — You want the same contractor checked across several states in one run.
- Ohio Contractor License Lookup & Leads Scraper (OCILB) — You need Ohio electrical, HVAC, plumbing, hydronics or refrigeration contractors — the full OCILB roster, by trade and county.
- Iowa Contractor Registration Lookup & Leads Scraper (DIAL) — You need Iowa contractors — every active DIAL registration statewide, with phone and email, filtered by trade, county, city or ZIP.
- Mississippi Contractor License Lookup & Leads Scraper (MSBOC) — You need Mississippi contractors — the active MSBOC roster with phone, street address and classifications, by county or class.
- Nebraska Contractor Registration Lookup & Leads Scraper (NDOL) — You need Nebraska contractors — every current NDOL registration, by service and county, with phone on request.
- Arizona Contractor License Lookup & Leads Scraper (ROC) — You need Arizona contractors — one ROC licence by number or name, or every active licence statewide with phone, by class and city.
- West Virginia Contractor License Lookup & Leads Scraper (WVCLB) — You need West Virginia contractors — every current WVCLB licence with phone and mailing address, by county or classification.
- Colorado Electrical & Plumbing License Lookup & List Scraper — You need Colorado electrical or plumbing licences — contractors, masters and journeymen statewide, with status and public disciplinary actions.
- Maryland Contractor License Lookup & List Scraper (MHIC) — You need Maryland home improvement contractors — every active MHIC licence with street address and expiry, by city or ZIP.
- New Jersey Contractor License Lookup & Export (DCA) — You need New Jersey contractors — active DCA home improvement, electrical, master plumber and HVACR licences statewide or by city, with street address and owner for home improvement firms.
Guides & use cases
Written up on scrapebench.dev — the bench that runs and verifies this actor against the live source every night:
- How-to: How to run DC Contractor License Lookup & List Scraper (DLCP)
- Use case: Licensed Home Improvement Contractors in Washington, DC
More actors, coverage and nightly verification results: scrapebench.dev
Works with AI assistants (MCP)
Callable as an MCP tool, so Claude, Cursor, VS Code Copilot and other MCP clients can run it directly. Grab the config from the MCP tab on this page — Apify hosts the server and keeps that snippet current, and OAuth signs you in on first connect, so no API token goes in your config file.
Then just ask:
"List the active home improvement contractor licences in Washington, DC, with their addresses."
That input (activity home_improvement, address state DC) returned 152 licences on 2026-10-09. With no filters it exports every active licence (5,909 rows), so set an activity, state, ZIP or ward before running it from an agent. Runs started this way bill exactly like any other run.