US Secretary of State Business Search – 11 States, LLC & Corp avatar

US Secretary of State Business Search – 11 States, LLC & Corp

Pricing

Pay per event

Go to Apify Store
US Secretary of State Business Search – 11 States, LLC & Corp

US Secretary of State Business Search – 11 States, LLC & Corp

Search US business entities (LLCs, corporations, nonprofits, partnerships) across 11 states incl. Florida, New York and Virginia, from official Secretary of State open data: entity number, status, formation date, registered agent, address, officers and source links.

Pricing

Pay per event

Rating

0.0

(0)

Developer

justin cruz

justin cruz

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

US Secretary of State Business Entity Search: 11 states, official open data

Search LLCs, corporations, nonprofits and partnerships across 11 US states (including Florida) in one run, using official Secretary of State open data. Each result comes back as one normalized record: entity number, type, status, formation date, a business registered agent, principal and mailing address, officers, and a source link.

What it does / Who it's for / Why

  • What: searches the official business-entity registries of NY, CO, CT, OR, PA, TX, VA, DC, AK, IA and FL. You can search by name (contains, starts with, or exact), by entity number, or in list mode with no name at all, using filters such as formation date, ZIP and city. List mode gives you every LLC formed in Colorado last week, for example.
  • Who: KYB and compliance teams, lenders, B2B sales and lead-gen teams that want new-business lists, process servers and legal researchers, and journalists.
  • Why: every record comes from a free government open-data API or official bulk download. There is no scraping of search pages, no captchas and no logins. Runs are fast, the record format is stable, and each record links to its source.

Measured, not promised

Measured locally on 2026-11-04 (all 10 states, parallelism 3):

QueryResultsWall time
"blue ridge", 5 per state428.8 s
["smith","acme"], 200 per state1,94612.1 s
10 entity numbers (one per state)10~9 s
List mode: active LLCs formed since 2026-10-01, 50 per state450~5 s

Florida (opt-in, add FL to states), measured on Apify on 2026-11-04:

FL queryResultsRun timePlatform cost
List mode: active entities formed since 2026-10-20 (daily files only)2004 s$0.001
"blue ridge", 50 results5091 s (4 GB)$0.014
One entity number178 s (4 GB)$0.015
"blue ridge mountain", full scan of ~13M records24303 s (4 GB) / 195 s (8 GB)$0.063 / $0.080

FL has no query API. The State publishes a quarterly full file (1.8 GB zipped, Deflate64) and daily update files on its public SFTP server, using credentials it publishes on its Data Downloads page. The Actor reads the daily files first, then the quarterly file only when it still needs more results. Run FL with at least 4 GB of memory.

AK and IA have no query API, so each run streams their full official files (about 42 MB and 105 MB). That adds roughly 5 to 8 seconds whenever those states are included.

Sample output

{
"state": "DC",
"state_name": "District of Columbia",
"entity_name": "BLUE RIDGE CONSULTING SERVICES Inc.",
"entity_number": "250761",
"entity_type": "Foreign Business Corporation",
"entity_type_std": "corporation",
"status": "Active - In Good Standing",
"status_std": "active",
"formation_date": "2005-03-10",
"domestic_or_foreign": "Foreign",
"foreign_formation_date": "2005-03-10",
"registered_agent": {
"name": "Business Filings Incorporated",
"type": "organization",
"address": {
"line1": "1015 15TH STREET NW #1000",
"line2": null,
"city": "Washington",
"state": "DC",
"zip": "20005",
"country": null,
"full": "1015 15TH STREET NW #1000, Washington, DC 20005"
}
},
"principal_address": {
"line1": "114 Knightsridge Road",
"line2": null,
"city": "Travelers Rest",
"state": "SC",
"zip": "29690",
"country": "USA",
"full": "114 Knightsridge Road, Travelers Rest, SC 29690"
},
"annual_report_due": "04/01/2027",
"last_report_filed": "2025-06-13",
"record_last_modified": "2026-11-04",
"source_url": "https://maps2.dcgis.dc.gov/dcgis/rest/services/DCGIS_DATA/Business_Licensing_and_Grants_WebMercator/MapServer/0/query?where=FILE_NUMBER+%3D+%27250761%27&outFields=*&returnGeometry=false&f=json",
"official_record_url": "https://corponline.dlcp.dc.gov/",
"source_dataset": "DC DLCP Corporate Registration (DC GIS Business_Licensing_and_Grants layer 0)",
"data_scope": "all statuses",
"retrieved_at": "2026-11-05T05:23:20.029Z"
}

Common fields:

  • Identity: state, entity_name, entity_number, entity_type (as published) and entity_type_std, status (as published) and status_std, formation_date, jurisdiction
  • Contacts: registered_agent, principal_address, mailing_address, officers
  • Provenance: source_url, official_record_url, source_dataset, data_scope, retrieved_at

Extra fields where the state publishes them:

  • county (NY, PA)
  • naics (CT, TX)
  • annual_report_due (CT, AK, DC)
  • dissolution_date (CT)
  • status_reason and status_date (VA)
  • assumed_name (AK)
  • latitude and longitude (IA)
  • service_of_process (NY)
  • taxpayer_number and right_to_transact (TX)
  • ownership_flags (CT: woman-, veteran- or minority-owned)
  • business_email (CT, opt-in)

Privacy by design

  • A registered agent is output only when the agent is an organization, such as CT Corporation, CSC or a law firm. For an individual agent, the name and address are replaced with "type": "individual (omitted for privacy)".
  • If a principal or mailing address matches an individual agent's address, which usually means a home address, the address is dropped and the reason goes into privacy_notes.
  • officers contains names and titles only. Addresses of people are never output.

Coverage

StateSource (official)StatusesAgentOfficersFreshness
NYDept. of State, Active Corporations + all-filings history (data.ny.gov n9v6-gdp6, 63wc-4exh)all (inactive = not on active list, with filing history, former and assumed names)✓ (+ service of process)chairman/CEOdaily
COSecretary of State, Business Entities (data.colorado.gov)all✓–daily
CTSecretary of the State, Business Master + Agents + Principals (data.ct.gov)all✓✓daily
ORSecretary of State, Active Businesses (data.oregon.gov)active✓✓ (authorized reps)weekly/monthly
PADept. of State, Currently Registered Businesses (data.pa.gov)active– (registered office address)✓periodic
TXComptroller, Active Franchise Taxpayers with SOS file number (data.texas.gov)active franchise-tax entities––weekly
VASCC entity tables + Officer file (data.virginia.gov bulk downloads, cached, refreshed every 30 days)all✓✓ corporations only (see note)snapshot (corp Nov 2024, LLC Jun 2022; index refreshed every 30 days; see source_as_of)
DCDLCP Corporate Registration (DC GIS open data)all✓–daily
AKDivision of Corporations, full database downloadall + business name registrations✓–daily
IASecretary of State, Active Business Entities (Iowa Data hub, CC BY)active✓–monthly
FLDivision of Corporations, official quarterly + daily data files (public SFTP)all✓✓ (up to 6, names + titles) + FEI/EIN, annual reportsdaily

Virginia officer gap: VA officer data comes from the data.virginia.gov Officer file, which is cut off at Excel's 1,048,575-row limit. Corporations with IDs after F1923004 (about 4.8% of VA corporations) have no officers listed, though their entity records are complete. Every VA search with officers on carries a run note saying so.

Not yet supported, and why:

  • VA (official SCC weekly file) and IL (bulk data): both hosts' robots.txt disallow automated access (Disallow: /), so VA stays on the data.virginia.gov snapshots and IL is skipped.
  • OH: the business reports return 403.
  • MA: the corporate export is behind a bot challenge.
  • RI: the weekly export URL returns 404.
  • KY, WV: bulk data requires a paid subscription.
  • WA, MS, ID and the rest: search portals or script apps only. This Actor does not scrape HTML search pages.

How to use

  1. Enter a business name, several names, or entity numbers, and pick the states.
  2. Optionally filter by status, entity type, formed after/before, city or ZIP.
  3. Leave the name empty and set formed after to get a new-business list (list mode).
  4. Results go to the dataset, which has an overview view and a flat "leads" view. Per-state counts and errors go to RUN_STATS.

Example inputs

Copy one of these into the JSON input tab.

1. Name search across all default states

{ "businessName": "blue ridge" }

Returns entities whose name contains "blue ridge" in the 10 default states (up to 100 per state). In our test this returned 629 results in about 20 s.

2. Entity-number lookup (KYB / verification)

{ "entityNumbers": ["3523029"], "states": ["NY"] }

Returns the single New York record for DOS ID 3523029 (BLUE RIDGE ACCOUNTING SERVICES, INC.), with status, formation date and filing history. Our test run took about 3 s.

3. New-filings feed (newly formed LLCs)

{ "formedAfter": "2026-10-01", "entityTypes": ["llc"], "status": "active", "states": ["CO", "CT", "NY"], "maxResultsPerState": 20, "maxItems": 60 }

List mode: no name needed. Returns active LLCs formed on or after the date. Our test returned 60 LLCs formed between 2026-10-01 and 2026-11-04 in about 3 s.

Find newly formed LLCs for lead lists

New LLC filings are a common source of B2B leads. Freshly formed businesses often need a bank account, insurance, bookkeeping, a website, payroll or a registered agent. This Actor builds a new business filings list straight from official Secretary of State open data. It doesn't scrape search portals.

Step 1: choose states and a date. Leave the business name empty and set formedAfter to the start of your window, for example last Monday. List mode works in every state whose data includes a formation date. CO, CT and NY (active entities) were tested for this tutorial.

Step 2: filter to LLCs that are still active.

{ "formedAfter": "2026-10-01", "entityTypes": ["llc"], "status": "active", "states": ["CO", "CT", "NY"], "maxResultsPerState": 200 }

Add city or zip to target a local market.

Step 3: export. Use the dataset's flat leads view for CSV or Excel. Each row has the entity name, entity number, formation date, status, the registered agent where the state publishes one, the business address and a link back to the official source record.

Step 4: repeat weekly. Run it again with a new formedAfter date to pick up only the latest filings. You pay $0.002 per result returned. The final coverage summary row is free.

Good to know:

  • How fresh the data is depends on the state. CO, CT, NY and DC update daily, IA monthly. Virginia's open-data files are older snapshots. Each row's source_as_of or retrieved_at tells you how fresh it is.
  • Individuals' home addresses and sole proprietors are never output.
  • Many new LLCs list a commercial registered agent, not the owner. Treat these lists as company-level leads, not personal contact data, and follow the marketing rules that apply to you (CAN-SPAM, TCPA and state laws).
  • The Actor provides no emails or phone numbers that the states don't publish.

Use cases

Use caseHow
KYB / vendor onboardingExact name or entity number, then check status_std, formation_date and the agent
New-business leadsList mode: formedAfter = last week, status = active, filtered by ZIP or city
Registered-agent market shareSearch a state, then group by registered_agent.name
Litigation / service of processFind the registered agent (organization) and the NY service-of-process address
Due diligenceOfficers (names and titles), dissolution date, annual report due

Notes

  • status_std values:
    • active: good standing, exists, active
    • delinquent: still exists but not in good standing
    • inactive: dissolved, revoked, withdrawn, merged and similar
    • reserved
  • NY, OR, PA, TX and IA publish active entities only, so a dissolved company in those states returns no result.
  • TX data comes from the Comptroller's franchise-tax roll, which carries the SOS file number and charter date. The address is the taxpayer mailing address.
  • Requests are throttled to about 3 per second per host and retried with backoff. All sources are public and need no login.

v3 additions

  • UCC liens (CO, CT, OR) from official open data (data.colorado.gov wffy-3uut/8upq-58vz/ap62-sav4, data.ct.gov xfev-8smz, data.oregon.gov snfi-f79b).
    • mode: "liens": search liens by business debtor name; one record per lien (record_type: "ucc_lien", filing_number, lien_kind, debtor_name/address, secured_parties, filings[], status, lapse_date, image_url for OR).
    • includeLiens: true: attaches ucc_filings + ucc_summary (total, active, latest_filing_date, secured_parties) to CO/CT/OR entities by exact debtor-name match.
    • Only organization debtors/secured parties are returned. Oregon's lien dataset covers the most recent month only.
  • History (includeHistory, default on): CT filing_history, last_filing_date, name_history, former_names; CO filing_history, last_filing_date, trade_names.
  • Oregon "new last month": entities from the monthly New Businesses list that are no longer on the active list are added (new_last_month: true).

v4 additions

  • Business licenses (mode: "licenses", or includeLicenses: true to attach to CO/OR entities), from official open data. Only organization licensees are returned; sole proprietors and individuals are skipped.
StateJurisdictionDatasetNotable fields
ILCity of Chicagodata.cityofchicago.org r5kz-chrrlicense type, business activity, status, issued/expires
DEState of Delawaredata.delaware.gov 5zy2-grhrstatewide license category, valid from/to
WACity of Seattlecos-data.seattle.gov wnbq-64tbNAICS code, ownership type, phone
CODenverdata.colorado.gov s9wt-dsfzlicense type, status, expiry
LANew Orleansdata.nola.gov hjcd-grvubusiness type, start date, phone
OROLCC liquor + cannabisdata.oregon.gov srxe-qkm2, q32u-cmamlicense type, endorsements, county
VACity of Norfolkdata.norfolk.gov dpi6-sct5category, opened date
CABerkeley; Marin Countydata.cityofberkeley.info rwnf-bu3w; data.marincounty.gov jfy7-shxvNAICS, employees, ownership type
  • CO UCC collateral: collateral (descriptions) and farm_products on CO liens (data.colorado.gov 4am6-w6u4).
  • No official inactive-entity open data exists for OR, PA, TX or IA (their portals publish active lists only), so inactive records there are not available.

v5: two ways to use it

Human mode (default): type a business name, optionally pick states, press Start. Long histories are capped at 10 entries (*_count shows the full number).

AI / Agent mode (outputMode: "agent"): every field, plus one final dataset item with record_type: "coverage" (also saved as key-value record COVERAGE):

{"record_type":"coverage","run_status":"completed|no_match|failed",
"states_queried":[{"state":"CO","status":"completed|no_match|failed|partial","results":60,"seconds":5.8,"notes":[]}],
"states_skipped":[{"state":"ZZ","reason":"..."}],
"queries":[{"query":"blue ridge","kind":"name","status":"completed|no_match|failed","results":83,"by_state":{"CO":60,"OR":23}}]}

The coverage item is not a charged result.

For AI assistants

Copy this into your agent's tool description:

Tool: US Secretary of State business search (official open data only).
Input JSON: {"outputMode":"agent","mode":"entities"|"liens"|"licenses",
"businessNames":[...], "entityNumbers":[...], "states":[two-letter codes] (omit = defaults),
"matchMode":"contains"|"startsWith"|"exact", "status":"any"|"active"|"inactive"|"active_or_delinquent",
"formedAfter":"YYYY-MM-DD","formedBefore":"YYYY-MM-DD","city":"..","zip":"..",
"includeOfficers":true,"includeHistory":true,"includeLiens":false,"includeLicenses":false,
"maxResultsPerState":100,"maxItems":1000}
Entity states: NY CO CT OR PA TX VA DC AK IA, FL (opt-in, slow). Liens: CO CT OR. Licenses: IL DE WA CO LA OR VA CA.
List mode: no name, give formedAfter/formedBefore/city/zip -> new-business list.
Read the last item (record_type "coverage"): run_status, per-state status, per-query status.
"no_match" means the state was searched and has no match; "failed" means a source error, so retry or report unknown.
Never treat a state missing from states_queried as "no such business".
Each record has source_url and source_dataset; cite them.

v6 – speed

Alaska and Iowa are served from a prebuilt index of their official bulk files. The index is kept in the named key-value store sos-entities-bulk-cache and is rebuilt automatically when it is more than 7 days old. To rebuild it now, set refreshCache: true. Every AK/IA record's source_as_of shows the index date. If a rebuild fails, the Actor falls back to the old index or to a live scan. Smoke test: APIFY_TOKEN=... python3 test/smoke.py. It runs a small agent-mode query (about $0.0006, about 9 s) and exits 1 if any state fails. It can be scheduled with cron or an Apify schedule, and a scheduled run also keeps the index warm.

v6.1 – time limits and reliability

  • maxRunSecs (default 300) limits the whole run: when it is reached (or ~45 s before the run timeout), the run stops and returns the results found so far, with unfinished states marked partial.
  • stateTimeoutSecs (default 30) sets a time limit for each state. A state that runs out of time returns what it found so far and is marked partial in COVERAGE, with a note. Set it to 0 for a complete search with no limit. Florida and cache rebuilds are not limited.
  • Each HTTP request is retried 4 times with backoff. If a whole state fails before returning any results, it is retried once. Each state's status is one of completed, no_match, partial, failed or not_run.
  • The AK/IA index is split into about 1.5 MB shards. They are downloaded, unzipped and filtered in parallel, so Iowa now takes about 4.5 s instead of 16–29 s.
  • States are searched 10 at a time by default (maxConcurrency).
  • smoke.py treats partial as a warning and fails only on failed or not_run.

v6.2 – Virginia cached

Virginia is now served from a monthly (30-day) index in the sos-entities-bulk-cache store, built from the official data.virginia.gov bulk download files (Corporation, LLC, LP, Business Trust, Officers). The SQL/datastore API is no longer used because data.virginia.gov's robots.txt disallows /api/ and /datastore/; downloads respect its Crawl-delay. source_as_of carries the index build date; if the index is missing or stale, it is rebuilt (live fallback). Duplicate rows in the source files are de-duplicated.