{"openapi":"3.1.0","info":{"title":"Environment Screen","version":"1.0.0","description":"Air quality, pollen, AQI conversion and EPA toxics-release facility screens for a place. One call, one computed answer, no accounts or API keys. Machine-payable over x402.","x-guidance":"Environment Screen: Air quality, pollen, AQI conversion and EPA toxics-release facility screens for a place. /air-quality-now (current pollutants and AQI), /air-quality-history (daily means and days above an AQI), /pollen-forecast (Europe-only pollen), /aqi-category (EPA AQI from a concentration), /tri-facilities-near (TRI facilities by ZIP), /tri-area-summary (TRI counts by state or county), /tri-facility-chemicals (chemicals a facility reported), /area-environment-screen (air plus TRI composite). Each paid GET returns a computed verdict with the reasons, the source and what was NOT checked. A verdict of UNVERIFIED means a lookup failed: treat it as unknown. No account or key: pay per call in USDC over x402."},"servers":[{"url":"https://environment-screen.x402tookit.com"}],"paths":{"/air-quality-history":{"get":{"operationId":"air_quality_history","summary":"Daily mean PM2.5, PM10, ozone, NO2 and US AQI over a date range, plus the count of days above an AQI threshold.","description":"Daily mean PM2.5, PM10, ozone, NO2 and US AQI over a date range, plus the count of days above an AQI threshold.","tags":["air-quality","aqi","history","environment"],"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude","schema":{"type":"number"}},{"name":"lon","in":"query","required":true,"description":"Longitude","schema":{"type":"number"}},{"name":"start","in":"query","required":true,"description":"First day, YYYY-MM-DD (2013 onward)","schema":{"type":"string"}},{"name":"end","in":"query","required":true,"description":"Last day, YYYY-MM-DD, at most 92 days after start","schema":{"type":"string"}},{"name":"threshold","in":"query","required":false,"description":"US AQI level to count days above (default 100, range 0-500)","schema":{"type":"integer"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"start":{"type":["null","string"]},"end":{"type":["null","string"]},"threshold":{"type":["null","number"]},"daysRequested":{"type":["null","number"]},"daysWithData":{"type":["null","number"]},"daysAboveThreshold":{"type":["null","number"]},"daysWithAnyHourAboveThreshold":{"type":["null","number"]},"meanUsAqi":{"type":["null","number"]},"meanPm2_5":{"type":["null","number"]},"meanPm10":{"type":["null","number"]},"meanOzone":{"type":["null","number"]},"meanNitrogenDioxide":{"type":["null","number"]},"worstDay":{"type":["null","object"],"properties":{"date":{"type":["null","string"]},"maxUsAqi":{"type":["null","number"]}}},"daily":{"type":["array","null"],"items":{"type":"object","properties":{"date":{"type":["null","string"]},"usAqiMean":{"type":["null","number"]},"usAqiMax":{"type":["null","number"]},"pm2_5Mean":{"type":["null","number"]},"pm10Mean":{"type":["null","number"]},"ozoneMean":{"type":["null","number"]},"nitrogenDioxideMean":{"type":["null","number"]},"hours":{"type":["null","number"]}}}},"concentrationUnit":{"type":["null","string"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"sourceUrl":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"SOME_DAYS_ABOVE_THRESHOLD","summary":"7 of 31 days had a daily-mean US AQI above 100; the worst hour reached 227 (Very Unhealthy) on 2025-01-11.","reasons":["7 of 31 days had a daily-mean US AQI above 100."],"start":"2025-01-01","end":"2025-01-31","threshold":100,"daysRequested":31,"daysWithData":31,"daysAboveThreshold":7,"daysWithAnyHourAboveThreshold":9,"meanUsAqi":90.9,"meanPm2_5":33.7,"meanPm10":34.9,"meanOzone":30.3,"meanNitrogenDioxide":55.8,"worstDay":{"date":"2025-01-11","maxUsAqi":227},"daily":[{"date":"2025-01-01","usAqiMean":92.2,"usAqiMax":97,"pm2_5Mean":30.2,"pm10Mean":30.5,"ozoneMean":12.9,"nitrogenDioxideMean":57.4,"hours":24},{"date":"2025-01-02","usAqiMean":91.8,"usAqiMax":96,"pm2_5Mean":33.2,"pm10Mean":33.6,"ozoneMean":13.1,"nitrogenDioxideMean":66.5,"hours":24}],"concentrationUnit":"μg/m³","degraded":false,"notChecked":["real monitor readings: CAMS model output, smoothed at about 11 km","EPA's 24-hour PM2.5 AQI method: the daily mean here is the mean of hourly Open-Meteo AQI values","…1 more"],"source":"Open-Meteo Air Quality API (CAMS model reanalysis and forecast)","sourceUrl":"https://open-meteo.com/en/docs/air-quality-api","asOf":"2026-10-21T00:33:14.201Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0300"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/air-quality-history"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/air-quality-history"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/air-quality-history"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/air-quality-history"}}]}}},"/air-quality-now":{"get":{"operationId":"air_quality_now","summary":"Current PM2.5, PM10, ozone, NO2, US AQI and European AQI with category for a latitude and longitude.","description":"Current PM2.5, PM10, ozone, NO2, US AQI and European AQI with category for a latitude and longitude.","tags":["air-quality","aqi","pm25","environment"],"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude","schema":{"type":"number"}},{"name":"lon","in":"query","required":true,"description":"Longitude","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"]},"time":{"type":["null","string"]},"usAqi":{"type":["null","number"]},"usAqiCategory":{"type":["null","string"]},"europeanAqi":{"type":["null","number"]},"europeanAqiBand":{"type":["null","string"]},"pm2_5":{"type":["null","number"]},"pm10":{"type":["null","number"]},"ozone":{"type":["null","number"]},"nitrogenDioxide":{"type":["null","number"]},"sulphurDioxide":{"type":["null","number"]},"carbonMonoxide":{"type":["null","number"]},"concentrationUnit":{"type":["null","string"]},"gridLat":{"type":["null","number"]},"gridLon":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"sourceUrl":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"MODERATE","summary":"Modelled US AQI 57 (Moderate) at 40.699997,-74, local time 2026-10-20T20:00.","reasons":[],"time":"2026-10-20T20:00","usAqi":57,"usAqiCategory":"Moderate","europeanAqi":42,"europeanAqiBand":"Moderate","pm2_5":7.7,"pm10":8.1,"ozone":43,"nitrogenDioxide":29.2,"sulphurDioxide":1.6,"carbonMonoxide":202,"concentrationUnit":"μg/m³","gridLat":40.699997,"gridLon":-74,"degraded":false,"notChecked":["real monitor (AirNow/PurpleAir) readings: this is CAMS model output","NowCast averaging: the AQI is Open-Meteo's own hourly value","…1 more"],"source":"Open-Meteo Air Quality API (CAMS model)","sourceUrl":"https://open-meteo.com/en/docs/air-quality-api","asOf":"2026-10-21T00:33:14.616Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/air-quality-now"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/air-quality-now"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/air-quality-now"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/air-quality-now"}}]}}},"/aqi-category":{"get":{"operationId":"aqi_category","summary":"Convert a PM2.5, PM10, ozone or NO2 concentration to its US EPA AQI number and category (2024 PM2.5 table).","description":"Convert a PM2.5, PM10, ozone or NO2 concentration to its US EPA AQI number and category (2024 PM2.5 table).","tags":["aqi","epa","air-quality","calculator"],"parameters":[{"name":"pollutant","in":"query","required":true,"description":"pm25, pm10, o3 or no2","schema":{"type":"string"}},{"name":"value","in":"query","required":true,"description":"Concentration (pm: ug/m3; o3: ppm; no2: ppb unless unit given)","schema":{"type":"number"}},{"name":"unit","in":"query","required":false,"description":"ugm3, ppm or ppb (defaults: pm ugm3, o3 ppm, no2 ppb)","schema":{"type":"string"}},{"name":"revision","in":"query","required":false,"description":"PM2.5 table: 2024 (default, current) or 2012 (previous)","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"]},"pollutant":{"type":["null","string"]},"inputValue":{"type":["null","number"]},"inputUnit":{"type":["null","string"]},"tableValue":{"type":["null","number"]},"averagingAssumed":{"type":["null","string"]},"pm25Revision":{"type":["null","string"]},"truncatedValueUsed":{"type":["null","number"]},"aqi":{"type":["null","number"]},"category":{"type":["null","string"]},"categories":{"type":["array","null"],"items":{"type":"object","properties":{"upTo":{"type":["null","number"]},"name":{"type":["null","string"]}}}},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"UNHEALTHY_FOR_SENSITIVE_GROUPS","summary":"PM25 40 ugm3 maps to US AQI 112 (Unhealthy for Sensitive Groups).","reasons":[],"pollutant":"pm25","inputValue":40,"inputUnit":"ugm3","tableValue":40,"averagingAssumed":"24-hour average","pm25Revision":"2024","truncatedValueUsed":40,"aqi":112,"category":"Unhealthy for Sensitive Groups","categories":[{"upTo":50,"name":"Good"},{"upTo":100,"name":"Moderate"}],"degraded":false,"notChecked":["the averaging time of your value: the AQI assumes 24 h for PM, 8 h for O3, 1 h for NO2","CO and SO2 sub-indices","…2 more"],"source":"US EPA AQI Technical Assistance Document breakpoints (computed locally)","asOf":"2026-10-21T00:33:14.874Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/aqi-category"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/aqi-category"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/aqi-category"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/aqi-category"}}]}}},"/area-environment-screen":{"get":{"operationId":"area_environment_screen","summary":"Environmental screen for a US place: current modelled AQI and PM2.5 plus count of EPA TRI facilities in the ZIP.","description":"Environmental screen for a US place: current modelled AQI and PM2.5 plus count of EPA TRI facilities in the ZIP.","tags":["environment","air-quality","epa","due-diligence"],"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude","schema":{"type":"number"}},{"name":"lon","in":"query","required":true,"description":"Longitude","schema":{"type":"number"}},{"name":"zip","in":"query","required":true,"description":"5-digit US ZIP code of the place","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"air":{"type":["null","object"],"properties":{"time":{"type":["null","string"]},"usAqi":{"type":["null","number"]},"category":{"type":["null","string"]},"pm2_5":{"type":["null","number"]},"pm10":{"type":["null","number"]},"ozone":{"type":["null","number"]},"nitrogenDioxide":{"type":["null","number"]}}},"tri":{"type":["null","object"],"properties":{"zip":{"type":["null","string"]},"facilitiesInZip":{"type":["null","number"]}}},"flagCount":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"sourceUrl":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"FLAGS_RAISED","summary":"US AQI 53 (Moderate) at the point; 6 TRI facilities in ZIP 02134. 1 flag(s) raised.","reasons":["6 EPA TRI facilities are on record in ZIP 02134 (open and closed together)."],"air":{"time":"2026-10-20T20:00","usAqi":53,"category":"Moderate","pm2_5":7.5,"pm10":8.6,"ozone":42,"nitrogenDioxide":27.8},"tri":{"zip":"02134","facilitiesInZip":6},"flagCount":1,"degraded":false,"notChecked":["flood, wetlands, wildfire, noise, radon, lead paint, water quality: use other shelves","Superfund / cleanup sites (Envirofacts tables unavailable)","…3 more"],"source":"Open-Meteo Air Quality API (CAMS model) + EPA Envirofacts TRI","sourceUrl":"https://www.epa.gov/enviro/envirofacts-data-service-api","asOf":"2026-10-21T00:33:15.809Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0500"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/area-environment-screen"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/area-environment-screen"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/area-environment-screen"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/area-environment-screen"}}]}}},"/pollen-forecast":{"get":{"operationId":"pollen_forecast","summary":"Pollen forecast (grass, birch, alder, olive, mugwort, ragweed) in grains/m3. Model covers Europe only; elsewhere null.","description":"Pollen forecast (grass, birch, alder, olive, mugwort, ragweed) in grains/m3. Model covers Europe only; elsewhere null.","tags":["pollen","allergy","forecast","environment"],"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude (coverage is Europe)","schema":{"type":"number"}},{"name":"lon","in":"query","required":true,"description":"Longitude","schema":{"type":"number"}},{"name":"days","in":"query","required":false,"description":"Forecast days 1 to 5 (default 3)","schema":{"type":"integer"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"]},"coverage":{"type":["null","string"]},"species":{"type":["null","object"],"properties":{"alder":{"type":["null","object"],"properties":{"covered":{"type":["boolean","null"]},"peakGrainsPerM3":{"type":["null","number"]},"peakAt":{"type":["null","string"]},"meanGrainsPerM3":{"type":["null","number"]}}},"birch":{"type":["null","object"],"properties":{"covered":{"type":["boolean","null"]},"peakGrainsPerM3":{"type":["null","number"]},"peakAt":{"type":["null","string"]},"meanGrainsPerM3":{"type":["null","number"]}}},"grass":{"type":["null","object"],"properties":{"covered":{"type":["boolean","null"]},"peakGrainsPerM3":{"type":["null","number"]},"peakAt":{"type":["null","string"]},"meanGrainsPerM3":{"type":["null","number"]}}},"mugwort":{"type":["null","object"],"properties":{"covered":{"type":["boolean","null"]},"peakGrainsPerM3":{"type":["null","number"]},"peakAt":{"type":["null","string"]},"meanGrainsPerM3":{"type":["null","number"]}}},"olive":{"type":["null","object"],"properties":{"covered":{"type":["boolean","null"]},"peakGrainsPerM3":{"type":["null","number"]},"peakAt":{"type":["null","string"]},"meanGrainsPerM3":{"type":["null","number"]}}},"ragweed":{"type":["null","object"],"properties":{"covered":{"type":["boolean","null"]},"peakGrainsPerM3":{"type":["null","number"]},"peakAt":{"type":["null","string"]},"meanGrainsPerM3":{"type":["null","number"]}}}}},"days":{"type":["null","number"]},"unit":{"type":["null","string"]},"gridLat":{"type":["null","number"]},"gridLon":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"sourceUrl":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"POLLEN_FORECAST","summary":"Highest forecast is grass at 0.1 grains/m3 (2026-10-21T02:00).","reasons":[],"coverage":"europe-only","species":{"alder":{"covered":true,"peakGrainsPerM3":0,"peakAt":"2026-10-21T00:00","meanGrainsPerM3":0},"birch":{"covered":true,"peakGrainsPerM3":0,"peakAt":"2026-10-21T00:00","meanGrainsPerM3":0},"grass":{"covered":true,"peakGrainsPerM3":0.1,"peakAt":"2026-10-21T02:00","meanGrainsPerM3":0.02},"mugwort":{"covered":true,"peakGrainsPerM3":0.1,"peakAt":"2026-10-21T00:00","meanGrainsPerM3":0.03},"olive":{"covered":true,"peakGrainsPerM3":0,"peakAt":"2026-10-21T00:00","meanGrainsPerM3":0},"ragweed":{"covered":true,"peakGrainsPerM3":0,"peakAt":"2026-10-21T00:00","meanGrainsPerM3":0}},"days":3,"unit":"grains/m³","gridLat":48.1,"gridLon":11.600002,"degraded":false,"notChecked":["pollen outside the CAMS Europe domain (the model publishes null there, including the United States)","official pollen-count station data","…1 more"],"source":"Open-Meteo Air Quality API (CAMS Europe pollen model)","sourceUrl":"https://open-meteo.com/en/docs/air-quality-api","asOf":"2026-10-21T00:33:16.216Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/pollen-forecast"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/pollen-forecast"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/pollen-forecast"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/pollen-forecast"}}]}}},"/tri-area-summary":{"get":{"operationId":"tri_area_summary","summary":"Count of EPA Toxics Release Inventory facilities in a US state or county, open versus closed, with a sample list.","description":"Count of EPA Toxics Release Inventory facilities in a US state or county, open versus closed, with a sample list.","tags":["epa","tri","toxics","county"],"parameters":[{"name":"state","in":"query","required":true,"description":"2-letter state code, e.g. MA","schema":{"type":"string"}},{"name":"county","in":"query","required":false,"description":"County name without 'County', e.g. Suffolk","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Sample open facilities, 1 to 25 (default 10)","schema":{"type":"integer"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"]},"state":{"type":["null","string"]},"county":{"type":["null","string"]},"totalFacilities":{"type":["null","number"]},"openFacilities":{"type":["null","number"]},"closedFacilities":{"type":["null","number"]},"sample":{"type":["array","null"],"items":{"type":"object","properties":{"triFacilityId":{"type":["null","string"]},"name":{"type":["null","string"]},"address":{"type":["null","string"]},"city":{"type":["null","string"]},"county":{"type":["null","string"]},"state":{"type":["null","string"]},"zip":{"type":["null","string"]},"open":{"type":["boolean","null"]},"parentCompany":{"type":["null","string"]},"federalFacility":{"type":["boolean","null"]},"lat":{"type":["null","number"]},"lon":{"type":["null","number"]},"locationAccuracyM":{"type":["null","number"]},"frsId":{"type":["null","string"]}}}},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"sourceUrl":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"TRI_FACILITIES_FOUND","summary":"SUFFOLK county, MA has 68 TRI facilities on record, 65 open and 3 closed.","reasons":[],"state":"MA","county":"SUFFOLK","totalFacilities":68,"openFacilities":65,"closedFacilities":3,"sample":[{"triFacilityId":"01217CLHRS20OLD","name":"COLE HERSEE CO","address":"20 OLD COLONY AVE","city":"BOSTON","county":"SUFFOLK","state":"MA","zip":"021272467","open":true,"parentCompany":null,"federalFacility":false,"lat":42.34,"lon":-71.057778,"locationAccuracyM":600,"frsId":"110002012036"},{"triFacilityId":"01721GGRGT55ENT","name":"AGGREGATE INDUSTRIES NORTHEAST REGION INC","address":"55 ENTERPRISE ST","city":"DORCHESTER","county":"SUFFOLK","state":"MA","zip":"02125","open":true,"parentCompany":"HOLCIM (US) INC","federalFacility":false,"lat":null,"lon":null,"locationAccuracyM":null,"frsId":"110012709471"}],"degraded":false,"notChecked":["facilities below TRI reporting thresholds: absence is not a clean bill","Superfund / cleanup sites (Envirofacts tables unavailable)","…2 more"],"source":"EPA Envirofacts TRI_FACILITY","sourceUrl":"https://www.epa.gov/enviro/envirofacts-data-service-api","asOf":"2026-10-21T00:33:17.016Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0300"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/tri-area-summary"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/tri-area-summary"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/tri-area-summary"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/tri-area-summary"}}]}}},"/tri-facilities-near":{"get":{"operationId":"tri_facilities_near","summary":"EPA Toxics Release Inventory facilities in a US ZIP code: names, parent companies, open or closed, coordinates.","description":"EPA Toxics Release Inventory facilities in a US ZIP code: names, parent companies, open or closed, coordinates.","tags":["epa","tri","toxics","facilities"],"parameters":[{"name":"zip","in":"query","required":true,"description":"5-digit US ZIP code","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Facilities returned, 1 to 50 (default 20)","schema":{"type":"integer"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"]},"zip":{"type":["null","string"]},"totalFacilities":{"type":["null","number"]},"shown":{"type":["null","number"]},"shownOpen":{"type":["null","number"]},"shownClosed":{"type":["null","number"]},"facilities":{"type":["array","null"],"items":{"type":"object","properties":{"triFacilityId":{"type":["null","string"]},"name":{"type":["null","string"]},"address":{"type":["null","string"]},"city":{"type":["null","string"]},"county":{"type":["null","string"]},"state":{"type":["null","string"]},"zip":{"type":["null","string"]},"open":{"type":["boolean","null"]},"parentCompany":{"type":["null","string"]},"federalFacility":{"type":["boolean","null"]},"lat":{"type":["null","number"]},"lon":{"type":["null","number"]},"locationAccuracyM":{"type":["null","number"]},"frsId":{"type":["null","string"]}}}},"note":{"type":["null","string"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"sourceUrl":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"TRI_FACILITIES_FOUND","summary":"6 TRI facilities with ZIP 02134; 6 of the 6 shown are open.","reasons":[],"zip":"02134","totalFacilities":6,"shown":6,"shownOpen":6,"shownClosed":0,"facilities":[{"triFacilityId":"02134CGNCX20LIN","name":"CGI INC","address":"20 LINDEN ST","city":"ALLSTON","county":"SUFFOLK","state":"MA","zip":"02134","open":true,"parentCompany":null,"federalFacility":false,"lat":42.35499,"lon":-71.13157,"locationAccuracyM":150,"frsId":"110002086778"},{"triFacilityId":"02134CPTLC24DEN","name":"CAPITOL CIRCUITS CORP","address":"24 DENBY RD","city":"BOSTON","county":"SUFFOLK","state":"MA","zip":"021341688","open":true,"parentCompany":null,"federalFacility":false,"lat":42.355,"lon":-71.126111,"locationAccuracyM":150,"frsId":"110000310869"}],"note":"TRI stores west longitude as a positive number; lon here is negated for US states and Puerto Rico.","degraded":false,"notChecked":["facilities below TRI reporting thresholds or outside covered industries: absence from TRI is not a clean bill","Superfund / cleanup sites (the Envirofacts tables for them were unavailable)","…2 more"],"source":"EPA Envirofacts TRI_FACILITY","sourceUrl":"https://www.epa.gov/enviro/envirofacts-data-service-api","asOf":"2026-10-21T00:33:17.712Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0300"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/tri-facilities-near"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/tri-facilities-near"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/tri-facilities-near"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/tri-facilities-near"}}]}}},"/tri-facility-chemicals":{"get":{"operationId":"tri_facility_chemicals","summary":"Chemicals an EPA TRI facility has reported on Form R/A filings, with first and last year and form counts.","description":"Chemicals an EPA TRI facility has reported on Form R/A filings, with first and last year and form counts.","tags":["epa","tri","chemicals","facility"],"parameters":[{"name":"tri_facility_id","in":"query","required":true,"description":"TRI facility ID, e.g. 01217CLHRS20OLD (from /tri-facilities-near)","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"facility":{"type":["null","object"],"properties":{"triFacilityId":{"type":["null","string"]},"name":{"type":["null","string"]},"address":{"type":["null","string"]},"city":{"type":["null","string"]},"county":{"type":["null","string"]},"state":{"type":["null","string"]},"zip":{"type":["null","string"]},"open":{"type":["boolean","null"]},"parentCompany":{},"federalFacility":{"type":["boolean","null"]},"lat":{"type":["null","number"]},"lon":{"type":["null","number"]},"locationAccuracyM":{"type":["null","number"]},"frsId":{"type":["null","string"]}}},"totalForms":{"type":["null","number"]},"formsRead":{"type":["null","number"]},"truncated":{"type":["boolean","null"]},"distinctChemicals":{"type":["null","number"]},"chemicals":{"type":["array","null"],"items":{"type":"object","properties":{"chemical":{"type":["null","string"]},"triChemId":{"type":["null","string"]},"forms":{"type":["null","number"]},"firstYear":{"type":["null","number"]},"lastYear":{"type":["null","number"]},"yearsReported":{"type":["null","number"]}}}},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"sourceUrl":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"CHEMICALS_REPORTED","summary":"COLE HERSEE CO (BOSTON, MA) reported 1 distinct chemical across 5 forms, 1987 to 1991.","reasons":["The newest form read is from 1991: the facility may have stopped reporting even though EPA's registry flags it open."],"facility":{"triFacilityId":"01217CLHRS20OLD","name":"COLE HERSEE CO","address":"20 OLD COLONY AVE","city":"BOSTON","county":"SUFFOLK","state":"MA","zip":"021272467","open":true,"parentCompany":null,"federalFacility":false,"lat":42.34,"lon":-71.057778,"locationAccuracyM":600,"frsId":"110002012036"},"totalForms":5,"formsRead":5,"truncated":false,"distinctChemicals":1,"chemicals":[{"chemical":"1,1,1-Trichloroethane","triChemId":"0000071556","forms":5,"firstYear":1987,"lastYear":1991,"yearsReported":5}],"degraded":false,"notChecked":["release quantities and pounds: this lists which chemicals were reported, not how much","whether any release exceeded a legal limit","…2 more"],"source":"EPA Envirofacts TRI_REPORTING_FORM and TRI_FACILITY","sourceUrl":"https://www.epa.gov/enviro/envirofacts-data-service-api","asOf":"2026-10-21T00:33:18.508Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0300"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/tri-facility-chemicals"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/tri-facility-chemicals"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/tri-facility-chemicals"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://environment-screen.x402tookit.com/tri-facility-chemicals"}}]}}}}}