NYC + Chicago Restaurant Inspections Scraper
Pricing
from $2.15 / 1,000 inspections
NYC + Chicago Restaurant Inspections Scraper
Search NYC and Chicago restaurant inspections in one normalized format. Filter by establishment, outcome, date, or recent records, then review source-published grades, scores, violations, source details, and missing fields.
Pricing
from $2.15 / 1,000 inspections
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
🧾 Restaurant inspections for public-health research
Restaurant operators, food-safety researchers, journalists, and data teams can use this Actor to search New York City and Chicago restaurant inspections. It returns one normalized row per inspection with source-published outcomes, dates, grades or scores, violations, locations, and source details, so you can review public records in one shape. Coverage is limited to the selected jurisdictions and what their sources publish.
- Find public records with Where Can I Find Restaurant Health Inspection Reports for New York City or Chicago.
- Review source-published NYC grades and scores with NYC Restaurant Grades Lookup.
- Check Chicago outcomes, dates, locations, and violations with Chicago Food Inspection Reports.
- Build a report from published counts, summaries, and violation details with Health Code Violations Report.
- Find records by name, outcome, or date with Restaurant Inspections Lookup.
- Review NYC inspection dates, types, and published violations with Health Inspection NYC.
🧭 See normalized inspection records
Each dataset row represents one inspection record found in a selected public source. The row keeps the source-published wording and puts common details into the same shape: establishment identity and location, inspection facts, jurisdiction context, source details, and data quality.
Grades, scores, risk levels, identifiers, coordinates, and violation details appear when a source publishes them. Missing source values stay unavailable. dataQuality.status shows complete or partial, and dataQuality.missingFields names fields the source did not publish. Use jurisdiction.comparabilityNote when you need context about local grade or score scales.
▶️ Run a filtered inspection search
Run flow
- Choose New York City, Chicago, or both in
jurisdictions. - Add the same filter set for every selected jurisdiction.
- Set
maxItems, or leave it empty to return all available results until each selected source is exhausted. - Open the default dataset to review structured rows and source details.
Source limits
This Actor covers the two jurisdictions named in the input schema. Results are bounded by the records each source publishes. A source can use different outcome, grade, score, or violation fields, so keep the source and jurisdiction context with each row.
⚙️ Input
The required field is jurisdictions. All other fields are optional. The same filters apply to every selected jurisdiction.
| Field | Type | What it does |
|---|---|---|
jurisdictions | array of strings | Required. Choose New York City, Chicago, or both. |
maxItems | integer | Stops after this many inspection records. Leave it empty to return all available results until each selected source is exhausted. |
establishmentNames | array of strings | Keeps records whose establishment name contains at least one value in this list. |
outcomes | array of strings | Keeps records with one of these source-published outcomes or statuses. An empty list keeps all outcomes. |
startDate | date string | Keeps inspections on or after this date. Use YYYY-MM-DD. |
endDate | date string | Keeps inspections on or before this date. Use YYYY-MM-DD. |
recentOnly | boolean | Keeps recent or newly observed inspections when turned on. |
Default input example
This example uses the default input from a successful run.
{"jurisdictions": ["New York City"],"maxItems": 5}
Filter notes
Use establishmentNames for one or more partial-name filters. Use outcomes with the wording used by the selected source. Leave optional filters empty or unset when you want the full available date range and all source-published outcomes.
🧾 Output
The default dataset contains one normalized inspection-record shape. Optional values may be absent when a selected source does not publish them.
Each run also returns a dataset URL for the default dataset.
Run output
| Field | Type | What it does |
|---|---|---|
dataset | URL string | Links to the normalized inspection records in the default dataset. |
Inspection record fields
| Field | Type | What it does |
|---|---|---|
establishment | object | Restaurant or food-establishment details. |
establishment.name | string | Establishment name. |
establishment.type | string | Source-published facility type. |
establishment.licenseId | string | Source-published license or permit identifier. |
establishment.facilityId | string | Source-published facility identifier. |
establishment.address | object | Establishment address when published. |
establishment.address.street | string | Street address. |
establishment.address.city | string | City in the address. |
establishment.address.state | string | State in the address. |
establishment.address.postalCode | string | Postal code in the address. |
establishment.coordinates | object | Establishment coordinates when published. |
establishment.coordinates.latitude | number | Latitude. |
establishment.coordinates.longitude | number | Longitude. |
inspection | object | Source-published inspection details. |
inspection.id | string | Source identifier for the inspection record. |
inspection.date | date string | Date when the inspection took place. |
inspection.type | string | Source-published inspection type. |
inspection.outcome | string | Source-published inspection outcome or status. |
inspection.grade | string | Source-published letter grade when available. |
inspection.score | number | Source-published numeric health score when available. |
inspection.riskLevel | string | Source-published facility or inspection risk level. |
inspection.violationCount | integer | Number of violations published for the inspection. |
inspection.summary | string | Source-published violation summary text. |
inspection.violations | array of objects | Individual violations published for the inspection. |
inspection.violations[].code | string | Source-published violation code. |
inspection.violations[].description | string | Source-published violation description. |
inspection.violations[].isCritical | boolean | Whether the source marks the violation as critical. |
jurisdiction | object | City or county public-health jurisdiction context. |
jurisdiction.name | string | Jurisdiction name. |
jurisdiction.type | string | Source-published jurisdiction type. |
jurisdiction.state | string | US state for the jurisdiction when published. |
jurisdiction.comparabilityNote | string | Note about comparing this jurisdiction's grades or scores with another scale. |
source | object | Public inspection source details. |
source.name | string | Name of the public inspection source. |
source.sourceUrl | URL | Source URL when published. |
source.recordUrl | URL | URL for this inspection record when published. |
source.observedAt | date-time string | Time when the source record was observed. |
dataQuality | object | Short status for the values in this record. |
dataQuality.status | string | complete when useful fields are present, or partial when the source left fields out. |
dataQuality.missingFields | array of strings | Normalized field paths the source did not publish. |
Example inspection record
This genuine row comes from the current beta build's successful default-input run. It is shown as returned; optional fields that are absent from the source are listed in dataQuality.missingFields.
{"establishment": {"name": "PRET A MANGER","type": "Soups/Salads/Sandwiches","facilityId": "50146150","address": {"street": "62 WEST 45 STREET","city": "Manhattan","state": "NY","postalCode": "10036"},"coordinates": {"latitude": 40.756195280284,"longitude": -73.981385740102}},"inspection": {"date": "2026-08-04","type": "Cycle Inspection / Initial Inspection","outcome": "Violations were cited in the following area(s).","grade": "A","score": 11,"violationCount": 2,"summary": "Cold TCS food item held above 41 °F; smoked or processed fish held above 38 °F; intact raw eggs held above 45 °F; or reduced oxygen packaged (ROP) TCS foods held above required temperatures except during active necessary preparation. | Anti-siphonage or back-flow prevention device not provided where required; equipment or floor not properly drained; sewage disposal system in disrepair or not functioning properly. Condensation or liquid waste improperly disposed of.","violations": [{"code": "02G","description": "Cold TCS food item held above 41 °F; smoked or processed fish held above 38 °F; intact raw eggs held above 45 °F; or reduced oxygen packaged (ROP) TCS foods held above required temperatures except during active necessary preparation.","isCritical": true},{"code": "10B","description": "Anti-siphonage or back-flow prevention device not provided where required; equipment or floor not properly drained; sewage disposal system in disrepair or not functioning properly. Condensation or liquid waste improperly disposed of.","isCritical": false}]},"jurisdiction": {"name": "New York City","type": "city","state": "NY","comparabilityNote": "New York City's DOHMH grades and scores use the NYC inspection scale; compare them directly only within this jurisdiction."},"source": {"name": "NYC DOHMH Restaurant Inspection Results","sourceUrl": "https://data.cityofnewyork.us/resource/43nn-pn8j.json","observedAt": "2026-08-05T23:44:49.853Z"},"dataQuality": {"status": "partial","missingFields": ["establishment.licenseId","inspection.id","inspection.riskLevel","source.recordUrl"]}}
💳 Pricing
Per-record pricing
You pay for each inspection record saved to the dataset. The current event price is shown on the Store page for your Apify pricing tier. A run that saves no inspection records does not trigger this per-record event, and filtered-out records are not saved.
🔌 Integrations
Dataset and API
Open the default dataset from the run page to inspect the normalized rows. The dataset and its API provide structured access to the fields in the Output section.
Video walkthrough
❓ FAQ
Which jurisdictions can I select?
The input supports New York City, Chicago, or both. The same filter set applies to every selected jurisdiction.
Does a row include health code violations?
When the source publishes them, a row includes a violation count, summary, and individual violation codes and descriptions. A source can also mark an individual violation as critical. These fields can be unavailable in a source row.
What if a source does not publish a field?
The value stays unavailable instead of being invented. dataQuality.status can be partial, and dataQuality.missingFields lists the missing normalized field paths.
Are NYC grades and Chicago outcomes directly comparable?
No single scale should be assumed. Keep each source's outcome, grade, or score with its jurisdiction, and read jurisdiction.comparabilityNote before making a comparison.
Can I use this for restaurant health scores near me?
Only within the supported jurisdictions. Choose New York City or Chicago, then filter by establishment name or another available input; the Actor does not infer your location.
What does an empty maxItems value do?
It returns all available results until each selected source is exhausted. Use a number when you want to stop after a set number of saved records.
Can I search Hartford or another city?
Not with this Actor. Its public input supports New York City and Chicago, so choose a source that covers the city you need.
Does this Actor make a safety or compliance decision?
No. It returns source-published inspection data and context. Review the source record and make your own research, safety, or business decision.
📝 Changelog
0.1: Richer inspection details and easier filtering
- Added richer inspection details, source record links, and clearer ways to discover and filter NYC and Chicago records.
0.0: Initial release
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- US Restaurant Health Inspection Scores — Compare normalized NYC and Chicago inspection rows with grades, scores, and violation flags.
- US Restaurant Inspections Scraper: Food Establishments — Export broader US inspection fields when you need more jurisdictions.
- Restaurant Inspection Data Scraper - 7 US Cities — Review normalized inspection data across seven cities.
- Chicago Restaurant Inspections — Focus on Chicago outcomes, facility types, risk levels, addresses, and dates.
- NYC Restaurant Inspection Results Scraper — Review NYC grades, violations, scores, and location fields.
Made with ❤️ by Maxime Dupré