# Florida Restaurant Inspection Alerts (`neocrea-labs/florida-restaurant-inspection-alerts`) Actor

Scrape official Florida restaurant inspection records by county, ZIP, license, date, outcome, or violation severity. Export clean data or monitor newly published inspections. Unofficial independent Actor; not affiliated with Florida DBPR.

- **URL**: https://apify.com/neocrea-labs/florida-restaurant-inspection-alerts.md
- **Developed by:** [Neocrea Labs](https://apify.com/neocrea-labs) (community)
- **Categories:** Automation
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

Turn official Florida DBPR restaurant inspection records into clean, filterable data—without writing code. Find inspections by county, ZIP code, license, date, outcome, or violation severity, then export the results or monitor newly published inspections.

> **Unofficial independent Actor:** This Actor is not affiliated with, sponsored by, or endorsed by the Florida Department of Business and Professional Regulation (DBPR).

### Florida restaurant inspection data, ready to use

This Florida restaurant inspection scraper processes the official DBPR public-record export and creates one consistent record per inspection visit. Use the visual input form for a quick search or call the Actor through the Apify API for an automated workflow.

- Search statewide or narrow results by county, ZIP code, license number, date, disposition, and minimum violation counts.
- Receive normalized business, location, inspection, disposition, and violation fields.
- Export the dataset to JSON, CSV, or Excel, or access it through the API.
- Schedule repeat runs and emit only newly published matching inspections with delta mode.
- Connect successful runs to Apify webhooks, Make, Zapier, Slack, email, or your own system.

### Quick start: get results in under a minute

1. Open the **Input** tab. The verified official DBPR data source is already filled in.
2. Choose a county or another optional filter. Leave filters empty to search the full available export.
3. Set **Maximum results** high enough for your search scope.
4. Click **Start** and open the **Output** tab when the run succeeds.

You do not need to enter a URL or write JSON. The following is only an API example equivalent to the form:

```json
{
  "counties": ["Brevard"],
  "minHighPriorityViolations": 1,
  "deltaMode": false,
  "maxItems": 1000
}
```

### What data can you extract?

| Field | Description |
| --- | --- |
| `businessName` | Restaurant or food-service establishment name |
| `licenseNumber` | DBPR license identifier |
| `inspectionDate` | Inspection date in a normalized format |
| `county`, `city`, `zipCode` | Available location fields |
| `disposition` | Published inspection outcome or disposition |
| `highPriorityViolations` | High-priority violation count |
| `intermediateViolations` | Intermediate violation count |
| `basicViolations` | Basic violation count |
| `eventId` | Stable identifier for the normalized inspection event |
| `sourceUrl` | Original DBPR public-record download used by the run |

Missing source values are returned as `null`. Rows without a license number or a parseable inspection date are skipped.

### Monitor newly published Florida restaurant violations

Turn on `deltaMode` for a recurring inspection feed. On later runs with the same source and filters, the Actor emits only newly observed inspection records after the stored watermark, including unseen records added on the watermark date.

- Use `baselineOnFirstRun: true` to save the initial result set silently and alert only on later additions.
- Use `baselineOnFirstRun: false` to receive the current matches first, then switch to delta behavior.
- Create an Apify schedule to run the Actor automatically after the expected DBPR refresh.
- Add a webhook or Make/Zapier workflow that checks the output dataset and sends a Slack or email message when it contains results.

Delta mode tracks newly published matching inspection records. It does not claim to detect every possible correction to an older DBPR row. Keep the source and filters stable, avoid overlapping runs of the same monitor, and choose a `maxItems` value large enough to cover the complete filtered scope.

### Florida restaurant inspection API and exports

Run the Actor from Apify Console, a saved task, a schedule, or the API:

```text
POST https://api.apify.com/v2/acts/neocrea-labs~florida-restaurant-inspection-alerts/runs?token=YOUR_API_TOKEN
```

Send the same fields shown in the Input form as the JSON request body. Results are stored in the run's default dataset, where they can be previewed, downloaded, or retrieved programmatically. Keep API tokens in your secret manager—never commit them to source control.

### Use cases

#### Multi-location restaurant compliance monitoring

Filter by license or geography and route newly published high-priority findings into an internal review queue. The records are operational signals, not legal conclusions.

#### Food-safety consulting and portfolio review

Convert weekly Florida food-safety inspection data into consistent, source-linked records for trend review and follow-up prioritization.

#### Pest-control and restaurant-service prospecting

Public restaurant violation data can help service teams prioritize territories and timely outreach. Users remain responsible for lawful marketing, source verification, and applicable contact or solicitation rules. The Actor does not provide private contact details or determine sales intent.

### Pricing

The Store price is **$0.01 per Actor start plus $1.00 per 1,000 dataset results**. A narrow filtered run can therefore be inexpensive, while broad searches cost in proportion to the results produced. The current price shown by Apify at the time of your run is authoritative.

### Frequently asked questions

#### Is this an official Florida DBPR Actor?

No. It is an independent data tool that processes a public-record export published by Florida DBPR. Verify important decisions against the linked official source.

#### Does the Actor run continuously in the background?

Not by itself. Create an Apify schedule or saved task for automatic recurring runs. Delta mode then compares each completed run with its stored scope-specific state.

#### Why did my first delta run return no results?

If `baselineOnFirstRun` is enabled, the first run intentionally stores the current matches without emitting them. Future runs return newly observed records.

#### Why did I receive fewer results than expected?

Check your filters and `maxItems`. This limit bounds the matching records inspected, not only the final display. Broad county or statewide searches may require a higher value, up to the schema limit.

#### How often is the source updated?

DBPR states that its current download data is generally updated weekly. Publication timing remains controlled by DBPR, not this Actor.

#### Does it include restaurant contact details?

No. The output is focused on public inspection, license, business, location, disposition, violation-count, and source fields.

### Data source, accuracy, and limitations

The Actor processes links to official Florida DBPR restaurant inspection CSV or ZIP downloads. Inspection records describe conditions recorded at inspection time. DBPR may change its export layout or publication schedule; this Actor recognizes documented header names and common variants but intentionally does not infer undocumented columns.

This product is a Florida restaurant inspection data normalizer and alert feed—not a general DBPR license scraper, legal compliance service, or guarantee that the source is complete or current.

### Support

If a run fails or the source format appears to have changed, open the Actor's **Issues** tab and include the run ID, the filters used, and the error message. Do not include API tokens or other secrets.

# Actor input Schema

## `counties` (type: `array`):

Return establishments in these counties. Example: Brevard or Orange. Leave empty for all counties.

## `zipCodes` (type: `array`):

Optional. Return establishments in these ZIP codes.

## `licenseNumbers` (type: `array`):

Optional. Monitor specific restaurant licenses.

## `sinceDate` (type: `string`):

Optional start date in YYYY-MM-DD format. Leave empty to include all dates in the current DBPR export.

## `minHighPriorityViolations` (type: `integer`):

Use 1 or more to focus on inspections with high-priority findings. Use 0 to include every matching inspection.

## `dispositions` (type: `array`):

Optional. Match exact DBPR disposition values, such as Warning Issued.

## `deltaMode` (type: `boolean`):

Remember this filter scope and return only inspections not emitted by earlier runs.

## `baselineOnFirstRun` (type: `boolean`):

When new-inspections mode is enabled, save current matches as the starting point and return no backlog on the first run.

## `maxItems` (type: `integer`):

Maximum number of matching inspection records processed and saved. Use up to 10,000 for broad monitoring scopes.

## `sourceUrls` (type: `array`):

Already configured with the verified Florida DBPR restaurant inspection export. Change only if DBPR publishes a replacement official CSV or ZIP URL.

## Actor input object example

```json
{
  "counties": [
    "Brevard"
  ],
  "zipCodes": [],
  "licenseNumbers": [],
  "sinceDate": "2026-07-01",
  "minHighPriorityViolations": 0,
  "dispositions": [],
  "deltaMode": false,
  "baselineOnFirstRun": false,
  "maxItems": 1000,
  "sourceUrls": [
    "ftp://dbprftp.state.fl.us/pub/llweb/4fdinspi.csv"
  ]
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "counties": [
        "Brevard"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("neocrea-labs/florida-restaurant-inspection-alerts").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "counties": ["Brevard"] }

# Run the Actor and wait for it to finish
run = client.actor("neocrea-labs/florida-restaurant-inspection-alerts").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "counties": [
    "Brevard"
  ]
}' |
apify call neocrea-labs/florida-restaurant-inspection-alerts --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,neocrea-labs/florida-restaurant-inspection-alerts"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/pYGX9e96n3hmiUBdG/builds/vTbrEG9gbIWLI09u4/openapi.json
