Facilities

Search and retrieve detailed records for EPA-regulated facilities. The facilities endpoint is the core of the Parley API, covering 3M+ facilities across all EPA programs.

Endpoints

GET/v1/facilities

Search and list regulated facilities with filtering, sorting, and pagination.

GET/v1/facilities/{facility_id}

Get complete details for a single facility, including compliance history and score breakdown.

List facilities

GET/v1/facilities

Query Parameters

Text Search

qstring

Full-text search across name, address, city

e.g. ExxonMobil
statestring

Two-letter state abbreviation

e.g. CA
citystring

City name (case-insensitive)

e.g. Houston
zipstring

ZIP code (5 or 9 digit)

e.g. 77001
countystring

County name

e.g. Harris
epa_regioninteger

EPA region (1-10)

e.g. 6

Program & Industry

programstring

Filter by EPA program (comma-separated: CAA, CWA, RCRA, SDWA)

e.g. CAA,CWA
naicsstring

NAICS code prefix

e.g. 324
sicstring

SIC code

e.g. 2911

Compliance

compliance_statusstring

in_violation, no_violation, or unknown

e.g. in_violation
min_scoreinteger

Minimum compliance score (0-100)

e.g. 60
max_scoreinteger

Maximum compliance score (0-100)

e.g. 100
active_violationsboolean

Only facilities with active violations

e.g. true

Geospatial

latfloat

Latitude for radius search (requires lng and radius)

e.g. 29.7604
lngfloat

Longitude for radius search

e.g. -95.3698
radiusfloat

Radius in miles (max 50, default 10)

e.g. 5
bboxstring

Bounding box: sw_lat,sw_lng,ne_lat,ne_lng

e.g. 29.5,-95.8,30.0,-95.0

Pagination & Sorting

pageinteger

Page number (1-based, default 1)

per_pageinteger

Results per page (1-100, default 25)

cursorstring

Cursor for cursor-based pagination

sortstring

Sort by: name, score, last_violation, last_inspection

orderstring

asc or desc (default desc)

Example

Request
curl "https://api.parley.dev/v1/facilities?state=TX&program=CAA&min_score=50&sort=score&order=desc&per_page=10" \  -H "X-API-Key: prl_YOUR_KEY_HERE"
200OKapplication/json
{  "data": [    {      "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",      "frs_id": "110000599876",      "name": "ACME CHEMICAL PLANT",      "address": {        "street": "1234 Industrial Blvd",        "city": "Houston",        "state": "TX",        "zip": "77001",        "county": "Harris"      },      "location": {        "latitude": 29.7604,        "longitude": -95.3698      },      "epa_region": 6,      "programs": ["CAA", "RCRA"],      "naics_codes": ["325110"],      "compliance_status": "in_violation",      "compliance_score": 78,      "active_violations": true,      "summary": {        "violation_count_3yr": 7,        "inspection_count_5yr": 3,        "total_penalties_5yr": 125000.00,        "last_inspection_date": "2025-08-14",        "last_violation_date": "2025-11-22"      }    }  ],  "pagination": {    "total": 342,    "page": 1,    "per_page": 10,    "total_pages": 35,    "has_more": true,    "next_cursor": "eyJpZCI6ImY0N2FjMTBiLTU4Y2..."  },  "meta": {    "request_id": "req_7f3a1b2c",    "timestamp": "2026-03-20T12:00:00Z",    "source_updated_at": "2026-03-16T00:00:00Z"  }}

Get a facility

GET/v1/facilities/{facility_id}

Returns complete details for a single facility, including score breakdown, recent violations, and recent inspections.

Path Parameters

facility_idrequiredstring

Parley UUID or EPA FRS ID (auto-detected by format)

e.g. f47ac10b-58cc-4372-a567-0e02b2c3d479
Request
curl "https://api.parley.dev/v1/facilities/f47ac10b-58cc-4372-a567-0e02b2c3d479" \  -H "X-API-Key: prl_YOUR_KEY_HERE"
200OKapplication/json
{  "data": {    "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",    "frs_id": "110000599876",    "name": "ACME CHEMICAL PLANT",    "address": {      "street": "1234 Industrial Blvd",      "city": "Houston",      "state": "TX",      "zip": "77001",      "county": "Harris",      "fips_code": "48201"    },    "location": {      "latitude": 29.7604,      "longitude": -95.3698    },    "programs": ["CAA", "RCRA"],    "naics_codes": ["325110"],    "sic_codes": ["2819"],    "compliance_status": "in_violation",    "compliance_score": 78,    "score_breakdown": {      "violation_recency": 100,      "violation_frequency": 70,      "penalty_severity": 75,      "active_violations": 100,      "inspection_gap": 0    },    "recent_violations": [      {        "id": "a1b2c3d4-...",        "program": "CAA",        "violation_type": "High Priority Violation",        "violation_date": "2025-11-22",        "severity": "HIGH",        "is_active": true,        "description": "Failure to meet emission standard for volatile organic compounds"      }    ],    "recent_inspections": [      {        "id": "e5f6g7h8-...",        "program": "CAA",        "inspection_type": "Full Compliance Evaluation",        "inspection_date": "2025-08-14",        "lead_agency": "EPA",        "findings": "VIOLATION"      }    ]  },  "meta": {    "request_id": "req_9d4e2f1a",    "timestamp": "2026-03-20T12:00:00Z"  }}

Geospatial Search Examples

Find facilities near a specific location using radius or bounding box queries.

Radius search

Facilities within 5 miles of downtown Houston
curl "https://api.parley.dev/v1/facilities?lat=29.7604&lng=-95.3698&radius=5" \  -H "X-API-Key: prl_YOUR_KEY_HERE"

Bounding box search

Facilities within a geographic rectangle
curl "https://api.parley.dev/v1/facilities?bbox=29.5,-95.8,30.0,-95.0" \  -H "X-API-Key: prl_YOUR_KEY_HERE"