EPA AQS Air Quality Scraper avatar

EPA AQS Air Quality Scraper

Pricing

from $19.00 / 1,000 results

Go to Apify Store
EPA AQS Air Quality Scraper

EPA AQS Air Quality Scraper

Scrapes EPA Air Quality System data by pollutant, state, county, or site. Returns daily summaries, hourly samples, or active monitor lists as flat rows for CSV, JSON, Excel, or XML export.

Pricing

from $19.00 / 1,000 results

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

12 days ago

Last modified

Share

ParseForge

EPA AQS Air Quality Scraper

Scrape EPA air quality data for any pollutant, state, or county, up to a million records per run. Get daily summaries, hourly samples, or active monitor lists with parameter codes, dates, and site details. Export to CSV, JSON, Excel, or XML.

The EPA's Air Quality System holds decades of ambient monitoring data, but its API requires registration, parameter codes, and FIPS geography codes. This Actor queries the public data service directly, letting you pick a dataset, pollutant, and location, then returns every matching record in a flat, analysis-ready schema. No manual API calls or code wrangling needed.

Who uses itWhat they scrape EPA Air Quality System for
Environmental researchersPull daily PM2.5 or ozone readings for a county over a year to study pollution trends.
Public health analystsExport hourly SO2 or NO2 samples near industrial sites for exposure assessments.
Data journalistsGather active monitor locations by state to map air quality monitoring coverage gaps.
Climate tech developersFeed historical CO or lead data into models that predict urban air quality.

What it does

This Actor collects EPA AQS air quality records by dataset, pollutant parameter, and geographic filters, and returns each record as a flat row.

  • πŸ“Š Three dataset endpoints: daily summaries by county, hourly samples by site, or active monitors by state.
  • 🌫️ Eleven pollutant parameters: PM2.5, PM10, CO, SO2, NO2, O3, lead, reactive nitrogen oxides, wind, and temperature.
  • πŸ—ΊοΈ Geographic filters: narrow results to a single state FIPS code, county FIPS code, or monitor site number.
  • πŸ“… Date range control: set a start and end date in YYYYMMDD format, with a one-year maximum window per query.
  • πŸ”‘ Optional personal credentials: use the shared demo account or supply your own free EPA registration for higher quotas.

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

What you can do with EPA Air Quality System data

πŸ“ˆ Track daily PM2.5 trends by county.

A researcher selects the daily summary dataset, PM2.5 parameter, and a California county to chart a year of fine particulate matter levels for a health study.

🏭 Audit hourly pollution near industrial sites.

A public health analyst pulls hourly SO2 samples from a monitor site near a refinery to check for exceedances during a specific month.

πŸ—ΊοΈ Map active air monitors across a state.

A journalist fetches the active monitors list for Texas to visualize which communities have ozone monitoring and which do not.

πŸ“Š Build a historical air quality database.

A climate tech startup exports a decade of daily CO and NO2 data for multiple states to train a predictive air quality model.

Why choose this scraper

What you get
No API codingThe Actor handles EPA parameter codes, FIPS codes, and date formatting for you.
Flat, consistent schemaEvery record arrives with the same columns, ready for analysis or a database.
Up to 1M recordsPaid users can pull large historical datasets in a single run.
Free demo accessStart with the shared EPA account; switch to your own for higher rate limits.

How it compares

No other Store actor targets EPA Air Quality System the same way, so the honest comparison is with the alternatives teams actually weigh.

EPA AQS Air Quality ScraperBuild it in-houseBy hand
SetupRun it now, zero configDays of engineeringNone, but hours per pull
When EPA Air Quality System changesMaintained for youYou fix itYou re-learn the page
Proxies, retries, anti-botBuilt inYour problemBrowser only
OutputFixed JSON schema, CSV/Excel exportWhatever you buildCopy-paste
CostPay per resultEngineering timeAnalyst hours

Configure the run

Drive the Actor from a dataset endpoint, pollutant parameter, and geographic codes, and filters run as each record is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
"maxItems": 10,
"endpoint": "dailyDataByCounty",
"parameter": "88101",
"stateCode": "06",
"countyCode": "037",
"siteNumber": "0080",
"startDate": "20240101",
"endDate": "20240131"
}

A larger pull:

{
"maxItems": 200,
"endpoint": "dailyDataByCounty",
"parameter": "88101",
"stateCode": "06",
"countyCode": "037",
"siteNumber": "0080",
"startDate": "20240101",
"endDate": "20240131"
}

Pricing

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

Results collectedApproximate cost
100 results$2.10
1,000 results$21.00
10,000 results$210.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 AQS Air Quality 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 Air Quality System 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-aqs-air-quality-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 your state code, county code, and date range are valid for the selected dataset. The EPA API returns empty datasets when no monitoring occurred for that pollutant in that location and time window. Try a wider date range or a different pollutant.

I get an error about an invalid parameter code.

Use the dropdown in the Actor input to select a valid EPA parameter code. Manually typed codes may not match the AQS service. The dropdown lists all supported pollutants with their correct codes.

The run stops early with fewer records than my maxItems setting.

The EPA API may return fewer records than requested if the date range or geographic area has limited monitoring data. This is normal. Try expanding your date range or selecting a different location.

I hit a rate limit or quota error.

The shared demo account has limited quotas. Register for a free personal account on the EPA AQS data mart, then supply your own email and access key in the Actor's Credentials section for higher limits.

FAQ

QuestionAnswer
What is the EPA AQS data service?It is the U.S. Environmental Protection Agency's Air Quality System, a repository of ambient air pollution measurements from thousands of monitoring sites across the country.
Do I need an EPA account to use this Actor?No. The Actor includes a shared demo account and access key. For higher request quotas, you can register for a free personal account on the EPA AQS data mart website and supply your own email and key.
Which pollutants can I scrape?You can select from PM2.5, PM10, carbon monoxide, sulfur dioxide, nitrogen dioxide, ozone, lead, reactive oxides of nitrogen, wind, and temperature using their EPA parameter codes.
How do I find the right FIPS code for my state or county?The Actor provides a dropdown of state FIPS codes with names. County codes are three-digit numbers you can look up on the EPA AQS site or the U.S. Census Bureau's FIPS code reference.
What is the maximum date range I can query?The EPA AQS API limits each request to a one-year window. Set your start and end dates in YYYYMMDD format, keeping them within 365 days of each other.
How many records can I get in one run?Free users are limited to 10 records for preview. Paid Apify users can set a maximum up to 1,000,000 records per run.
What format does the output data come in?The Actor returns a flat dataset you can export to CSV, JSON, Excel, or XML from the Apify platform.
Can I get hourly air quality measurements?Yes. Select the 'Hourly Samples by Site' endpoint and provide a site number to retrieve hourly concentration readings for your chosen pollutant.
Does this Actor work for locations outside the United States?No. The EPA AQS data service covers only U.S. states, territories, and tribal lands.

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.