# EPA Facility Registry Service (FRS) Lookup

> EPA Facility Registry Service (FRS) Lookup is a paid API for AI agents from 2s.io, paid per call via x402, $0.0024/call, status unknown (last checked 2026-09-14).

Search EPA-regulated facilities in a US state by name prefix or program type, returning registry IDs, addresses, and program enrollment details

## Facts

- Endpoint: GET https://2s.io/api/gov/epa-facilities
- Price: $0.0024/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/2s-io-8702209f
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_YIq4MJ7EzFxGmfP_G29Qw

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability 2s-io-8702209f
```

Example prompt: Can you pull up all EPA-regulated facilities in Texas with names starting with 'Exxon' that are enrolled in the NPDES water discharge program?

## When to prefer this

Use this endpoint when you need authoritative US government records on EPA-regulated facilities — especially when you need cross-program coverage (RCRA, NPDES, TRI, CAA, SDWA, Superfund all in one index). Prefer this over state-level databases when you need a single canonical registry ID that spans multiple EPA programs. Best for compliance research, environmental due diligence, facility identification, and regulatory audits. Not suitable for real-time emissions data or permit status — it is a registry/directory, not a live compliance feed.

## Known failure modes

- Missing required 'state' parameter returns a 400 validation error
- Invalid state code (not a 2-letter US abbreviation) returns a 400 error
- Program acronym not matching known EPA programs may return empty results
- Offset exceeding 10000 returns a 400 error
- No matching facilities returns an empty result array rather than an error
- Facility name prefix too short (under 2 characters) returns a 400 error

## How this service works

EPA Facility Registry Service (FRS) — every regulated facility known to the EPA across all programs (RCRA hazardous waste, NPDES water discharge, SDWA drinking water, TRI toxic release, CAA Clean Air, Superfund, etc.). Filter by state (required), facility name prefix, and EPA program acronym. Each record includes registry ID, primary name, address, city/state/county/zip, EPA region, program system + ID, source-of-data system. Public-domain US government records.

## Output

A paginated list of EPA-regulated facilities matching the query, each record containing: registry ID, primary facility name, full address (street, city, county, state, zip), EPA region number, and the associated program system acronym and program-specific ID (e.g. RCRA ID, NPDES permit number), plus the source-of-data system that contributed the record.

## Example request

```json
{
 "input": {
  "type": "http",
  "method": "GET",
  "queryParams": {
   "name": "WATER",
   "limit": 10,
   "state": "CA",
   "offset": 0,
   "program": "NPDES"
  }
 }
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "queryParams"
   ],
   "properties": {
    "type": {
     "const": "http"
    },
    "method": {
     "const": "GET"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "state"
     ],
     "properties": {
      "name": {
       "type": "string",
       "maxLength": 80,
       "minLength": 2,
       "description": "Facility-name prefix match (case-insensitive). Example: \"TESLA\", \"BOEING\", \"AMAZON\"."
      },
      "limit": {
       "type": "integer",
       "default": 25,
       "maximum": 100,
       "minimum": 1,
       "description": "Max facilities to return (1-100). Default 25."
      },
      "state": {
       "type": "string",
       "maxLength": 2,
       "minLength": 2,
       "description": "2-letter US state code. Required. Example: \"CA\", \"TX\", \"NY\"."
      },
      "offset": {
       "type": "integer",
       "default": 0,
       "maximum": 10000,
       "minimum": 0,
       "description": "Offset for pagination. Default 0."
      },
      "program": {
       "type": "string",
       "maxLength": 10,
       "minLength": 2,
       "description": "Program system acronym. Examples: RCRA (hazardous waste), NPDES (water discharge), TRI (toxic release), AIR (Clean Air), SDWA (drinking water)."
      }
     },
     "additionalProperties": false
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/2s-io-8702209f/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 2s.io](https://www.zero.xyz/host/2s.io/llms.txt)
