# NY Business Registry Scraper (`jungle_synthesizer/ny-business-registry-scraper`) Actor

Search every active New York State business entity (LLCs, corporations, partnerships, not-for-profits) by name, DOS ID, county, entity type or filing date. Returns filing date, county, jurisdiction, process address, registered agent and chairman from the NY Department of State registry.

- **URL**: https://apify.com/jungle_synthesizer/ny-business-registry-scraper.md
- **Developed by:** [BowTiedRaccoon](https://apify.com/jungle_synthesizer) (community)
- **Categories:** Lead generation, Business, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.80 / 1,000 record scrapeds

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

## NY Business Registry Scraper

Search and export New York State business entities from the New York Department of State registry: LLCs, business corporations, not-for-profits, partnerships and more. Look entities up by name or DOS ID, or filter by county, entity type and initial filing date. Each record carries the filing date, county, jurisdiction of formation, service-of-process address, registered agent and, where filed, the chairman and principal location.

Useful for due diligence, KYC and compliance checks, partner and vendor screening, lead generation from new filings, and market research on who is registered where.

### What you get

```json
{
  "dosId": "4424185",
  "entityName": "BUTCHY'S WINE & SPIRITS, INC.",
  "entityType": "DOMESTIC BUSINESS CORPORATION",
  "status": "Active",
  "initialFilingDate": "2013-06-27",
  "county": "Westchester",
  "jurisdiction": "New York",
  "processName": "BUTCHY'S WINE & SPIRITS, INC.",
  "processAddress": "23 BUSHNEIL PLACE",
  "processCity": "MOUNT VERNON",
  "processState": "NY",
  "processZip": "10550",
  "registeredAgentName": null,
  "chairmanName": null,
  "locationName": null,
  "scrapedAt": "2026-10-23T20:43:12.396Z"
}
```

| Field group        | Fields                                                                       | Filled for            |
|--------------------|------------------------------------------------------------------------------|-----------------------|
| Entity             | `dosId`, `entityName`, `entityType`, `status`, `initialFilingDate`           | every record          |
| Place              | `county`, `jurisdiction`                                                     | about 99% of records  |
| Service of process | `processName`, `processAddress`, `processCity`, `processState`, `processZip` | about 98% of records  |
| Registered agent   | `registeredAgentName`, `...Address`, `...City`, `...State`, `...Zip`         | about 1 in 5 records  |
| Chairman           | `chairmanName`, `...Address`, `...City`, `...State`, `...Zip`                | about 1 in 9 records  |
| Principal location | `locationName`, `...Address`, `...City`, `...State`, `...Zip`                | about 1 in 12 records |

Parties that were not filed for an entity come back as `null`; that is how the registry holds them.

### Input

| Input                    | What it does                                                                                           |
|--------------------------|--------------------------------------------------------------------------------------------------------|
| Entity name contains     | One or more names or fragments, case-insensitive. A record matches if its name contains any of them.   |
| DOS IDs                  | Exact Department of State ID numbers. A record matching a name term or a DOS ID is returned.           |
| Counties                 | Pick one or more of New York's counties. Empty means all.                                              |
| Entity types             | Pick one or more entity types (LLC, business corporation, not-for-profit, and so on). Empty means all. |
| Initial filing from / to | Date window on the first filing with the Department of State, inclusive.                               |
| Max Items                | Cap on records returned.                                                                               |

Filters combine: name or DOS ID, and county, and entity type, and filing window. With no filters at all the actor walks the registry in DOS ID order up to Max Items.

Example, new Brooklyn LLCs filed since the start of 2025:

```json
{
  "counties": ["Kings"],
  "entityTypes": ["DOMESTIC LIMITED LIABILITY COMPANY"],
  "filedFrom": "2025-01-01",
  "maxItems": 500
}
```

### Coverage and limits

- The registry covers entities that are currently active, about 4.3 million of them. Dissolved or inactive entities are not included.
- Assumed names (DBAs) and assumed name IDs are not part of this data, so they cannot be searched.
- Records are as current as the Department of State's latest published refresh.
- Speed: roughly 5,000 records per minute. A pull of several hundred thousand records is a long run; narrow with county, type or dates to keep runs short.

### Pricing

Pay per record returned. You are charged for the records saved, so Max Items is also your spend cap.

# Actor input Schema

## `sp_intended_usage` (type: `string`):

What will this data feed? E.g. lead lists, KYB checks, price tracking.

## `sp_improvement_suggestions` (type: `string`):

Provide any feedback or suggestions for improvements.

## `sp_contact` (type: `string`):

We'll personally help with your use case. No spam.

## `searchTerms` (type: `array`):

Business names (or fragments) to look for. A record matches when its current entity name contains any of the terms, case-insensitive. Leave empty to browse by the other filters.

## `dosIds` (type: `array`):

Exact New York Department of State ID numbers to look up (numbers only). A record matching either a name term or a DOS ID is returned.

## `counties` (type: `array`):

Only entities whose county of record is one of these. Leave empty for all counties.

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

Only entities of these types (LLC, business corporation, not-for-profit, and so on). Leave empty for all types.

## `filedFrom` (type: `string`):

Only entities first filed with the Department of State on or after this date.

## `filedTo` (type: `string`):

Only entities first filed on or before this date.

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

Maximum number of entities to return.

## Actor input object example

```json
{
  "sp_contact": "Share your email here...",
  "searchTerms": [
    "bakery"
  ],
  "maxItems": 10
}
```

# 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 = {
    "sp_contact": "Share your email here...",
    "searchTerms": [
        "bakery"
    ],
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("jungle_synthesizer/ny-business-registry-scraper").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 = {
    "sp_contact": "Share your email here...",
    "searchTerms": ["bakery"],
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("jungle_synthesizer/ny-business-registry-scraper").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 '{
  "sp_contact": "Share your email here...",
  "searchTerms": [
    "bakery"
  ],
  "maxItems": 10
}' |
apify call jungle_synthesizer/ny-business-registry-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jungle_synthesizer/ny-business-registry-scraper"
        }
    }
}
```

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/bCN3R8ltZzgVfCZ1i/builds/ijLdYRIPHBDJImJsp/openapi.json
