DC Business Registry - Entities, Trade Names, Beneficial Owners avatar

DC Business Registry - Entities, Trade Names, Beneficial Owners

Pricing

from $0.06 / 1,000 dc registry records

Go to Apify Store
DC Business Registry - Entities, Trade Names, Beneficial Owners

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

Wenhao Yang

Maintained by Community

Actor 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

LayerRowsWhat it holds
corporate504,036registered entities: status, entity type, domestic/foreign, full business address, registered agent with their own address
trade names62,088registered trade names / DBAs with effective and expiration dates
beneficial owners491,151the 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,701
Active - 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.