Guide

How to check a Kansas City restaurant's health inspection (and the score the city hides)

Kansas City publishes every restaurant inspection it writes, free, searchable, and updated within days, including the inspector's own account of what was wrong. It also calculates a numeric score for every inspection, sends that score to your browser, and then hides it with two lines of CSS. The Stare read 97 of them off the wire. Five inspections that recorded critical violations scored a perfect 100.0, which is probably why nobody wants you to see the number.

You are standing outside somewhere you have not eaten before, and the question arrives the way it always does. Not as a real worry, just as a thing you would like to know. When did somebody from the city last look in that kitchen, and what did they find?

In Kansas City, Missouri the answer is free, online, searchable, and better than you would expect. Not a letter grade in the window. The actual inspection: the date, the code section, which findings were serious, and the inspector’s own sentences about what they saw. It is one of the more useful public records this city keeps, and almost nobody uses it.

It also has a number in it that you are not allowed to see. The city calculates a score for every inspection, ships that score to your browser along with everything else, and then hides it with two lines of styling. The Stare read 97 of them straight off the wire. What they show is both worse and more forgivable than the hiding suggests.

The thirty-second version

Go to inspectionsonline.us/foodsafety/mousakansascity/search.htm. Type part of the name, or the street. You will get a list of establishments and addresses.

Click one and you get its whole inspection history, newest first: the type of visit, the date, and how many critical violations were found. Click any single inspection and you get the report: code reference, what the violation was, whether it was flagged CRITICAL, whether it was corrected on the spot or carries a comply-by date, and what the inspector wrote down.

No fee, no account, no records request. Questions and the full paper file: (816) 513-6315.

Two limits to carry with you. The search caps at 1,000 results and will not admit it. The numeric score exists but is hidden, and, as it turns out, is not worth much.

What the portal is, and why it is good

The system is a Lotus Domino application, and it looks it. There is a frame, there is a 2024-vintage header image, and the search runs in an inset panel. It is also fast, it answers ordinary requests without a browser, and it holds more per inspection than most cities publish.

Take one report The Stare opened on September 12, 2026, at a fast-food location the Stare is not naming because the method is the point. A routine inspection on July 6, 2026: one critical violation, one non-critical. The non-critical was code 2-402.11, hair restraints, with the inspector’s note that multiple employees were handling food without them and a comply-by date of October 4, 2026. The critical was 4-702.11, sanitizing of food-contact surfaces, with this observation: the bleach sanitizer at the drink station tested below 50 parts per million, and the person in charge remade the bucket. Marked Corrected On Site.

That is the whole value of the thing. “One critical violation” tells you nothing. That tells you what kind of kitchen it is: somebody’s sanitizer had drifted, the inspector caught it, it was fixed while they stood there. A different report with one critical might describe something you would want to know about before ordering. The count cannot tell them apart. The narrative can.

The portal also says something before you search that it deserves credit for:

“A single inspection should not be used to evaluate a food service establishment. Looking at the series of inspection results over time gives a more accurate picture of the food service establishment’s commitment to food safety and sanitation.”

That is true, and it is the correct way to read the file.

The promise, tested

The same page claims: “Inspections on this site get updated daily.”

It holds. The Stare pulled three establishments’ complete histories on September 12, 2026 and found an inspection dated September 10, 2026, two days old, alongside others from August 17 and August 13. Whatever else is wrong here, the city is publishing its inspections promptly, and that is worth saying plainly because it is the opposite of what the city’s open-data portal does.

The cheaper way is the only way

There is no machine-readable route. Kansas City’s open-data portal publishes no inspection results at all. A search of its catalogue on September 12, 2026 returns exactly one food dataset, “KCMO Food Permits”, which lists 3,681 permitted establishments and has had no row updated since February 13, 2017. Nine and a half years stale, and still drawing a few hundred page views a month from people who presumably think it means something.

So the free portal is not the cheap option. It is the option.

The catch: the score is there, and it is hidden

Each establishment’s inspection list is drawn from a view the application will also hand you as raw XML. Ask for it and every inspection row arrives with four columns: the inspection type, the date, the critical count, and a fourth column the page never draws.

Here is the fourth column, exactly as the city’s own system emitted it on September 12, 2026, with the inspection’s score in it:

<DIV ID='scoreCol' class='gt column4' ALIGN='center'
     STYLE='visibility:hidden; display:none'> ... 99.1 ... </DIV>

visibility:hidden and display:none, both, on a column that has a number in it. The score is computed by the city, written into the page, sent across the internet to your computer, and then suppressed by the page’s own styling before you ever see it.

It is not an oversight on one page. The Stare sampled three establishments’ full histories, 97 inspection rows in total going back to 2012, and 97 of the 97 carried a hidden score. Nor does the number surface anywhere else: the detailed inspection report, the page that gives you the code sections and the inspector’s observations, shows the critical and non-critical counts and no score.

What the hidden numbers say

Here is the awkward part, and it cuts toward the city rather than against it.

Across those 97 inspections, every score fell between 94.6 and 100.0, and most were 100.0. Five inspections scored a perfect 100.0 while the same record showed at least one critical violation. A pre-operational visit on June 9, 2026 carried two criticals and a score of 100.0; three others with one critical each and a score of 100.0, dated August 13, 2026, September 19, 2025, and September 8, 2023; and a routine inspection on April 8, 2025, one critical, 100.0.

Worse for the number’s credibility, the same critical count does not produce the same score. One critical returned 99.1 on most rows and 100.0 on four. Two criticals returned 98.2, 99.1, and 100.0 on different visits. Three returned 98.2, 97.4, and 97.3. Four returned 97.4, 96.4, and 96.3.

So the score is not a function of the critical count, cannot be reconstructed from the two numbers the portal does show you, and compresses everything from a spotless kitchen to a six-critical inspection into a five-and-a-half-point band at the top of a hundred-point scale.

The Stare did not find a published formula for it. The city pages that would carry one sit on kcmo.gov, which refuses automated requests, so no formula is asserted here, only what 97 inspections actually show.

The city’s best defence, which is a good one

A near-flat score that hands a perfect 100.0 to an inspection with two critical violations would be worse than no score. Letter grades and numbers in windows are known to do this: readers treat them as a verdict, stop reading, and a 97 reads as “fine” when the underlying report says a sanitizer was dead. Publishing that number would mislead more people than it informed, and a health department that concluded so was probably right.

That is a defence of not publishing the score. It is not a defence of calculating it, transmitting it, and hiding it in the page. If the number is too crude to act on, the fix is to stop computing it or to explain what it means. Shipping it under display:none produces the worst arrangement available: a score that exists, that the department presumably uses, that anyone who views source can read, and that the ordinary reader the portal was built for cannot. The Stare has not established why it is built that way and does not guess.

The second catch: the search caps at 1,000

Run the portal’s search with nothing typed in either box, which its own JavaScript permits even though the form nags, and it reports:

1000 documents found

A round thousand. It is not the number of food establishments in Kansas City. The Stare queried the application’s own index directly on September 12, 2026 and it reports 12,581 establishments. The city’s frozen permit file counts 3,681 currently-permitted ones. Whichever figure you prefer, the search is showing you a slice and labelling it as the answer, with no notice that anything was left out.

The practical consequence is small but real: there is no way to browse Kansas City’s restaurants. You cannot sort by worst, you cannot pull a neighbourhood, you cannot get a list. You have to already know the name or the street. There is no bulk download, and the open-data portal, as above, carries nothing.

For scale on how crowded a single name can get: a search for one national fast-food chain returned 26 separate locations inside Kansas City, Missouri, each with its own inspection history and several with nearly identical names. As with any name search against a records system, match on the address, not on the name.

Using the wildcards, which do work

The portal’s tip panel offers * for any group of letters and ? for a single letter, with the example that *vern* finds both “The Big Tavern” and “Vern’s Diner”.

Tested September 12, 2026, it is accurate. *vern* on the name field returned 20 establishments. The street name troost returned 93, and *roost* returned the same 93, so the wildcard works on the street field as well as the name field.

One caution, because it looks like a bug and is not: a one-character fragment such as *a* returns zero results, and *st* returns only 53. That is an ordinary full-text search engine declining fragments too short to index, not a broken field. Give it three or four letters and it behaves.

How to check us

The portal answers plain requests, so you can read the hidden column yourself. The search form is at:

https://inspectionsonline.us/foodsafety/mousakansascity/search.htm

Find an establishment, take the identifier out of the link on its name, and ask the application for the same view as raw data, then look for the column the page will not draw:

Pull the score the inspection page hidesOptional — for people who use a terminal
# Pull the score the inspection page hides
curl -s "https://inspectionsonline.us/mo/usakansascity/inspect.nsf/vw_InspectionsPubSumm-NT?ReadViewEntries&RestrictToCategory=<ID>&Count=200" | grep -o "scoreCol.\{0,240\}"

Every row it prints will contain visibility:hidden; display:none and a number. The count of establishments the application admits to holding is one request:

Ask the site how many inspection records it holdsOptional — for people who use a terminal
# Ask the site how many inspection records it holds
curl -s "https://inspectionsonline.us/mo/usakansascity/inspect.nsf/vw_InspectionsPubSumm-NT?ReadViewEntries&Count=1"

It returns toplevelentries="12581". The captures behind every figure in this piece are archived with the story.

Quick answers

How do I check a restaurant's health inspection in Kansas City?
Go to inspectionsonline.us/foodsafety/mousakansascity/search.htm, the portal the Kansas City, Missouri Health Department publishes its food inspections through. Type part of the establishment's name, or the street it is on, and search. You get a list of matching establishments with their addresses; click one and you get its full inspection history, newest first, each row showing the inspection type — Routine, Complaint, Follow-up, or Pre-Operational — the date, and the number of critical violations found. Click any inspection and you get the report: the code reference, the violation, whether it was marked CRITICAL, whether it was corrected on site or carries a comply-by date, and the inspector's own observations. It is free and needs no account.
Does Kansas City give restaurants a health inspection score?
Yes, and it does not show it to you. The Kansas City Stare read the portal's raw view output on September 12, 2026 and found a numeric score on every inspection row it sampled — 97 rows across three establishments, 97 of them carrying a score — held in an element with the id scoreCol and the inline style 'visibility:hidden; display:none'. The number is computed, sent to your browser, and then suppressed by the page's own styling. It appears nowhere a reader can see it, including on the detailed inspection report, which shows the critical and non-critical counts but no score.
What is a good health inspection score in Kansas City?
The question does not have a useful answer, which is the most likely reason the city hides the number. Across the 97 inspections The Stare sampled, every score fell between 94.6 and 100.0, and most were 100.0. Five inspections scored a perfect 100.0 while the same record showed at least one critical violation — including one that recorded two criticals. The same critical count produced different scores on different visits: one critical yielded 99.1 on most rows and 100.0 on four; two criticals yielded 98.2, 99.1, and 100.0; three yielded 98.2, 97.4, and 97.3. A scale on which nearly everything scores in the high nineties cannot separate a clean kitchen from one with a critical finding. Read the violations, not a number.
How current are Kansas City restaurant inspections online?
Current within days, and the portal's own claim holds up. The search page states that 'Inspections on this site get updated daily.' The Kansas City Stare pulled three establishments' full histories on September 12, 2026 and found an inspection dated September 10, 2026 — two days earlier — plus others from August 17 and August 13. This is the opposite of the city's open-data portal, which publishes no inspection results at all: the only food dataset there, 'KCMO Food Permits', has had no row updated since February 13, 2017.
Why can't I see a list of all Kansas City restaurants and their inspections?
Because the search caps and does not say so. Running the portal's search with no name or street restriction returns the message '1000 documents found' — a round number, and not the real one. The Kansas City Stare queried the portal's own index directly on September 12, 2026 and it reports 12,581 establishments. For scale, the city's own food-permit file, frozen since 2017, lists 3,681 permitted food establishments. Either way, a plain search shows you a fraction and presents it as the result. You have to know the name or the street; there is no browse-everything route and no bulk download.
Does a critical violation mean a Kansas City restaurant is unsafe?
Not on its own, and the portal says so in its own words before you search: 'A single inspection should not be used to evaluate a food service establishment. Looking at the series of inspection results over time gives a more accurate picture.' That is fair, and the data supports it. Many criticals are corrected while the inspector stands there — one report The Stare read recorded a drink-station sanitizer testing below 50 parts per million, with the note that the person in charge remade the bucket on the spot. What you want is the pattern: an establishment whose routine inspections repeatedly record the same critical is telling you something a single visit cannot.
How do I use wildcards to search Kansas City restaurant inspections?
The portal accepts an asterisk for any group of letters and a question mark for a single letter, and its own tip page gives the example that *vern* finds both 'The Big Tavern' and "Vern's Diner". The Stare tested it on September 12, 2026: *vern* on the name field returned 20 establishments, the street name Troost returned 93, and the wildcard *roost* returned the same 93. One caution — a single-character fragment such as *a* returns zero results, because the search engine declines fragments that short. Use at least three or four letters.
Where do I find restaurant inspections for Kansas City, Kansas?
A different government does those, and this portal does not cover them. Kansas City, Kansas sits in Wyandotte County, and Kansas food-establishment inspections are run by the Kansas Department of Agriculture's Food Safety and Lodging division rather than by a city health department. The Stare's probe of the division's inspection host on September 12, 2026 returned only a default web-server page rather than the application, so this piece does not describe the Kansas route and no claim is made about it. The Missouri portal above covers Kansas City, Missouri only.
Who do I call about a restaurant in Kansas City, Missouri?
The Kansas City Health Department lists (816) 513-6315 on the inspection portal itself, for questions about inspections and for the detailed inspection records, which the portal says 'are available for examination at the Health Department office, during regular working hours.' The same number appears on the city's food-permit dataset as the contact for permits and inspections. To report a problem at an establishment, the city's route is 311 or the myKCMO app, which sends an inspector.
NewsServiceConsumerPublic RecordsRestaurantsFood SafetyKansas CityHealth Department
A Stare original. More stories · The Wire