# Florida DEP Cleanup Sites Monitor (`defenestrator/florida-dep-cleanup-sites-monitor`) Actor

Export official Florida Department of Environmental Protection cleanup-site rows from the public ArcGIS REST layer for environmental due diligence, compliance, and civic research. Unofficial and not affiliated with Florida DEP.

- **URL**: https://apify.com/defenestrator/florida-dep-cleanup-sites-monitor.md
- **Developed by:** [Defenestrator](https://apify.com/defenestrator) (community)
- **Categories:** Business, News
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 florida dep cleanup site rows

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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Florida DEP Cleanup Sites Monitor

Export official Florida DEP cleanup-site rows from the public ArcGIS REST layer into normalized, source-linked Apify dataset rows with county, status, category, location, and document-link fields.

Use this Actor when you need repeatable access to Florida DEP cleanup-site records without manually querying an interactive map or ArcGIS endpoint.

**Unofficial / not affiliated:** this Actor is independently developed and is not affiliated with, endorsed by, sponsored by, or maintained by the Florida Department of Environmental Protection, the State of Florida, or any government agency.

### Common use cases

- Monitor public Florida cleanup-site records by county, status, category, or location.
- Support environmental due diligence, property research, journalism, civic research, lending/insurance review, or compliance workflows.
- Export site rows from the public ArcGIS layer to JSON, CSV, Excel, or an API integration.
- Create repeatable scheduled checks instead of hand-querying the map.

### Official source

- ArcGIS query endpoint: https://ca.dep.state.fl.us/arcgis/rest/services/OpenData/CLEANUP_SP/MapServer/0/query
- ArcGIS Hub API page: https://geodata.dep.state.fl.us/datasets/dep-cleanup-sites/api

Always verify important decisions against the official Florida DEP source or DEP directly.

### Input parameters

| Parameter | Type | Default | Description |
|---|---|---:|---|
| `maxItems` | integer | 25 | Maximum normalized rows to save (1–500). |
| `maxScanRecords` | integer | 5000 | Maximum raw records to page-scan before stopping (1–10000). |
| `businessSearch` | string | — | Case-insensitive substring on business/site name. |
| `citySearch` | string | — | Case-insensitive substring on city. |
| `cleanupCategoryKeys` | string[] | — | Exact-match cleanup category codes, such as `["PFAS"]`. |
| `remediationStatusKeys` | string[] | — | Exact-match remediation status codes, such as `["OPEN"]`. |
| `programAreaIds` | string[] | — | Exact-match program area IDs, such as `["DR"]`. |
| `sourceDatabaseIds` | string[] | — | Exact-match source database IDs, such as `["ERIC_5055"]`. |
| `countyIds` | integer[] | — | Numeric county-code matches. |
| `updatedSince` | string | — | ISO 8601 date; rows with `DATA_LOAD_DATE >= updatedSince`. |
| `includeRawFields` | boolean | false | Attach sanitized raw ArcGIS fields; staff/internal fields are excluded. |
| `timeoutSecs` | integer | 30 | HTTP request timeout per call (5–120). |

### Example input

```json
{
  "maxItems": 25,
  "maxScanRecords": 1000,
  "remediationStatusKeys": ["OPEN"],
  "includeRawFields": false
}
````

### What you get

Each dataset row contains normalized fields derived from the ArcGIS layer, including:

- cleanup-site key
- source database and program area IDs
- cleanup category and remediation status
- data load date
- county, city, address, state, ZIP
- latitude/longitude when provided by the source layer
- document/source URLs
- collection timestamp
- input-match metadata
- optional sanitized raw fields

The Actor also writes run metadata such as fetched/scanned/saved counts, source URL, applied filters, timestamp, warnings, and errors.

### Pricing

This Actor uses Apify Pay Per Event pricing with platform usage included:

| Event | Price |
|---|---:|
| Actor start (`apify-actor-start`) | `$0.00005` per run start |
| Florida DEP cleanup-site row (`apify-default-dataset-item`) | `$0.003` per normalized row saved |

### Limitations and responsible use

- **ArcGIS field-shape drift:** the underlying ArcGIS layer may add, rename, or remove fields without notice. Unexpected new fields are dropped; missing required fields stop the run with a clear drift error.
- **Source availability:** the ArcGIS REST endpoint may be intermittently unavailable or rate-limited by the state.
- **Geocoding precision:** latitude/longitude values come from ArcGIS geometry. Precision depends on the source layer, not this Actor.
- **Data update lag:** rows may reflect data that is hours or days old.
- **No completeness guarantee:** the Actor fetches and filters rows from the source; it does not validate that every source-valid row is included.

This Actor is not legal advice, environmental advice, due-diligence advice, or a substitute for professional environmental assessment, legal counsel, or official government determinations. Do not use output as the sole basis for lending, insurance, legal, environmental, or other sensitive decisions. Do not use output for unsolicited mass messaging, harassment, or unlawful activity.

# Actor input Schema

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

Maximum number of normalized cleanup-site rows to save to the output dataset. The actor paginates the source, applies local filters, and saves up to this many rows.

## `maxScanRecords` (type: `integer`):

Upper bound on how many raw source records the actor may page through before stopping. The source has roughly 10 000 rows. Use this to bound cost when filtering narrowly.

## `businessSearch` (type: `string`):

Optional case-insensitive substring match on the facility/site/business name (BUSINESS\_NAME).

## `citySearch` (type: `string`):

Optional case-insensitive substring match on the city field (CITY).

## `cleanupCategoryKeys` (type: `array`):

Optional list of exact-match values for CLCC\_CLEANUP\_CATEGORY\_KEY (e.g. PFAS). Rows must match at least one key.

## `remediationStatusKeys` (type: `array`):

Optional list of exact-match values for RSC2\_REMEDIATION\_STATUS\_KEY (e.g. OPEN). Rows must match at least one key.

## `programAreaIds` (type: `array`):

Optional list of exact-match values for CPAC\_PROGRAM\_AREA\_ID (e.g. DR). Rows must match at least one ID.

## `sourceDatabaseIds` (type: `array`):

Optional list of exact-match values for SOURCE\_DATABASE\_ID (e.g. ERIC\_5055). Rows must match at least one ID.

## `countyIds` (type: `array`):

Optional list of numeric county-code values for CC2\_COUNTY\_ID. Rows must match at least one ID.

## `updatedSince` (type: `string`):

Optional ISO 8601 date or date-time. Only rows whose DATA\_LOAD\_DATE is on or after this value are kept. The source stores DATA\_LOAD\_DATE as epoch milliseconds; this field is compared as a date string.

## `includeRawFields` (type: `boolean`):

When true, the actor attaches a 'raw' object containing selected raw ArcGIS fields (excluding COLLECT\_USERNAME, VERIFIER\_USERNAME, COMMENTS, and other internal/staff/free-text fields). Default false.

## `timeoutSecs` (type: `integer`):

Timeout for each individual HTTP request to the ArcGIS endpoint, in seconds. Must be between 5 and 120.

## Actor input object example

```json
{
  "maxItems": 25,
  "maxScanRecords": 5000,
  "includeRawFields": false,
  "timeoutSecs": 30
}
```

# Actor output Schema

## `results` (type: `string`):

Link to the full dataset of normalized cleanup-site rows.

## `summary` (type: `string`):

Fetched/scanned/saved counts, source URL, applied filters, fetchedAt, warnings, errors — available as the OUTPUT key in the default key-value store.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("defenestrator/florida-dep-cleanup-sites-monitor").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("defenestrator/florida-dep-cleanup-sites-monitor").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{}' |
apify call defenestrator/florida-dep-cleanup-sites-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=defenestrator/florida-dep-cleanup-sites-monitor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Florida DEP Cleanup Sites Monitor",
        "description": "Export official Florida Department of Environmental Protection cleanup-site rows from the public ArcGIS REST layer for environmental due diligence, compliance, and civic research. Unofficial and not affiliated with Florida DEP.",
        "version": "0.0",
        "x-build-id": "Nz2RzVvBrwMOLmGyp"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/defenestrator~florida-dep-cleanup-sites-monitor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-defenestrator-florida-dep-cleanup-sites-monitor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/defenestrator~florida-dep-cleanup-sites-monitor/runs": {
            "post": {
                "operationId": "runs-sync-defenestrator-florida-dep-cleanup-sites-monitor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/defenestrator~florida-dep-cleanup-sites-monitor/run-sync": {
            "post": {
                "operationId": "run-sync-defenestrator-florida-dep-cleanup-sites-monitor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "maxItems": {
                        "title": "Max items to save",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of normalized cleanup-site rows to save to the output dataset. The actor paginates the source, applies local filters, and saves up to this many rows.",
                        "default": 25
                    },
                    "maxScanRecords": {
                        "title": "Max records to scan",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Upper bound on how many raw source records the actor may page through before stopping. The source has roughly 10 000 rows. Use this to bound cost when filtering narrowly.",
                        "default": 5000
                    },
                    "businessSearch": {
                        "title": "Business / site name filter",
                        "type": "string",
                        "description": "Optional case-insensitive substring match on the facility/site/business name (BUSINESS_NAME)."
                    },
                    "citySearch": {
                        "title": "City filter",
                        "type": "string",
                        "description": "Optional case-insensitive substring match on the city field (CITY)."
                    },
                    "cleanupCategoryKeys": {
                        "title": "Cleanup category keys",
                        "type": "array",
                        "description": "Optional list of exact-match values for CLCC_CLEANUP_CATEGORY_KEY (e.g. PFAS). Rows must match at least one key.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "remediationStatusKeys": {
                        "title": "Remediation status keys",
                        "type": "array",
                        "description": "Optional list of exact-match values for RSC2_REMEDIATION_STATUS_KEY (e.g. OPEN). Rows must match at least one key.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "programAreaIds": {
                        "title": "Program area IDs",
                        "type": "array",
                        "description": "Optional list of exact-match values for CPAC_PROGRAM_AREA_ID (e.g. DR). Rows must match at least one ID.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "sourceDatabaseIds": {
                        "title": "Source database IDs",
                        "type": "array",
                        "description": "Optional list of exact-match values for SOURCE_DATABASE_ID (e.g. ERIC_5055). Rows must match at least one ID.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "countyIds": {
                        "title": "County IDs",
                        "type": "array",
                        "description": "Optional list of numeric county-code values for CC2_COUNTY_ID. Rows must match at least one ID.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "updatedSince": {
                        "title": "Updated since (ISO date)",
                        "type": "string",
                        "description": "Optional ISO 8601 date or date-time. Only rows whose DATA_LOAD_DATE is on or after this value are kept. The source stores DATA_LOAD_DATE as epoch milliseconds; this field is compared as a date string."
                    },
                    "includeRawFields": {
                        "title": "Include sanitized raw fields",
                        "type": "boolean",
                        "description": "When true, the actor attaches a 'raw' object containing selected raw ArcGIS fields (excluding COLLECT_USERNAME, VERIFIER_USERNAME, COMMENTS, and other internal/staff/free-text fields). Default false.",
                        "default": false
                    },
                    "timeoutSecs": {
                        "title": "Request timeout (seconds)",
                        "minimum": 5,
                        "maximum": 120,
                        "type": "integer",
                        "description": "Timeout for each individual HTTP request to the ArcGIS endpoint, in seconds. Must be between 5 and 120.",
                        "default": 30
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
