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
/v1/facilitiesSearch and list regulated facilities with filtering, sorting, and pagination.
/v1/facilities/{facility_id}Get complete details for a single facility, including compliance history and score breakdown.
List facilities
/v1/facilitiesQuery Parameters
Text Search
| Parameter | Type | Description |
|---|---|---|
q | string | Full-text search across name, address, citye.g. ExxonMobil |
state | string | Two-letter state abbreviatione.g. CA |
city | string | City name (case-insensitive)e.g. Houston |
zip | string | ZIP code (5 or 9 digit)e.g. 77001 |
county | string | County namee.g. Harris |
epa_region | integer | EPA region (1-10)e.g. 6 |
qstringFull-text search across name, address, city
e.g. ExxonMobilstatestringTwo-letter state abbreviation
e.g. CAcitystringCity name (case-insensitive)
e.g. HoustonzipstringZIP code (5 or 9 digit)
e.g. 77001countystringCounty name
e.g. Harrisepa_regionintegerEPA region (1-10)
e.g. 6Program & Industry
| Parameter | Type | Description |
|---|---|---|
program | string | Filter by EPA program (comma-separated: CAA, CWA, RCRA, SDWA)e.g. CAA,CWA |
naics | string | NAICS code prefixe.g. 324 |
sic | string | SIC codee.g. 2911 |
programstringFilter by EPA program (comma-separated: CAA, CWA, RCRA, SDWA)
e.g. CAA,CWAnaicsstringNAICS code prefix
e.g. 324sicstringSIC code
e.g. 2911Compliance
| Parameter | Type | Description |
|---|---|---|
compliance_status | string | in_violation, no_violation, or unknowne.g. in_violation |
min_score | integer | Minimum compliance score (0-100)e.g. 60 |
max_score | integer | Maximum compliance score (0-100)e.g. 100 |
active_violations | boolean | Only facilities with active violationse.g. true |
compliance_statusstringin_violation, no_violation, or unknown
e.g. in_violationmin_scoreintegerMinimum compliance score (0-100)
e.g. 60max_scoreintegerMaximum compliance score (0-100)
e.g. 100active_violationsbooleanOnly facilities with active violations
e.g. trueGeospatial
| Parameter | Type | Description |
|---|---|---|
lat | float | Latitude for radius search (requires lng and radius)e.g. 29.7604 |
lng | float | Longitude for radius searche.g. -95.3698 |
radius | float | Radius in miles (max 50, default 10)e.g. 5 |
bbox | string | Bounding box: sw_lat,sw_lng,ne_lat,ne_lnge.g. 29.5,-95.8,30.0,-95.0 |
latfloatLatitude for radius search (requires lng and radius)
e.g. 29.7604lngfloatLongitude for radius search
e.g. -95.3698radiusfloatRadius in miles (max 50, default 10)
e.g. 5bboxstringBounding box: sw_lat,sw_lng,ne_lat,ne_lng
e.g. 29.5,-95.8,30.0,-95.0Pagination & Sorting
| Parameter | Type | Description |
|---|---|---|
page | integer | Page number (1-based, default 1) |
per_page | integer | Results per page (1-100, default 25) |
cursor | string | Cursor for cursor-based pagination |
sort | string | Sort by: name, score, last_violation, last_inspection |
order | string | asc or desc (default desc) |
pageintegerPage number (1-based, default 1)
per_pageintegerResults per page (1-100, default 25)
cursorstringCursor for cursor-based pagination
sortstringSort by: name, score, last_violation, last_inspection
orderstringasc or desc (default desc)
Example
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"{ "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
/v1/facilities/{facility_id}Returns complete details for a single facility, including score breakdown, recent violations, and recent inspections.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
facility_id* | string | Parley UUID or EPA FRS ID (auto-detected by format)e.g. f47ac10b-58cc-4372-a567-0e02b2c3d479 |
facility_idrequiredstringParley UUID or EPA FRS ID (auto-detected by format)
e.g. f47ac10b-58cc-4372-a567-0e02b2c3d479curl "https://api.parley.dev/v1/facilities/f47ac10b-58cc-4372-a567-0e02b2c3d479" \ -H "X-API-Key: prl_YOUR_KEY_HERE"{ "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
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
curl "https://api.parley.dev/v1/facilities?bbox=29.5,-95.8,30.0,-95.0" \ -H "X-API-Key: prl_YOUR_KEY_HERE"