No API key is required; construct a REST URL following the Envirofacts pattern: https://enviro.epa.gov/enviro/efservice/{TABLE}/{COLUMN}/{OPERATOR}/{VALUE}/{output_format}
Query TRI releases by facility state: GET https://enviro.epa.gov/enviro/efservice/TRI_FACILITY/FACILITY_STATE/=/CA/JSON to list all TRI-reporting facilities in California
Filter by chemical: GET https://enviro.epa.gov/enviro/efservice/TRI_RELEASES/CHEMICAL_NAME_TEXT/CONTAINING/lead/JSON to find release records for lead compounds
Combine tables with a column join path: https://enviro.epa.gov/enviro/efservice/TRI_RELEASES/TRI_CHEM_ID/=/TRIF_ID/TRI_FACILITY/FACILITY_STATE/=/TX/JSON — note the slash-delimited join syntax specific to Envirofacts
Add pagination with /rows/{start}:{end} appended to the URL (e.g., /rows/1:100) to page through large result sets
Download full annual TRI bulk files from https://www.epa.gov/toxics-release-inventory-tri-program/tri-basic-plus-data-files-calendar-years for complete analysis outside the row-at-a-time API
Known gotchas
The Envirofacts REST URL pattern uses slash-delimited table/column/operator/value segments, not standard query parameters — standard URL-encoding rules still apply to values containing spaces or special characters
The API enforces a default maximum of 10,000 rows per response; large result sets must be paginated using the /rows/start:end syntax, but total record count is not returned in the response — estimate pages from facility counts in reference tables
TRI data is self-reported by facilities and typically lags by one to two years; the most recently available reporting year via the API is usually two calendar years behind the current year
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp