# EPA Sole Source Aquifer Screener — SDWA 1424(e) Review (`malonestar/epa-sole-source-aquifer-screener`) Actor

EPA Sole Source Aquifer screener. Batch point-in-polygon check of coordinates against EPA Sole Source Aquifers: returns whether each point is in an SSA, the aquifer name, project-review-area type (recharge vs streamflow source zone), Federal Register citation and EPA region for SDWA 1424(e) review.

- **URL**: https://apify.com/malonestar/epa-sole-source-aquifer-screener.md
- **Developed by:** [Kyle Maloney](https://apify.com/malonestar) (community)
- **Categories:** Agents, Developer tools, Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.30 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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.

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

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## EPA Sole Source Aquifer Screener — SDWA 1424(e) Review

**Sole Source Aquifer (SSA) screener.** Give it a list of coordinates and it runs a server-side point-in-polygon check against the **EPA Sole Source Aquifers** national layer and returns, for each point: whether it sits **inside a designated Sole Source Aquifer**, the **aquifer name**, the **project-review-area type** (Recharge Zone vs Streamflow Source Zone), the **Federal Register citation** of the designation, and the responsible **EPA Region** (with its contact link).

A hit means any project receiving **federal financial assistance** at that location is subject to **EPA review under Safe Drinking Water Act section 1424(e)** — the agency reviews the project to ensure it will not contaminate the aquifer so as to create a significant hazard to public health, because the aquifer is the area's sole or principal drinking-water source.

One clean, billable row per asset — even when the point is outside every SSA (a useful "clear" result).

### Who it's for
- **NEPA / environmental consultants** — flag SSA review triggers early when scoping federally-funded projects, so 1424(e) coordination is not a surprise.
- **Phase-I ESA / environmental due-diligence** — add a definitive "is this site in a Sole Source Aquifer?" data point to a site assessment.
- **Federally-funded infrastructure & development** (transportation, housing, water, energy) — batch-screen a portfolio of sites for the SSA review requirement before applying for grants or loans.
- **Water utilities & source-water protection** — confirm which designated aquifer and review zone a facility or well site falls within.
- **GIS & data teams / AI agents** — enrich any coordinate list with authoritative SSA status without hosting the EPA polygon layer yourself.

### Example input
```json
{
  "assets": [
    { "lat": 41.68, "lon": -70.30, "label": "Cape Cod, MA" },
    { "lat": 32.7791, "lon": -96.8000, "label": "Downtown Dallas, TX" }
  ],
  "maxAssets": 500
}
````

The first point returns `in_sole_source_aquifer: true`, `ssa_name: "Cape Cod Aquifer SSA"`, `review_area_type: "Aquifer Project Review Area"`, `federal_register_citation: "47 FR 30282 (1982)"`, `epa_region: "Region 1"`, `requires_swda_1424e_review: true`. The second returns `in_sole_source_aquifer: false` (no SSA at that location).

#### Verified sample run

A real 6-site run (2026-07-21) returned 6 rows and 0 errors:

| Asset | In SSA | Aquifer | SSA ID | 1424(e) review |
|---|---|---|---|---|
| Cape Cod, MA | true | Cape Cod Aquifer SSA | SSA04 | true |
| Long Island, NY | true | Nassau/Suffolk Counties Long Island SSA | SSA22 | true |
| Spokane Valley, WA | true | Spokane Valley-Rathdrum Prairie Aquifer Area SSA | SSA71a | true |
| Tucson, AZ | true | Upper Santa Cruz & Avra Basin SSA | SSA61 | true |
| Miami, FL | true | Biscayne Aquifer SSA | SSA34a | true |
| Downtown Dallas, TX (control) | false | null | null | false |

The control point returned a clean, billable "clear" row rather than an error. This exact run is published as the actor's example task, so you can open it and re-run it as-is.

### Output fields (one row per asset)

`asset_label`, `asset_lat`, `asset_lon`, `in_sole_source_aquifer`, `requires_swda_1424e_review`, `ssa_name`, `ssa_id`, `review_area_type`, `federal_register_citation`, `epa_region`, `epa_region_number`, `epa_link`, `matched_aquifer_count`, `matched_aquifers`, `error`, `disclaimer`, `source_url`, `checked_at`.

A single point can fall inside **more than one** SSA polygon — EPA ships some aquifers as separate **Recharge Zone** and **Streamflow Source Zone** polygons, and a point can intersect both. The flat row reports the **primary** (largest-area) matching polygon; every distinct match is also listed, deduped, in `matched_aquifers`, and `matched_aquifer_count` tells you how many zones apply.

### Use as an MCP tool

This actor is callable by AI agents (Claude, Cursor, etc.) via [mcp.apify.com](https://mcp.apify.com). Its typed input (`assets[]{lat,lon,label}`) and field-level output descriptions make it a clean, chainable "is this coordinate in a Sole Source Aquifer, and does it trigger EPA 1424(e) review?" tool for siting, permitting and environmental-diligence agents.

### FAQ

**Is my site in a Sole Source Aquifer?** Yes — pass its coordinate and read `in_sole_source_aquifer`, `ssa_name` and `ssa_id`.

**Does my project need EPA review?** `requires_swda_1424e_review` is true whenever the point is in an SSA. Projects receiving federal financial assistance in a designated Sole Source Aquifer area are subject to EPA review under Safe Drinking Water Act section 1424(e). Confirm the specifics with the EPA Regional Office in `epa_link`.

**What is the difference between a recharge zone and a streamflow source zone?** Both are parts of a designated Sole Source Aquifer's protection area. `review_area_type` reports which zone the point is in; a point inside both returns both in `matched_aquifers`.

**Where does the designation come from?** `federal_register_citation` gives the Federal Register notice (e.g. "47 FR 30282 (1982)") that designated the aquifer.

**How current / authoritative is it?** This is an **informational SSA intersection screen** based on the EPA national Sole Source Aquifers polygon layer (August 2019). It is not an official SSA determination or a substitute for EPA review. The **authoritative source is the EPA Regional Office** (see `epa_link`). Confirm the designation and review requirement before any siting, funding, permitting, or transaction decision.

### Related screeners

This actor is part of a family of single-coordinate federal due-diligence screeners that all take the same `assets[]{lat,lon,label}` input shape, so you can run several over the same site list and join the results per site.

- [Site Due Diligence Bundle](https://apify.com/malonestar/site-due-diligence-bundle) — 15 federal overlays for one coordinate in a single call.
- [EPA Contaminated Site Screener](https://apify.com/malonestar/epa-contaminated-site-screener) — nearest Superfund/NPL and contaminated sites, with a Phase I ESA flag.
- [State Tank & Spill Registry Screener](https://apify.com/malonestar/state-tank-spill-registry-screener) — UST/LUST tanks and state spill records near the site.
- [EPA Impaired Waters 303(d) Screener](https://apify.com/malonestar/epa-impaired-waters-303d-screener) — Clean Water Act 303(d) impaired waters near the site.
- [Karst & Sinkhole Risk Screener](https://apify.com/malonestar/karst-sinkhole-risk-screener) — karst and sinkhole terrain, a common companion risk in carbonate aquifers.
- [FEMA National Risk Index County Risk Profile](https://apify.com/malonestar/fema-nri-county-risk-profile) — FEMA National Risk Index perils for the site's county and tract.

### Source

EPA Sole Source Aquifers (August 2019) ArcGIS FeatureServer, layer 0:
`https://services.arcgis.com/cJ9YHowT8TU7DUyn/arcgis/rest/services/Sole_Source_Aquifers_August_2019/FeatureServer/0`

# Actor input Schema

## `assets` (type: `array`):

List of points to screen against EPA Sole Source Aquifers. Each item is an object with numeric lat and lon (WGS84 decimal degrees) and an optional label. One billable result row is returned per asset. Example: \[{"lat":41.68,"lon":-70.30,"label":"Cape Cod, MA"}].

## `maxAssets` (type: `integer`):

Maximum number of assets to screen from the assets list (safety cap). Extra assets beyond this are ignored.

## Actor input object example

```json
{
  "assets": [
    {
      "lat": 41.68,
      "lon": -70.3,
      "label": "Cape Cod, MA (inside Cape Cod Aquifer SSA)"
    },
    {
      "lat": 32.7791,
      "lon": -96.8,
      "label": "Downtown Dallas, TX (no SSA — control)"
    }
  ],
  "maxAssets": 500
}
```

# Actor output Schema

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

The default dataset.

# 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 = {
    "assets": [
        {
            "lat": 41.68,
            "lon": -70.3,
            "label": "Cape Cod, MA (inside Cape Cod Aquifer SSA)"
        },
        {
            "lat": 32.7791,
            "lon": -96.8,
            "label": "Downtown Dallas, TX (no SSA — control)"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("malonestar/epa-sole-source-aquifer-screener").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 = { "assets": [
        {
            "lat": 41.68,
            "lon": -70.3,
            "label": "Cape Cod, MA (inside Cape Cod Aquifer SSA)",
        },
        {
            "lat": 32.7791,
            "lon": -96.8,
            "label": "Downtown Dallas, TX (no SSA — control)",
        },
    ] }

# Run the Actor and wait for it to finish
run = client.actor("malonestar/epa-sole-source-aquifer-screener").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 '{
  "assets": [
    {
      "lat": 41.68,
      "lon": -70.3,
      "label": "Cape Cod, MA (inside Cape Cod Aquifer SSA)"
    },
    {
      "lat": 32.7791,
      "lon": -96.8,
      "label": "Downtown Dallas, TX (no SSA — control)"
    }
  ]
}' |
apify call malonestar/epa-sole-source-aquifer-screener --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=malonestar/epa-sole-source-aquifer-screener",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "EPA Sole Source Aquifer Screener — SDWA 1424(e) Review",
        "description": "EPA Sole Source Aquifer screener. Batch point-in-polygon check of coordinates against EPA Sole Source Aquifers: returns whether each point is in an SSA, the aquifer name, project-review-area type (recharge vs streamflow source zone), Federal Register citation and EPA region for SDWA 1424(e) review.",
        "version": "1.0",
        "x-build-id": "nN4ZzHSxzDHqc2AJH"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/malonestar~epa-sole-source-aquifer-screener/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-malonestar-epa-sole-source-aquifer-screener",
                "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/malonestar~epa-sole-source-aquifer-screener/runs": {
            "post": {
                "operationId": "runs-sync-malonestar-epa-sole-source-aquifer-screener",
                "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/malonestar~epa-sole-source-aquifer-screener/run-sync": {
            "post": {
                "operationId": "run-sync-malonestar-epa-sole-source-aquifer-screener",
                "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",
                "required": [
                    "assets"
                ],
                "properties": {
                    "assets": {
                        "title": "Assets (coordinates to screen)",
                        "type": "array",
                        "description": "List of points to screen against EPA Sole Source Aquifers. Each item is an object with numeric lat and lon (WGS84 decimal degrees) and an optional label. One billable result row is returned per asset. Example: [{\"lat\":41.68,\"lon\":-70.30,\"label\":\"Cape Cod, MA\"}]."
                    },
                    "maxAssets": {
                        "title": "Max assets",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Maximum number of assets to screen from the assets list (safety cap). Extra assets beyond this are ignored.",
                        "default": 500
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
