# New Business Filings Scraper: US State Open Data Leads (`everyotherfriday/us-business-filings`) Actor

Fresh business registrations for B2B sales, accountants, insurers and local services: filter official state records by filing date, entity type, status and city, get one schema with entity name, type, formation date, principal address and a link to the source dataset.

- **URL**: https://apify.com/everyotherfriday/us-business-filings.md
- **Developed by:** [Paul Vasquez](https://apify.com/everyotherfriday) (community)
- **Categories:** Lead generation, Business, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$3.00 / 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.

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

## US Business Filings

### What it does

Find recent business registrations in four official open-data feeds and export consistent JSON or CSV records. Sources are Colorado, Connecticut, Pennsylvania and Delaware. Delaware supplies business licences; its dates describe licence validity rather than legal incorporation. This is a discovery feed, not a certificate of good standing.

Before requesting records, the actor reads each dataset's live metadata. It accepts only PUBLIC\_DOMAIN or USGOV\_WORKS, requires a licence name, and checks the dataset ID. A refused dataset produces one free diagnostic. Only the four approved state datasets are routed. Unavailable sources in saved inputs produce free diagnostics without network requests. The actual licence name accompanies every business record.

### Input

The daily default is:

```json
{"sources":["colorado"],"maxItems":50}
```

Choose `sources` from `colorado`, `connecticut`, `pennsylvania`, and `delaware`. Sources run in the supplied order; `maxItems` is a shared cap, so an earlier source can fill it. Run sources separately when each needs its own quota.

`registeredFrom` and `registeredTo` accept inclusive YYYY-MM-DD dates. Both blank means the last seven calendar days through today in UTC. A blank start uses six days before the end.

`entityTypes` accepts exact source codes or labels. Colorado uses codes such as DLLC; other portals use different labels. `city` and `zip` are exact matches; `keyword` is a business-name substring. Text matching ignores case. Keep postal codes as strings. Unsupported filters produce a free diagnostic rather than silently broadening the search.

`includeAgentNames` defaults to false. When enabled, `agentNames` contains available name components from the first encountered source row for that entity. It is not a complete officer directory. `appToken` is an optional secret Socrata application token, sent as the X-App-Token header; no key is required. Requests are spaced at least half a second apart per portal, including retries and metadata calls. Two retries honour Retry-After, with one- and two-second minimum backoffs. A 105-second network deadline prevents extended retry loops.

### Output

Each `business-record` has source, datasetId, licence, entityId, entityName, entityType, status, formationDate, principalStreet, principalCity, principalState, principalZip, mailingCity, mailingState, jurisdiction, naicsCode, sourceUrl and fetchedAt. Missing or invalid values become null. IDs and postal codes stay strings; formationDate is an ISO date. `rowType` separates business records from free diagnostics. Source status is preserved, not inferred. There are no raw payloads, personal emails or phone numbers.

Pennsylvania's source address is the published registration address and may be an officer or service address. Duplicate source/entity IDs produce only one record. Malformed multiline business names containing embedded records are skipped.

### Example output

Real trimmed Colorado record from local live validation:

```json
{
  "rowType": "business-record",
  "source": "colorado",
  "datasetId": "4ykn-tg5h",
  "licence": "Public Domain",
  "entityId": "20268124220",
  "entityName": "Snowdrop & Shadow Praxis, LLC",
  "entityType": "DLLC",
  "formationDate": "2026-09-25",
  "principalCity": "Fort Collins",
  "principalState": "CO",
  "sourceUrl": "https://data.colorado.gov/d/4ykn-tg5h"
}
```

### Use cases

- Bookkeeping firms can identify recently registered businesses in their service city and verify relevant prospects before outreach.
- Chamber-of-commerce membership teams can discover new local entities and check whether membership invitations are appropriate.
- Commercial insurance brokers can review entity types and registration dates to prioritize business research.
- Economic-development analysts can compare registration activity within a source using consistent dates and deduplicated identifiers.

### Pricing example

The `business-record` event costs $0.003 per successful unique record: 50 records cost $0.15, and 1,000 cost $3.00 in event charges. Diagnostics, empty searches and refused datasets are free. The actor stops when the charging budget is denied and retains the last granted record. Platform billing and deployment remain unverified; local validation does not charge money.

### Limitations

Registered-agent and associated-person names are dropped by default. Entity names can themselves be sole traders' names, and entity addresses can be home addresses of one-person companies. This data is for business outreach that follows local marketing law; public availability is not consent to contact someone. Verify suitability, source accuracy and current status before use. Updates can lag, fields can change, and sources do not provide nationwide coverage or equivalent measures of business formation.

### Sources and licences

Data from the named state open-data portal, published as public domain. Not affiliated with any Secretary of State. Dataset IDs and detailed portal-terms findings are in [TERMS.md](TERMS.md). Colorado, Connecticut and Delaware use PUBLIC\_DOMAIN; Pennsylvania uses USGOV\_WORKS. Metadata licensing does not remove privacy obligations.

Colorado's required disclaimer follows: 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.

# Actor input Schema

## `sources` (type: `array`):

Portals to read, in order; maxItems is shared across sources.

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

Inclusive ISO date YYYY-MM-DD. Blank starts six days before registeredTo.

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

Inclusive ISO date YYYY-MM-DD. Blank uses today in UTC; together blank means last seven calendar days.

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

Exact source type codes or labels, case insensitive. Unsupported source filters produce free diagnostics.

## `city` (type: `string`):

Exact business city, case insensitive.

## `zip` (type: `string`):

Exact postal code, including any extension; keep leading zeroes.

## `keyword` (type: `string`):

Case-insensitive substring in the entity name.

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

Global maximum successful records, excluding free diagnostics.

## `includeAgentNames` (type: `boolean`):

Opt in to agentNames from the first encountered row per entity; no personal contact fields.

## `appToken` (type: `string`):

Optional user-supplied token sent only as X-App-Token to the approved portals. Key-free by default.

## Actor input object example

```json
{
  "sources": [
    "colorado"
  ],
  "maxItems": 50,
  "includeAgentNames": false
}
```

# Actor output Schema

## `json` (type: `string`):

No description

## `csv` (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("everyotherfriday/us-business-filings").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("everyotherfriday/us-business-filings").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 everyotherfriday/us-business-filings --silent --output-dataset

```

## MCP server setup

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

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/EqB7yM9pIpRKoXsIf/builds/MdjS3XcfguDcQJ9tr/openapi.json
