EPA Air Quality System (AQS) Scraper
Pricing
from $19.00 / 1,000 results
EPA Air Quality System (AQS) Scraper
Export U.S. ambient air-quality measurements from EPA's Air Quality System: daily summaries by county, hourly sample readings by monitor site, and active monitor inventory by state. Covers PM2.5, PM10, NO2, O3, CO, SO2, lead, VOCs and meteorological data from 10,000+ monitoring stations.
Pricing
from $19.00 / 1,000 results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 days ago
Last modified
Categories
Share

π¬οΈ EPA Air Quality (AQS) Scraper
π Export U.S. ambient air-quality data in seconds. Pull daily summaries by county, hourly sample readings by monitor site, or the active monitor inventory by state from the EPA Air Quality System. PM2.5, PM10, NO2, O3, CO, SO2, lead, VOCs and meteorology from 10,000+ monitoring stations.
π Last updated: 2026-05-27 Β· π 25+ fields per record Β· πΊπΈ 50 states + DC Β· π 10,000+ active monitors Β· π§ͺ 11 pollutant parameters
The EPA AQS Air Quality Scraper queries the official Environmental Protection Agency air-quality data warehouse and returns 25+ structured fields per record, including state and county codes, monitor site identifiers, parameter codes, sample duration, units of measure, the measured value, the AQI, the local-and-GMT timestamps, lat/lon coordinates, and the reporting agency. The underlying data is what EPA, NOAA, and academic atmospheric scientists work from every day.
The catalog covers every U.S. state, criteria pollutants plus meteorology, and three workhorse endpoints: daily-summary records by county, hourly sample readings by monitor site, and the active monitor inventory by state. This Actor handles credentials, pagination, and the AQS JSON response format, and ships the result as CSV, Excel, JSON, or XML.
| π― Target Audience | π‘ Primary Use Cases |
|---|---|
| Environmental scientists, public-health analysts, urban planners, climate-tech startups, journalists, ESG analysts, real-estate intelligence teams | Pollution dashboards, wildfire-smoke impact studies, ozone-season analyses, monitor-network mapping, exposure modeling, ESG-risk scoring |
π What the EPA AQS Scraper does
Three dataset choices and eleven parameter codes in a single run:
- π Daily Summary by County. Calendar-day means for one pollutant in one county.
- β±οΈ Hourly Samples by Site. Sub-daily raw sample readings at a single monitor.
- π Active Monitors by State. Inventory and metadata for every active monitor in one state.
- π§ͺ Pollutants. PM2.5 (FRM/FEM and non-FRM), PM10, CO, SO2, NO2, O3, lead, reactive nitrogen oxides, wind, temperature.
Each record carries the state and county FIPS codes, monitor site number, parameter code and human name, sample duration, units, the value, AQI if applicable, both local and GMT timestamps, monitor lat/lon, the CBSA, and the responsible reporting agency.
π‘ Why it matters: ambient air quality is one of the most-watched environmental variables in the world. Wildfire seasons, ozone alerts, ESG disclosures, and exposure-based epidemiology all depend on EPA AQS as the ground truth. Pulling it yourself means navigating the registration flow, the parameter-code lookup, the date-window limits, and the JSON response shape. This Actor does all of that.
π¬ Full Demo
π§ Coming soon: a 3-minute walkthrough showing how to go from sign-up to a downloaded dataset of monitor readings.
βοΈ Input
| Input | Type | Default | Behavior |
|---|---|---|---|
| maxItems | integer | 10 | Records to return. Free plan caps at 10, paid plan at 1,000,000. |
| endpoint | string | "dailyDataByCounty" | One of `dailyDataByCounty`, `sampleDataBySite`, `monitorsByState`. |
| parameter | string | "88101" | EPA parameter code. PM2.5 is `88101`, ozone is `44201`, etc. |
| stateCode | string | "06" | Two-digit state FIPS code. |
| countyCode | string | "037" | Three-digit county FIPS code (required for daily and sample endpoints). |
| siteNumber | string | "0080" | Four-digit monitor site number (required for `sampleDataBySite`). |
| startDate | string | "20240101" | YYYYMMDD start date (inclusive). |
| endDate | string | "20240131" | YYYYMMDD end date. Max one year per query. |
| string | shared demo | Optional. Register on the EPA AQS data service for higher quotas. | |
| accessKey | string | shared demo | Optional. Your personal access key. |
Example: January 2024 daily PM2.5 in Los Angeles County, CA.
{"maxItems": 31,"endpoint": "dailyDataByCounty","parameter": "88101","stateCode": "06","countyCode": "037","startDate": "20240101","endDate": "20240131"}
Example: every active ozone monitor in Texas.
{"maxItems": 500,"endpoint": "monitorsByState","parameter": "44201","stateCode": "48","startDate": "20240101","endDate": "20241231"}
β οΈ Good to Know: the shared demo credentials work for small test runs but have a low quota. For production work, register a free account on the EPA AQS data service in 30 seconds and pass your own
accessKeyin the input. Per-query date windows are capped at one calendar year.
π Output
Each record contains 25+ fields. Download the dataset as CSV, Excel, JSON, or XML.
π§Ύ Schema
| Field | Type | Example |
|---|---|---|
ποΈ stateCode | string | "06" |
ποΈ countyCode | string | "037" |
π siteNumber | string | "0080" |
πΊπΈ stateName | string | "California" |
π countyName | string | "Los Angeles" |
ποΈ cityName | string | "Los Angeles" |
πͺͺ localSiteName | string | "Los Angeles - North Main Street" |
π§ͺ parameterCode | string | "88101" |
π«οΈ parameterName | string | "PM2.5 - Local Conditions" |
π’ poc | number | 1 |
π datum | string | "NAD83" |
β±οΈ sampleDuration | string | "24 HOUR" |
π units | string | "Micrograms/cubic meter (LC)" |
π¨ value | number | null | 12.4 |
π
date | string | "2024-01-15" |
π time | string | null | "12:00" |
π datetimeLocal | string | "2024-01-15T12:00" |
π datetimeGmt | string | "2024-01-15T20:00" |
π¦ aqi | number | null | 52 |
π§ͺ method | string | null | "R & P Model 2025 PM-2.5 Sequential Air Sampler" |
π·οΈ monitorAgency | string | "South Coast Air Quality Management District" |
π latitude | number | 34.06658 |
π longitude | number | -118.22688 |
πΊοΈ cbsa | string | "31080" |
π scrapedAt | ISO 8601 | "2026-05-27T00:00:00.000Z" |
For monitorsByState, additional fields include openDate, closeDate, networks, and siteEstablishedDate.
π¦ Sample records
β¨ Why choose this Actor
| Capability | |
|---|---|
| ποΈ | Official EPA source. Same data feed used by AirNow, the EPA, and atmospheric researchers. |
| π¬οΈ | Criteria pollutants + meteorology. PM2.5, PM10, CO, SO2, NO2, O3, lead, plus wind and temperature. |
| π | 10,000+ monitors. Every active U.S. site, with lat/lon, CBSA, and reporting agency. |
| π§© | Three endpoints, one Actor. Daily summaries, hourly samples, monitor inventory. |
| π | Decades of history. AQS goes back to the 1980s for some pollutants. |
| π | Always fresh. Every run queries the live EPA data service. |
| π« | No paid subscription. Free registration unlocks higher quotas, but a shared demo works for testing. |
π«οΈ Wildfire smoke, ozone exceedances, and PM2.5 spikes all live in the same dataset. This Actor turns them into clean, joinable rows.
π How it compares to alternatives
| Approach | Cost | Coverage | Refresh | Endpoints | Setup |
|---|---|---|---|---|---|
| β EPA AQS Scraper (this Actor) | $5 free credit, then pay-per-use | 10,000+ U.S. monitors | Live per run | daily, hourly, inventory | β‘ 2 min |
| AirNow real-time feed | Free | Subset of monitors | Live | Real-time only | π’ Custom parsing |
| EPA AirData web portal | Free | All monitors | Live | UI-only export | π’ Slow, manual |
| Commercial weather + air vendors | $500+/month | Global | Real-time | Many | β³ Sales cycle |
Pick this Actor when you want EPA-grade historical and recent monitor data without writing the integration yourself.
π How to use
- π Sign up. Create a free account with $5 credit (takes 2 minutes).
- π Open the Actor. Go to the EPA AQS Scraper page on the Apify Store.
- π― Set input. Pick a dataset, parameter code, state and county codes, and a date range.
- π Run it. Click Start and let the Actor collect your data.
- π₯ Download. Grab your results in the Dataset tab as CSV, Excel, JSON, or XML.
β±οΈ Total time from signup to downloaded dataset: 3-5 minutes. No coding required.
πΌ Business use cases
π Automating EPA AQS Scraper
Control the scraper programmatically for scheduled runs and pipeline integrations:
- π’ Node.js. Install the
apify-clientNPM package. - π Python. Use the
apify-clientPyPI package. - π See the Apify API documentation for full details.
The Apify Schedules feature lets you trigger this Actor on any cron interval. A daily refresh on the monitor inventory keeps your map layer current, and an hourly refresh on a single site supports near-real-time dashboards.
π Beyond business use cases
Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.
π€ Ask an AI assistant about this scraper
Open a ready-to-send prompt about this ParseForge actor in the AI of your choice:
- π¬ ChatGPT
- π§ Claude
- π Perplexity
- π Copilot
β Frequently Asked Questions
π§© How does it work?
You pick a dataset (daily, hourly, or inventory), a parameter code, a state and (sometimes) county, and a date range. The Actor calls the EPA AQS data service, paginates through the response, and ships one clean record per row.
π§ͺ Which pollutants are supported?
PM2.5 FRM/FEM (88101), PM2.5 non-FRM (88502), PM10 (81102), CO (42101), SO2 (42401), NO2 (42602), O3 (44201), lead (14129), reactive oxides of nitrogen (42600), wind (WIND), and temperature (TEMP).
π Do I need an EPA account?
Not for testing. The shared demo credentials work for small runs. For production work, register a free account in 30 seconds on the EPA AQS data service and pass your email + accessKey for higher quotas.
π How far back does the data go?
Many monitors and parameters have records going back to the 1980s. PM2.5 (88101) typically starts in 1999, ozone (44201) goes back further. The Actor accepts any date range your account is allowed to query.
π Why is there a one-year limit per query?
That's an EPA AQS service constraint. For longer ranges, run the Actor multiple times with year-bucketed date windows and union the datasets in your downstream pipeline.
π¦ How is AQI calculated?
AQI comes directly from the EPA AQS response for parameters where it applies (PM2.5, PM10, O3, CO, SO2, NO2, lead). The field is null for parameters that don't have an AQI definition (wind, temperature, etc.).
π How accurate are the coordinates?
EPA AQS uses NAD83 datum and ships monitor coordinates to five or six decimal places, which is sub-meter accurate. This is the canonical location for each monitor.
β° Can I schedule regular runs?
Yes. Use Apify Schedules to run this Actor on any cron interval. An hourly refresh on a single site supports near-real-time dashboards.
βοΈ Is this data legal to use?
Yes. EPA AQS data is published by the U.S. federal government and is freely usable for commercial, research, and journalism purposes.
π³ Do I need a paid Apify plan?
No. The free Apify plan is enough for testing and small runs (10 records). A paid plan lifts the limit and gives you scheduling, higher concurrency, and larger datasets.
π What if I need help?
Contact us through the Apify platform or use the Tally form linked below.
π Integrate with any app
EPA AQS Scraper connects to any cloud service via Apify integrations:
- Make - Automate multi-step workflows
- Zapier - Connect with 5,000+ apps
- Slack - Get run notifications in your channels
- Airbyte - Pipe air-quality data into your warehouse
- GitHub - Trigger runs from commits and releases
- Google Drive - Export datasets straight to Sheets
You can also use webhooks to trigger downstream actions when a run finishes. Push fresh AQI data into your monitoring stack, or alert your team in Slack when a monitor crosses a threshold.
π Recommended Actors
- βοΈ OurAirports Scraper - Global airport reference database
- π©Ί CDC WONDER Mortality Scraper - U.S. mortality and cause-of-death records
- π arXiv Preprint Scraper - Open-access scientific papers
- πΌ Greenhouse Jobs Scraper - Environmental and climate-tech roles
- π§βπΌ Indeed Scraper - The largest U.S. job aggregator
π‘ Pro Tip: browse the complete ParseForge collection for more reference and environmental-data scrapers.
π Need Help? Open our contact form to request a new scraper, propose a custom data project, or report an issue.
β οΈ Disclaimer: this Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the U.S. Environmental Protection Agency. All trademarks mentioned are the property of their respective owners. Only publicly available EPA Air Quality System data is collected, subject to the standard EPA data-use policy.