Business Entity List Export: LLCs & Corporations by State
Pricing
from $1.70 / 1,000 company row delivered (first 10,000 per run)s
Business Entity List Export: LLCs & Corporations by State
Bulk lists of registered companies from official state business registries: every active LLC in a state, new LLC filings by formation date, or corporations and nonprofits by city or ZIP. Status, formation date, addresses, registered agent and officers where published. Up to 1M rows per run.
Pricing
from $1.70 / 1,000 company row delivered (first 10,000 per run)s
Rating
0.0
(0)
Developer
Scott Helvick
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
11 hours ago
Last modified
Categories
Security
Limited permissionsShare
A list of every active LLC in a state, or every company formed there since a given date, is usually a records request, a bulk file in a different layout per state, or a lead database that only knows businesses with a website. This Actor exports filtered lists straight from official state business registries, in one flat row shape for every state, filtered by entity type, status, formation date, city or ZIP, from a few rows up to a million per run.
What this does
- Filters: state, status (active / inactive), entity type (LLC, corporation, nonprofit, partnership, other), formation date range, city, ZIP.
- Count first: each run counts how many companies match in each state, reports it in the status
message and the run summary, then delivers up to
maxResultsrows. - Registry rows, not web leads: each row is a company as the state registry records it, including businesses with no website, listing or online presence.
- One row shape: the same columns for every state (name, entity number, type, status, formation date, principal, mailing and registered-agent addresses, officers where published), ready for CSV, Excel or a database load.
- Opt-in UCC lien summary:
includeUccadds lien fields in Florida, Connecticut, Colorado and Vermont;hasActiveLienkeeps only companies with at least one active filing and includes the summary. - A source credit on every row, with the licence where the state's data carries one.
Typical uses:
- New LLC filings for outreach: every LLC formed in Virginia in the last 30 days (
formedFrom). - A market map: every active corporation and LLC in one ZIP or city.
- Building or refreshing a company database for a state, split into date ranges.
- Registered-agent and officer research across all active entities of one type.
- Matching your customer or vendor list against the registry to find dissolved or inactive companies.
Why complete registry lists matter
Business lists built from web listings, maps or social profiles cover the businesses that advertise. A large share of LLCs and corporations never do: holding companies, property LLCs, new filings, contractors without a website. The state registry lists every entity the state publishes, with a formation date in every state but New Hampshire and, in most states, a legal status (see Coverage for what each state publishes).
Getting that list yourself means a different download, layout and status vocabulary in every state,
and some states publish only a search page. This Actor maps every covered state onto the same
columns and the same filter classes: status_class (active / inactive / unknown) and
entity_type_class (llc / corp / nonprofit / lp / other) read the same in Colorado as in Virginia,
while the state's own wording stays in status and entity_type.
Large exports stay predictable: the count comes before the rows, every stop (row limit, cost limit, time limit) ends with one free row that says how many matching companies were not delivered, and date-range splits never overlap, so nothing is paid for twice.
How it compares to other ways of getting a business list
| Approach | Companies without a web presence | Formation date and status | Same columns across states | Contact details (email/phone) |
|---|---|---|---|---|
| Map and directory lead scrapers | no | no | yes | often |
| B2B contact databases | partly | rarely | yes | yes |
| New-filing feeds | new filings only | yes | varies | sometimes |
| State bulk files and records requests | yes | yes | no, one layout per state | no |
| This Actor | yes | yes | yes | no (registries don't publish them) |
Use this Actor when the list should come from the official registry; use a contact database when you need emails and phone numbers more than completeness.
Coverage
| State | Source | Status | Officers | Registered agent |
|---|---|---|---|---|
| AK | Alaska Division of Corporations, Business and Professional Licensing | active only | yes | yes |
| CO | Colorado Secretary of State (public domain) | active and inactive | no | yes |
| CT | Connecticut Secretary of the State | active and inactive | yes, business addresses only | yes |
| DC | DC Department of Licensing and Consumer Protection | active and inactive | no | yes |
| FL | Florida Department of State, Division of Corporations (Sunbiz) | active and inactive | yes | yes |
| IA | Iowa Secretary of State (Iowa Data Hub) | active only | no | yes |
| IL | Illinois Secretary of State (corporations and LLCs) | active and inactive | yes | yes |
| MS | Mississippi Secretary of State | active and inactive | no | no |
| MT | Montana Secretary of State | active and inactive | no | no |
| NH | New Hampshire Department of State | active and inactive | no | name only |
| NY | New York Department of State (OPEN-NY) | active only | chief executive where filed | yes |
| OR | Oregon Secretary of State | active only | authorized representatives | yes |
| PA | Pennsylvania Department of State | active only | yes | no |
| RI | Rhode Island Department of State | not published: use entityStatus: "any" | no | yes |
| TX | Texas Comptroller of Public Accounts | active franchise taxpayers; Secretary of State status code per row | no | no |
| VA | Virginia State Corporation Commission | active and inactive | yes | yes |
| VT | Vermont Secretary of State | active and inactive | yes | yes |
Texas rows come from the Comptroller's list of businesses set up for franchise tax, so they carry the taxpayer's mailing address but no officers or registered agent. For officers or agents of specific companies in any state, see Related Actors below.
Any other state returns one free notice row naming the covered states, so you always know why a state is missing.
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
states | array of strings | yes | -- | Two-letter codes, e.g. ["CO"] or ["FL", "NY"]. Exported one after another. |
entityStatus | string | any | any, active or inactive. any also includes entities whose standing is unclear. | |
entityTypes | array of strings | all | Any of llc, corp, nonprofit, lp, other. | |
formedFrom | string | -- | Formed or registered on or after this date, YYYY-MM-DD. | |
formedTo | string | -- | Formed or registered on or before this date, YYYY-MM-DD. | |
city | string | -- | Principal-office city (falls back to the mailing city), e.g. Denver. | |
zip | string | -- | 5-digit principal-office ZIP (falls back to the mailing ZIP), e.g. 80202. | |
nameKeyword | string | -- | Words that must all appear in the company name (whole words, any order, up to 6), e.g. plumbing. A legal-form word alone (LLC, INC) or a word too common to filter on returns a free notice. | |
county | string | -- | County name, case-insensitive, e.g. Denver. | |
homeState | string | -- | Two-letter state of formation, e.g. DE for Delaware companies registered in the exported states. | |
includeUcc | boolean | false | Add a UCC lien summary in FL, CT, CO and VT; other states export without lien data and get a free notice. | |
hasActiveLien | boolean | false | Only companies with at least one active UCC filing; implies the summary. States without lien data are skipped with a free notice. | |
order | string | newest | newest (newest-formed first) or oldest, across the whole state. Companies with no formation date come last in either order. | |
registeredAgent | string | -- | Every company whose registered agent has this name; combines with every other filter. See matching rules below. | |
countOnly | boolean | false | Free count preview: one notice row per state, no companies exported and no row charges. | |
maxResults | integer | 1000 | Most company rows to deliver across all states, up to 1,000,000. |
A date filter excludes entities with no formation date on file. maxResults is shared across the
states in states.
county uses the county the state publishes where it has one (New York, Pennsylvania, Texas,
Mississippi); elsewhere it is the county of the principal-office ZIP code, when that ZIP is in the
exported state. Connecticut's ZIP-based counties are its planning regions (for example
"Connecticut Metropolitan"), not its historic counties, so county: "Hartford" finds nothing there.
Iowa, Montana, New Hampshire, Pennsylvania and Texas publish no home state, so homeState returns a free notice for them.
registeredAgent matches by name, ignoring case, punctuation and trailing legal-form words
(LLC, INC, CORP, CO, COMPANY and similar). "Northwest Registered Agent" also finds
"NORTHWEST REGISTERED AGENT, LLC"; a longer name is a different agent, so "Registered Agents Inc"
does not match "National Registered Agents Inc". A name match is not proof that two filings name
the same firm. Not available for MS, MT, PA or TX: their registers as held here carry no agent names,
so each gets a free notice row and is skipped, with nothing charged. In NY it matches the registered
agent or the name designated to receive service of process. There is no officer or person-name filter.
With countOnly: true, each state gets one free notice row with error_class: "count_only" and
matched_count, and the OUTPUT summary carries the counts. Nothing is exported and no rows are
charged; the only cost of the run is the platform's small start charge. Run again with
countOnly: false and maxResults at least the count to export the matches.
Output
One row per company (record_type: "entity"):
{"record_type": "entity","state": "CO","entity_id": "20241234567","name": "Mile High Widgets LLC","entity_type": "DLLC","entity_type_class": "llc","status": "Good Standing","status_class": "active","formation_date": "2024-03-05","state_of_formation": "CO","principal_address": "1600 Blake St, Ste 200, Denver, CO 80202","mailing_address": "1600 Blake St, Ste 200, Denver, CO 80202","registered_agent_name": "Example Agent Services LLC","registered_agent_address": "1600 Blake St, Ste 200, Denver, CO 80202","officers": [],"officers_truncated": false,"source": "Colorado Secretary of State, Business Entities (public domain)","source_license": null,"source_register": "Colorado Secretary of State (Business Entities)","source_as_of": "2026-10-20","status_as_of": null}
| Field | Meaning |
|---|---|
name, entity_id | Legal name and the state's own entity or file number. |
entity_type, entity_type_class | Type as filed, and the normalized class the entityTypes filter uses. |
status, status_class | Status as filed, and active / inactive / unknown. |
formation_date, state_of_formation | Formation or registration date (may be a future date when the filer chose a delayed effective date; kept as filed); home jurisdiction for foreign entities. |
home_state | Two-letter state of formation; null where the state publishes none (IA, MT, NH, PA, TX). |
county, county_source | County, and where it came from: source (the state's register) or zip (the principal-office ZIP). |
principal_address, mailing_address, registered_agent_address | One line each, plus separate line 1, line 2, city, state and ZIP columns (e.g. principal_city, registered_agent_zip). |
registered_agent_name | As filed, where the state publishes it. |
officers | [{name, title, address}] where the state publishes officers; officers_truncated marks a cut list. |
source, source_license, source_register | Credit line, licence (where one applies) and the register file the row came from. |
source_as_of | Date of the registry copy the row was read from. |
status_as_of | Date of the filing that last set the status, where the state publishes it. |
ucc_active_filings | Number of active UCC filings matched to the registered name; 0 means checked, none active. |
ucc_latest_filing_date | Date of the newest matched UCC filing. |
ucc_latest_secured_party | First secured party (lender) on the newest matched filing. |
ucc_next_lapse_date | Next lapse date in the matched lien summary, where available. |
ucc_as_of | Date of the public UCC data used for the summary. |
Every key is present on every row (null, or an empty officers list, when the state doesn't publish it), so CSV and Excel exports
keep stable columns.
Lien fields are null when not requested or the state has no lien data. The Liens dataset
view groups these columns together. A checked name with no active filings has
ucc_active_filings: 0; it may still have an older, inactive filing.
Free notice rows (record_type: "notice") carry error_class, a plain-language message and,
where it applies, matched_count and withheld_count. The run summary (key-value store record
OUTPUT) lists matched, delivered and charged counts per state and why the run stopped.
It also includes lien_rows (delivered rows carrying matched lien data), lien_charged (rows
charged for the add-on), include_ucc (the includeUcc input) and lien_not_covered (states
requested without lien coverage).
Example
Every active LLC formed in Colorado since 2024 with a downtown Denver ZIP, with a lien summary:
{"states": ["CO"],"entityStatus": "active","entityTypes": ["llc"],"formedFrom": "2024-01-01","zip": "80202","includeUcc": true,"maxResults": 5000}
curl -X POST "https://api.apify.com/v2/acts/shelvick~bulk-business-entity-list/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"states":["CO"],"entityStatus":"active","entityTypes":["llc"],"formedFrom":"2024-01-01","zip":"80202","includeUcc":true,"maxResults":5000}'
To keep only companies with active liens, use hasActiveLien: true instead; it also includes
the lien summary.
Preview the count of active LLCs in Colorado without exporting companies:
{"states": ["CO"],"entityStatus": "active","entityTypes": ["llc"],"countOnly": true}
Companies in Colorado with a given registered-agent name:
{"states": ["CO"],"registeredAgent": "Northwest Registered Agent","maxResults": 5000}
Calling from an AI agent
Tell us what's missing. If a run doesn't give you what you need, add a feedback note to your next run: what was missing or wrong, or which tool you're switching to and why. A run with only a note isn't charged for results, and the maintainers read every note.
-
Apify MCP server (
mcp.apify.com): addshelvick/bulk-business-entity-listas a tool. The input schema and per-field descriptions are advertised to the model; a user request such as "all active LLCs in Iowa formed this year" maps directly ontostates,entityStatus,entityTypesandformedFrom. -
Apify Python SDK:
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("shelvick/bulk-business-entity-list").call(run_input={"states": ["VA"], "entityStatus": "active", "entityTypes": ["llc"],"formedFrom": "2026-01-01", "maxResults": 10000})for row in client.dataset(run["defaultDatasetId"]).iterate_items():if row["record_type"] == "entity":print(row["name"], row["formation_date"], row["principal_city"])else:print("notice:", row["error_class"], row["message"]) -
REST:
POST /v2/acts/shelvick~bulk-business-entity-list/runsand poll the run, then read the dataset.run-sync-get-dataset-itemssuits small lists that finish within the synchronous limit.
Over HTTP: POST /list_entities accepts includeUcc and hasActiveLien per request,
with the same defaults, lien coverage and add-on pricing rules as a batch run.
It also accepts registeredAgent, order (default newest) and countOnly. The formation-date
order applies across the whole state, with undated companies last in either order. A cursor belongs
to the order it was started with; to change order, start again without the cursor.
countOnly: true is a free request returning the count notice row, no companies and no cursor.
Agent decision guide: branch on record_type and error_class, not on message wording.
no_match means the state answered and nothing matched the filters (widen them; don't retry
unchanged). records_unavailable means that state's data could not be read in this run (run that
state again). max_results, budget_exhausted and deadline mean more companies match than were
delivered; withheld_count says how many.
Pricing
Pay per company row delivered, with lower per-row rates for larger runs: within one run, rows beyond set volumes are billed at volume rates. A row is charged only after it is in your dataset. Notice rows, duplicate rows and uncovered states are never charged. The run stops when your Max cost per run can't pay for another row and adds one free row saying how many matching companies were not delivered, so a capped export never overruns your limit. Apify subscribers get their plan's discount automatically.
The lien overlay is an opt-in add-on with its own per-row price, on top of the company row price. It is billed only for delivered rows with at least one active matched lien filing. Rows whose matched filings have all lapsed or been terminated still get the lien fields, without the lien charge; rows without matched lien data and notice rows never receive it. The cost limit includes both the company row and any lien add-on.
See the Pricing tab on this Store page for the per-row lien add-on price, rates per volume band and subscriber discounts.
Behavior
error_class | Meaning | What to do |
|---|---|---|
lien_not_covered | Lien data is available only in FL, CT, CO and VT | With includeUcc, other covered states export without lien data; with hasActiveLien, they are skipped. The notice is free |
not_covered | The state isn't available for bulk lists | Use a covered state |
malformed_input | An input value couldn't be used (e.g. an unknown state code) | Fix the named field; correct codes in the same run still export |
records_unavailable | That state's data couldn't be read in this run | Run that state again |
count_only | Count preview; matched_count gives the matches in that state, with no row charges | Run again with countOnly: false and maxResults at least the count to export |
no_match | No companies match the filters in that state | Widen the filters |
max_results | maxResults reached; withheld_count says how many more match | Raise maxResults |
budget_exhausted | Max cost per run reached; withheld_count says how many more match | Raise Max cost per run |
deadline | The run's time limit was reached | Raise the timeout, or split by formedFrom/formedTo ranges |
- Freshness:
source_as_ofis the date of the registry copy each row was read from. Registries are refreshed on each state's own publication schedule. - Lien data unavailable: a free
records_unavailablenotice explains the stop. Rerun the state, or run withoutincludeUccandhasActiveLiento export without lien fields. - Large exports: rows are delivered in pages and charged as they land, so a stopped run keeps
everything it delivered. Disjoint
formedFrom/formedToranges give exports that never overlap. - No duplicates within a run: a company is delivered and charged at most once per run.
- Telemetry: to improve coverage and reliability, this Actor reports anonymous usage metrics and diagnostic events to the developer — run outcome counts, the states requested and which filters were used, and, only when something goes wrong, the relevant input fields. No account identifiers are collected, and telemetry never affects a run.
FAQ
How do I export a whole state that is larger than one run?
Split it by formation date: one run per year or decade with formedFrom/formedTo. Ranges that
don't overlap never deliver the same company twice. The count in the status message tells you the
size of each slice before rows arrive.
Why does a Rhode Island run with entityStatus: "active" return no rows?
Rhode Island's registry pages don't publish a status, so its rows have status_class: "unknown".
Use entityStatus: "any" for Rhode Island.
Does it include email addresses or phone numbers? No. State registries don't publish them. The rows give the legal name, addresses, registered agent and (where published) officers, which you can match against your own contact sources.
Am I charged when a state isn't covered or nothing matches? No results are charged for notice rows. Only delivered company rows are charged.
Where does lien data come from, and how are companies matched?
Florida, Connecticut, Colorado and Vermont summaries use each state's public UCC filing data, refreshed
periodically; ucc_as_of gives the data date. Matching uses the company's exact registered name
and organization debtors only, not individual debtors. Former names and DBAs are not consulted,
so a filing under another name will not match. Zero active filings is not a search across every
name a company has used.
Can I republish the data?
Keep the source credit with the data. Some states license their data under CC BY 4.0, which
requires attribution; see Data sources and credits below.
What this doesn't do
- No contact enrichment. No emails, phone numbers or websites; this Actor adds nothing beyond the registry and the optional public UCC lien summary.
- No lookups by company name. It exports lists by filter, not one named company.
- No lists of people. Rows are business entities; officer and agent names appear only as published on a company's filing.
- Not for screening people for credit, insurance, employment or housing decisions.
- Only the states listed above. Other states return a free notice row.
For one company at a time, by name, in any state (with UCC lien filings), use the Actor below. For emails and phone numbers, use a contact-enrichment tool on the companies you export.
Data sources and credits
Every row names its source in source and, where a licence applies, in source_license. Keep that
credit when you republish or redistribute the data.
-
District of Columbia: District of Columbia Department of Licensing and Consumer Protection, Corporate Registration data, licensed under CC BY 4.0. Fields reformatted.
-
Iowa: Iowa Secretary of State, Active Iowa Business Entities (Iowa Data Hub), licensed under CC BY 4.0. Fields reformatted.
-
Texas: Texas Comptroller of Public Accounts, Active Franchise Taxpayers.
-
Virginia: Virginia State Corporation Commission, Clerk's Office.
-
Colorado: Colorado Secretary of State, Business Entities (public domain).
-
Connecticut: Connecticut Secretary of the State, Business Registry.
-
Florida: Florida Department of State, Division of Corporations.
-
Florida lien data: Florida Secured Transaction Registry data via the Florida Department of State.
-
Connecticut lien data: Connecticut Secretary of the State UCC lien filings.
-
Colorado lien data: Colorado Secretary of State UCC filings (public domain).
-
Illinois: Illinois Secretary of State, Business Services.
-
Mississippi: Mississippi Secretary of State, Business Services.
-
Montana: Montana Secretary of State, Business Services.
-
New Hampshire: New Hampshire Department of State, Corporation Division.
-
New York: New York Department of State, Division of Corporations.
-
Oregon: Oregon Secretary of State, Corporation Division.
-
Pennsylvania: Pennsylvania Department of State, Bureau of Corporations.
-
Rhode Island: Rhode Island Department of State, Business Services.
-
Vermont: Vermont Secretary of State, Business Services Division.
-
Counties from ZIP codes: where a state publishes no county,
countycomes from the principal-office ZIP code using GeoNames postal-code data, licensed under CC BY 4.0.
Rows are reformatted into common columns; the state's own status and type wording is kept in
status and entity_type. The states do not endorse this Actor.
Related Actors
| Actor | Use it when |
|---|---|
| Secretary of State Business Entity Search + UCC Liens — KYB | you need specific companies by name in any state, with officers, registered agent and UCC lien filings |