# New Business Filings — US State Registry Leads Feed (`devilscrapes/new-business-filings-leads-scraper`) Actor

Pull a daily feed of newly-formed US business entities from official state Secretary-of-State registries (NY, CO, CT, OR) — company name, entity type, formation date, registered agent, and address, filtered by date range. Built for sales and lead-gen teams.

- **URL**: https://apify.com/devilscrapes/new-business-filings-leads-scraper.md
- **Developed by:** [DevilScrapes](https://apify.com/devilscrapes) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

<div align="center">
  <img src=".actor/icon.svg" width="160" alt="Devil Scrapes mark" />

## New Business Filings Leads Scraper

**💰 $5.00 / 1 000 results**  ·  pay only for results  ·  no credit card to try

*The devil's in the data — we get it to you before your competitors do.* 😈

Pull a daily feed of newly-formed US business entities from official state Secretary-of-State registries (NY, CO, CT, OR) — company name, entity type, formation date, registered agent, and address, filtered by date range. Built for sales and lead-gen teams.

</div>

***

### 🎯 What this scrapes

This Actor pulls a **date-range feed of newly-formed US business
entities** straight from official state Secretary-of-State open-data
registries — New York, Colorado, Connecticut, and Oregon in v1. Give
it a `dateFrom` (and optionally a `dateTo`), and it returns one row
per entity that registered within that window, sorted newest-first.

This is **not** a name-search/verification tool — you don't need to
know the company names in advance. It's built for the opposite use
case: **who just formed a company?** That's the raw stream sales,
banking, insurance, payroll, and SaaS onboarding teams want to reach
while the ink is still wet. (Need to verify a *known* company name
instead? See our sibling Actor, `opencorporates-alternative-scraper`.)

### 🔥 What we handle for you

- 🛡️ **Browser fingerprint rotation** — `curl-cffi` impersonates real Chrome / Firefox / Safari TLS handshakes so every request looks like a browser, not Python.
- 🔁 **Retries with exponential backoff** on `408 / 429 / 5xx` — up to 5 attempts per request, `Retry-After` honoured.
- 🧱 **Graceful degradation per state** — if one state's dataset hiccups, that state is skipped with a warning; the rest of the run keeps going.
- 🌐 **Full pagination** — up to 10,000 rows per jurisdiction per run, paginated automatically via `$offset`.
- 🧊 **Clean, typed dataset rows** — Pydantic-validated, ISO-8601 timestamps, a shared cross-state schema despite each state publishing wildly different raw field names.
- 💰 **Pay-Per-Event pricing** — you only pay for rows that land in your dataset. No data, no charge (beyond the small warm-up fee).

### 💡 Use cases

- **Business banking & commercial insurance outreach** — reach brand-new entities before incumbents do.
- **Payroll / benefits / SaaS onboarding vendors** — target companies at the exact moment they need these tools.
- **Marketing agencies** — build fresh, low-competition prospect lists that competitors haven't touched yet.
- **Market research** — track new-entity formation volume and entity-type mix over time, per state.
- **Feed a CRM on a schedule** — pair this with an [Apify Schedule](https://docs.apify.com/platform/schedules) for a rolling daily/weekly new-filings feed.

### ⚙️ How to use it

1. Click **Try for free** at the top of the page.
2. Set **Date from** — the earliest formation date to include. Leave **Date to** blank to default to today (UTC).
3. Optionally narrow **Jurisdictions** to just the states you care about, and set an **Entity types** filter or **Max results per jurisdiction**.
4. Click **Start**. Rows stream into the run's dataset as each jurisdiction is pulled.
5. Export from **Storage → Dataset** as JSON, CSV, or Excel — or fetch via the API.
6. Want this to run automatically? Wire it into an [Apify Schedule](https://docs.apify.com/platform/schedules) with a rolling `dateFrom`/`dateTo` window.

### 📥 Input

| Field | Type | Required | Default | Notes |
|---|---|:--:|---|---|
| `dateFrom` | `string` | **yes** | — | Earliest formation date to include (inclusive), ISO `YYYY-MM-DD`. |
| `dateTo` | `string` | no | today (UTC) | Latest formation date to include (inclusive), ISO `YYYY-MM-DD`. |
| `jurisdictions` | `array` | no | `["NY","CO","CT","OR"]` | Which state registries to pull from. |
| `entityTypes` | `array` | no | none | Optional filter on **raw, per-state** entity-type values — e.g. `"DOMESTIC LIMITED LIABILITY COMPANY"` in NY vs. `"DLLC"` in CO for the same legal form. Not normalized across states. |
| `maxResultsPerJurisdiction` | `integer` | no | `1000` | Cap on rows pulled per jurisdiction per run (1-10,000), paginated via `$offset`. |
| `proxyConfiguration` | `object` | no | `{"useApifyProxy": false}` | Optional — these are public open-data APIs, not known to fingerprint clients. |

#### Example input

```json
{
  "dateFrom": "2026-07-01",
  "dateTo": "2026-07-19",
  "jurisdictions": ["NY", "CO", "CT", "OR"],
  "entityTypes": null,
  "maxResultsPerJurisdiction": 1000,
  "proxyConfiguration": {"useApifyProxy": false}
}
```

### 📤 Output

Every row is one newly-formed entity within `[dateFrom, dateTo]` for one jurisdiction.

| Field | Type | Notes |
|---|---|---|
| `entity_id` | `string` | State's internal id (`dos_id` / `entityid` / `id` / `registry_number`). |
| `entity_name` | `string` | State's on-file entity name. |
| `jurisdiction` | `string` | `NY`, `CO`, `CT`, or `OR`. |
| `entity_type` | `string \| null` | e.g. `DOMESTIC LIMITED LIABILITY COMPANY`, `DLLC` — raw per-state, not normalized. |
| `formation_date` | `string` | ISO `YYYY-MM-DD` — the field this Actor filters/sorts on. |
| `status` | `string \| null` | Raw state status label at scrape time (e.g. `Good Standing`). |
| `principal_address` | `string \| null` | Flattened single-line address. |
| `registered_agent_name` | `string \| null` | When published. |
| `registered_agent_address` | `string \| null` | Flattened single-line address. |
| `source_record_url` | `string` | Direct link to the raw SODA record. |
| `registry_url` | `string` | The state's open-data dataset landing page. |
| `scraped_at` | `string` | ISO 8601 UTC timestamp this row was written. |

#### Example output

```json
{
  "entity_id": "7969358",
  "entity_name": "URGB LLC",
  "jurisdiction": "NY",
  "entity_type": "DOMESTIC LIMITED LIABILITY COMPANY",
  "formation_date": "2026-07-17",
  "status": null,
  "principal_address": null,
  "registered_agent_name": "URGB LLC",
  "registered_agent_address": "32 Jagger Court, Melville, NY 11747",
  "source_record_url": "https://data.ny.gov/resource/n9v6-gdp6.json?dos_id=7969358",
  "registry_url": "https://data.ny.gov/d/n9v6-gdp6",
  "scraped_at": "2026-07-19T12:00:00+00:00"
}
```

### 💰 Pricing

Pay-Per-Event — you pay only when these events fire:

| Event | USD | What it is |
|---|---:|---|
| `actor-start` | $0.005 | One-off warm-up charge per run |
| `result-row` | $0.005 | Per newly-formed entity row written to the dataset |

Example: 1 000 rows ≈ **$5.00**. No subscription, no minimum, no card
to start — Apify gives every new account $5 of free credit. Because
this Actor caps at `maxResultsPerJurisdiction` (default 1,000) per
jurisdiction, a full 4-state run with defaults costs at most ~$20;
narrow the date range or the jurisdiction list to control spend.

### 🚧 Limitations

This is a **v1 with 4 confirmed states** (NY, CO, CT, OR) — not the
broader multi-state coverage some incumbents advertise. We picked
these four because each publishes a free, keyless, machine-readable
Socrata dataset sourced from the state's own Secretary of State;
adding a state is a per-state adapter, not a schema break, so more are
on the roadmap. `entityTypes` filters against each state's own **raw**
vocabulary — it is intentionally not normalized across states (a
domestic LLC is `"DOMESTIC LIMITED LIABILITY COMPANY"` in NY but
`"DLLC"` in CO). This is a one-shot pull, not a push/webhook alert —
run it on a schedule yourself via [Apify Schedules](https://docs.apify.com/platform/schedules)
for a recurring feed. Each run is stateless; deduplication against
prior runs or your own CRM is on you. `status` is nullable because NY
and OR don't publish an explicit status field.

### 🔗 Use with n8n

Wire this Actor into your [n8n](https://n8n.io) automations with the official [Apify node](https://www.npmjs.com/package/@apify/n8n-nodes-apify):

1. Add the **Apify** node and pick the **Run Actor** operation.
2. Set the Actor to `devilscrapes/new-business-filings-leads-scraper` and pass your `dateFrom`/`dateTo` window as JSON.
3. Chain a **Get Dataset Items** step to read the structured rows into the rest of your workflow (Sheets, Slack, your CRM, an AI agent, …).

Because n8n runs on a schedule or trigger, you get a fresh daily
stream of newly-formed companies on autopilot — for example, an
automated Slack digest of every new Colorado LLC formed in the last 24
hours, ready for your SDR team.

### ❓ FAQ

**How is this different from `opencorporates-alternative-scraper`?**

That Actor takes company names you already know and verifies them
against state registries (KYB/compliance use case). This Actor takes
a date range and returns entities you *don't* know yet — the raw
stream of who just formed a company (sales-prospecting use case). Same
4 states, different query shape.

**Why only 4 states in v1?**

Those are the states we've confirmed publish a genuinely free, keyless
Socrata dataset sourced from their own Secretary of State — not a
scrape of a login-gated or Cloudflare-protected search UI. Adding a
5th state is a contained code change, not a rewrite; more states are
on the roadmap.

**Can this notify me automatically when new filings appear?**

Not as a built-in feature in v1 — but it's a perfect fit for [Apify
Schedules](https://docs.apify.com/platform/schedules): set the Actor
to run daily with a rolling 1-2 day `dateFrom`/`dateTo` window and
pipe the dataset into a webhook, Slack, or your CRM.

**Are `entityTypes` values the same across all 4 states?**

No — each state publishes its own vocabulary (e.g. `"DOMESTIC LIMITED
LIABILITY COMPANY"` in NY vs. `"DLLC"` in CO for the same legal form).
`entityTypes` filters against each state's raw values, not a
normalized cross-state enum. Check a few sample rows per state before
building a strict filter.

**How current is the data?**

It's exactly as current as each state's own open-data snapshot. All 4
confirmed jurisdictions returned same-week filings during our most
recent live check, but none of these are real-time transactional
lookups — treat this as "daily-fresh," not "instant."

### 💬 Your feedback

Spotted a bug, hit a weird edge case, or need a 5th state added? Open
an issue on the Actor's **Issues** tab on Apify Console — we ship
fixes weekly and we read every report.

***

<div align="center">

Built by **[Devil Scrapes](https://apify.com/DevilScrapes)** 😈 — a small fleet of
opinionated public-data Actors. Honest pricing, real engineering, zero fine print.

</div>

# Actor input Schema

## `dateFrom` (type: `string`):

Earliest formation date to include (inclusive), ISO YYYY-MM-DD.

## `dateTo` (type: `string`):

Latest formation date to include (inclusive), ISO YYYY-MM-DD. Leave blank to default to today (UTC) at run time.

## `jurisdictions` (type: `array`):

Which state Secretary-of-State registries to pull newly-formed entities from.

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

Optional filter on raw per-state entity-type values (e.g. "DOMESTIC LIMITED LIABILITY COMPANY" in NY vs. "DLLC" in CO) — not normalized across states. Leave empty for no filter.

## `maxResultsPerJurisdiction` (type: `integer`):

Cap on rows pulled per jurisdiction per run, paginated via $offset.

## `proxyConfiguration` (type: `object`):

Optional — state open-data portals are public REST APIs and aren't known to fingerprint clients. Leave off unless you see 403/429.

## Actor input object example

```json
{
  "dateFrom": "2026-07-01",
  "jurisdictions": [
    "NY",
    "CO",
    "CT",
    "OR"
  ],
  "maxResultsPerJurisdiction": 1000,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `datasetItems` (type: `string`):

All dataset items as JSON.

## `datasetItemsCsv` (type: `string`):

Same data exported to CSV.

## `datasetView` (type: `string`):

Open the run dataset in the Console.

# 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 = {
    "dateFrom": "2026-07-01",
    "jurisdictions": [
        "NY",
        "CO",
        "CT",
        "OR"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("devilscrapes/new-business-filings-leads-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 = {
    "dateFrom": "2026-07-01",
    "jurisdictions": [
        "NY",
        "CO",
        "CT",
        "OR",
    ],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("devilscrapes/new-business-filings-leads-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "dateFrom": "2026-07-01",
  "jurisdictions": [
    "NY",
    "CO",
    "CT",
    "OR"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call devilscrapes/new-business-filings-leads-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=devilscrapes/new-business-filings-leads-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/8PZT68ooeXxTz2809/builds/4fFsmLYeuaK9qkPBs/openapi.json
