DC Business Registry - Entities, Trade Names, Beneficial Owners
Pricing
from $0.06 / 1,000 dc registry records
DC Business Registry - Entities, Trade Names, Beneficial Owners
Washington DC's business registry (public open data): 504K corporate registrations, 62K trade names and 491K beneficial owners, linked by file number so entity -> owners -> DBAs resolves on one id. Includes registered-agent details and the beneficial ownership layer DC publishes.
Pricing
from $0.06 / 1,000 dc registry records
Rating
0.0
(0)
Developer
Wenhao Yang
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 hours ago
Last modified
Categories
Share
Low cost
From $0.0001 per record, down to $0.00006 at Gold - pay per record delivered, and nothing for the query. Cost scales with what you pull, not with the size of the register.
Washington DC's business registry, including the layer most registries do not publish: beneficial owners. Three linked datasets, resolved on one file number, so an entity, the trade names it operates under and the people who ultimately own it come back together.
What you get
| Layer | Rows | What it holds |
|---|---|---|
| corporate | 504,036 | registered entities: status, entity type, domestic/foreign, full business address, registered agent with their own address |
| trade names | 62,088 | registered trade names / DBAs with effective and expiration dates |
| beneficial owners | 491,151 | the owners behind each entity, by name and address |
Entity status runs the full lifecycle - Revoked (314,701), Active - In Good Standing (116,121), Dissolved, Withdrawn, Merged, Terminated - and entity type covers 18 forms from LLCs and business corporations through nonprofits, limited partnerships and statutory trusts.
Modes
- corporate (default) - registered entities
- tradeName - registered DBAs with their dates
- beneficial - the owners behind an entity
- entity - all three layers for one file number, in one response
- aggregate - counts by status, type, locale, state
Example inputs
Everything DC holds on one entity - mode=entity keys on the file number
and returns the entity, its trade names and its beneficial owners together.
{ "mode": "entity", "fileNumber": "240181", "maxResults": 200 }
Owners behind LLCs
{ "mode": "beneficial", "businessName": "LLC", "maxResults": 50 }
Trade names that have lapsed
{ "mode": "tradeName", "tradeNameStatus": "Expired", "maxResults": 50 }
The registry by entity status - one row per status.
{ "mode": "aggregate", "corpus": "corporate", "groupBy": "entityStatus" }
Why this is hard
The three layers do not spell their own join key the same way. The corporate layer calls it FILE_NUMBER; the beneficial-owners layer calls it INITIALFILENUMBER; the trade-name layer calls it INITIAL_FILENUMBER. One letter apart - and a mismatch returns nothing at all, silently, with no error. Four of the source's own address columns are misspelled (BUSNIESS_ADDRESS_LINE1 through BUSNIESS_ADDRESS_LINE4) while the city and state columns are spelled correctly, so they all have to be mapped onto one field. The update stamp is raw epoch milliseconds rather than a date.
Example output
One entity - mode=corporate, fileNumber=240181 returns the registry row
below (a mode=entity pull adds the same entity's trade names and beneficial
owners):
{"platform": "dc-registry","source": "dc-dlcp-corporate","corpus": "corporate","recordKind": "entity","mode": "corporate","groupKey": "","groupCount": "","groupBy": "","fileNumber": "240181","entityStatus": "Dissolved","locale": "Domestic","modelType": "Domestic Nonprofit Corporation","businessName": "! SI, SE PUEDE! BOSTON 2004 INC.","address1": "","address2": "","address3": "","address4": "","city": "","state": "","zip": "","country": "","suffix": "","registeredAgentName": "C T CORPORATION SYSTEM","agentAddress1": "1015 15TH STREET NW","agentAddress2": "Suite 1000","agentAddress3": "","agentAddress4": "","agentCity": "Washington","agentState": "DC","agentZip": "20005","tradeName": "","tradeNameStatus": "","effectiveDate": "","tradeNameExpirationDate": "","initialFileNumber": "","lastModified": "","ownerName": "","ownerAddress": ""}
mode=aggregate, corpus=corporate, groupBy=entityStatus - one row per
status, largest first:
Revoked 314,701Active - In Good Standing 116,121
Output
One schema across all three layers, empty where a layer has nothing. Dates arrive as YYYY-MM-DD.
Notes
- Public open data from DC's open-data ArcGIS service. No login, no scraping.
- DC publishes beneficial ownership as a matter of policy; this actor makes it queryable alongside the entity it belongs to.
- Charges are metered per record delivered, so pulling one entity's full record costs a fraction of a cent.