LA County Restaurant Inspection Scraper avatar

LA County Restaurant Inspection Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
LA County Restaurant Inspection Scraper

LA County Restaurant Inspection Scraper

Scrape restaurant and food-facility health inspection records for Los Angeles County, CA - facility name, address, placard grade, score, violations, and geolocation. Search by name, owner, city, facility ID, or location.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Scrape restaurant and food-facility health inspection records for Los Angeles County, California — over 100 cities and unincorporated communities inspected by the LA County Department of Public Health, Environmental Health Division (Pasadena, Long Beach, and Vernon mostly run their own local health departments; only a small number of border-area facilities under LA County jurisdiction appear here from those three cities). Get facility name, address, letter grade (A/B/C), numeric score, itemized health-code violations, business owner, and precise geolocation — sourced directly from the department's public open-data feed. No login, no cookies, no paid proxy required.

What this actor does

  • Five lookup modes: search by restaurant name, search by owner name, browse by city, look up an exact facility ID, or find inspections near a lat/lon point
  • Rich filtering: letter grade, risk level, facility program category, inspection type, program status, ZIP code, and inspection-date range — usable together or in any combination, on top of any mode
  • Itemized violations — each inspection record can include every specific health-code violation found (code, description, compliance status, point deduction), plus a violation count and total points deducted
  • Live county data — pulled straight from the LA County Department of Public Health's public ArcGIS open-data feed (the same data source the department's own inspection-results page points the public to)
  • Geolocation on every record — latitude/longitude plus a ready-to-click Google Maps link
  • Empty fields are omitted — every emitted record only contains fields that could actually be populated

Output per inspection record

  • facilityId — county facility identifier (e.g. FA0069601)
  • facilityName, programName — business name and the specific department/program inspected (a market's meat counter and bakery may be separate programs under one facility)
  • programStatusACTIVE or INACTIVE
  • programElement, facilityType — the county's facility-category code and its description (e.g. RESTAURANT (0-30) SEATS HIGH RISK)
  • riskLevel, riskLevelLabelLOW / MODERATE / HIGH, derived from the facility category
  • address, city, state, zipCode
  • latitude, longitude
  • ownerId, ownerName — registered business owner
  • serviceCode, serviceDescription — inspection type (routine vs. owner-initiated)
  • score — numeric inspection score (0-100)
  • grade, gradeLabel — posted letter grade and a friendly score-range label
  • serialNumber — unique inspection visit identifier
  • employeeId — county inspector ID
  • activityDate — inspection date (YYYY-MM-DD)
  • violations — array of { code, description, status, points } for every violation found during this inspection (when includeViolations is on)
  • violationCount, totalViolationPoints
  • mapUrl — Google Maps link built from the facility's coordinates
  • sourceUrl — the live county REST endpoint returning this exact record
  • recordType: "restaurantInspection", scrapedAt

Input

FieldTypeDefaultDescription
modeselectsearchsearch / byOwner / byCity / byFacilityId / nearby
searchQuerystringpizzaFacility-name keyword (mode=search)
ownerNamestringOwner-name keyword (mode=byOwner)
citiesarray (select, 160 options)Cities/communities to browse or filter to (mode=byCity, or an extra filter on any mode)
facilityIdsarrayExact facility IDs (mode=byFacilityId)
latitude / longitudenumber34.0522 / -118.2437Center point (mode=nearby, defaults to downtown LA)
radiusKmnumber2Search radius in km (mode=nearby)
gradesarray (select)Filter by letter grade(s): A / B / C
minScore / maxScoreintegerFilter by numeric inspection score range (0-100), finer-grained than grades
riskLevelsarray (select)Filter by risk classification: LOW / MODERATE / HIGH
programElementsarray (select, 18 options)Filter by facility category/size/risk program code
serviceCodesarray (select)Filter by inspection type: routine (001) or owner-initiated (401)
programStatusselect(any)Filter to ACTIVE or INACTIVE facilities
zipCodesarrayFilter by 5-digit ZIP code(s)
dateFrom / dateTostringInspection date range (YYYY-MM-DD)
sortByselectnewestnewest / oldest (by inspection date)
includeViolationsbooleantrueAttach itemized violation details to each record
maxItemsinteger100Hard cap on emitted records (1–5000)

Example: search a keyword, restrict to one city and grade

{
"mode": "search",
"searchQuery": "taqueria",
"cities": ["LOS ANGELES"],
"grades": ["A"],
"maxItems": 100
}

Example: browse every inspection in a city within a date range, high-risk facilities only

{
"mode": "byCity",
"cities": ["SANTA MONICA", "VENICE"],
"riskLevels": ["HIGH"],
"dateFrom": "2025-01-01",
"dateTo": "2025-12-31",
"maxItems": 500
}

Example: exact facility lookup with full violation history

{
"mode": "byFacilityId",
"facilityIds": ["FA0069601"],
"includeViolations": true
}

Example: inspections near a point

{
"mode": "nearby",
"latitude": 34.0522,
"longitude": -118.2437,
"radiusKm": 1.5,
"maxItems": 100
}

Example: all locations under one owner

{
"mode": "byOwner",
"ownerName": "starbucks",
"maxItems": 200
}

Use cases

  • Consumer safety apps — surface up-to-date letter grades and specific violations near a user's location
  • Real-estate / relocation research — check food-safety history around a neighborhood before moving
  • Journalism & public-health research — track violation trends across LA County cities and facility types over time
  • Restaurant discovery apps — filter listings to A-grade establishments only
  • Franchise / multi-location compliance monitoring — pull every location under one owner or facility ID and review violation history

FAQ

What area does this cover? Cities and unincorporated communities in Los Angeles County served by the county's Environmental Health Division (100+ appear in the live data at any given time). Pasadena, Long Beach, and Vernon mostly operate their own local health departments, so only a small number of border-area facilities from those three cities appear in this feed.

What do the grade letters mean? A = score 90-100 (Excellent), B = score 80-89 (Good), C = score 70-79 (Needs improvement) — LA County's standard restaurant-grading scale.

What's the difference between grade and riskLevel? grade is the inspection outcome (how the facility scored on this visit). riskLevel is the county's baseline classification of how complex the facility's food handling is (e.g. a large high-seat-count restaurant is inherently higher risk than a small retail market), independent of any single inspection's score.

Is one row per restaurant or per inspection? One output record = one inspection visit (identified by serialNumber). A facility inspected quarterly will have multiple records, one per visit, each with its own score/grade and (optionally) its own violation list.

How current is the data? The inspections feed is updated by the county on an ongoing basis; the violations detail feed is refreshed quarterly.

Do I need a proxy or login? No. This is a public, unauthenticated open-data API — no cookies, no paid proxy, no API key.

Can I search multiple cities, grades, or program categories at once? Yes — cities, grades, riskLevels, programElements, serviceCodes, and zipCodes all accept multiple values and are combined with AND logic across filter types, OR logic within each filter.

What if my filters match nothing? The actor finishes cleanly with 0 records and a status message explaining that no matches were found — try widening the date range or removing a filter.

Why does turning off includeViolations make the run faster? Violation details come from a separate quarterly county file covering ~400,000 violation line items. Fetching and matching it against your results adds roughly 10 seconds to the run. Turn it off if you only need scores/grades and want the fastest possible run.