Install
openclaw skills install @deciqai/us-business-registry-open-dataActivate when: user needs US company registration data (LLCs, corporations, formation dates, registered agents) in bulk — lead lists by state, formation-trend analysis, entity matching, TAM sizing from registries; user asks 'where can I get company registration data,' 'Secretary of State data,' 'business registry API,' or hits OpenCorporates pricing walls. Do NOT activate when: user needs business *license* data, SEC filings, or non-US registries; user needs Delaware/California/Texas bulk data (paid or unavailable — this skill explains why, then stops).
openclaw skills install @deciqai/us-business-registry-open-dataSeveral US states publish their entire business registry — every LLC, corporation, and nonprofit ever registered — as open data on Socrata portals, explicitly in the public domain or licensed for commercial use. Five states (New York, Colorado, Pennsylvania, Oregon, Connecticut) yield ~12.4 million entities with names, entity types, formation dates, addresses, and registered agents, for free, via a documented API. Most people assume this data is locked behind OpenCorporates pricing or state paywalls; for these states, it isn't.
This skill contains the verified dataset registry (endpoints, record counts, license terms), a working config-driven fetcher (scripts/fetch_us_business_entities.py, Python stdlib, no dependencies), the measured rate-limit realities nobody documents, and the gotchas that silently corrupt naive pulls.
Use when: you need bulk US company registration data with commercial-use rights; building lead lists, formation-trend analysis, registered-agent market maps, entity matching, or cohort survival studies; evaluating whether to pay OpenCorporates or a data vendor (check the free floor first).
Skip when: you need business license data (different registries — Washington and Illinois publish licenses, not registrations); you need SEC filings or officers/UBO data beyond what states expose; you need full national coverage including Delaware/California/Texas — no free path exists, budget for a vendor.
count(*) query: https://<portal>/resource/<id>.json?$select=count(*) as cnt. Portals migrate (Iowa's Socrata endpoints all 404 now); never trust a months-old dataset ID without this check.$limit/$offset pagination ordered by :id. Do not use $select=:*,* keyset pagination and do not use the CSV export endpoint — both measured dramatically slower (see Rate-limit realities).state / entity_id / name / entity_type / status / formation_date / city / region / postal / agent_name), keeping the raw row under _raw. Each state names columns differently; the fetcher's SOURCES dict is the mapping.:id order, so a rerun continues from offset N in append mode. Flush per page so the file is always a valid resume point.X-App-Token — anonymous throughput (~500 rows/sec) makes 13M rows a 7–8 hour job; the token tier is the fix.| State | Dataset | Records | License |
|---|---|---|---|
| New York | n9v6-gdp6 on data.ny.gov (active corps, beginning 1800) | 4.22M | NY Open Data, commercial OK |
| Colorado | 4ykn-tg5h on data.colorado.gov | 3.06M | Public Domain |
| Pennsylvania | xvd7-5r2c on data.pa.gov (officer-level rows) | 2.31M entities | Public Domain |
| Oregon | tckn-sxa6 on data.oregon.gov (row per associated name) | 1.56M | Public record |
| Connecticut | n7gp-d28j on data.ct.gov (master table) | 1.28M | Public Domain |
New York also has a companion dataset (63wc-4exh) with 20.6M raw filing records if you want full filing history rather than current state.
Run the bundled fetcher: python3 scripts/fetch_us_business_entities.py --sample validates all five states in a minute; --state co pulls one state; no dependencies beyond Python 3.
$select=:*,* is a dead end: forcing system-field computation made a single 50k page take 200+ seconds, then time out./api/views/{id}/rows.csv) is worse: generated server-side on demand; measured 1,229 rows in 30 seconds — ~12× slower than JSON offset paging.registry_number / filing_number is mandatory before any entity-level count.Business_City; the SODA API says billingcity. If you mix formats, map through dataset metadata (/api/views/{id}.json → columns[].fieldName), never by header string.accountnumber.Everything enabled here is official government open data with explicit public-domain or commercial-OK terms — no scraping of search UIs, no ToS gray zones. The discipline: a state publishing its registry on an open-data portal is an invitation; a state putting it behind a paywall or bot wall is an answer, and the answer is no. Datasets without a clear license tag stay disabled until terms are confirmed.
count(*) queries, not row counts of the pulled file$order=:id so resume-by-line-count is deterministicPart of deciqAI Knowledge Skills — 164 open-source thinking skills that make rigor executable for AI agents. The same skills power every deciqAI agent, which runs them autonomously to operate your company. See it run → https://www.deciqai.com/c/us-business-registry-open-data · ⭐ Star the repo → https://github.com/deciqAI/knowledge-skills · Contributions welcome.