Business Entity List Export: LLCs & Corporations by State avatar

Business Entity List Export: LLCs & Corporations by State

Pricing

from $1.70 / 1,000 company row delivered (first 10,000 per run)s

Go to Apify Store
Business Entity List Export: LLCs & Corporations by State

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

Scott Helvick

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

11 hours ago

Last modified

Security

Limited permissions

Share

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 maxResults rows.
  • 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: includeUcc adds lien fields in Florida, Connecticut, Colorado and Vermont; hasActiveLien keeps 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

ApproachCompanies without a web presenceFormation date and statusSame columns across statesContact details (email/phone)
Map and directory lead scrapersnonoyesoften
B2B contact databasespartlyrarelyyesyes
New-filing feedsnew filings onlyyesvariessometimes
State bulk files and records requestsyesyesno, one layout per stateno
This Actoryesyesyesno (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

StateSourceStatusOfficersRegistered agent
AKAlaska Division of Corporations, Business and Professional Licensingactive onlyyesyes
COColorado Secretary of State (public domain)active and inactivenoyes
CTConnecticut Secretary of the Stateactive and inactiveyes, business addresses onlyyes
DCDC Department of Licensing and Consumer Protectionactive and inactivenoyes
FLFlorida Department of State, Division of Corporations (Sunbiz)active and inactiveyesyes
IAIowa Secretary of State (Iowa Data Hub)active onlynoyes
ILIllinois Secretary of State (corporations and LLCs)active and inactiveyesyes
MSMississippi Secretary of Stateactive and inactivenono
MTMontana Secretary of Stateactive and inactivenono
NHNew Hampshire Department of Stateactive and inactivenoname only
NYNew York Department of State (OPEN-NY)active onlychief executive where filedyes
OROregon Secretary of Stateactive onlyauthorized representativesyes
PAPennsylvania Department of Stateactive onlyyesno
RIRhode Island Department of Statenot published: use entityStatus: "any"noyes
TXTexas Comptroller of Public Accountsactive franchise taxpayers; Secretary of State status code per rownono
VAVirginia State Corporation Commissionactive and inactiveyesyes
VTVermont Secretary of Stateactive and inactiveyesyes

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

FieldTypeRequiredDefaultDescription
statesarray of stringsyes--Two-letter codes, e.g. ["CO"] or ["FL", "NY"]. Exported one after another.
entityStatusstringanyany, active or inactive. any also includes entities whose standing is unclear.
entityTypesarray of stringsallAny of llc, corp, nonprofit, lp, other.
formedFromstring--Formed or registered on or after this date, YYYY-MM-DD.
formedTostring--Formed or registered on or before this date, YYYY-MM-DD.
citystring--Principal-office city (falls back to the mailing city), e.g. Denver.
zipstring--5-digit principal-office ZIP (falls back to the mailing ZIP), e.g. 80202.
nameKeywordstring--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.
countystring--County name, case-insensitive, e.g. Denver.
homeStatestring--Two-letter state of formation, e.g. DE for Delaware companies registered in the exported states.
includeUccbooleanfalseAdd a UCC lien summary in FL, CT, CO and VT; other states export without lien data and get a free notice.
hasActiveLienbooleanfalseOnly companies with at least one active UCC filing; implies the summary. States without lien data are skipped with a free notice.
orderstringnewestnewest (newest-formed first) or oldest, across the whole state. Companies with no formation date come last in either order.
registeredAgentstring--Every company whose registered agent has this name; combines with every other filter. See matching rules below.
countOnlybooleanfalseFree count preview: one notice row per state, no companies exported and no row charges.
maxResultsinteger1000Most 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
}
FieldMeaning
name, entity_idLegal name and the state's own entity or file number.
entity_type, entity_type_classType as filed, and the normalized class the entityTypes filter uses.
status, status_classStatus as filed, and active / inactive / unknown.
formation_date, state_of_formationFormation 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_stateTwo-letter state of formation; null where the state publishes none (IA, MT, NH, PA, TX).
county, county_sourceCounty, and where it came from: source (the state's register) or zip (the principal-office ZIP).
principal_address, mailing_address, registered_agent_addressOne line each, plus separate line 1, line 2, city, state and ZIP columns (e.g. principal_city, registered_agent_zip).
registered_agent_nameAs 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_registerCredit line, licence (where one applies) and the register file the row came from.
source_as_ofDate of the registry copy the row was read from.
status_as_ofDate of the filing that last set the status, where the state publishes it.
ucc_active_filingsNumber of active UCC filings matched to the registered name; 0 means checked, none active.
ucc_latest_filing_dateDate of the newest matched UCC filing.
ucc_latest_secured_partyFirst secured party (lender) on the newest matched filing.
ucc_next_lapse_dateNext lapse date in the matched lien summary, where available.
ucc_as_ofDate 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): add shelvick/bulk-business-entity-list as 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 onto states, entityStatus, entityTypes and formedFrom.

  • Apify Python SDK:

    from apify_client import ApifyClient
    client = 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/runs and poll the run, then read the dataset. run-sync-get-dataset-items suits 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_classMeaningWhat to do
lien_not_coveredLien data is available only in FL, CT, CO and VTWith includeUcc, other covered states export without lien data; with hasActiveLien, they are skipped. The notice is free
not_coveredThe state isn't available for bulk listsUse a covered state
malformed_inputAn 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_unavailableThat state's data couldn't be read in this runRun that state again
count_onlyCount preview; matched_count gives the matches in that state, with no row chargesRun again with countOnly: false and maxResults at least the count to export
no_matchNo companies match the filters in that stateWiden the filters
max_resultsmaxResults reached; withheld_count says how many more matchRaise maxResults
budget_exhaustedMax cost per run reached; withheld_count says how many more matchRaise Max cost per run
deadlineThe run's time limit was reachedRaise the timeout, or split by formedFrom/formedTo ranges
  • Freshness: source_as_of is 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_unavailable notice explains the stop. Rerun the state, or run without includeUcc and hasActiveLien to 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/formedTo ranges 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, county comes 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.

ActorUse it when
Secretary of State Business Entity Search + UCC Liens — KYByou need specific companies by name in any state, with officers, registered agent and UCC lien filings