ParseForge Scrapers

EPA FRS Facility Registry Scraper

parseforge/epa-frs-facility-registry-scraper

Developer toolsOther

Scrapes EPA FRS facility records by US state or territory and optional program system. Returns each facility as a flat row with registry ID, name, address, and program interests.

Run this scraper See the API call
Total users
2
Monthly active
1
Total runs
84
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

EPA FRS Facility Registry Scraper

Scrape EPA FRS facility records for any US state or territory, up to a million per run. Each facility comes with its registry ID, name, address, and program interests. No API key or login. Export to CSV, JSON, Excel, or XML.

The EPA Facility Registry Service (FRS) is the master list of regulated facilities in the United States, but its public query tool is slow and hard to export. This Actor reads the FRS facility search directly, filtered by state and optional EPA program system, and returns each match in one flat row. You get the same data the EPA publishes, ready for analysis.

Who uses it What they scrape EPA FRS Facility Registry for
Environmental consultants Building a list of regulated facilities in a state for compliance audits
Market researchers Identifying industrial sites by environmental program participation
Data journalists Mapping pollution sources and permit holders for investigative stories
Regulatory analysts Tracking which facilities fall under specific EPA programs

What it does

This Actor collects EPA FRS facility records by US state or territory and optional program system, and returns each facility as a flat row.

  • πŸ—ΊοΈ State or territory filter: choose any US state, DC, Puerto Rico, or other territory.
  • 🏭 Program system filter: narrow to NPDES, RCRA, TRI, air, drinking water, and more.
  • πŸ“¦ Bulk export: pull up to 1,000,000 facilities per run, then download as CSV, JSON, Excel, or XML.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with EPA FRS Facility Registry data

πŸ“‹ Build a state compliance list.

An environmental consultant selects California and the RCRAINFO program to get every hazardous waste facility in the state for a client audit.

πŸ—ΊοΈ Map pollution sources.

A data journalist pulls all TRI facilities in Texas and joins the addresses to census data to show which communities host toxic emitters.

🏭 Find permit holders.

A market researcher filters for NPDES in Ohio to identify industrial water users for a wastewater treatment sales campaign.

πŸ“Š Track program coverage.

A regulatory analyst runs the Actor for all states with no program filter to count how many facilities appear in each EPA system.

Why choose this scraper

What you get
No API key The FRS public API requires registration and has rate limits. This Actor reads the public search directly.
One flat row per facility Registry ID, name, address, and program interests land in a fixed schema, ready for spreadsheets.
Program-level filtering Target only NPDES water permits, RCRA hazardous waste, TRI toxics, or any of 18 program systems.

How it compares

No other Store actor targets EPA FRS Facility Registry the same way, so the honest comparison is with the alternatives teams actually weigh.

EPA FRS Facility Registry Scraper Build it in-house By hand
Setup Run it now, zero config Days of engineering None, but hours per pull
When EPA FRS Facility Registry changes Maintained for you You fix it You re-learn the page
Proxies, retries, anti-bot Built in Your problem Browser only
Output Fixed JSON schema, CSV/Excel export Whatever you build Copy-paste
Cost Pay per result Engineering time Analyst hours

Configure the run

Drive the Actor with a state or territory code and an optional EPA program system acronym. Filters run as each facility is read, so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "maxItems": 10
}

A larger pull:

{
  "maxItems": 200
}

Pricing

Pay-per-result: $0.004 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $0.40
1,000 results $4.00
10,000 results $40.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the EPA FRS Facility Registry Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to EPA FRS Facility Registry through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/epa-frs-facility-registry-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that the state code is correct and that the program system filter is not too narrow. Some states have few facilities in certain programs. Try setting the program filter to Any.

The run stops before reaching my maxItems.

The Actor stops when it has collected all facilities that match your filters. If the state has fewer facilities than your maxItems, you will get all of them.

I get an error about the state code.

Use the two-letter USPS code, such as CA for California or PR for Puerto Rico. The input dropdown lists all valid codes.

The dataset has duplicate facilities.

A facility can appear in multiple program systems, but the Actor returns one row per facility. If you see duplicates, check that you did not run the same state twice and merge the datasets.

Can I get more than 1,000,000 facilities?

The maximum is 1,000,000 per run. If you need more, split the work by state or program and run multiple times, then merge the results.

FAQ

Question Answer
What is the EPA FRS? The Facility Registry Service is the EPA's central database of facilities regulated under environmental statutes. It assigns a unique FRS ID to each site and links it to program systems like NPDES, RCRA, and TRI.
Do I need an EPA API key? No. This Actor reads the public FRS facility search directly, so you can run it without registering for an EPA account or dealing with rate limits.
Can I filter by facility name or address? The current input only supports state and program system filters. If you need name or address search, contact support and we can add it.
What does the program system filter do? It limits results to facilities that participate in a specific EPA program, such as NPDES for water discharge permits or RCRAINFO for hazardous waste. Leave it on Any to include all facilities.
How many facilities can I get in one run? You can set the maximum up to 1,000,000. The actual number depends on how many facilities exist in the selected state and program.
Which states and territories are supported? All 50 states, the District of Columbia, Puerto Rico, the US Virgin Islands, Guam, American Samoa, and the Northern Mariana Islands.
What fields are returned for each facility? Each row includes the FRS registry ID, facility name, address, city, state, ZIP, and the program systems the facility is linked to. The exact field list is shown in the sample output.
Can I export the data? Yes. After the run, download the dataset as CSV, JSON, Excel, or XML from the Apify platform.
Is this the same data as EPA ECHO? ECHO is a separate EPA system focused on enforcement and compliance. FRS is the underlying facility registry. This Actor scrapes FRS, not ECHO.
How often is the data updated? The Actor reads live data from the EPA FRS search each time it runs, so you always get the current registry.

Related actors

Browse the full ParseForge collection for more scrapers.

πŸ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by U.S. Environmental Protection Agency. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
stateCode required string (56 options) US state or territory to pull regulated facilities for. CA
programAcronym string (19 options) Optional EPA program system to filter facilities by. Leave on Any to include all programs. not set
maxItems integer Maximum number of facilities to collect per run. 10

Pricing

from $3.00 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.003 to $0.004

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST Β· run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~epa-frs-facility-registry-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run EPA FRS Facility Registry Scraper on Apify All scrapers