---
title: "A state's US NPDES permits, narrowed by EPA's industry listing"
method: GET
path: "/permits"
---

# A state's US NPDES permits, narrowed by EPA's industry listing

`GET /permits`

## Request

- Base URL: `https://passage-data.com/api/v1`
- URL: `https://passage-data.com/api/v1/permits`
- Auth: one of:
  - none
  - HTTP bearer
  - API key in header `x-api-key`

The state's individual NPDES permits with limits, as EPA's national file (ECHO / ICIS-NPDES) lists them, in one call: number, facility name, major or not, EPA's primary SIC code and its description, the 12-month record and renewal, EPA's facility type and design flow, the limits already written into the permit that take effect later (each with its begin date and the plant's median reported value today), and the addresses of each permit's page and get_permit answer. `industry` keeps the permits whose SIC description has a word starting with each word given; `sic` the codes starting with the digits; `facility_type` and `min_flow_mgd` the sewage plants or industrial facilities, and those of at least that design flow; `over_limit`, `parameter`, `renewal` and `upcoming` narrow to those over a limit, over one on that parameter, up for renewal, or facing a new or tighter limit. A permit with no SIC in EPA's file never matches an industry filter (`without_industry` counts them), nor one with no design flow min_flow_mgd (`without_flow`). At most 1000 a call; `more` gives the next offset.

## Query parameters

- `state` string, required
- `industry` string
- `sic` string
- `over_limit` boolean
- `parameter` string
- `renewal` 'expired' | 'due' | 'any'
- `upcoming` boolean
- `facility_type` 'potw' | 'industrial'
- `min_flow_mgd` number
- `offset` integer

## Response `200`

The permits matched, each with its page and get_permit address

- object

## Other responses

- `400`: state.missing, state.malformed, sic.malformed, over_limit.malformed, renewal.malformed, upcoming.malformed, facility_type.malformed, min_flow_mgd.malformed
- `404`: state.not_held
- `503`: data.not_loaded, industry.not_loaded, record.not_loaded, facility.not_loaded

---

[API](https://skmtc.dev/passage-data/apis/passage-data-cited-environmental-limits.md) · [All operations](https://skmtc.dev/passage-data/apis/passage-data-cited-environmental-limits/llms.txt) · [OpenAPI document](https://skmtc.dev/passage-data/apis/passage-data-cited-environmental-limits/revisions/ba066708bf53?raw)
