# Secretary of State Business Search - Colorado & New York LLC (`kamerozkan/secretary-of-state-business-search`) Actor

Colorado business search and New York LLC filings from the official Secretary of State open data: entity name, ID, type, status, formation date, principal address and registered agent company. Search by name or get every new LLC formed since a date. No login, no captcha.

- **URL**: https://apify.com/kamerozkan/secretary-of-state-business-search.md
- **Developed by:** [Kamer Ozkan](https://apify.com/kamerozkan) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.60 / 1,000 business entities

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

## Secretary of State Business Search - Colorado & New York LLC

Run a **Colorado business search** or look up a **New York LLC** in the official Secretary of State records, or get **every new LLC and corporation filed since a date** as a lead feed. One clean row per business entity: name, entity ID, type, status, formation date, principal address and registered agent company.

### What does it do?

The actor reads the official open data that the Colorado Secretary of State (data.colorado.gov, public domain) and the New York Department of State (data.ny.gov) publish for their business registers. It does not scrape the SOS search portals, so there are no captchas, no logins and no broken runs when a portal changes its layout.

- **Colorado**: all 3.1 million entities on the register, active and inactive (Good Standing, Delinquent, Dissolved and so on).
- **New York**: the 4.3 million active corporations, LLCs, partnerships and nonprofits filed with the Department of State.
- About 3,500 new entities per week in each state, usually visible the day after filing.

Other states are not covered yet. If you need one, open an issue (see Support).

### Who is it for?

- **KYB and compliance teams**: check that a customer or supplier exists, its exact legal name, type, formation date and status.
- **Lenders and fintechs**: verify business age before an application.
- **B2B lead generation**: a weekly list of brand-new Colorado and New York businesses (insurance, accounting, payroll, banking, web design, signage).
- **Registered agent and formation services, researchers**: track filings by type, city or county.

### How to use it

1. Click **Try for free**.
2. Choose the **States** (Colorado, New York or both).
3. Either type **Business names** (a part of the name is enough, for example `Blue Sky`), or leave names empty and set **Formed within the last N days** for new filings.
4. Optional: limit **Entity types** (LLC, corporation, nonprofit, partnership), **Cities or counties**, or keep **Only entities in good standing** (Colorado).
5. Set **Max results** and click **Start**. Download the rows as CSV, Excel or JSON.

For a new-business feed, save the input as a task with **Only entities not delivered in earlier runs** turned on and add a daily or weekly schedule: each run returns and charges only filings you have not received yet.

### Input parameters

| Field | What it does | Default |
| --- | --- | --- |
| `states` | `CO`, `NY` or both | both |
| `businessNames` | Name contains this text, case-insensitive; one search per name and state | empty |
| `formedWithinDays` | Entities formed in the last N days | 7 when no names and no dates are given |
| `formedFrom`, `formedTo` | Formation date range, `YYYY-MM-DD` | empty |
| `entityTypes` | `llc`, `corporation`, `nonprofit`, `partnership` | all |
| `cities` | Colorado principal office city; New York county or process-address city | all |
| `onlyGoodStanding` | Colorado entities in Good Standing only | `false` |
| `onlyNewEntities` | Skip entities delivered by earlier runs of the same search | `false` |
| `maxItems` | Total rows, shared fairly between states and names | 100 |

Results come newest formation date first.

Example: new LLCs in Denver formed in September 2026, good standing only:

```json
{
  "states": ["CO"],
  "formedFrom": "2026-09-01",
  "formedTo": "2026-09-30",
  "entityTypes": ["llc"],
  "cities": ["Denver"],
  "onlyGoodStanding": true,
  "maxItems": 30
}
```

### Output

| Field | Example |
| --- | --- |
| `state` | CO |
| `entityId` | 20268220973 (Colorado entity ID, New York DOS ID) |
| `entityName` | Plain Yogurt Outfitters L.L.C. |
| `entityType`, `entityTypeCode` | Domestic Limited Liability Company, DLLC |
| `status` | Good Standing (New York rows are always Active) |
| `formationDate` | 2026-09-30 |
| `jurisdictionOfFormation` | CO |
| `principalAddress`, `principalStreet`, `principalCity`, `principalState`, `principalZip` | 1500 N Grant St, Ste N, Denver, CO, 80203 |
| `county` | New York only, for example Kings |
| `registeredAgentCompany`, `registeredAgentAddress` | Northwest Registered Agent LLC |
| `serviceOfProcessName`, `serviceOfProcessAddress` | New York only, when it names a company |
| `sourceUrl`, `source` | Colorado SOS detail page, data source |

A Colorado row from a QA run on 2026-10-13 (run Sr02hYQbPjIawCJXC), unchanged:

```json
{
  "state": "CO",
  "entityId": "20268220973",
  "entityName": "Plain Yogurt Outfitters L.L.C.",
  "entityType": "Domestic Limited Liability Company",
  "entityTypeCode": "DLLC",
  "status": "Good Standing",
  "formationDate": "2026-09-30",
  "jurisdictionOfFormation": "CO",
  "principalAddress": "1500 N Grant St, Ste N, Denver, CO, 80203",
  "principalCity": "Denver",
  "principalZip": "80203",
  "registeredAgentCompany": "Northwest Registered Agent LLC",
  "registeredAgentAddress": "1500 N Grant St Ste N, Denver, CO, 80203",
  "registeredAgentIsIndividual": false,
  "sourceUrl": "https://www.coloradosos.gov/biz/BusinessEntityDetail.do?masterFileId=20268220973"
}
```

A New York row from a test run on 2026-10-13, shortened to the filled fields:

```json
{
  "state": "NY",
  "entityId": "8043127",
  "entityName": "MECA DME SUPPLY CORP.",
  "entityType": "Domestic Business Corporation",
  "status": "Active",
  "formationDate": "2026-10-12",
  "jurisdictionOfFormation": "New York",
  "county": "New York",
  "serviceOfProcessName": "Meca Dme Supply Corp.",
  "serviceOfProcessAddress": "2365 nostrand Ave, Brooklyn, NY, 11210"
}
```

**Privacy by design**: registered agents and process recipients are often private persons. Their names and addresses are never returned; `registeredAgentIsIndividual` only tells you that the agent is a person. Officers, chairmen and owners are not collected.

### How much does it cost?

You pay per delivered entity: **$2.00 per 1,000 entities** ($0.002 per entity) on the Free plan, with Store discounts on paid Apify plans: Bronze $1.80, Silver $1.70, Gold and above $1.60 per 1,000 entities. Platform usage is included.

Worked example: a weekly feed that delivers 2,500 new entities = 2,500 x $0.002 = **$5.00 per week** on the Free plan. Narrow it with entity types and cities to pay only for the filings you need. A single name lookup that returns 10 entities costs $0.02. Rows skipped by **Only entities not delivered in earlier runs** are not charged.

### API and integrations

Call it from your own code with the Apify API or the `apify-client` package, schedule it in Apify, or send the rows to Make, n8n, Zapier, Google Sheets, HubSpot or a webhook.

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("kamerozkan/secretary-of-state-business-search").call(
    run_input={"businessNames": ["Blue Sky"], "states": ["CO", "NY"], "maxItems": 50}
)
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(row["state"], row["entityName"], row["status"], row["formationDate"])
```

### FAQ

#### Which states are covered?

Colorado and New York, the two large registers with complete official open data. More open-data states (Oregon, Iowa, Connecticut) may follow; ask for yours in Issues.

#### Why are New York rows always "Active"?

The New York Department of State publishes active entities only. Dissolved New York entities are not in the data set, so they never appear.

#### How fresh is the data?

Both states update their open data daily. New filings usually appear the next day.

#### Can I search by registered agent or owner?

No. The actor searches by entity name, date, type and place. Personal data of individuals is not returned.

#### Is this an official Secretary of State product?

No. It reads the public open data the states publish. It is not affiliated with or endorsed by the Colorado Secretary of State or the New York Department of State.

### Support and feedback

- Found a bug or missing a field? Open an issue on the **Issues** tab of this Actor. We reply within 48 hours and ship most fixes within a few days.
- Need another state? Issues are the fastest way to get it built.
- If the Actor saves you time, a short review on this page helps other users find it.

# Actor input Schema

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

Which Secretary of State registers to search: CO (Colorado, all entities incl. dissolved and delinquent) and NY (New York, active entities).

## `businessNames` (type: `array`):

Find entities whose name contains this text, for example 'Blue Sky' or 'Acme Holdings'. One search per name and state. Leave empty to list every entity that matches the filters below (for example all new LLCs of the last 7 days).

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

Only entities formed (filed) in the last N days, newest first. Use 1 or 7 with a daily or weekly schedule for a feed of new businesses. With no business names and no dates, the run lists the last 7 days.

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

Only entities formed on or after this date. Overrides 'Formed within the last N days'.

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

Only entities formed on or before this date.

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

Keep only these forms. Empty means all types.

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

Colorado: principal office city, for example 'Denver'. New York: county ('Kings', 'Queens') or the city of the service-of-process address. Exact names, case does not matter.

## `onlyGoodStanding` (type: `boolean`):

Skip dissolved, delinquent and other inactive Colorado entities. The New York data set contains active entities only.

## `onlyNewEntities` (type: `boolean`):

Remembers the entities delivered for the same search and skips them next time, so a scheduled run only returns (and charges) new filings.

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

Stop after this many entities in total, shared fairly between states and names. You are charged per entity, so this also caps the cost of the run.

## Actor input object example

```json
{
  "states": [
    "CO",
    "NY"
  ],
  "onlyGoodStanding": false,
  "onlyNewEntities": false,
  "maxItems": 100
}
```

# Actor output Schema

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

One row per result in the default dataset.

# 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",
        "NY"
    ],
    "maxItems": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("kamerozkan/secretary-of-state-business-search").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",
        "NY",
    ],
    "maxItems": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("kamerozkan/secretary-of-state-business-search").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",
    "NY"
  ],
  "maxItems": 100
}' |
apify call kamerozkan/secretary-of-state-business-search --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,kamerozkan/secretary-of-state-business-search"
        }
    }
}
```

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/Csj3TwtKNGiGqhkFI/builds/0j6TphzvJfY9mwYFw/openapi.json
