# New Restaurant & Bar Openings Monitor (US License Data) (`quidnovi/restaurant-openings-monitor`) Actor

Daily feed of newly licensed restaurants, bars, cafes, caterers and liquor stores from official open-data portals: Chicago, San Francisco, Los Angeles, New York State SLA and Texas TABC. Delta mode returns only new openings since your last run.

- **URL**: https://apify.com/quidnovi/restaurant-openings-monitor.md
- **Developed by:** [Quid Novi](https://apify.com/quidnovi) (community)
- **Categories:** Lead generation, Business
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 new opening (lead)s

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

## New Restaurant & Bar Openings Monitor – Liquor License & Business License Leads (US)

Get a **daily feed of newly opened restaurants, bars, cafes, breweries, caterers and liquor stores**, built straight from **official government open data**: new business licenses, new business locations and **new liquor licenses**. Ideal for **restaurant lead generation**. Each lead includes the business name, legal entity, address, ZIP, license type and opening date, plus coordinates where available.

Turn on **delta mode** and schedule it daily: you only get (and pay for) **openings you haven't seen before**.

### Coverage (official sources, no scraping)

| Source | What counts as an "opening" | Update cadence |
|---|---|---|
| **Chicago, IL**: City of Chicago Business Licenses | New (ISSUE) Retail Food, Tavern, Consumption-on-Premises, Caterer and Package Goods licenses | Daily |
| **San Francisco, CA**: DataSF Registered Business Locations | New locations with NAICS 722 (restaurants & bars) / 4453 (liquor stores) | Weekly |
| **Los Angeles, CA**: LA Office of Finance Active Businesses | New locations with NAICS 722 / 4453 | Weekly |
| **New York State**: State Liquor Authority active licenses | New on-premises (restaurant, tavern, club, F\&B), off-premises and catering licenses, including new owners of existing venues | Daily |
| **Texas**: TABC licenses & permits | New mixed-beverage, wine & beer retailer (on/off premise), private club and package store permits | Daily |

All data comes from the public Socrata open-data APIs of each government. No login, no proxies, no website scraping. Each record carries the `sourceUrl` of its dataset.

### Who uses new restaurant opening leads?

- **Food & beverage distributors** (broadline, produce, coffee, beer, wine & spirits): reach new accounts before they pick a supplier
- **Restaurant POS, payroll, online ordering & reservation SaaS sales teams**
- **Linen, uniform, grease trap, hood cleaning, pest control, waste and cleaning services**
- **Commercial insurance agents, equipment lessors, merchant services, signage and marketing agencies**
- **Commercial real estate brokers and market analysts** tracking restaurant openings by neighborhood

### Input

```json
{
  "sources": ["chicago", "new_york_state", "texas"],
  "venueTypes": ["on_premise"],
  "daysBack": 30,
  "onlyNewSinceLastRun": true,
  "cities": ["Austin", "Brooklyn"],
  "zipCodes": [],
  "keywords": ["brewery", "pizza"],
  "maxItems": 500
}
```

`venueTypes`: `on_premise` (restaurants, bars, cafes, clubs), `off_premise_alcohol` (liquor and package stores, grocery beer & wine), `caterers_mobile` (caterers, food trucks, shared kitchens).

### Output example

```json
{
  "recordId": "tx-tabc:200201558",
  "businessName": "Nevermore Tavern",
  "legalName": "Nevermore Tavern, LLC",
  "address": "170 W Main St",
  "city": "Lewisville", "state": "TX", "zip": "75057",
  "venueType": "on_premise",
  "licenseType": "Mixed Beverage Permit",
  "eventDate": "2026-10-09",
  "eventType": "new_liquor_license",
  "source": "texas",
  "sourceUrl": "https://data.texas.gov/d/7hf9-qc9f"
}
```

In a test run on Oct 10, 2026 with a 30-day window, on-premise only, the Actor returned **1,000 openings in about 3 seconds** (NY 758, TX 177, Chicago 37, SF 22, LA 6).

### Pricing

Pay per opening record returned (see the Pricing tab). With delta mode on, repeat runs only bill new openings.

### Tips

- Schedule daily with `onlyNewSinceLastRun: true` and send new rows to Google Sheets, HubSpot, Slack or email through Apify integrations, Make, Zapier or n8n.
- "New liquor license" includes **ownership changes** of existing venues. These are often the best sales moment, because new owners re-pick vendors.
- Records are public business-license data. Use them for B2B outreach in line with CAN-SPAM, TCPA and local rules.

### FAQ

**Why not Google Maps?** License data shows openings *weeks before* a place appears or gets reviews on Maps, and it's official.
**Can you add my city/state?** Yes. Open an issue. Any city with a Socrata or ArcGIS business-license dataset can be added quickly.

# Actor input Schema

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

Official open-data sources to check. Leave empty for all.

## `venueTypes` (type: `array`):

on_premise = restaurants, bars, cafes, taverns, clubs. off_premise_alcohol = liquor/package stores and grocery beer & wine. caterers_mobile = caterers, food trucks, shared kitchens.

## `daysBack` (type: `integer`):

Openings with a license/location start date within this many days.

## `onlyNewSinceLastRun` (type: `boolean`):

Remember what was already returned (per input combination) and only output new openings. Ideal for a daily schedule.

## `zipCodes` (type: `array`):

Optional. Only openings in these ZIP codes.

## `cities` (type: `array`):

Optional. Exact city names, e.g. Austin, Brooklyn, Houston.

## `keywords` (type: `array`):

Optional. Match in business name, license type or activity, e.g. pizza, brewery, taqueria.

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

Maximum openings to return (and be charged for) in this run.

## Actor input object example

```json
{
  "sources": [
    "chicago",
    "new_york_state",
    "texas"
  ],
  "venueTypes": [
    "on_premise"
  ],
  "daysBack": 30,
  "onlyNewSinceLastRun": false,
  "maxItems": 500
}
```

# Actor output Schema

## `results` (type: `string`):

Newly licensed restaurants, bars, cafes, caterers and liquor stores from official open-data portals.

# 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 = {
    "sources": [
        "chicago",
        "new_york_state",
        "texas"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("quidnovi/restaurant-openings-monitor").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 = { "sources": [
        "chicago",
        "new_york_state",
        "texas",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("quidnovi/restaurant-openings-monitor").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 '{
  "sources": [
    "chicago",
    "new_york_state",
    "texas"
  ]
}' |
apify call quidnovi/restaurant-openings-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,quidnovi/restaurant-openings-monitor"
        }
    }
}
```

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/jTCR9SbzVZObjnGSc/builds/RQzaxVXXc0M7GlXGn/openapi.json
