# US Business Entity Search & Status Check — 7 States (`nexgensignal/us-business-entity-status-check`) Actor

Check company status across official state registries in one run: New York, Texas, Florida, Pennsylvania, Colorado, Connecticut and Oregon. Search by name or state ID; get status, type, formation date and address. No person data. Part of NexGen Signal — official-source data products

- **URL**: https://apify.com/nexgensignal/us-business-entity-status-check.md
- **Developed by:** [NexGen Signal](https://apify.com/nexgensignal) (community)
- **Categories:** Lead generation, Business, Developer tools
- **Stats:** 2 total users, 1 monthly users, 17.4% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $33.50 / 1,000 entity status records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## US Business Entity Search & Status Check — 7 States

**Official source. No API key. Pay per record.**

This actor checks companies against seven official state business registries in one run — **New York, Texas, Florida, Pennsylvania, Colorado, Connecticut and Oregon** — and returns what each state has on file: the state's entity ID, the registered name, status, entity type, formation date and business address. Send company names (exact, starts-with or contains matching) or the states' own entity IDs; the actor queries each state's official open-data registry and delivers one clean record per entity found, in one schema across all states.

The registries it reads, and how many rows each held when tested on 26 September 2026:

| State | Registry dataset | Rows |
|---|---|---|
| New York | Department of State — Active Corporations: Beginning 1800 | 4,287,886 |
| Texas | Comptroller of Public Accounts — Active Franchise Taxpayers | 3,473,267 |
| Florida | Division of Corporations — quarterly corporate file + daily new filings | 12,808,196 (4,109,232 active) |
| Pennsylvania | Department of State — Registered Businesses in PA Current | 4,110,251 (one row per officer) |
| Colorado | Department of State — Business Entities in Colorado | 3,114,804 |
| Connecticut | Secretary of the State — Business Registry, Business Master | 1,299,623 |
| Oregon | Secretary of State — Active Businesses, ALL | 1,579,476 (one row per associated name) |

### Who buys this and for what job

- **KYB and onboarding teams** confirming that a customer, merchant or supplier is registered and in good standing before approving it.
- **Lenders, factoring and insurance underwriters** checking a business's registration status, age and type across the states where it operates.
- **Procurement and vendor-risk teams** screening vendor lists in bulk.
- **Sales and data teams** matching a CRM's company names to official state records and IDs.
- **Due-diligence and legal researchers** finding every registration of a company name across several states in one pass.

### Sample output

![Sample output — US Business Entity Search & Status Check (7 states)](https://api.apify.com/v2/key-value-stores/IXCaMKjxSmUTLHhmq/records/us-business-entity-status-check.png)

*Real rows from live runs of this actor on 2026-09-26 (exact-name lookup "Tesla, Inc." in all 7 states; selected columns). No person data.*

One full record from the same test, exactly as delivered:

```json
{
  "record_id": "TX:19121977292",
  "state": "TX",
  "state_name": "Texas",
  "entity_id": "19121977292",
  "entity_name": "TESLA, INC.",
  "status": "Active",
  "status_detail": "Active",
  "status_basis": "Listed in the Texas Comptroller's 'Active Franchise Taxpayers' dataset; Secretary of State status and right-to-transact codes as published, decoded with the Comptroller's record layout.",
  "entity_type": "TEXAS PROFIT CORPORATION",
  "formation_date": "2024-06-14",
  "jurisdiction": null,
  "address_1": "1 TESLA RD",
  "address_2": null,
  "city": "AUSTIN",
  "address_state": "TX",
  "zip": "78725",
  "county": null,
  "address_type": null,
  "naics_code": null,
  "dissolution_date": null,
  "registered_agent_company": null,
  "tx_right_to_transact_code": "A",
  "tx_sos_status_code": "A",
  "tx_sos_status_date": "2024-06-14",
  "tx_sos_file_number": "0805587591",
  "tx_organizational_type_code": "CT",
  "fl_fei_number": null,
  "fl_last_transaction_date": null,
  "matched_query": "Tesla, Inc.",
  "match_mode": "exact",
  "registry": "Texas Comptroller of Public Accounts",
  "dataset_url": "https://data.texas.gov/d/9cir-efmm",
  "data_updated_at": "2026-09-26",
  "source": "Texas Comptroller of Public Accounts — official open data (https://data.texas.gov/d/9cir-efmm)",
  "licence": "Texas Open Data Portal: \"the official State repository for publicly accessible data! We believe in and promote open data.\" No licence or reuse restriction is published with this dataset.",
  "attribution": "Source: Texas Comptroller of Public Accounts; reformatted by NexGen Signal.",
  "observed_at": "2026-09-26T18:50:42Z",
  "entity_type_short": "TEXAS PROFIT CORPORATION"
}
```

### Pricing

| Apify plan | Price per record |
|---|---|
| Free | $0.05 |
| Bronze | $0.045 |
| Silver | $0.04 |
| Gold and above | $0.0335 |

One record is one entity found in one state. Lookups that find nothing cost nothing. The `maxRecords` limit caps what a run can cost, and `maxMatchesPerName` caps how many entities one name can return in one state.

### Input

| Field | What it does | Default |
|---|---|---|
| `names` | Company names to check (up to 500) | none |
| `matchMode` | `exact` — the words must match (case, commas, periods and apostrophes ignored); `startsWith`; or `contains` (4+ letters) | `exact` |
| `entityIds` | State IDs as `STATE:ID`, e.g. `NY:4424185`, `TX:32070357671` (taxpayer or SOS file number), `FL:P26000046350` | none |
| `states` | Which registries to check for your names: `NY`, `CO`, `CT`, `OR`, `PA`, `TX`, `FL` | all except Florida |
| `maxMatchesPerName` | Most entities one name may return in one state | 25 |
| `maxRecords` | Maximum records delivered and billed | 500 |

Florida is off by default for name lookups because it is read from the State's full corporate file, which takes several minutes; add `FL` to `states` to include it. Florida IDs in `entityIds` are always looked up.

Example — check four companies in all seven states:

```json
{"names": ["Tesla, Inc.", "Opengear Inc", "Acme Roofing LLC", "Butchys Wine & Spirits Inc"],
 "states": ["NY", "TX", "FL", "PA", "CO", "CT", "OR"]}
```

### Output

| Field | Meaning |
|---|---|
| `record_id`, `state`, `state_name`, `entity_id` | Where the record comes from and the state's own ID |
| `entity_name` | Name exactly as the state publishes it |
| `status`, `status_detail` | The state's status as published: Colorado entity status, Connecticut status and sub-status, Texas right-to-transact and Secretary of State status (decoded with the Comptroller's published record layout), Florida active/inactive. New York, Oregon and Pennsylvania publish active-registration lists, so their records say so |
| `status_basis` | One line saying what the status means for that state's dataset |
| `entity_type`, `formation_date`, `jurisdiction` | Type, formation/charter/registration date, state of formation where published |
| `address_1`, `address_2`, `city`, `address_state`, `zip`, `county` | The business address the state publishes |
| `naics_code`, `dissolution_date`, `registered_agent_company` | Where published (Connecticut, Texas; Colorado and Florida agents only when a company) |
| `tx_*`, `fl_*` | State-specific codes: Texas codes as published, Florida FEI number and last filing date |
| `matched_query`, `match_mode` | Which of your names (or `id`) found this record |
| `registry`, `dataset_url`, `data_updated_at` | The registry, its dataset page, and when the state last updated it |
| `source`, `licence`, `attribution`, `observed_at` | Provenance on every record |

### Cost guidance

Exact-name checks return few records: in testing, four company names checked in six states returned 14 records ($0.70 on the Free plan). `startsWith` and `contains` can return many entities for common words — keep `maxMatchesPerName` low. In testing, the default `Tesla` starts-with run returned 133 records in about 5 seconds; a contains search for "ACME ROOFING" returned 11.

### How a run works

For each state and name, the actor asks the state's open-data portal for candidate entities whose names begin with (or contain) your text, then applies the exact rule itself, so punctuation differences do not hide a match; if nothing matches, it tries again with a looser pattern (so "Butchys" still finds "BUTCHY'S"). Florida is read from the Division of Corporations' own bulk files over its public SFTP server. Queries run in parallel and retry on network errors. Records are pushed to your dataset first and charged only after delivery; a maximum charge stops the run cleanly. Every run saves a receipt (`RUN_RECEIPT`) with per-state counts, each state's data-update date, every name/state pair that found nothing, IDs not found, and charges versus deliveries. If a state's portal does not answer after retries, the run says which one and carries on with the others; if none answer, it ends with a clear message and nothing is charged.

Timing in testing: portal-only runs finished in about 5–11 seconds; runs that include Florida names took about 7–8 minutes.

### Honest limitations

- **Seven states, not fifty.** These are the states that publish their registries as official open data this actor can read without a key. Other states are not covered.
- **Some lists hold active entities only.** New York, Oregon and Pennsylvania publish active registrations; a company missing there may be inactive or may never have registered — the actor cannot tell which. Pennsylvania notes its list includes some businesses no longer operating. Texas lists active franchise taxpayers.
- **Same name, different company.** An exact name can match unrelated entities in different states — in the sample above, New York's "TESLA INC" (2017) and Florida's inactive "TESLA, INC." (1998) are not the car maker. Check the ID, formation date and address.
- **Florida status is as of the State's quarterly file** (10 July 2026 when tested), plus entities filed since; changes to older entities appear with the next quarterly file.
- **Freshness varies by state** — each record carries `data_updated_at`. When tested, New York, Texas, Colorado and Connecticut were updated the same day, Oregon four days earlier and Pennsylvania on 2 September.
- **No person data.** Officer, director, organizer and individual agent names are never requested. Texas sole proprietors, estates and individual taxpayers are excluded, as are Oregon agent and representative rows and Pennsylvania officer names.
- **Addresses are as published** and can be a registered-office provider's address.

### Licence and attribution

Each record carries its state's licence text. New York — OPEN-NY Terms of Use: "use our government information however you wish, in private sector projects or in government collaborations." Colorado and Connecticut — dataset licence: Public Domain. Pennsylvania — data.pa.gov Data Policy: "Data sets available through data.pa.gov are offered free and without restriction." Oregon — ORS 276A.368(3): "All publishable data is in the public domain for purposes of applicable copyright laws." Texas — the Texas Open Data Portal describes itself as "the official State repository for publicly accessible data"; no licence or reuse restriction is published with the dataset. Florida — Florida public record (Chapter 119, Florida Statutes), offered free by the Division of Corporations with no stated reuse restriction. This actor is not affiliated with or endorsed by any state.

### Differentiation

This actor reads the states' official open-data registries and Florida's bulk files rather than searching websites: one call, one schema, the state's own IDs and status, bulk-friendly, with no person data to manage downstream.

### The NexGen Signal family

Part of NexGen Signal — official-source data products, no API keys, pay per record. Related actors:

- [UK Company Status Records — Companies House](https://apify.com/nexgensignal/uk-company-status-records)
- [US IRS Exempt Organization Master File](https://apify.com/nexgensignal/us-exempt-organization-master-records)
- [FDA Device Clearance Records](https://apify.com/nexgensignal/fda-device-clearance-records)
- [National Macro Indicator Records — World Bank](https://apify.com/nexgensignal/national-macro-indicator-records)

# Actor input Schema

## `names` (type: `array`):

Company names to check in every selected state (up to 500). Case, commas, periods and apostrophes are ignored.

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

Exact: 'Acme Roofing LLC' finds 'ACME ROOFING, L.L.C.' only when the words match. Starts with: every entity whose name begins with your text. Contains: every entity whose name includes your text (4+ letters).

## `entityIds` (type: `array`):

Look up by the state's own ID as STATE:ID, e.g. NY:4424185 (DOS ID), CO:19871342214, CT:0101743 (account number), OR:299818 (registry number), PA:0006436709 (filing number), TX:32107728928 (taxpayer or SOS file number), FL:P26000046350 (document number).

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

Which state registries to check for your names. Florida is off by default because it is read from the State's full file, which takes several minutes.

## `maxMatchesPerName` (type: `integer`):

Caps how many entities one name can return in one state (useful with Starts with / Contains).

## `maxRecords` (type: `integer`):

Stop after this many records. You are charged per record delivered.

## Actor input object example

```json
{
  "names": [
    "Tesla"
  ],
  "matchMode": "startsWith",
  "entityIds": [],
  "states": [
    "NY",
    "CO",
    "CT",
    "OR",
    "PA",
    "TX"
  ],
  "maxMatchesPerName": 25,
  "maxRecords": 500
}
```

# Actor output Schema

## `results` (type: `string`):

The delivered records.

# 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 = {
    "names": [
        "Tesla"
    ],
    "matchMode": "startsWith",
    "states": [
        "NY",
        "CO",
        "CT",
        "OR",
        "PA",
        "TX"
    ],
    "maxRecords": 500
};

// Run the Actor and wait for it to finish
const run = await client.actor("nexgensignal/us-business-entity-status-check").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 = {
    "names": ["Tesla"],
    "matchMode": "startsWith",
    "states": [
        "NY",
        "CO",
        "CT",
        "OR",
        "PA",
        "TX",
    ],
    "maxRecords": 500,
}

# Run the Actor and wait for it to finish
run = client.actor("nexgensignal/us-business-entity-status-check").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 '{
  "names": [
    "Tesla"
  ],
  "matchMode": "startsWith",
  "states": [
    "NY",
    "CO",
    "CT",
    "OR",
    "PA",
    "TX"
  ],
  "maxRecords": 500
}' |
apify call nexgensignal/us-business-entity-status-check --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,nexgensignal/us-business-entity-status-check"
        }
    }
}
```

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/XZdlP9xlCusF81i15/builds/Hw3xBulqv0GDRyNar/openapi.json
