Chispections APIchispections.com ↗
Get Chicago neighborhood health-inspection rankings from Chispections: cockroach citations, rodent-dropping citations, and restaurant pass rates in one API call.
What is the Chispections API?
The Chispections API exposes Chicago restaurant health-inspection data through a single endpoint, get_neighborhood_rankings, returning 3 ranked tables — cockroach citations, rodent-dropping citations, and pass rates — across all Chicago neighborhoods. Each response includes citation rate percentages, pass counts, total inspection volume, and the full year range of the underlying data window, giving developers a ready-to-use snapshot of neighborhood-level food-safety standing.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/f3125897-f99a-425b-b83b-faa2b5292a99/get_neighborhood_rankings' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace chispections-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Chicago neighborhood health-inspection rankings."""
from parse_apis.chispections_com_api import Chispections, ParseError
client = Chispections()
# Fetch all three ranking tables in one call.
try:
ranking = client.rankings.get()
except ParseError as e:
print(f"Extraction failed ({e.code}): {e}")
raise
print(f"Window: {ranking.start_year}–{ranking.current_year} | Total inspections: {ranking.total_inspections}")
# Worst neighborhoods for cockroach citations.
print("\nTop 5 — Cockroach citations:")
for r in ranking.roaches[:5]:
print(f" #{r.rank} {r.neighborhood}: {r.citation_rate_pct}% ({r.citation_count}/{r.inspection_count})")
# Worst neighborhoods for rodent-dropping citations.
print("\nTop 5 — Rodent-dropping citations:")
for r in ranking.droppings[:5]:
print(f" #{r.rank} {r.neighborhood}: {r.citation_rate_pct}% ({r.citation_count}/{r.inspection_count})")
# Cleanest neighborhoods by pass rate.
print("\nTop 5 — Cleanest (highest pass rate):")
for r in ranking.cleanest[:5]:
print(f" #{r.rank} {r.neighborhood}: {r.pass_rate_pct}% ({r.pass_count}/{r.inspection_count})")
print("\nexercised: rankings.get")
Returns the three neighborhood ranking tables shown on the Chispections rankings page in one round trip: 'roaches' (neighborhoods ranked by number of inspections finding cockroaches), 'droppings' (ranked by inspections finding rodent droppings), and 'cleanest' (ranked by share of inspections resulting in a passing grade; neighborhoods with fewer than 100 inspections are not ranked). Each table is ordered by rank ascending. The site publishes exactly 15 rows per table for a fixed multi-year window (start_year to current_year, currently 2023 onward); no larger table or alternative window is offered by the site, so there are no inputs and no pagination. Rates are percentages of that neighborhood's inspection_count; counts are integers. Data is refreshed daily by the site from Chicago Department of Public Health records.
No input parameters required.
{
"type": "object",
"fields": {
"roaches": "array of neighborhood rows ranked by cockroach citations: rank, neighborhood, citation_rate_pct (% of inspections citing cockroaches), citation_count, inspection_count",
"cleanest": "array of neighborhood rows ranked by pass rate: rank, neighborhood, pass_rate_pct (% of inspections passed), pass_count, inspection_count",
"droppings": "array of neighborhood rows ranked by rodent-dropping citations: rank, neighborhood, citation_rate_pct (% of inspections citing droppings), citation_count, inspection_count",
"start_year": "first year of the ranking window (integer)",
"current_year": "last year of the ranking window (integer)",
"total_inspections": "total inspections in the window across all neighborhoods (integer)"
},
"sample": {
"data": {
"roaches": [
{
"rank": 1,
"neighborhood": "Chinatown",
"citation_count": 100,
"inspection_count": 767,
"citation_rate_pct": 13
},
{
"rank": 2,
"neighborhood": "Loop",
"citation_count": 84,
"inspection_count": 2553,
"citation_rate_pct": 3.3
}
],
"cleanest": [
{
"rank": 1,
"pass_count": 231,
"neighborhood": "Beverly",
"pass_rate_pct": 75.7,
"inspection_count": 305
},
{
"rank": 2,
"pass_count": 165,
"neighborhood": "Mount Greenwood",
"pass_rate_pct": 74.7,
"inspection_count": 221
}
],
"droppings": [
{
"rank": 1,
"neighborhood": "Chinatown",
"citation_count": 164,
"inspection_count": 767,
"citation_rate_pct": 21.4
},
{
"rank": 2,
"neighborhood": "South Chicago",
"citation_count": 112,
"inspection_count": 420,
"citation_rate_pct": 26.7
}
],
"start_year": 2023,
"current_year": 2026,
"total_inspections": 45502
},
"status": "success"
}
}About the Chispections API
What the API returns
The get_neighborhood_rankings endpoint returns three arrays in a single response. The roaches array lists neighborhoods ranked by the percentage of inspections that cited cockroach presence (citation_rate_pct), along with each neighborhood's rank. The droppings array follows the same structure for rodent-dropping citations. The cleanest array ranks neighborhoods by pass rate (pass_rate_pct), and also includes raw counts: pass_count and total inspection_count per neighborhood, giving you the denominators needed to assess statistical weight.
Coverage and scope
All three ranking tables are sourced from the same inspection window. The response fields start_year and current_year tell you exactly which years the rankings span, and total_inspections gives the aggregate count of inspections across all neighborhoods in that window. There are no query parameters — the endpoint always returns the full ranking set as displayed on the Chispections leaderboard page.
Data shape and practical notes
Ranks are integers starting at 1. Citation rates and pass rates are expressed as percentages (e.g., 14.3 for 14.3%). Because the endpoint returns all neighborhoods in a single round trip with no pagination, filtering, or sorting parameters, any neighborhood-level slicing or reordering must be done client-side after receiving the response.
The Chispections API is a managed, monitored endpoint for chispections.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when chispections.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official chispections.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Displaying a ranked table of Chicago neighborhoods by cockroach-citation rate in a food-safety dashboard.
- Comparing a specific neighborhood's rodent-dropping citation rate against the city average using
total_inspectionsand per-neighborhood counts. - Building a neighborhood-lookup tool that surfaces pass-rate percentages alongside citation risk indicators.
- Generating alerts when a neighborhood's
citation_rate_pctcrosses a user-defined threshold. - Enriching real-estate or rental listings with the food-safety rank of the surrounding neighborhood.
- Tracking year-over-year ranking changes by storing periodic snapshots of
start_year,current_year, and all three ranked arrays.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Chispections have an official developer API?+
What exactly does the `cleanest` array include beyond a pass rate?+
cleanest includes rank, neighborhood, pass_rate_pct, pass_count, and inspection_count. The raw counts let you weight the percentage — a neighborhood with 12 inspections at 90% is not equivalent to one with 400 inspections at 90%.Can I filter rankings by a specific year or borough/region?+
start_year and current_year with no date or geographic filter parameters. All neighborhood filtering must be applied client-side. You can fork this API on Parse and revise it to add year-range or neighborhood filtering if needed.Does the API return individual restaurant inspection records or violation details?+
How current is the data, and how often do the rankings change?+
start_year and current_year fields that define the inspection window reflected in the rankings. The underlying leaderboard is updated periodically as new inspection records are incorporated; there is no real-time or webhook mechanism — each API call returns the current published state of the rankings.