Restaurant Inspections & New Openings: 16 US Cities & Counties
Pricing
from $3.00 / 1,000 results
Restaurant Inspections & New Openings: 16 US Cities & Counties
Restaurant health inspection grades, scores and pass/fail results for NYC, Chicago, San Francisco, Austin, Cincinnati, Boston and Marin County, plus alerts when a new restaurant opens or fails an inspection. Official city data, one deduplicated record per restaurant.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Zach Wallace
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
US Restaurant Inspection Monitor: Grades, New Openings & Failed Inspections
US Restaurant Inspection Monitor gives you restaurant and food-service health inspections across 16 US cities, counties and states (New York City and the rest of New York State, Chicago, San Francisco, Austin, Cincinnati, Boston, Marin County, Montgomery County MD, King County WA including Seattle, Minneapolis, Louisville, Wake County NC including Raleigh, Sacramento County, Santa Clara County including San Jose, and Boulder County CO), pulled from official open data and merged into one deduplicated feed, one record per establishment at its most recent inspection. It tracks two high-value signals between runs: a new establishment appearing (a restaurant that just opened) and a grade or result change (an establishment that just failed or was closed). Most inspection scrapers cover one city and dump raw inspection rows. This one covers 16 cities, counties and states in one schema, reduces to one clean record per establishment, and detects what changed.
Watch the 30-second overview:

Where can I get US restaurant health inspection data?
This is a self-serve source of US restaurant inspection data on Apify. It reads publicly available records from official city and county health departments, normalizes each one's format into one consistent schema, keeps one record per establishment at its latest meaningful inspection, and detects changes between runs so you learn the day a restaurant opens or fails an inspection. Each source is health-checked every run: a dataset that stops updating (some city portals silently freeze) is flagged stale, so the feed never quietly serves years-old data.
Cities and official sources covered
| City | Official source | Outcome format |
|---|---|---|
| New York City | NYC DOHMH restaurant inspections | Letter grade (A / B / C), critical-violation flag, cuisine, phone, coordinates |
| Chicago | Chicago CDPH food inspections | Pass / Fail / Conditional, facility type, coordinates |
| San Francisco | SF DPH restaurant inspections | Pass / Conditional Pass / Closure rating, native coordinates |
| Austin | Austin Public Health inspection scores | 0-100 hygiene score (coordinates via geocoding) |
| Cincinnati | Cincinnati Health Department | Approved / minor / major / closed status, phone, coordinates |
| Boston | Boston Inspectional Services (CKAN) | Pass / fail / closed, facility type (coordinates via geocoding) |
| Marin County (CA) | Marin County EHS | Colored placard grade (GREEN / YELLOW / RED), coordinates via geocoding |
| Montgomery County (MD) | Montgomery County DHHS | Pass / Fail / Closed, facility type, coordinates |
| King County (WA), incl. Seattle | Public Health Seattle & King County | Satisfactory / Unsatisfactory, the county's rating (Excellent / Good / Okay / Needs To Improve), violation points (coordinates via geocoding) |
| Minneapolis | Minneapolis Health Department | 0-100 score, facility category, coordinates |
| Louisville | Louisville Metro Public Health | 0-100 score and letter grade (A / B / C), facility type (coordinates via geocoding) |
| Wake County (NC), incl. Raleigh | Wake County Environmental Health | 0-100 sanitation score and NC letter grade, phone, coordinates |
| Sacramento County | Sacramento County EMD | Placard result (Pass / Conditional Pass / Closed), facility type, coordinates |
| New York State (outside NYC) | NYS Department of Health | Critical and non-critical violation counts (pass / corrected critical / open critical), facility type, coordinates |
| Santa Clara County (CA), incl. San Jose | Santa Clara County DEH | Placard (Green / Yellow / Red) and score, phone, coordinates |
| Boulder County (CO) | Boulder County Public Health | Pass / Reinspection Required / Closure, violation points, coordinates (loaded monthly, a few weeks behind) |
Only active establishments. By default a record is included only if the city inspected it in the last 3 years (maxInspectionAgeDays, set 0 for full history). Cities inspect every open restaurant at least yearly, so this keeps every active business and drops the ones that closed long ago: in Chicago that is 17,000 current establishments instead of 49,000 all-time names. New York City permits still waiting for a first inspection are always kept, with result: "not_yet_inspected"; they are the earliest signal that a restaurant is about to open.
Every licence is its own record, even when several share one address (a hotel's restaurant, bar and banquet kitchen are licensed and inspected separately), so a failed inspection is never hidden behind a passing sibling.
More cities are added over time as their open data is verified live. Dallas and Baton Rouge are temporarily out because their public datasets stopped updating, and this Actor will not serve stale data as if it were current.
What data does each record include?
| Field | Description |
|---|---|
name | Establishment / restaurant name |
city | Market: New York City, Chicago, San Francisco, Austin, Cincinnati, Boston, Marin County, or Montgomery County |
result | Normalized outcome: pass, conditional, fail, closed, other, unknown |
grade | Letter grade where the city uses one (NYC A/B/C), else null |
score | 0-100 hygiene score where the city publishes one (Austin; higher is better) |
critical | Whether the latest inspection failed or flagged a critical issue |
facilityType | Restaurant, School, Grocery, and so on |
cuisine | Cuisine description (NYC) |
latestInspectionDate | Date of the most recent inspection used |
address | street, city, state, zip |
coordinates | Latitude/longitude (NYC, Chicago, SF, Cincinnati and Montgomery publish it; Austin, Boston, and Marin can be filled with geocoding) |
phone | Phone where the city publishes it (NYC, Cincinnati) |
Who uses restaurant inspection data?
Restaurant tech and POS companies. A new establishment appearing is a restaurant about to open that needs a POS, payments, and software. Run this weekly with a webhookUrl and get every new opening across all 15 sources.
Food suppliers and distributors. Track newly opened restaurants in your markets, filter by city and facility type for territory-accurate prospect lists.
Food-safety consultants and pest control. A failed or low-grade inspection is a business that needs help now. The FAILING_INSPECTIONS output lists every establishment that failed, was closed, or flagged a critical issue.
Insurance and compliance. Monitor inspection outcomes and closures across a portfolio of locations.
Consumer apps, journalists, and researchers. A clean, geocoded, cross-city inspection dataset for maps, safety features, and food-safety analysis.
How is this different from a single-city inspection scraper?
- Fifteen cities, counties and states in one consistent schema, not one.
- One record per establishment at its latest meaningful inspection, not thousands of raw violation rows.
- Change detection for new openings and grade/result changes, so it works as a monitor, not a one-time dump.
- Normalized outcome (
result) comparable across cities that use letter grades, pass/fail, or numeric scores. - Self-heals:
RUN_HEALTHflags a source that silently returned zero when it had data last run, or one whose dataset has gonestale(stopped updating upstream).
How to use it
- Open the Input tab.
- Choose your cities (
NYC,CHICAGO,SF,AUSTIN,CINCINNATI,BOSTON,MARIN,MONTGOMERY,KINGCOUNTY,MINNEAPOLIS,LOUISVILLE,WAKE,SACRAMENTO,NYSTATE,SANTACLARA,BOULDER). - For a recurring feed, turn on Monitor mode (
onlyOutputChanges) and add awebhookUrl. - To map Austin, Boston, and Marin (which do not publish coordinates), turn on
geocodeMissingCoordinates. - Click Start. The first run builds a baseline; every run after it reports only what changed.
- Download from the Output tab as JSON, CSV, or Excel, or pull via the Apify API.
Free smoke test: set testMode: true to cap every city at 5 rows and skip the snapshot.
Output
Main dataset: establishments
{"id": "nyc_50145855","sources": ["nyc"],"name": "CHINA RED EXPRESS","city": "New York City","cuisine": "Chinese","facilityType": "Restaurant","address": { "street": "118 CHAMBERS STREET", "city": "Manhattan", "state": "NY", "zip": "10007" },"coordinates": { "lat": 40.71518, "lng": -74.00853 },"phone": "+12122674015","latestInspectionDate": "2025-04-25","grade": "B","score": null,"result": "conditional","critical": true}
Change events (Monitor mode + webhook)
Event types: new_establishment, inspection_result_changed, updated, removed. Also written to the CHANGES key, with RUN_HEALTH and FAILING_INSPECTIONS (everything failing or closed) on every run. Removals are only reported on an uncapped run (maxRecordsPerSource: 0); under the default cap the feed focuses on new openings and result changes.
Integrations, plug it into your stack
- Make, Zapier, and n8n, Apify ships official connectors, so a finished run can trigger a scenario and drop the data into Google Sheets, Airtable, a CRM, or Slack with no code.
- Webhooks, set the
webhookUrlinput to POST new-establishment and grade/result-change events in real time, to Slack, your own API, or a no-code webhook trigger. - API and scheduling, run on a schedule from the Apify Console, or call the Apify API and pull the dataset as JSON, CSV, or Excel.
Pricing: how much does it cost?
Pay-per-result. Only records written to the dataset are billed. In monitor mode each run bills only the establishments that changed, which is a handful, so a scheduled weekly monitor costs pennies. A full pull scales with the number of establishments; use maxRecordsPerSource to bound a first run.
FAQ
Where can I get restaurant health inspection data for US cities? This Actor. It returns one record per establishment with its latest inspection grade or score across New York City, Chicago, San Francisco, Austin, Cincinnati, Boston, Marin County, and Montgomery County, Maryland.
How do I find restaurants that just opened?
Turn on Monitor mode and add a webhookUrl. A new establishment appearing in the inspection data is a restaurant that just opened; each is emitted as a new_establishment event.
How do I find restaurants that failed a health inspection?
Every run writes FAILING_INSPECTIONS listing establishments whose latest inspection failed, was a closure, or flagged a critical issue. In monitor mode, a grade or result dropping fires an inspection_result_changed event.
Which cities are covered? New York City, Chicago, San Francisco, Austin, Cincinnati, Boston, Marin County, and Montgomery County (Maryland). More cities (many publish inspections on Socrata) are added over time as their data is verified live; request one via the Issues tab.
What is the difference between grade, score, and result?
Cities score differently: NYC uses letter grades (A/B/C), Austin uses a 0-100 score, Chicago and San Francisco use pass/fail-style ratings. result normalizes all of them into one comparable field (pass, conditional, fail, closed).
Do all records have coordinates?
NYC, Chicago, San Francisco, Cincinnati and Montgomery County publish coordinates directly. For Austin, Boston, and Marin County, turn on geocodeMissingCoordinates to fill lat/lng via free OpenStreetMap geocoding, cached across runs.
Can I get the data as CSV, JSON, or an API? Yes: JSON, CSV, or Excel from the Output tab, or via the Apify API.
Is scraping restaurant inspection data legal? It uses only publicly available data published by official city and county health departments. It accesses no private data and bypasses no authentication.