# New Business License Leads — Chicago + NY State Liquor (`esco.api/new-business-licenses`) Actor

Businesses that just got licensed to open — new Chicago business licenses (all categories) plus pending NY State liquor applications (bars & restaurants opening soon). Official feeds, normalized, deduplicated.

- **URL**: https://apify.com/esco.api/new-business-licenses.md
- **Developed by:** [Francesco Freedman](https://apify.com/esco.api) (community)
- **Categories:** Lead generation, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## 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

## New Business License Leads — Chicago + NY State Liquor

Get **businesses that just got licensed to open** — every new Chicago business license (all categories) and every **pending New York State liquor license application** — straight from the official government feeds. Normalized, deduplicated, lead-ready.

A new license is a stronger signal than a new LLC filing: it means a real business, at a real address, in a known category, about to start operating. A *pending liquor application* is the classic **soon-to-open** signal — bars and restaurants file 1–6 months before opening day, which is exactly when they're buying everything.

### Why this actor

- **Official sources only.** City of Chicago business licenses and NY State Liquor Authority pending applications, from the government open-data portals — no scraping of third-party sites, no stale resold lists.
- **Category-rich.** Chicago: every license category (Retail Food, Pop-Up Retail, Tobacco, Home Repair…). NY liquor: human-readable class (Restaurant, Grocery Store, Tavern…).
- **Soon-to-open leads, not old news.** NY liquor applications are captured the day the SLA logs them — months before the doors open.
- **You only pay for new leads.** With `newOnly` enabled (default), records already delivered in previous runs are skipped — a scheduled run only charges for rows you haven't seen before.
- **New issuances only.** Chicago renewals are filtered out at the source (`application_type=ISSUE`); you only see businesses that are new.

### Output example

```json
{
    "region": "NY-LIQUOR",
    "event": "liquor application received",
    "event_date": "2026-07-07",
    "business_name": "Watches of Switzerland LLC",
    "category": "Restaurant",
    "address": "1 Vanderbilt Ave",
    "city": "New York",
    "zip": "10017",
    "area": "New York County",
    "status": "Pending",
    "source": "NY State Liquor Authority — Pending Licenses (data.ny.gov)"
}
```

Typical volume: **250–550 new license events per week** across both sources.

### Who uses this

- **Restaurant suppliers & food distributors** — a pending liquor license is a restaurant fitting out its space right now.
- **POS, payments & reservation platforms** — reach owners before they've picked a stack.
- **Commercial insurance** — new licensees need liquor liability, GL, workers' comp.
- **Marketing agencies & sign makers** — new businesses need launch marketing.
- **Beverage distributors** — every pending license is a future account, with the county included.
- **CRE & market analysts** — track retail/hospitality openings by neighborhood.

### Inputs

| Field | Default | Notes |
|---|---|---|
| `sources` | both | `CHI` (Chicago licenses), `NY_LIQUOR` (NY State pending liquor) |
| `sinceDays` | `7` | Look-back window (1–90 days) |
| `newOnly` | `true` | Skip records delivered by previous runs |
| `maxResults` | `0` (no cap) | Handy for test runs |
| `socrataAppToken` | — | Optional; raises API rate limits for large backfills |

### Recommended setup: scheduled lead feed

1. Create a **Schedule** in Apify Console (daily or weekly).
2. Input: your sources, `sinceDays: 7`, `newOnly: true`.
3. Add an integration (email, Slack, webhook, Google Sheets, Make/Zapier) to deliver each run's fresh leads to your pipeline.

### More sources?

Chicago and NY State are live. Other cities and state liquor boards publish similar feeds — **open an issue and tell me which region you need**; well-supported requests ship within days. (NYC's own license feed was evaluated and excluded on purpose: the city publishes new licenses with a ~3-month lag, which is not a lead. NYC bar & restaurant openings are covered here via the NY State liquor feed.)

### Data & fair-use notes

All records are public business licenses and license applications published by government agencies for exactly this purpose. The actor queries official open-data APIs politely (paged, rate-limited, identified). Records describe businesses, not consumers.

# Actor input Schema

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

Which license feeds to pull. All supported sources by default.

## `sinceDays` (type: `integer`):

Return licenses issued (or liquor applications received) within the last N days. Feeds update daily-to-weekly, so 7-14 is a good cadence.

## `newOnly` (type: `boolean`):

When enabled, records already returned by previous runs of this actor are skipped, so a scheduled run only yields (and only charges for) genuinely new leads.

## `maxResults` (type: `integer`):

Hard cap on total results across all sources (0 = no cap). Useful for test runs.

## `socrataAppToken` (type: `string`):

Optional app token from any Socrata open-data portal account. Not required — it just raises the APIs' rate limits for very large backfills.

## Actor input object example

```json
{
  "sources": [
    "CHI",
    "NY_LIQUOR"
  ],
  "sinceDays": 7,
  "newOnly": true,
  "maxResults": 0
}
```

# 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("esco.api/new-business-licenses").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("esco.api/new-business-licenses").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 '{}' |
apify call esco.api/new-business-licenses --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Zgrm502eWWxaxfNMR/builds/WXDxp2yr2Nx4PgTA0/openapi.json
