# Secretary of State Business Search, KYB & New LLCs - 28 States (`scrapersdelight/new-business-filings-contact-scraper`) Actor

KYB business entity search across 28 US states + DC Secretary of State registers: company name in, entity id, status, type, formation date, registered agent, officers, addresses and filing history out. Plus new LLC and corporation filings by date from 11 states. $0.0015 per record.

- **URL**: https://apify.com/scrapersdelight/new-business-filings-contact-scraper.md
- **Developed by:** [Scrapers Delight](https://apify.com/scrapersdelight) (community)
- **Categories:** Lead generation, Business, Developer tools
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.50 / 1,000 per business record returneds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Secretary of State Business Search (KYB) & New LLC Filings — 28 States + DC

Look a company up in the **official business registers of 28 US states and the District of Columbia** in one
run (27 states + DC by default; Alaska when you select it), and get back one normalized record per matching entity: legal name, the state's entity id, type, status,
formation date, jurisdiction, principal and mailing address, **registered agent**, **officers**, filing history and
former names — wherever that state publishes them. Every record links back to the register it came from.

The same actor also pulls **brand-new LLCs and corporations by filing date** from 11 states' own records
(the new-filings mode) — see [New business filings](#new-business-filings).

Official state registers only. No login, no API key, no CAPTCHA solving, no browser.

***

### Quick start

One company, the default contains-match, every covered state:

```json
{ "companyName": "Acme Holdings" }
```

A list of legal names checked exactly, in five states:

```json
{ "companyNames": ["Tesla, Inc.", "Walmart Inc.", "Starbucks Corporation"], "matchMode": "exact", "states": ["DE", "FL", "NY", "TX", "WA"] }
```

A fast name-and-status check (no detail pages):

```json
{ "companyName": "Evergreen", "states": ["OR", "WA"], "includeDetails": false, "maxResultsPerState": 100 }
```

Without a company name the run searches the demo (`Tesla` in CO, CT, DC, NY and TX, 5 per state) and says so.

### What one record looks like

A real record from the verified platform run (Florida, `companyName: "Tesla"`; the filing history is shortened
from 26 entries to 2, and fields that are `null` for this record are left out — every record carries all 66 fields):

```json
{
  "recordType": "entity",
  "query": "Tesla",
  "matchMode": "contains",
  "state": "FL",
  "stateName": "Florida",
  "entityId": "F09000002525",
  "entityName": "TESLA FLORIDA, INC.",
  "entityType": "Foreign Profit Corporation",
  "entityKind": "corporation",
  "isForeign": true,
  "jurisdiction": "TX",
  "status": "ACTIVE",
  "filingDate": "2009-06-23",
  "address": "1 Tesla Road, Austin, TX 78725",
  "addressType": "principal",
  "mailingAddress": "1 Tesla Road, Austin, TX 78725",
  "registeredAgentName": "CT CORPORATION SYSTEM",
  "registeredAgentAddress": "1200 S PINE ISLAND RD, PLANTATION, FL 33324",
  "registeredAgentType": "organization",
  "agentIsCommercial": true,
  "officers": [
    { "name": "Musk, Elon", "title": "Director", "address": "1 Tesla Road, Austin, TX 78725" },
    { "name": "Stewart, Emmanuelle", "title": "Assistant Secretary", "address": "1 Tesla Road, Austin, TX 78725" },
    { "name": "Musk, Elon", "title": "President", "address": "1 Tesla Road, Austin, TX 78725" }
  ],
  "fein": "91-2197729",
  "formerNames": [{ "name": "TESLA, INC.", "date": null }],
  "filingHistory": [
    { "date": "2026-04-22", "type": "ANNUAL REPORT", "number": null },
    { "date": "2024-08-16", "type": "Amendment", "number": null }
  ],
  "detailsFetched": true,
  "sourceDataset": "Florida Division of Corporations (Sunbiz) - entity name search",
  "sourceUrl": "https://search.sunbiz.org/Inquiry/CorporationSearch/SearchResultDetail?inquirytype=EntityName&directionType=Initial&searchNameOrder=TESLA%20F090000025251&aggregateId=forp-f09000002525-435a7930-3365-476a-95af-a6cee0ce169f&searchTerm=TESLA&listNameOrder=TESLA%20F090000025251",
  "retrievedAt": "2026-09-30T05:46:30.100Z"
}
```

Florida's name index still lists this registration under its former name `TESLA, INC.`, which is why the search
for "Tesla" found it and `formerNames` carries that name.

### Which states are covered, and what each publishes

Every register was verified live against real searches (`tesla`, an exact legal name, a broad name that pages,
and a name that matches nothing) from the Apify platform's own network. Fill is the share of those captured
records with the field populated, with detail pages on. `—` = the register does not publish it.

| State | Official source | Name search | Statuses | Records measured | Status | Formed | Address | Registered agent | Officers | Filing history |
|---|---|---|---|---|---|---|---|---|---|---|
| AK | Alaska Division of Corporations — corporations + officials database downloads (**only when selected**) | contains | active only | 57 | 100% | 100% | 100% | 100% | 100% | — |
| AL | Alabama Secretary of State — Business Entity Records | all words | all | 71 | 100% | 100% | 45% | 100% | 73% | 100% |
| AR | Arkansas Secretary of State — corporation search | all words | all | 76 | 100% | 69% | 50% | 56% | 56% | — |
| AZ | Arizona Corporation Commission — business register (listing level) | contains | all | 161 | 100% | — | 100% | — | — | — |
| CO | Colorado Secretary of State — Business Entities open data | contains | all | 71 | 100% | 100% | 100% | 100% | — | — |
| CT | Connecticut Business Registry open data (master + agents + principals) | contains | all | 71 | 100% | 100% | 100% | 100% | 82% | — |
| DC | DC DLCP — Corporate Registration (DCGIS open data) | contains | all | 71 | 100% | 100% | 100% | 100% | — | — |
| DE | Delaware Division of Corporations — ICIS name search (free part) | starts with | all | 57 | — | 100% | — | 100% | — | — |
| FL | Florida Division of Corporations (Sunbiz) | starts with | all | 72 | 100% | 100% | 100% | 100% | 100% | 100% |
| HI | Hawaii DCCA Business Registration Division — Hawaii Business Express | contains | all | 71 | 100% | 100% | 100% | 100% | 82% | 100% |
| IA | Iowa Secretary of State — Active Business Entities (Iowa Data Hub) | contains | active only | 71 | 100% | 100% | 100% | 100% | — | — |
| ID | Idaho Secretary of State — SOSBiz | contains | all | 1,002 | 100% | 100% | 82% | 64% | — | 100% |
| KY | Kentucky Secretary of State — Business Entity Search | starts with | all | 71 | 100% | 82% | 100% | 100% | 100% | 100% |
| MA | Massachusetts Corporations Division — corporate database | starts with | all | 71 | — | 100% | 82% | 100% | 64% | 100% |
| MN | Minnesota Secretary of State — Business Filings search | contains | all | 72 | 100% | 100% | 100% | 67% | 75% | 100% |
| MO | Missouri Secretary of State — business entity search | contains | all | 71 | 100% | 100% | 27% | 82% | 18% | 100% |
| MS | Mississippi Secretary of State — Business Services public search | contains | all | 161 | 100% | 100% | 100% | 100% | 100% | — |
| ND | North Dakota Secretary of State — FirstStop | contains | all | 68 | 100% | 100% | 88% | 88% | — | 100% |
| NJ | New Jersey Division of Revenue — Business Name Search | contains | all | 71 | — | 100% | 100% | — | — | — |
| NM | New Mexico Secretary of State — Enterprise business search | contains | all | 67 | 100% | 100% | — | 100% | 86% | 100% |
| NY | New York Department of State — Public Inquiry | contains | all | 77 | 100% | 100% | 12% | 76% | 12% | — |
| OR | Oregon Secretary of State — Active Businesses open data | contains | active only | 39 | 100% | 100% | 100% | 100% | — | — |
| PA | Pennsylvania Department of State — Registered Businesses open data | contains | active only | 71 | 100% | 100% | 100% | — | 100% | — |
| SD | South Dakota Secretary of State — business name availability | exact name only | active only | 3 | — | — | — | — | — | — |
| TX | Texas Comptroller franchise-tax account search (SOS status + file number) | starts with | all | 63 | 78% | 78% | 100% | 78% | — | — |
| WA | Washington Secretary of State — CCFS register | starts with | all | 71 | 100% | 100% | 82% | 100% | 100% | — |
| WI | Wisconsin Department of Financial Institutions — Corporate Records | contains | all | 67 | 100% | 100% | 100% | 100% | — | 100% |
| WV | West Virginia Secretary of State — Business Organizations | contains | all | 77 | 47% | 100% | 71% | 59% | 71% | 35% |
| WY | Wyoming Secretary of State — WyoBiz | contains | all | 87 | 100% | 100% | 100% | 100% | 100% | 100% |

**Name search** is what the state's own search can do. A register that only matches from the start of the name
(`starts with`) returns starts-with matches in contains mode; `all words` finds names containing every word;
South Dakota answers exact names only. **Active only** registers list current entities, so a no-match there does
not prove an entity never existed. Florida sits behind Cloudflare, which now and then challenges requests from cloud
networks (during verification it was challenged in 1 of 3 all-state runs); such a search is reported as not answered. New York's register names a service-of-process recipient (`serviceOfProcessName` / `serviceOfProcessAddress`)
and a registered agent only when one was appointed;
West Virginia names a "notice of process" contact the same way. Contact fields where a register publishes them:
Connecticut the business email, the agent's phone and email and NAICS; Washington the agent's email; Delaware the
agent's phone; Mississippi NAICS.

#### States not searched, and why

| State | Why |
|---|---|
| CA | bizfile Online answers every search with an Imperva "blocked" (HTTP 429); the state's API needs a key issued to government agencies only. |
| GA | Cloudflare challenge on every eCorp page from datacenter networks. |
| IL | The online search resets every search request (Akamai); the bulk files are ~340 MB. |
| IN | AWS WAF human-verification challenge on every page. |
| KS | AWS WAF CAPTCHA on every page. |
| LA | A reCAPTCHA token is required on every search. |
| MD | A Cloudflare Turnstile token is required on every search and record. |
| MI | Cloudflare challenge on every page; the legacy host refuses TLS. |
| MT | Cloudflare "Security Check" on every page. |
| NC | Cloudflare challenge on every search page. |
| NE | A reCAPTCHA token is required on every search. |
| NV | Imperva on every page. |
| OH | Every Ohio SOS host answered a Cloudflare challenge inside a "Website Maintenance" page. |
| OK | A Cloudflare Turnstile token is required on every search. |
| SC | The search answers "Invalid Captcha" without a solved CAPTCHA. |
| TN | A Cloudflare Turnstile token is required on every search. |
| ME, NH, RI, UT, VT | Awaiting review: their search pages carry a CAPTCHA (reCAPTCHA or Turnstile), even where the register does not check it. |
| VA | A reCAPTCHA token is required on every search; the state's open-data copy stops in 2024. |

The run's `COVERAGE` record lists every state with its source, name-search behaviour, statuses and fields.

### Input (entity search)

| Field | Default | What it does |
|---|---|---|
| `companyName` | — | The business to look up, e.g. `Tesla` or `Acme Holdings LLC`. |
| `companyNames` | `[]` | Up to 100 businesses in one run; each is searched in every selected state. Duplicates are removed. |
| `states` | `[]` = all | Two-letter codes. Empty searches every covered state except Alaska, which is searched when you select it (its register is a 79 MB download that takes 40–115 seconds). |
| `matchMode` | `contains` | `contains`, `starts` (name begins with your words) or `exact` (the registered legal name; punctuation and spacing ignored, so `Tesla Inc` finds `TESLA, INC.`). |
| `maxResultsPerState` | `25` | Cap per name, per state (1–500). |
| `includeDetails` | `true` | Opens each match's detail page where the register keeps officers, the agent, addresses and filing history there. Off = a faster name, status and id check. Same price either way. |
| `residentialFallback` | `true` | When a register refuses the direct connection twice, try once more through a US residential proxy before reporting it as not answered. |

Leave `mode` at `entitySearch` (the default).

### What happens when a register does not answer

Each name × state search ends one of three ways, recorded in `RUN_SUMMARY.searches`:

- **found** — records delivered (and charged);
- **no-match** — the register answered and nothing matched (free);
- **not-answered** — the register blocked, timed out or answered something that failed a check (free). It is
  named in `RUN_SUMMARY.statesNotAnswered` and in the final status message, never reported as "no match".

A register whose own count of matches differs from what was read is reported as not answered and delivers
nothing for that search — a short answer never passes as a complete one. The run fails only when no register
answered at all.

### Output fields

| Field | Description |
|---|---|
| `recordType` | `entity` (entity search) or `new-filing` (new-filings mode) |
| `query`, `matchMode` | The name this record matched, and how |
| `state`, `stateName` | The register the record came from |
| `entityId` | The state's own entity / file / document number |
| `entityName` | Legal name as registered now |
| `entityType`, `entityTypeCode`, `entityKind` | Type in the state's words, its code where it uses codes, and `llc` / `corporation` / `nonprofit` / `partnership` / `assumed-name` / `other` |
| `isForeign`, `jurisdiction` | Formed elsewhere and registered here; state or country of formation |
| `status`, `subStatus`, `standing` | Status as published; standing where the register publishes it separately (HI, ID, KY, ND, TX, WV, WY) |
| `filingDate`, `effectiveDate`, `dissolvedDate`, `expirationDate` | Formation / registration date and the other dates the register publishes (YYYY-MM-DD) |
| `address`, `street`, `city`, `addressState`, `zip`, `country`, `addressType` | Principal (or business / mailing) address and its parts |
| `mailingAddress`, `county`, `latitude`, `longitude` | Where published |
| `registeredAgentName`, `registeredAgentAddress` | The registered agent |
| `registeredAgentType`, `agentIsCommercial` | `person` / `organization` / `self`, and whether the agent is a registered-agent, formation, law or accounting firm |
| `registeredAgentPhone`, `registeredAgentEmail` | Where published (CT phone + email, DE phone, WA email) |
| `serviceOfProcessName`, `serviceOfProcessAddress` | New York service of process; West Virginia notice of process |
| `officers` | `[{name, title, address}]` — officers, directors, managers, members, organizers or governing persons as the register lists them |
| `contactName`, `contactRole` | The first person among the officers, else a person registered agent |
| `businessEmail`, `businessEmailType`, `businessPhone` | Where published (CT business email; new filings: CT) |
| `naicsCode`, `naicsDescription`, `fein`, `annualReportDueDate`, `taxpayerNumber` | Where published |
| `formerNames` | `[{name, date}]` earlier legal names (and the name a search matched when it was a former one) |
| `filingHistory` | `[{date, type, number}]` filed documents where the register lists them |
| `detailsFetched` | `true` when the detail page was read; `false` = listing fields only; `null` = the source has no separate detail |
| `sourceDataset`, `sourceUrl`, `sourceFreshness` | The register, a link to the record (or the search page where the register has no per-record link), and how current it is |
| `sourceFields` | Anything else the register publishes for the record, as published |
| `retrievedAt` | When the record was read |
| `filingType`, `recordedDate`, `daysSinceFiling`, `filerName`, `filerAddress`, `ownershipFlags`, `purpose`, `sourceFile`, `officersTruncated` | New-filings fields (see below); `daysSinceFiling` is also filled in entity search |

***

### New business filings

Set `mode` to `newFilings` to pull **brand-new LLCs, corporations, nonprofits and partnerships** registered in a date
window, read from 11 states' own records: Colorado, Connecticut, the District of Columbia, Florida, Iowa,
Mississippi, New York, Oregon, Pennsylvania, Rhode Island and Texas.

```json
{ "mode": "newFilings", "states": ["CT", "NY", "MS"], "daysBack": 7, "entityKinds": ["llc"], "maxItems": 500 }
```

| State | Source | Fresh | Address | Registered agent | Contact name | Email / phone |
|---|---|---|---|---|---|---|
| CO | Colorado SOS open data | daily | 100% principal | 100% | 21–56% | — |
| CT | Connecticut Business Registry | daily | 97–99% | 100% | 94–99% | business email 100%, agent phone 94%, agent email 94–96% |
| DC | DC Corporate Registration (DCGIS) | daily | 100% | 100% | 46–56% | — |
| FL | Division of Corporations daily files (public SFTP) | daily files | 100% (no state in the file) | 100% | 94–96% | — |
| IA | Iowa Data Hub, active entities | ~monthly | 99–100% home office | 100% | 62–69% | — |
| MS | Secretary of State corporate reporting grid | live | 97–100% principal, county 95–98% | — | — | NAICS 97–100% |
| NY | Department of State: active corporations + daily filings | daily | not published | 39–65% named agent, 100% service of process | 23–55% | — |
| OR | Oregon SOS active businesses | daily | 97–98% | 72–80% | 69–83% | — |
| PA | Department of State registered businesses | ~monthly | 100% | not published | 91–92% | — |
| RI | Secretary of State weekly export of new entities | weekly | not published | 100% | 75–83% | — |
| TX | Comptroller franchise taxpayers (SOS charter date) | weekly | 100% mailing | not published | — | — |

Measured on real filings in two sampling frames per state (the newest full day(s) and a window about three weeks
earlier). Iowa and Pennsylvania refresh about monthly (give them a 45–60 day window) and Texas weekly; when a state
has nothing in your window yet, the run says so in the status message and `RUN_SUMMARY.notes` — never a silent
zero. Mississippi name reservations are not entities and are excluded. Florida and Rhode Island are selected by the
date the state published the file (`recordedDate`).

| Field | Default | What it does |
|---|---|---|
| `states` | `[]` = all 11 | States for new filings. |
| `daysBack` | `7` | Filings from this many days ago through today (each state's own date). |
| `sinceDate` / `untilDate` | — | A fixed window (`YYYY-MM-DD`) instead of `daysBack`. |
| `entityKinds` | all | `llc`, `corporation`, `nonprofit`, `partnership`, `assumed-name` (Oregon DBAs), `other`. |
| `includeForeign` | `true` | Off = only businesses formed in the state. |
| `excludeCommercialAgents` | `false` | Keep only filings whose registered agent is not a commercial service (the owner side). |
| `requireContact` | `false` | Keep only filings with a business email, an agent phone or a named contact. |
| `zipPrefixes` | `[]` | Keep only addresses whose ZIP starts with one of these. |
| `nameKeywords` | `[]` | Keep only names containing one of these words (sent to the source as a filter where it supports one). |
| `onlyNew` | `false` | Monitor mode: every filing is delivered once across runs with the same filters. |
| `maxItems` | `100` | The cost cap, shared fairly across the selected states. |

Every new-filings run writes a `RUN_SUMMARY` with, per state, the source's own count for your window, the newest
filing it holds, and how many records were read, delivered, filtered and excluded. A state read to the end must
yield exactly the source's own count, or the run fails loudly after delivering every healthy state.

### Pricing

**$0.0015 per record delivered** — an entity-search match or a new filing; $1.50 per 1,000. No start fee.
Searches that match nothing, registers that did not answer, duplicates and records removed by your filters are
never charged.

### FAQ

**Why do some states return fewer fields?** Because they publish fewer. Delaware's free search shows the name,
type, formation date and registered agent but sells the status; New Jersey's free name search shows no status or
agent; Arizona and South Dakota are listing-level. The table above gives the measured fill per state, and
`COVERAGE` says the same per run.

**Can one run check many companies?** Yes — up to 100 names in `companyNames`; each is searched in every selected
state, one search per state at a time.

**How fast is it?** Open-data and API registers answer in 1–5 seconds; registers that limit request rates (Missouri,
Idaho, Wyoming, North Dakota) take 20–90 seconds for five detailed records, and the run finishes
when the slowest selected state does. Choose `states` and switch `includeDetails` off for the fastest checks.

**Is the data current?** Entity search reads each register live at run time, except the open-data registers
(CO, CT, DC, IA, OR, PA — refreshed daily to monthly) and Alaska's database download; `sourceFreshness`
says which on every record.

**Which export keeps the structure?** JSON. Officers, former names and filing history are arrays; CSV and Excel
flatten them.

# Actor input Schema

## `mode` (type: `string`):

Entity search (KYB): look company names up in each state's official business register. New filings: pull brand-new LLCs and corporations registered in a date window.

## `companyName` (type: `string`):

The business to look up, e.g. Tesla or Acme Holdings LLC. Searched in every selected state's register.

## `companyNames` (type: `array`):

Several businesses in one run (up to 100). Each name is searched in every selected state; duplicates are removed.

## `states` (type: `array`):

Which states to search. Leave empty for every state the chosen mode covers: 29 registers in entity search (Alaska only when you select it: its register is a 79 MB download), 11 in new filings. Each option says which mode covers it; a state the chosen mode does not cover is skipped and named in the run summary.

## `matchMode` (type: `string`):

Contains: every business whose name includes your words. Starts with: names beginning with them. Exact: the registered legal name (punctuation and spacing ignored, so "Tesla Inc" finds "TESLA, INC."). Registers whose own search only matches from the start of the name return starts-with matches in contains mode (see the README table).

## `maxResultsPerState` (type: `integer`):

Cap on records per company name in each state. Raise it for broad names that match many businesses.

## `includeDetails` (type: `boolean`):

Open each matching record's detail page where the register keeps officers, the registered agent, addresses and filing history there. Off = a faster name, status and id check. Same price either way.

## `residentialFallback` (type: `boolean`):

When a register refuses the direct connection twice, try once more through a US residential proxy before reporting it as not answered.

## `daysBack` (type: `integer`):

New filings from this many days ago through today (each state's own local date). Ignored when "Filed on or after" is set. Florida and Rhode Island are selected by the date the state published the file. Max 366.

## `sinceDate` (type: `string`):

Optional fixed start date for new filings. Overrides "Days back".

## `untilDate` (type: `string`):

Optional end date for new filings. Defaults to today.

## `entityKinds` (type: `array`):

New filings: keep only these kinds (empty = all). "assumed-name" is an Oregon assumed business name (DBA).

## `includeForeign` (type: `boolean`):

New filings: foreign = formed in another state or country and registered here (often an existing company expanding). Switch off to keep only businesses formed in the state.

## `excludeCommercialAgents` (type: `boolean`):

New filings: drop filings whose registered agent is a commercial registered-agent, formation, law or accounting firm. What remains lists the owner, an insider or the business itself as agent. Unclassified agents are kept.

## `requireContact` (type: `boolean`):

New filings: keep only filings that carry a business email, an agent phone, or a named contact person.

## `zipPrefixes` (type: `array`):

New filings: keep only filings whose address ZIP starts with one of these (e.g. 331 for Miami, 80202). Rhode Island publishes no business address, so a ZIP filter removes its filings.

## `nameKeywords` (type: `array`):

New filings: keep only entities whose name contains one of these words (case-insensitive), e.g. roofing, dental. Sent to the source as a filter where it supports one.

## `onlyNew` (type: `boolean`):

New filings: remember every filing delivered with these filters and skip it on later runs - schedule the actor daily with a 7-14 day window and every filing is delivered and charged once.

## `maxItems` (type: `integer`):

New filings: stop after this many filings (the cost cap), shared fairly across the selected states.

## `socrataAppToken` (type: `string`):

New filings: optional free app token from any Socrata portal (e.g. data.colorado.gov) for very large runs. Not needed normally.

## `proxyConfiguration` (type: `object`):

New filings: every source is a public government feed, so a direct connection is the default. A request that fails direct is retried once through a US residential proxy automatically.

## Actor input object example

```json
{
  "mode": "entitySearch",
  "companyName": "Tesla",
  "companyNames": [],
  "states": [
    "CO",
    "CT",
    "DC",
    "NY",
    "TX"
  ],
  "matchMode": "contains",
  "maxResultsPerState": 5,
  "includeDetails": true,
  "residentialFallback": true,
  "daysBack": 7,
  "entityKinds": [],
  "includeForeign": true,
  "excludeCommercialAgents": false,
  "requireContact": false,
  "zipPrefixes": [],
  "nameKeywords": [],
  "onlyNew": false,
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `records` (type: `string`):

The dataset: one item per business entity (entity-search matches, or new filings).

## `runSummary` (type: `string`):

Per state and name: found / no match / not answered (with the reason), the register's own count where it publishes one, records delivered, and field fill for this run.

## `coverage` (type: `string`):

Entity search: per state, the official source, how its name search matches, which statuses it exposes, and which fields it publishes.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "entitySearch",
    "companyName": "Tesla",
    "states": [
        "CO",
        "CT",
        "DC",
        "NY",
        "TX"
    ],
    "maxResultsPerState": 5,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapersdelight/new-business-filings-contact-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "entitySearch",
    "companyName": "Tesla",
    "states": [
        "CO",
        "CT",
        "DC",
        "NY",
        "TX",
    ],
    "maxResultsPerState": 5,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapersdelight/new-business-filings-contact-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "entitySearch",
  "companyName": "Tesla",
  "states": [
    "CO",
    "CT",
    "DC",
    "NY",
    "TX"
  ],
  "maxResultsPerState": 5,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call scrapersdelight/new-business-filings-contact-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapersdelight/new-business-filings-contact-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/B6mhkeNyoRCBwPcjN/builds/xKRrQZdVGU5EmRVuG/openapi.json
