TRI Facilities by State
epaenvirofacts/tri-facilities-by-state
Returns the Toxics Release Inventory (TRI) facilities in one US state or territory, from EPA Envirofacts: name, address, county, parent company, open or closed, EPA Facility Registry Service id and signed decimal-degree coordinates. TRI covers facilities that report releases of listed toxic chemicals. Pages with first_row and last_row (default the first 100 rows). Contact persons, phone numbers and e-mail addresses are not returned. Source: U.S. Environmental Protection Agency (EPA) Envirofacts, https://www.epa.gov/enviro, U.S. government data in the public domain, reduced to the fields listed (contact persons, phone numbers, e-mail addresses and mailing addresses are not returned) and served by Eden Engine; not an official EPA product.
Price
$0.0026 per call
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $0.50.
Data source
Source: U.S. Environmental Protection Agency (EPA) Envirofacts, https://www.epa.gov/enviro, U.S. government data in the public domain, reduced to the fields listed (contact persons, phone numbers, e-mail addresses and mailing addresses are not returned) and served by Eden Engine; not an official EPA product.
Use it
Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.
Connect once and your AI can find and run this tool, and any other it needs.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "epaenvirofacts/tri-facilities-by-state" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "epaenvirofacts/tri-facilities-by-state" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "epaenvirofacts/tri-facilities-by-state", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "epaenvirofacts/tri-facilities-by-state", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.0026 |
- Updated
- Oct 27, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"state"
],
"properties": {
"state": {
"enum": [
"AL",
"AK",
"AZ",
"AR",
"CA",
"CO",
"CT",
"DE",
"DC",
"FL",
"GA",
"HI",
"ID",
"IL",
"IN",
"IA",
"KS",
"KY",
"LA",
"ME",
"MD",
"MA",
"MI",
"MN",
"MS",
"MO",
"MT",
"NE",
"NV",
"NH",
"NJ",
"NM",
"NY",
"NC",
"ND",
"OH",
"OK",
"OR",
"PA",
"RI",
"SC",
"SD",
"TN",
"TX",
"UT",
"VT",
"VA",
"WA",
"WV",
"WI",
"WY",
"AS",
"GU",
"MP",
"PR",
"VI"
],
"type": "string",
"description": "Two-letter postal code of the state or territory to list: a state, DC, American Samoa (AS), Guam (GU), the Northern Mariana Islands (MP), Puerto Rico (PR) or the US Virgin Islands (VI), for example DE."
},
"last_row": {
"type": "integer",
"default": 99,
"maximum": 4999,
"minimum": 0,
"description": "Index of the last row to return, counting from 0 and INCLUDING that row, so first_row 0 and last_row 99 return up to 100 rows. The highest allowed value is 4999. Must not be below first_row (a smaller value is a validation error). Fewer rows than asked for means the end of the matches."
},
"first_row": {
"type": "integer",
"default": 0,
"maximum": 4999,
"minimum": 0,
"description": "Index of the first row to return, counting from 0 in EPA's ordering of the matches. Combine with last_row to page."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"required": [
"facilities"
],
"properties": {
"facilities": {
"type": "array",
"items": {
"type": "object",
"required": [
"tri_facility_id"
],
"properties": {
"city": {
"type": [
"string",
"null"
],
"description": "City."
},
"name": {
"type": [
"string",
"null"
],
"description": "Facility name."
},
"state": {
"type": [
"string",
"null"
],
"description": "Two-letter postal code."
},
"closed": {
"type": [
"boolean",
"null"
],
"description": "True when the facility is flagged as closed in TRI, false when open; null when EPA's flag is neither."
},
"county": {
"type": [
"string",
"null"
],
"description": "County name in capitals."
},
"latitude": {
"type": [
"number",
"null"
],
"description": "Latitude in decimal degrees, north positive. Null where EPA's coordinates are not known to be in the northern or southern hemisphere."
},
"zip_code": {
"type": [
"string",
"null"
],
"description": "ZIP code."
},
"longitude": {
"type": [
"number",
"null"
],
"description": "Longitude in decimal degrees, east positive (the western hemisphere is negative). Null where unknown."
},
"epa_region": {
"type": [
"integer",
"null"
],
"description": "EPA region number, 1 to 10."
},
"county_fips": {
"type": [
"string",
"null"
],
"description": "Five-digit state plus county FIPS code."
},
"parent_company": {
"type": [
"string",
"null"
],
"description": "Parent company as reported by the facility; null when EPA holds none."
},
"street_address": {
"type": [
"string",
"null"
],
"description": "Street address of the facility."
},
"frs_registry_id": {
"type": [
"string",
"null"
],
"description": "EPA Facility Registry Service identifier (twelve digits) that links the facility to other EPA systems, including ECHO."
},
"tri_facility_id": {
"type": "string",
"description": "EPA's Toxics Release Inventory (TRI) facility identifier, for example 19701KNCRP1100G."
},
"standardized_parent_company": {
"type": [
"string",
"null"
],
"description": "Parent company name as standardised by EPA; null when none."
}
},
"description": "A TRI-reporting facility.",
"additionalProperties": true
},
"description": "TRI facilities of the state in EPA's order, up to last_row minus first_row plus 1."
}
},
"additionalProperties": true
}