# Secretary of State Business Search (CO, NY, OR) (`hamsmoothie/secretary-of-state-business-search`) Actor

Search state business entity registries (Colorado, New York, Oregon) by company name and get one flat, unified row per entity: ID, status, type, formation date, address, agent.

- **URL**: https://apify.com/hamsmoothie/secretary-of-state-business-search.md
- **Developed by:** [Maybe Quark](https://apify.com/hamsmoothie) (community)
- **Categories:** Other, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$2.00 / 1,000 business entity records

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 Entity Search: Colorado, New York, Oregon

**Secretary of State Business Search** searches the official business-entity registries of Colorado, New York and Oregon by company name and returns one flat, consistent row per entity: legal name, state filing number, entity type, status, formation date, jurisdiction, address, registered agent or process contact, and a link to the official source. It reads each state's open-data portal, so runs are fast, need no login, proxy or API key, and return only what the states publish as public record.

### Input

Set a company name (or part of one), pick the states and a per-state cap. This example searches Colorado and New York for "Acme":

```json
{
  "businessName": "Acme",
  "states": ["CO", "NY"],
  "maxResultsPerState": 10
}
```

- `businessName`: company name or part of it, case-insensitive (default `ACME`).
- `states`: any of `CO`, `NY`, `OR` (default all three). Other state codes are skipped with a warning.
- `maxResultsPerState`: maximum entities per state (default 20, maximum 1000).

### Output

One row per entity. Real example row from the New York dataset:

```json
{
  "state": "NY",
  "entityName": "ACME ABATEMENT CORP.",
  "entityId": "7223071",
  "entityType": "DOMESTIC BUSINESS CORPORATION",
  "status": "Active",
  "formationDate": "2024-01-08",
  "jurisdiction": "New York",
  "address": "99 WASHINGTON AVE., STE. 700",
  "city": "ALBANY",
  "zip": "12260",
  "registeredAgent": "REGISTERED AGENT SOLUTIONS, INC.",
  "url": "https://apps.dos.ny.gov/publicInquiry/"
}
```

`status` is read from the data in Colorado; the New York and Oregon datasets contain active entities only, so those rows show `Active`. Fields a state does not publish come back as `null`.

### Use cases

Search phrases this actor is built for:

- **"Secretary of state business entity search"**: find every registered entity whose name contains your search text, across states in one call.
- **"Company registered agent and formation date"**: read `registeredAgent` and `formationDate` to confirm who a counterparty is and how old it is.
- **"Business registration search for Colorado, New York and Oregon"**: use it for KYB and vendor onboarding checks, name-conflict checks before you file, and lead research.

It also works as a tool for AI agents through the Apify MCP server.

### Pricing

Pay per result: each entity row returned is one billable result, listed at $0.002 per row ($2 per 1,000). Set a maximum charge on the run for a hard ceiling.

### Limits

- Only Colorado, New York and Oregon are supported today.
- Colorado includes dissolved entities; New York and Oregon datasets list active entities only.
- Data is whatever each state publishes on its open-data portal, usually refreshed daily or weekly.
- Name search is a "contains" match, not a fuzzy match. This is public-record data, not a certificate of good standing or legal advice.

### FAQ

**Which states are covered?** Colorado, New York and Oregon.

**Are dissolved companies included?** In Colorado, yes. New York and Oregon datasets contain active entities only.

**Can I search by entity number?** Not in this version; search by company name.

# Actor input Schema

## `businessName` (type: `string`):

Company name or part of it (case-insensitive).

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

Two-letter state codes to search. Supported: CO, NY, OR.

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

Maximum entities returned for each state.

## Actor input object example

```json
{
  "businessName": "ACME",
  "states": [
    "CO",
    "NY",
    "OR"
  ],
  "maxResultsPerState": 20
}
```

# Actor output Schema

## `results` (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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("hamsmoothie/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 = {}

# Run the Actor and wait for it to finish
run = client.actor("hamsmoothie/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 '{}' |
apify call hamsmoothie/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,hamsmoothie/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/uZu4sr2RGQfapCSdG/builds/zhQHmlVgsuDChX1tV/openapi.json
