# US Company Verification (KYB) & New LLC Filings by State (`wellbuilt_zythem/us-company-check`) Actor

Verify US companies against the official business registers of New York, Colorado, Connecticut, Oregon, Texas and Pennsylvania: status, formation date, entity type, address, registered agent. Not found costs nothing. Or list the companies formed between two dates, with email in Connecticut

- **URL**: https://apify.com/wellbuilt_zythem/us-company-check.md
- **Developed by:** [Carlos Escanez](https://apify.com/wellbuilt_zythem) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 company verifieds

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

## US Company Verification (KYB) & New LLC Filings by State

Check whether a US company exists and is in good standing, straight from the **official business registers** that New York, Colorado, Connecticut, Oregon, Texas and Pennsylvania publish as open data. Paste a list of names, as they appear on an invoice or a contract, and get one verdict per name: the registered name, **standing** (active, delinquent, inactive), the status exactly as the state publishes it, formation date, entity type, registry id, address and registered agent where published. **A name that is not found costs nothing.**

The second mode lists the **companies formed between two dates** in those six states, about 23,000 a week, with address, registered agent (Colorado, Oregon, New York), **email (Connecticut, 100 % of new filings)** and organizers (Pennsylvania). Schedule it for a feed of new LLCs and corporations.

### Verify companies (KYB)

```json
{
  "mode": "verify",
  "companies": ["Starbucks Corporation", "Tesla, Inc.", "Acme Holdings LLC | CO, TX"]
}
```

Each name is searched in every state you choose (or the six). Spelling of punctuation and legal form does not matter: "Tesla, Inc." finds "TESLA INC". The search also catches names the register writes differently, such as `TOYS "R" US, INC.` for "Toys R Us, Inc.".

| `matchType` | Meaning |
|---|---|
| `exact` | Same name, ignoring punctuation and case. When a state has an exact match, only exact matches are returned for that state. |
| `same_name_other_form` | Same name with another legal form ("Starbucks Corp" for "Starbucks Corporation"); up to 3 per state, active first. |
| `starts_with` | Only with **Also return names that start with yours**. |

Rows with `recordType: "not_found"` say which registers were searched and are **not charged**.

Measured on 2026-10-15: "Starbucks Corporation" is found exact in Colorado (Good Standing), Connecticut (Active), Oregon, Texas (right to transact business: A) and Pennsylvania; "Tesla, Inc." in Colorado, Connecticut, New York, Oregon and Texas. Four names checked against six states in about one minute.

### What each register contains

| State | Register | Contains | Standing |
|---|---|---|---|
| Colorado | Secretary of State, Business Entities (3.1 M) | every company, active and dissolved | Good Standing / Exists = active; Delinquent, Noncompliant = delinquent; dissolved, withdrawn, revoked, merged = inactive |
| Connecticut | Secretary of the State, Business Registry (1.3 M) | every company, active and dissolved (name reservations excluded) | Active = active; Forfeited, Dissolved, Revoked, Withdrawn... = inactive |
| New York | Department of State, Active Corporations (4.3 M) + full filing history | active list; with **Check New York's full history**, also inactive and suspended companies | last status in the state's status history |
| Oregon | Secretary of State, Active Businesses (1.6 M rows) | **active companies only** | active |
| Texas | Comptroller, Active Franchise Taxpayers (3.5 M) | companies set up for franchise tax | right to transact business code `A` = active; other codes delivered as published |
| Pennsylvania | Department of State, Registered Businesses (4.2 M rows) | **current registrations only** | registered |

In Oregon, Texas and Pennsylvania "not found" means "not in the active or current list", not "never existed"; the `note` of the not-found row says so.

### New company filings

```json
{
  "mode": "new_filings",
  "states": ["CO", "CT", "NY", "OR"],
  "formedWithinDays": 7,
  "entityTypes": ["llc"],
  "onlyNewCompanies": true
}
```

New companies per week, measured over August to October 2026:

| State | Per week | Published | Fields beyond name, type, date, address |
|---|---|---|---|
| New York | ~5,000 | up to date | county, process address; registered agent on 34 % |
| Texas | ~10,000 | **2 to 3 weeks late** | taxpayer number, type code as published |
| Colorado | ~3,300 | up to date | registered agent and its address, 100 % |
| Pennsylvania | ~2,300 | **about 2 weeks late** | county; organizers and other officers on 95 % |
| Oregon | ~1,800 | up to date | registered agent on 78 %, link to the register page |
| Connecticut | ~1,200 | up to date | **email on 100 %**, NAICS code, annual report due date |

For Texas and Pennsylvania, give **Formed from / Formed to** dates three weeks back, or schedule a daily run with **Only companies not delivered before** and a 30-day window: each run delivers what the state published since the last one.

#### What the registers do not publish, so this Actor does not promise

- **Phone numbers.** None of the six registers has them.
- **Email** outside Connecticut.
- **Owners or members.** Pennsylvania lists organizers and officers; the others do not list owners.
- **Texas entity types in words.** Texas publishes a code (`CL`, `CF`, `CI`...) explained in a separate document; it is delivered as `entityTypeCode`, not translated.
- **Hawaii, Delaware, California, Florida** and the other states: their registers are not open data or sit behind a CAPTCHA. Hawaii's open file was tested and left out: its dates are broken text ("Oct 3, 0217") and it misses large companies.

### Output fields

`recordType` (`match`, `not_found`, `new_company`), `input`, `matchType`, `state`, `entityId`, `name`, `entityType` or `entityTypeCode`, `status`, `standing`, `formedDate`, `dissolvedDate` (CT), `jurisdiction`, `citizenship` (CT), `county` (NY, PA), `address`, `city`, `addressState`, `zip`, `agentName`, `agentAddress`, `processName` (NY), `email` (CT), `naics` (CT), `annualReportDue` (CT), `officers` (PA), `taxpayerNumber` and `sosStatusCode` (TX), `recordUrl` (OR), `typeGroup`, `register`, `sourceUrl`, `coverage`, `scrapedAt`.

### Speed and limits

- About 1 to 10 seconds per name and state, four names at a time (New York's full history adds 3-4 seconds). Four names, six states: about one minute.
- New filings: about 2 to 11 seconds per state for 200 companies.
- No login, no CAPTCHA, no proxies: the states' own open-data APIs. A **Socrata app token** gives your runs their own quota for long lists.

### Pricing

Verification: per company record found (`match` event). Names not found are free. New filings: per company delivered (`new_company` event). Plus the platform's start fee.

# Actor input Schema

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

Verify a list of company names, or list the companies formed between two dates.

## `companies` (type: `array`):

One name per line, as written on an invoice or a contract: "Acme Holdings LLC". Add "| CO, TX" to search only those states for that name. Punctuation and legal-form spelling do not matter (Inc / Inc. / Incorporated).

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

Two-letter codes: NY, CO, CT, OR, TX, PA. Empty for all six.

## `includePartialMatches` (type: `boolean`):

"Acme" also returns "ACME WIDGETS LLC". Off by default: only the same name (exact, or with another legal form) is returned and charged.

## `checkNewYorkInactive` (type: `boolean`):

New York publishes active companies apart. When a name is not among them, look it up in the full filing history and read its last status (Active, Inactive, Suspended). Adds 3-4 seconds per name.

## `formedWithinDays` (type: `integer`):

New company filings mode. Default 7. Texas and Pennsylvania publish 2-3 weeks late: use From/To dates further back for them.

## `formedFrom` (type: `string`):

Date like 2026-10-01. Overrides the N days.

## `formedTo` (type: `string`):

Date like 2026-10-07. Empty: today.

## `maxPerState` (type: `integer`):

New company filings mode: companies to deliver per state, newest first.

## `entityTypes` (type: `array`):

New company filings mode: llc, corporation, nonprofit, partnership, other. Empty for all.

## `onlyNewCompanies` (type: `boolean`):

New company filings mode: remember delivered companies and skip them next time. Schedule it daily for a feed.

## `stateStoreName` (type: `string`):

Key-value store that remembers delivered companies. One name per feed.

## `resetState` (type: `boolean`):

Start the feed memory from scratch in this run.

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

Optional. Gives the run its own quota on the state open-data portals, useful for lists of thousands of names.

## Actor input object example

```json
{
  "mode": "verify",
  "companies": [
    "Starbucks Corporation",
    "Tesla, Inc.",
    "Toys R Us, Inc. | NY"
  ],
  "includePartialMatches": false,
  "checkNewYorkInactive": true,
  "formedWithinDays": 7,
  "maxPerState": 1000,
  "onlyNewCompanies": false,
  "stateStoreName": "us-company-check-seen",
  "resetState": false
}
```

# Actor output Schema

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

No description

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

No description

# 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": "verify",
    "companies": [
        "Starbucks Corporation",
        "Tesla, Inc.",
        "Toys R Us, Inc. | NY"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("wellbuilt_zythem/us-company-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 = {
    "mode": "verify",
    "companies": [
        "Starbucks Corporation",
        "Tesla, Inc.",
        "Toys R Us, Inc. | NY",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("wellbuilt_zythem/us-company-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 '{
  "mode": "verify",
  "companies": [
    "Starbucks Corporation",
    "Tesla, Inc.",
    "Toys R Us, Inc. | NY"
  ]
}' |
apify call wellbuilt_zythem/us-company-check --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,wellbuilt_zythem/us-company-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/7t2EE5hxRLfqxb94M/builds/UFY9zYsnSo5YBeWcL/openapi.json
