# BNM Data Shop – EPA NPDES Permits

> BNM Data Shop – EPA NPDES Permits is a paid API for AI agents from ticks.bnm.farm, paid per call via x402, $0.05/call, status unknown (last checked 2026-09-15).

Returns EPA NPDES (National Pollutant Discharge Elimination System) individual permit records as structured JSON, sourced from official EPA documents.

## Facts

- Endpoint: GET https://ticks.bnm.farm/npdes-permits
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/bnm-data-shop-epa-npdes-permits-69103a23
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_JpzUFoyVkB5CajvnbZ_Hl

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 bnm-data-shop-epa-npdes-permits-69103a23
```

Example prompt: Can you pull the latest EPA NPDES individual permit records from the BNM Data Shop and give me a list of permitted facilities with their permit dates and source documents?

## When to prefer this

Choose this endpoint when you need structured, machine-readable EPA NPDES individual permit data without manually scraping EPA PDFs. It is ideal for compliance research, regulatory data pipelines, or environmental due diligence workflows where you need permit body text, dates, and source URLs in a single JSON response. Prefer this over direct EPA scraping when you need reliable, pre-processed data accessible via a simple GET request with micropayment.

## Known failure modes

- HTTP 402 Payment Required if x402 payment is not included in the request
- Empty or partial records if EPA source documents are temporarily unavailable
- Stale data if upstream EPA source has not been recently crawled
- Network timeout if upstream EPA fetch is slow
- Malformed query parameters may result in no records returned

## How this service works

Official public data as JSON. Unpaid paid routes return HTTP 402.

## Output

Returns a JSON object with: ok status, asOf date, an array of permit cards (each with id, body text excerpt, date, facility name, and source PDF URL), source URL, product identifier, an array of records (with id, url, date, firm name, and type), fetchedAt timestamp, and total recordCount.

## 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"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "headers": {
     "type": "object",
     "additionalProperties": {
      "type": "string"
     }
    },
    "queryParams": {
     "type": "object",
     "additionalProperties": {
      "type": "string"
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "properties": {
    "type": {
     "type": "string"
    },
    "schema": {
     "type": "object"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ok": true,
  "asOf": "2026-07-20",
  "cards": [
   {
    "id": "example-permit",
    "body": "This teaser is not an official permit body. Example wastewater treatment plant individual NPDES authorization excerpt.",
    "date": "2026-01-01",
    "name": "Example wastewater treatment plant",
    "sourceUrl": "https://www.epa.gov/system/files/documents/2026-01/example-individual-permit.pdf"
   }
  ],
  "source": "https://www.epa.gov/npdes-permits",
  "status": "ok",
  "product": "epa-npdes-individual-permit-bodies",
  "records": [
   {
    "id": "example-permit",
    "url": "https://www.epa.gov/system/files/documents/2026-01/example-individual-permit.pdf",
    "date": "2026-01-01",
    "firm": "Example wastewater treatment plant",
    "type": "npdes-permits"
   }
  ],
  "fetchedAt": "2026-08-26T12:00:00.000Z",
  "recordCount": 1
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/bnm-data-shop-epa-npdes-permits-69103a23/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from ticks.bnm.farm](https://www.zero.xyz/host/ticks.bnm.farm/llms.txt)
