NY Environmental Records - Spills, Sites & Tanks
Pricing
from $0.03 / 1,000 ny environmental records
NY Environmental Records - Spills, Sites & Tanks
New York (NYSDEC) environmental data in one API: 574,559 spill incidents, 237,135 remediation sites (Superfund, Brownfield, VCP, ERP, RCRA) and 286,691 bulk storage tanks. Filter by county, ZIP, city, DEC region, facility, program, material or status; aggregate by county, program or year.
Pricing
from $0.03 / 1,000 ny environmental records
Rating
0.0
(0)
Developer
Wenhao Yang
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
New York Environmental Records
Three New York State (NYSDEC) environmental datasets in one API and one record shape: spill incidents, remediation sites and bulk storage tanks.
Low cost
Environmental records: from $0.00005 per record, down to $0.00003 at Gold.
What you get
Every row carries corpus and recordKind so a mixed export is never ambiguous: spill, remediation-site or storage-tank.
Spills - 574,581 rows
programNumber(spill number),spillDate,receivedDate,closeDatefacilityName,address,address2,city,county,zip,regionmaterialName,materialFamily,quantity,units,recoveredspillSource,contributingFactor,waterbodystatus/statusLabel-open(no close date) orclosed
Remediation sites - 237,230 rows
programNumber,programType-HW(State Superfund),BCP(Brownfield),VCP,ERP,RCRA, plusSP(spill sites, 491 rows) andDWC(61)siteClass/siteClassLabel- 02 / 03 / 04 registry classes,Aactive,Ccompleted,Ppreliminary,PRRCRA,Nno further action. (05is a valid registry class but has no rows in this extract.)facilityName,address,city,county,zip,region,latitude,longitudecontaminants,wasteName,controlCode,controlType,operableUnitswisCode,projectNameownerName,ownerAddress,ownerCity,ownerState,ownerZipoperatorName,disposalName,disposalAddressprojectCompletionDate
Bulk storage tanks - 250,803 rows (the source's 286,691 rows include 35,890 empty placeholders with no tank number, status or capacity; those are never delivered or billed)
programNumber,programType-PBS(petroleum) andCBS(chemical) are delivered.MOSF(major oil, 12,208 source rows) andLNGcarry no tank number, status or capacity in this extract (they are facility-level registrations, mostly vessels), so no MOSF or LNG row is delivered or billed.tankNumber,status/statusLabel,tankType,tankLocation,capacityGallonsinstallDate,closeDate,expirationDatematerialName,percentOfMaterialsiteType,siteStatuslatitude,longitude(from the source point) and the originalutmX,utmY
Examples
The 50 most recent spill reports:
{ "corpus": "spills", "maxResults": 50 }
Spills in one county:
{ "county": "Erie", "maxResults": 100 }
Spills at an address (the filter matches from the start of the address string, so include the house number when the source has one):
{ "address": "100 MAIN", "maxResults": 100 }
A site by its street address:
{ "corpus": "sites", "address": "505 WINDING", "maxResults": 50 }
Gasoline spills in one county:
{ "county": "Erie", "material": "Gasoline", "maxResults": 100 }
Open spill reports only:
{ "openOnly": true, "maxResults": 100 }
Remediation sites in a county:
{ "corpus": "sites", "county": "Nassau", "maxResults": 100 }
The most serious site class (registry class 2 - a significant threat):
{ "corpus": "sites", "siteClass": "02", "maxResults": 100 }
Tanks that are still in service anywhere in a county:
{ "corpus": "tanks", "county": "Erie", "tankStatus": "In Service", "maxResults": 100 }
Every storage tank inside a latitude/longitude box around New York City:
{"corpus": "tanks","north": 40.95, "south": 40.55, "east": -73.70, "west": -74.05,"maxResults": 200}
Remediation sites in the same box:
{"corpus": "sites","north": 41.00, "south": 40.40, "east": -73.50, "west": -74.50,"maxResults": 200}
Spills by county:
{ "mode": "aggregate", "groupBy": "county" }
Sites by program:
{ "corpus": "sites", "mode": "aggregate", "groupBy": "programType" }
Tank capacity by status:
{ "corpus": "tanks", "mode": "aggregate", "groupBy": "tankStatus", "metric": "capacityGallons" }
Coverage and honest limits
- Counts measured 2026-10-28 (source last updated 2026-10-28): 574,581 spill reports / 237,230 remediation-site records / 250,803 storage tanks = 1,062,614 delivered records.
- One row is not one place. A spill row is a spill report. A remediation-site row is a site operable unit institutional/engineering-control record, so a large site legitimately appears several times (about 4% of delivered site rows are verbatim duplicates of another row - the source publishes them twice, and each is delivered and metered as a source record). A tank row is a single tank, so one facility appears once per tank. Tank rows with no tank number, no status and no capacity are dropped (35,890 source placeholders).
- 🔴 ZIP is published on only about 10% of spill rows (57,862 of 574,581). Spill ZIP filtering returns few rows by design; county is complete on every row. A 5-digit ZIP query also matches ZIP+4 values (
12903-2116). - 🔴 New York City is published by county name, not borough name: Manhattan is
New York, Brooklyn isKings, Staten Island isRichmond;BronxandQueensare spelled as expected. Filteringcounty="New York"is Manhattan only. - The spill corpus publishes 87 distinct
countyvalues, because the state records where a report came from - including spills outside New York (Canada - Region 5,Connecticut - Region 1,New Jersey - Region 2,Pennsylvania - Region 3,Vermont - Region 4, ...) and reservation names. They are not separate NY counties and are returned as published. - 🔴 Tank
percentOfMaterialis raw source data, not a percentage. The state stores it scaled (a full tank reads10000.00) and it is populated across the programmes, not just chemical bulk storage: every delivered tank carries it (PBS 226,215 read10000.00, CBS 2,006). It is passed through unchanged and is never presented as a percentage. - Tank coordinates come from the source's published point, with the original UTM easting/northing kept alongside. Spill records carry no coordinates at all - the source publishes an address, not a point, so
north/south/east/westare rejected forcorpus=spillsrather than silently ignored. - Bounding-box search works on
sitesandtanks: give all four ofnorth,south,east,west(longitudes negative in New York) and the predicate runs against the source's point column. A partial box, or one with the edges swapped, is rejected with an error rather than approximated. About 10% of delivered tank rows carry no published point (26,285 rows) and therefore never fall inside any box - use the address, city or county filters for those. projectCompletionDateis the program's project completion date and may be a planned future date. It is not proof that remediation finished.spillDateis blank on 151 spill rows andreceivedDateon 503; the row is still returned with blank dates rather than dropped.installDateis blank on 50,440 delivered tanks.ownerName/operatorNameon remediation sites are the published site owner and operator of record (public record), not the current owner of the land and not a mailing list.sourceUpdatedAtis the state's last dataset refresh date for the chosen corpus.
Related
Also available in this account: NY Property Assessments (tax-lot assessment and sale records) and NYC HPD Violations (housing-code violations by building).