Seattle Restaurant Inspections Scraper
Pricing
Pay per event
Seattle Restaurant Inspections Scraper
Scrape King County / Seattle restaurant safety-rating records with names, grades, locations, phone numbers, and coordinates.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Extract King County / Seattle restaurant safety-rating business records from the public ArcGIS FeatureServer. The actor returns food-business names, addresses, cities, ZIP codes, phone numbers, safety grades, establishment descriptions, statuses, coordinates, parcel identifiers, and source timestamps.
Use it when you need a repeatable dataset for restaurant compliance monitoring, local food-business lead intelligence, reputation tracking, or map-based market research in Seattle and King County.
What does Seattle Restaurant Inspections Scraper do?
Seattle Restaurant Inspections Scraper downloads public restaurant safety-rating records published by King County.
It uses the official ArcGIS JSON endpoint behind the King County restaurant safety ratings search page, so no browser automation, login, CAPTCHA solving, or account is required.
The actor helps you turn a public map/search experience into structured rows that can be exported to CSV, Excel, JSON, Google Sheets, databases, CRMs, or BI tools.
Who is it for?
- π§βπΌ Compliance teams monitoring restaurant safety ratings and food-business risk.
- π Local lead-generation teams prospecting restaurants, cafes, convenience stores, and food-service locations.
- π’ Agencies and vendors selling cleaning, pest control, insurance, training, marketing, or reputation services to food businesses.
- π Data teams building local business intelligence dashboards for Seattle and King County.
- π° Journalists and civic researchers tracking food-safety datasets over time.
Why use this actor?
The King County website is useful for manual lookup, but repeated monitoring requires structured data.
This actor gives you:
- β Direct public-source extraction from ArcGIS.
- β Configurable city, business-name, status, grade, and date filters.
- β Coordinates for map and territory workflows.
- β Stable field names for automated pipelines.
- β PPE pricing that scales with the number of records saved.
Data source
The actor reads King County's public restaurant safety ratings data.
Source page:
https://kingcounty.gov/en/dept/dph/health-safety/food-safety/search-restaurant-safety-ratings
ArcGIS FeatureServer layer:
EPL_BusinessPoint/FeatureServer/0
The source is public and does not require credentials.
What data can you extract?
| Field | Description |
|---|---|
businessRecordId | King County business record identifier |
businessName | Restaurant or food-business name |
programIdentifier | Program identifier from the source |
establishmentDescription | Establishment and risk/category description |
address | Street address |
city | Business city |
zipCode | ZIP code |
phone | Phone number when available |
safetyGrade | King County safety grade |
businessStatus | Business status, for example Active |
parcelNumber | Parcel number for matching to property data |
latitude / longitude | Map coordinates from ArcGIS geometry |
loadDate | King County source load timestamp |
sourceUrl | Public source page |
scrapedAt | Actor run timestamp |
How much does it cost to scrape Seattle restaurant inspections?
This actor uses pay-per-event pricing.
- A small start event is charged once per run.
- A per-record
itemevent is charged for each saved restaurant / food-business record.
The exact tiered prices are shown on the Apify actor page. Keep maxItems low for quick smoke tests, then increase it for production exports.
Input options
You can configure:
maxItemsβ maximum number of records to save.cityβ exact city filter such asSeattle,Bellevue,Kent, orRenton.businessNameβ case-insensitive name contains filter.statusesβ optional King County business status filter, usuallyActive.gradesβ optional safety-grade filter.loadedFromandloadedToβ filter by King County source load date.includeGeometryβ include point coordinates in the output.
Example input: active Seattle records
{"city": "Seattle","statuses": ["Active"],"maxItems": 100,"includeGeometry": true}
Example input: find a restaurant or chain
{"city": "Seattle","businessName": "coffee","statuses": ["Active"],"maxItems": 50,"includeGeometry": true}
Example input: safety-grade monitoring
{"city": "Seattle","grades": ["Good", "Okay", "Needs to Improve"],"statuses": ["Active"],"maxItems": 250,"includeGeometry": true}
Output example
{"businessRecordId": "PFE-PR-3127011","businessName": "AM-PM MINI MART","programIdentifier": "","establishmentDescription": "Seating 0-12 - Risk Category III","address": "10822 ROOSEVELT WAY NE","city": "Seattle","zipCode": "98125","phone": null,"safetyGrade": "Excellent","businessStatus": "Active","parcelNumber": "1160000025","latitude": 47.708294,"longitude": -122.317333,"loadDate": "2026-07-04T...Z","sourceUrl": "https://kingcounty.gov/en/dept/dph/health-safety/food-safety/search-restaurant-safety-ratings","scrapedAt": "2026-07-05T...Z"}
How to run the actor
- Open the actor on Apify.
- Set your filters, such as city and maximum records.
- Click Start.
- Download the dataset as CSV, Excel, JSON, or through the API.
- Schedule recurring runs if you want a monitoring feed.
Tips for best results
- Start with
maxItems: 100to verify the exact filters you want. - Use
cityto reduce export size and focus on a local market. - Use
businessNamefor brand monitoring or specific restaurant lookup. - Use
gradesfor risk-based outreach workflows. - Keep
statusesset toActivewhen you only want currently active businesses.
Integrations
Common workflows include:
- π Send rows to Google Sheets for a local restaurant prospect list.
- πΊοΈ Load coordinates into a map dashboard for territory planning.
- π§Ύ Join parcel numbers to property or permitting datasets.
- π Schedule weekly runs to detect source updates by
loadDate. - π§© Enrich CRM accounts with public safety-grade and location data.
API usage: Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/seattle-restaurant-inspections-scraper').call({city: 'Seattle',statuses: ['Active'],maxItems: 100,includeGeometry: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
API usage: Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('automation-lab/seattle-restaurant-inspections-scraper').call(run_input={'city': 'Seattle','statuses': ['Active'],'maxItems': 100,'includeGeometry': True,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
API usage: cURL
curl "https://api.apify.com/v2/acts/automation-lab~seattle-restaurant-inspections-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"city":"Seattle","statuses":["Active"],"maxItems":100,"includeGeometry":true}'
MCP usage
Use this actor from MCP-compatible tools through Apify MCP.
Claude Code quick add command:
$claude mcp add apify-seattle-restaurant-inspections --transport http https://mcp.apify.com/?tools=automation-lab/seattle-restaurant-inspections-scraper
Claude Desktop JSON config example:
{"mcpServers": {"apify-seattle-restaurant-inspections": {"url": "https://mcp.apify.com/?tools=automation-lab/seattle-restaurant-inspections-scraper"}}}
Claude Desktop / Claude Code MCP URL:
https://mcp.apify.com/?tools=automation-lab/seattle-restaurant-inspections-scraper
Example prompts:
- "Run the Seattle restaurant inspections scraper for Active Seattle businesses and summarize records with non-excellent grades."
- "Export King County restaurant safety records for Bellevue and prepare a lead list grouped by ZIP code."
- "Find public restaurant safety records where the business name contains coffee."
Scheduling and monitoring
You can schedule the actor daily, weekly, or monthly.
For monitoring, keep input filters stable and compare new exports by businessRecordId, safetyGrade, businessStatus, and loadDate.
Limitations
The current public ArcGIS layer exposes business safety-rating records and related location fields. It does not expose a separate row per individual inspection event in this layer. If King County changes the public ArcGIS service, field availability can change.
Legality
This actor extracts public government data from a public endpoint. You are responsible for using the output lawfully, respecting privacy rules, and following Apify's terms and applicable laws. Avoid using public records for unlawful discrimination, harassment, or spam.
FAQ
Is it legal to scrape this data?
The source is public government data, but you remain responsible for compliant use of the exported records.
Troubleshooting
Why did I get fewer records than maxItems?
Your filters may be narrow, or the source may not have that many matching records. Try removing businessName, grades, or date filters.
Why is phone empty for some records?
The King County source does not publish phone numbers for every business record. Empty source values are returned as null.
Why do date filters use loadDate?
The public layer exposes a King County load timestamp. The actor filters on that source timestamp, not on hidden inspection-event dates that are not present in this layer.
Related Apify actors
- https://apify.com/automation-lab/nyc-restaurant-inspections-scraper
- https://apify.com/automation-lab/google-maps-scraper
- https://apify.com/automation-lab/business-address-scraper
Support
If you need a field that is visible on a King County page but missing from the dataset, open an Apify issue with the source page URL and an example business name.
Changelog
Initial version extracts King County restaurant safety-rating business records through the public ArcGIS API.