← Guides

How-to

How to run US Business Entity Search (Secretary of State)

Step-by-step: export newly formed LLCs or look up a company in the Colorado, Connecticut, New York and Oregon business registries, and read the rows that come back.

You want one of two things from a Secretary of State registry. Either a list: every LLC formed since last month, every active company in a city, every business with “roofing” in its name. Or an answer: is this company registered, is it in good standing, who is its registered agent. Each state publishes its registry its own way: Colorado says Good Standing and DLLC, Connecticut says Active and LLC and keeps agents and officers in separate datasets, and Oregon lists each business as several role rows (principal office, mailing address, agent, representative). This actor reads each state’s official open-data registry live and returns the same columns from every state.

Be plain about the scope before you spend anything: four states today, Colorado, Connecticut, New York and Oregon. More are being added one at a time; the States field always lists exactly what is available.

What you’ll need

An Apify account. No API key, no proxy: the registries are open data (data.colorado.gov, data.ct.gov, data.ny.gov, data.oregon.gov) and the actor queries them directly.

Step 1: Open the actor

Open US Business Entity Search & Leads Scraper (Secretary of State) on the Apify Store and press Try for free. This site’s actor page shows its health and pricing.

Step 2: Pick a mode

Export returns every business in the picked states that matches your filters. Lookup finds the companies you name. Leave Mode on Auto and it picks lookup when you fill Business names or entity IDs, export otherwise.

FieldWhat it does
modeexport, lookup or auto
statesCO, CT, NY, OR; empty = all
queriesLookup: company names (matched anywhere in the name) or the state’s entity ID
entityTypesLLC, Corporation, Nonprofit, Limited Partnership, LLP, General Partnership, Cooperative, Trust: one list mapped onto each state’s own types
statusesActive means in business in every state (Colorado: Good Standing or Exists); other words match the state’s own statuses
formedAfter / formedBeforeFormation date window: the newly-formed-companies filter
citiesPrincipal office city
nameKeywordsName contains any of these words
minYearsInBusiness / maxYearsInBusinessActive companies formed in that state at least / at most N years ago
annualReportDueAfter / annualReportDueBeforeConnecticut only
naicsCodesNAICS prefixes, Connecticut only
ownedByWoman / minority / veteran / LGBTQI / disability-owned, from Connecticut’s survey
includeOfficersAdd officers or representatives with a business address (CT, OR)
maxResultsRows per state, up to 100,000

Every filter runs at the state’s own database, so maxResults: 100 means 100 matching rows per state, not 100 rows filtered down to a handful. A filter a state cannot answer (NAICS in Colorado, a status Oregon does not publish) is never silently ignored: that state returns a free notice row saying so, and the other states run normally.

A working export, active LLCs formed since October 6:

{
  "mode": "export",
  "states": ["CO", "CT", "OR"],
  "entityTypes": ["LLC"],
  "statuses": ["Active"],
  "formedAfter": "2026-10-06",
  "maxResults": 100
}

A working lookup, by name and by Connecticut business ID:

{
  "mode": "lookup",
  "states": ["CT"],
  "queries": ["Serve & Sip Cafe", "3545105"],
  "maxResults": 10
}

Step 3: Run it

Press Start. Each state is a few live queries, so a run of a few hundred rows takes seconds. The registered agent (and officers, when asked) are joined only for the rows you receive.

A lookup that finds nothing in a state returns a free no_match notice for that state. If a state’s portal refuses or times out, you get a free blocked notice for it and the other states still return; nothing is charged for notice rows.

Step 4: Read the output

A real Connecticut row, with includeOfficers on:

{
  "state": "CT",
  "entity_id": "3545105",
  "entity_name": "Serve & Sip Cafe L.L.C.",
  "entity_type": "Limited Liability Company",
  "status": "Active",
  "formation_date": "2026-11-04",
  "years_in_business": 0,
  "jurisdiction": "Connecticut",
  "principal_street": "61 E Industrial Rd",
  "principal_city": "Branford",
  "principal_zip": "06405-6509",
  "agent_name": "Brian Gallagher",
  "agent_street": "61 E Industrial Rd",
  "annual_report_due": "2027-03-31",
  "officers": [{"name": "Brian Gallagher", "city": "Branford"}],
  "source_url": "https://data.ct.gov/resource/n7gp-d28j.json?id=001eq00001hDPvNAAW"
}

The core columns are the same in every state and null where a state does not publish them:

  • Colorado (every status, 3.1 million entities): status, formation date, principal and mailing address, registered agent. No officers.
  • Connecticut (1.3 million): adds NAICS industry, annual report due date, business email, the ownership survey flags, agent email and phone, and officers with includeOfficers.
  • New York (4.3 million active entities): active only. Corporations that filed a biennial statement have a principal office and their CEO’s name; every other entity, including every new LLC, has only the address the Department of State mails legal papers to, often a registered-agent or formation-service office. That address fills the principal columns with address_is_mailing: true, and process_name says who receives the mail. Adds county.
  • Oregon (570,000 active businesses): active businesses only, so every Oregon row is Active. Adds county, annual_report_anniversary and authorized representatives with includeOfficers.

formation_date is filled only for a company formed in that state. A company formed elsewhere and registered to do business there gets registered_in_state_since instead, so a Delaware corporation’s Colorado registration date is never passed off as its age. years_in_business is whole years since the formation date, for active companies only. Addresses are business addresses: the actor never returns an agent’s or officer’s home address, even where the state publishes one.

Step 5: Export it

Open the Dataset tab and export to CSV, JSON or Excel, or read the same rows from the API. For a new-business feed, schedule the export daily and move formedAfter forward with it: the actor keeps no memory between runs, so an unchanged date returns (and charges for) the same rows again.

What it costs

$0.0015 per business entity returned: 1,000 rows is $1.50. Notice rows are free, and a lookup that finds nothing costs nothing. Apify platform usage is billed separately, and this is plain JSON with no browser, so that part is small.

Where the data comes from

The Colorado, Connecticut and Oregon Secretary of State registries and the New York Department of State’s active corporations, published on each state’s Socrata open-data portal and refreshed daily (Oregon: about weekly). Every run reads them live.

See it used

For businesses licensed by a city rather than registered with a state, see the HdL Municipal Business License Lookup.

Last updated 2026-11-05