# New Business Registrations Scraper: New US Companies (`agents001/us-new-business-registrations`) Actor

Returns newly registered US businesses (LLCs, corporations, nonprofits, partnerships) from official state open-data registries: name, entity type, state, registration date, status, business address, registered agent company and entity ID. New since last run mode.

- **URL**: https://apify.com/agents001/us-new-business-registrations.md
- **Developed by:** [Mike Ross](https://apify.com/agents001) (community)
- **Categories:** Lead generation, Business
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 business 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

## New Business Registrations Scraper: New US Companies

Returns newly registered US businesses from official state open-data registries, **one record per business**: business name, entity type, state, registration date, status, business address, registered agent (when the agent is a company), state entity ID and a link to the source record.

It reads the business registries that four Secretaries of State publish as public-domain open data: **Colorado, Connecticut, Oregon and Pennsylvania**. Pick the states and a date window, filter by entity type, city or ZIP, and schedule it daily with `onlyNew` switched on to get just the businesses registered since your last run.

### What you get

| Field | Example |
|---|---|
| `entityName` | `Te Rustic Design Co. LLC` |
| `entityId` | `20268291814` (the state's own ID number) |
| `state`, `stateName` | `CO`, `Colorado` |
| `entityType` | `llc`, `corporation`, `nonprofit`, `partnership`, `cooperative`, `trust`, `other` or `assumed-name` |
| `entityTypeRaw` | `Domestic Limited Liability Company` (the state's own wording) |
| `domesticOrForeign`, `jurisdictionOfFormation` | `domestic`, `CO` |
| `registrationDate` | `2026-10-22` |
| `status` | `Good Standing`, `Active` |
| `addressLine1`, `addressLine2`, `city`, `addressState`, `zipCode`, `country`, `fullAddress` | The principal office or business address as filed |
| `county` | Pennsylvania only |
| `naicsCode`, `naicsDescription` | Connecticut only, for example `812310`, `Coin-Operated Laundries and Drycleaners` |
| `registeredAgentName` | `Registered Agents Inc` (only when the agent is a company) |
| `registeredAgentType` | `entity`, `individual` (name withheld) or empty when the state does not publish agents |
| `registryUrl` | Colorado only: the Secretary of State record page |
| `sourceUrl`, `sourceDataset`, `sourceLicense` | The open-data record, dataset and licence behind each row |
| `isNew`, `firstSeenDate` | Whether a previous run with the same input already returned this business |

The Output tab has three views: **New businesses**, **Lead list with addresses** and **Registered agent companies**.

### Coverage and freshness

| State | Source | Updated | History in the source |
|---|---|---|---|
| Colorado | Colorado Department of State, "Business Entities in Colorado" | Daily | Every entity since 1864 |
| Connecticut | Connecticut Secretary of the State, "Connecticut Business Registry - Business Master" | Daily | Full registry |
| Oregon | Oregon Secretary of State Corporation Division, "New Businesses Registered Last Month" | Monthly, around mid-month | The previous calendar month only |
| Pennsylvania | Pennsylvania Department of State, "Registered Businesses in PA Current by County" | Monthly | All currently active registrations |

Colorado and Connecticut usually include businesses registered the day before. Oregon and Pennsylvania arrive in monthly batches, so use a window of at least 60 days to always include them. The run report tells you the newest registration date each state has published.

### Who it is for

- **Sales teams and agencies** selling to new businesses: business banking, insurance, payroll, accounting, web design, signage, office fit-out, merchant services.
- **Registered agent and compliance firms** tracking which agent companies new businesses choose.
- **Analysts and economic developers** measuring business formation by state, city, ZIP and entity type.
- **Local service businesses** building a weekly list of new companies in their ZIP codes.

### Quick start

1. Click **Start** with the example input. You get up to 1,000 businesses registered in the last 30 days across all four states, newest first and shared evenly across states.
2. Narrow it down: states `["CO"]`, entity types `["llc", "corporation"]`, cities `["Denver", "Boulder"]` or ZIP prefixes `["802"]`.
3. Schedule it daily with **Only businesses not returned by previous runs** switched on, and send the dataset to Google Sheets, your CRM, email or Slack with an Apify integration or webhook.

### Input

| Field | What it does | Default |
|---|---|---|
| `states` | `CO`, `CT`, `OR`, `PA` (codes or names) | all four |
| `registeredWithinDays` | Registered in the last N days | 30 |
| `registeredFrom`, `registeredTo` | Fixed date window, YYYY-MM-DD. Overrides N days | none |
| `entityTypes` | Any of `llc`, `corporation`, `nonprofit`, `partnership`, `cooperative`, `trust`, `other`, `assumed-name` | all except `assumed-name` |
| `cities` | Business address city, case-insensitive exact match | all |
| `zipCodes` | Business address ZIP code or prefix | all |
| `onlyNew` | Only businesses not returned before for this same input | false |
| `maxItems` | Maximum records in total. `0` means no limit | 1000 |

Example input for a daily lead feed:

```json
{
  "states": ["CO", "CT"],
  "registeredWithinDays": 7,
  "entityTypes": ["llc", "corporation"],
  "zipCodes": ["802", "803", "061"],
  "onlyNew": true,
  "maxItems": 500
}
```

### Output example

```json
{
  "entityName": "Te Rustic Design Co. LLC",
  "entityId": "20268291814",
  "state": "CO",
  "stateName": "Colorado",
  "entityType": "llc",
  "entityTypeRaw": "Domestic Limited Liability Company",
  "domesticOrForeign": "domestic",
  "jurisdictionOfFormation": "CO",
  "registrationDate": "2026-10-22",
  "status": "Good Standing",
  "addressLine1": "4305 Crow Creek Dr",
  "addressLine2": null,
  "city": "Colorado Springs",
  "addressState": "CO",
  "zipCode": "80922",
  "country": "US",
  "fullAddress": "4305 Crow Creek Dr, Colorado Springs, CO 80922, US",
  "county": null,
  "naicsCode": null,
  "naicsDescription": null,
  "registeredAgentName": null,
  "registeredAgentType": "individual",
  "registryUrl": "https://www.coloradosos.gov/biz/BusinessEntityDetail.do?quitButtonDestination=BusinessEntityResults&fileId=20268291814",
  "sourceUrl": "https://data.colorado.gov/resource/4ykn-tg5h.json?entityid=20268291814",
  "sourceDataset": "Business Entities in Colorado, Colorado Department of State (https://data.colorado.gov/d/4ykn-tg5h)",
  "sourceLicense": "Public Domain (data.colorado.gov dataset licence)",
  "isNew": true,
  "firstSeenDate": "2026-10-23",
  "scrapedAt": "2026-10-23T12:51:50Z",
  "schemaVersion": 1
}
```

A run report is saved in the key-value store as `RUN_SUMMARY`: records per state, the newest registration date each state has published, and any state that could not be read.

### Pricing

This Actor uses **pay per event** pricing, with platform usage included:

- **$3.50 per 1,000 business records** (`business-record` event, $0.0035 each)

You only pay for records saved to your dataset, so filters, `onlyNew` and `maxItems` keep costs down. A daily `onlyNew` run over Colorado and Connecticut returns roughly the previous day's registrations. Set a maximum cost per run in the run options and the Actor stops cleanly when it is reached.

### How "only new businesses" works

When `onlyNew` is on, the Actor remembers which businesses it already returned for this exact input (states, entity types, cities, ZIP codes and date window) in a key-value store in your account called `us-new-business-registrations-state`. The next run returns only businesses not on that list. The first run returns everything that matches. A rolling window such as "last 30 days" keeps the same history from day to day. Changing the filters starts a fresh history. The store holds state IDs and dates only.

### Privacy

The output is company-level by default and contains no personal names:

- Registered agents are named only when the agent is a company. When the agent is a person, `registeredAgentType` is `individual` and the name is left out.
- Officers, organisers, members, managers, governors, incorporators and registrants are never collected.
- Business email addresses and owner demographic flags that some states publish are never collected.
- Assumed business names (trade names that sole traders often register) are left out unless you ask for `assumed-name`, and their registrant is never returned.

Business names and business addresses are returned as filed with the state. Some small businesses file a home address as their business address. Please use the data in line with the laws that apply to you, including marketing and anti-spam rules.

### Data sources, licences and attribution

All data comes from official state open-data portals through their public APIs, with no login.

- **Colorado**: "Business Entities in Colorado", Colorado Department of State, data.colorado.gov. Licence: Public Domain. As the portal's terms require: *The data made available here has been modified for use from its original source, which is the State of Colorado. THE STATE OF COLORADO MAKES NO REPRESENTATIONS OR WARRANTY AS TO THE COMPLETENESS, ACCURACY, TIMELINESS, OR CONTENT OF ANY DATA MADE AVAILABLE THROUGH THIS SITE. THE STATE OF COLORADO EXPRESSLY DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. The data is subject to change as modifications and updates are complete. It is understood that the information contained in the Web feed is being used at one's own risk.*
- **Connecticut**: "Connecticut Business Registry - Business Master", Connecticut Secretary of the State, Business Services Division, data.ct.gov. Licence: Public Domain. The State of Connecticut provides the data "as is" with no warranty.
- **Oregon**: "New Businesses Registered Last Month", Oregon Secretary of State Corporation Division, data.oregon.gov. Licence: Public Domain U.S. Government.
- **Pennsylvania**: "Registered Businesses in PA Current by County", Pennsylvania Department of State, data.pa.gov. Licence: Public Domain U.S. Government.

Entity types are grouped into simple categories by this Actor; the state's own wording is kept in `entityTypeRaw`.

### FAQ

**Why is my state not supported?**
Only states that publish their business registry as open data with a clear open licence are included. New York, Iowa and others publish business data without a stated licence on the dataset, so they are left out for now.

**Why does Oregon or Pennsylvania return nothing for "last 7 days"?**
Both states publish once a month. Oregon publishes the previous calendar month around the middle of the next month. Use a window of 60 days or more, or a fixed date range, for those states. `RUN_SUMMARY` shows the newest date each state has published.

**Why is the status empty for Oregon?**
The Oregon new-business dataset does not include a status. Pennsylvania's dataset lists active registrations only, so its records show `Active`.

**Why is the registered agent empty for Connecticut and Pennsylvania?**
Those datasets do not include registered agents under an open licence, so the Actor does not read them.

**Is the registration date the formation date?**
For businesses formed in the state, yes. For businesses formed elsewhere ("foreign"), it is the date they registered to do business in the state.

**Something looks wrong. What should I do?**
Open an issue on the Actor's Issues tab with the run link and the input you used.

### Disclaimer

This Actor is independent and is not affiliated with, endorsed by or sponsored by the State of Colorado, the State of Connecticut, the State of Oregon, the Commonwealth of Pennsylvania, their Secretaries of State or Departments of State, or Tyler Technologies (Socrata). Check a business's record with the state before relying on it.

# Actor input Schema

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

Two-letter codes or names of the states to read. Supported: CO (Colorado, daily), CT (Connecticut, daily), OR (Oregon, monthly) and PA (Pennsylvania, monthly). Leave empty for all four.

## `registeredWithinDays` (type: `integer`):

Only businesses registered within this many days before today. Ignored when you set a start or end date below. Oregon and Pennsylvania publish monthly, so use at least 60 days to always include them.

## `registeredFrom` (type: `string`):

Optional start date, YYYY-MM-DD. Overrides the N days setting.

## `registeredTo` (type: `string`):

Optional end date, YYYY-MM-DD. Defaults to today when a start date is set.

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

Keep only these types: llc, corporation, nonprofit, partnership, cooperative, trust, other, assumed-name. Leave empty for every type except assumed-name. Assumed business names (trade names, often sole traders, Oregon only) are returned only when you list assumed-name.

## `cities` (type: `array`):

Keep only businesses whose business address is in one of these cities, for example Denver or Portland. Case-insensitive exact match.

## `zipCodes` (type: `array`):

Keep only businesses whose business address ZIP starts with one of these, for example 80202 or 802.

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

Remember which businesses were already returned for this exact input and return only ones not seen before. The first run returns everything that matches. Ideal for a daily schedule. Changing the states, filters or window starts a fresh history.

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

Stop after this many business records in total, newest first and shared evenly across states. 0 means no limit. You pay per record returned.

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

Name of the key-value store in your account that remembers which businesses were already returned. Each different input gets its own record inside it. Change it only to keep separate histories.

## `requestDelaySecs` (type: `number`):

Minimum seconds between requests to the same state data portal. The portals ask for at least 1 second.

## Actor input object example

```json
{
  "states": [
    "CO",
    "CT",
    "OR",
    "PA"
  ],
  "registeredWithinDays": 30,
  "onlyNew": false,
  "maxItems": 1000,
  "stateStoreName": "us-new-business-registrations-state",
  "requestDelaySecs": 1
}
```

# Actor output Schema

## `businesses` (type: `string`):

No description

## `leads` (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 = {
    "states": [
        "CO",
        "CT",
        "OR",
        "PA"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("agents001/us-new-business-registrations").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 = { "states": [
        "CO",
        "CT",
        "OR",
        "PA",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("agents001/us-new-business-registrations").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 '{
  "states": [
    "CO",
    "CT",
    "OR",
    "PA"
  ]
}' |
apify call agents001/us-new-business-registrations --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,agents001/us-new-business-registrations"
        }
    }
}
```

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/YyRhlZsL3yaY2vC3J/builds/wVUrevSJdrwGuGjfv/openapi.json
