Skip to content

Open data

Download the data

Every region's inspection records are available as free CSV files for journalists, researchers and anyone else who wants to analyse them. The files are rebuilt every night from the same database that powers this site.

Files last rebuilt Oct 17, 2026.

What's in each download

Each region has three gzip-compressed CSV files (UTF-8, comma-separated, one header row). They share identifiers, so you can join them:

  • facilities: one row per facility, with its address, type, coordinates and inspection totals.
  • inspections: one row per inspection, with its date, type, infraction count, a summary of the infractions and any enforcement actions.
  • infractions: one row per infraction, with the source's description and any detail or severity it gave.

Most tools read .csv.gz directly (pandas, R, DuckDB, Python's csv with gzip). To open one in Excel or Numbers, decompress it first: double-click it on macOS, or use 7-Zip on Windows.

Downloads by region

Regions without downloads

These regions are on the site but are not offered for download. We only publish bulk files for sources whose licence explicitly permits redistribution; the rest either restrict reuse or have not published a licence. Please use the authority’s own website for these records.

  • Alberta Health Services (Environmental Public Health): the Alberta Health Services website terms prohibit redistribution
  • Brant County Health Unit: the source’s terms prohibit redistribution
  • Chatham-Kent Public Health: the source has not published a licence that permits redistribution
  • Durham Region Health Department: the source has not published a licence that permits redistribution
  • Eastern Ontario Health Unit (EOHU): the source permits non-commercial reproduction only
  • Fraser Health Authority: the source has not published a licence that permits redistribution
  • Grey Bruce Health Unit (Grey Bruce Public Health): the source requires written permission for redistribution
  • Wellington-Dufferin-Guelph Public Health: the source requires written permission for redistribution
  • Haldimand-Norfolk Health Unit (now Grand Erie Public Health): the source’s terms prohibit redistribution
  • Haliburton, Kawartha, Pine Ridge District Health Unit (HKPR): the source has not published a licence that permits redistribution
  • Halton Region Health Department: the source requires written permission for redistribution
  • City of Hamilton Public Health Services: the source has not published a licence that permits redistribution
  • Huron Perth Public Health: the source requires written permission for redistribution
  • Island Health (Vancouver Island Health Authority): the source publishes no licence for reuse
  • KFL&A Public Health: the source has not published a licence that permits redistribution
  • Lambton Public Health: the source’s terms prohibit redistribution
  • Middlesex-London Health Unit: the source’s terms prohibit redistribution
  • Peel Public Health (Region of Peel): the source reserves all rights and publishes no reuse licence
  • Simcoe Muskoka District Health Unit: the source reserves all rights and publishes no reuse licence
  • Porcupine Health Unit: the source has not published a licence that permits redistribution
  • New Brunswick Department of Health (Health Protection Branch): the source has not published a licence that permits redistribution
  • New York State Department of Health (NYSDOH): the source’s terms limit use to statistical analysis
  • Niagara Region Public Health: the source permits non-commercial reproduction only
  • North Bay Parry Sound District Health Unit: the source has not published a licence that permits redistribution
  • Northern Health Authority: the source permits non-commercial reproduction only
  • Northwestern Health Unit: the source’s terms prohibit redistribution
  • Nova Scotia Environment and Climate Change (Food Safety Program): the source permits non-commercial reproduction only
  • Ottawa Public Health: the source has not published a licence that permits redistribution
  • Peterborough Public Health (now part of Lakelands Public Health): the source has not published a licence that permits redistribution
  • Prince Edward Island Department of Health and Wellness (Environmental Health): the source has not published a licence that permits redistribution
  • Renfrew County and District Health Unit: the source has not published a licence that permits redistribution
  • Saskatchewan Health Authority: the source permits non-commercial reproduction only
  • Southwestern Public Health: the source has not published a licence that permits redistribution
  • Vancouver Coastal Health: the source permits non-commercial reproduction only
  • Interior Health Authority: the source permits non-commercial reproduction only
  • Windsor-Essex County Health Unit (WECHU): the source requires written permission for redistribution
  • York Region Public Health: the source’s terms prohibit redistribution

Data dictionary

Column names, types and meanings for each file. Dates are calendar dates in YYYY-MM-DD form. Empty cells mean the source did not provide a value.

Facilities facilities.csv.gz

ColumnTypeDescription
facility_idintegerStable Local Health Inspections facility identifier. Joins to inspections.csv and infractions.csv.
regiontextRegion slug (the health authority's coverage area), e.g. toronto.
nametextFacility name as published by the source, lightly cleaned for display.
addresstextFacility address as published by the source.
facility_typetextFacility type as labelled by the source (e.g. Restaurant, Food Take Out).
categorytextCondensed category derived from facility_type: food, childcare, personal_services, pools_recreation, healthcare_care, drinking_water or other.
latitudenumberWGS84 latitude. Empty when the source gave no location and geocoding failed.
longitudenumberWGS84 longitude. Empty when unknown.
inspection_countintegerNumber of inspections in inspections.csv for this facility.
first_inspection_datedateEarliest inspection date on record. Empty when there are no inspections.
last_inspection_datedateMost recent inspection date on record.
total_infractionsintegerSum of infraction_count over all of the facility's inspections.
source_urlURLThe facility's page on the source authority's disclosure site.
page_urlURLThe facility's page on localhealthinspections.com.
source_languagetextLanguage of the source's free text (en or fr). Empty means English.

Inspections inspections.csv.gz

ColumnTypeDescription
inspection_idintegerInspection identifier. Joins to infractions.csv. Not guaranteed stable when a source re-publishes its records.
facility_idintegerFacility identifier. Joins to facilities.csv.
regiontextRegion slug.
facility_nametextFacility name (repeated from facilities.csv for convenience).
facility_addresstextFacility address (repeated from facilities.csv).
inspection_datedateDate of the inspection.
inspection_typetextInspection type as labelled by the source (e.g. Routine, Re-inspection, Complaint).
infraction_countintegerNumber of infractions recorded at this inspection. 0 means none were recorded.
infraction_summarytextEach infraction's description, separated by " | ". Full detail is in infractions.csv.
actionstextEnforcement or follow-up actions reported by the source (e.g. ticket, closure order), separated by " | ".
source_urlURLThe inspection's page on the source disclosure site (some sources use one page per facility).
source_languagetextLanguage of this inspection's free text (en or fr). Empty means English.

Infractions infractions.csv.gz

ColumnTypeDescription
inspection_idintegerInspection identifier. Joins to inspections.csv.
facility_idintegerFacility identifier. Joins to facilities.csv.
regiontextRegion slug.
inspection_datedateDate of the inspection.
infraction_numberintegerPosition of this infraction within its inspection, starting at 1.
infractiontextThe infraction as described by the source.
detailstextAdditional detail, severity or reasons given by the source, separated by " | ". Often empty.

Things to know before you analyse

  • Records are reproduced as each authority published them. Sources differ in what they inspect, how they word infractions and whether they record minor issues, so compare counts across regions with care.
  • Dates are in UTC. A few sources don't publish an exact inspection date; for those, the date can reflect when we first recorded the inspection.
  • Text is in the source's language. Québec sources publish in French; we don't translate the exports.
  • Text cells that begin with =, +, - or @ are prefixed with an apostrophe so spreadsheets don't run them as formulas.
  • Business details we show from Google Maps (phone, website, hours, ratings, reviews) are not included: Google's terms don't allow redistributing them.
  • The source authority's own website remains the official record. If a result matters, confirm it there.

Licensing and attribution

These are public records published by the government health authorities listed above; we compile and standardise them. Each downloadable region is published under its source’s licence: when you reuse a file, include the attribution shown with that region and credit Local Health Inspections.

Some sources publish under an open licence with its own attribution wording. For example, Toronto's DineSafe data is available under the Open Government Licence – Toronto, and Montréal's under CC BY 4.0. Where that applies, follow that licence.

The files are provided as-is, without warranty of accuracy or completeness. Found a problem? Let us know.

How to cite

Please name the source authority and Local Health Inspections, and include the date the file was generated (it's in the file name and listed above). For example:

Local Health Inspections. (2026). Restaurant and food-premises health inspection records [Data set], version 2026-10-17. https://localhealthinspections.com/data.

When you use one region, name its authority too, for example:

Inspection records from Algoma Public Health, compiled by Local Health Inspections (localhealthinspections.com/data), file generated 2026-10-17.