Fig. 2. 1,2,3,-Trichloropropane
On December 14, 2017, the California Water Resources Control Board Division of Drinking Water (DDW) adopted a regulation promulgating a Maximum Contaminant Level (MCL) for 1,2,3-trichloropropane (1,2,3-TCP) of 0.000005 milligrams per liter (mg/L, or 5 parts per trillion or 5 ppt). This regulation required Community Water Systems (CWS) and Nontransient Noncommunity (NTNC) Water Systems to begin initial sampling of 1,2,3-TCP from their drinking water sources. Initial sampling began January 1, 2018, with the requirement of four quarterly samples to be completed during the year. The first three quarters of 1,2,3-TCP data from 2018 (Q1, Q2, and Q3) that have exceeded the MCL are compiled into the data file provided below. The dataset includes regulating agency district, water system name and number, county, population, sampling point, sample date, sample result, and facility status (e.g., Offline, Online - Not Treated, Online - Treated). This data file is a copy of the file available on the State Water Resources Control 1,2,3-TCP webpage. See the State Water Resources Control Board website for more information about the data and regulation.
Data dictionary
Field definitions supplied by the publishing agency in CKAN.
| Column | Type | Label | Description |
|---|---|---|---|
| unsafe_ | text | Q1, Q2, Q3 2018 123-TCP Detections in Community and Nontransient Noncommunity Water Systems | — |
| q1__q2__q3__2018_123_tcp_detections_in_community_and_nontran | text | Unnamed Column | — |
| unsafe__2 | text | Unnamed Column | — |
| unsafe__3 | text | Unnamed Column | — |
| unsafe__4 | text | Unnamed Column | — |
| unsafe__5 | text | Unnamed Column | — |
| unsafe__6 | text | Unnamed Column | — |
| unsafe__7 | text | Unnamed Column | — |
| unsafe__8 | text | Unnamed Column | — |
| unsafe__9 | text | Unnamed Column | — |
| unsafe__10 | text | Unnamed Column | — |
| unsafe__11 | text | Unnamed Column | — |
Resource details
| Format | XLSX |
|---|---|
| Size | 111 KB |
| Rows | 1,257 |
| Last updated | Sep 29, 2026 |
| Part of | 2019 California Water Quality Status Report |
Other resources in this dataset
- Fig. 1. California's Groundwater
- Fig. 3. Toxicity and Urban Land Use
- Fig. 4-5. Sum Pyrethroid Toxic Units
- Fig. 7. Elk River Sediment Loads
- Fig. 10. FHABs Illnesses by County (2018)
- Fig. 11. Sampling stations for long-term bass lake monitoring.
- Fig. 18. Mayfly Occurrence Data
- Fig. 20. Stream Quality Index Map
CKAN Data API
Access resource data through the CKAN DataStore API. The examples below use this resource's ID.
Endpoints
The Data API provides these actions. Creating or updating records requires appropriate permissions; the query actions read public DataStore records.
| Create | https://ckan.cdt.dev.datopian.com/api/3/action/datastore_create |
|---|---|
| Update / insert | https://ckan.cdt.dev.datopian.com/api/3/action/datastore_upsert |
| Query | https://ckan.cdt.dev.datopian.com/api/3/action/datastore_search |
| Query via SQL | https://ckan.cdt.dev.datopian.com/api/3/action/datastore_search_sql |
Query examples
"https://ckan.cdt.dev.datopian.com/api/3/action/datastore_search?resource_id=e454e20a-16d1-4028-9e4d-4cdc94e508f6&limit=5""https://ckan.cdt.dev.datopian.com/api/3/action/datastore_search?resource_id=e454e20a-16d1-4028-9e4d-4cdc94e508f6&q=jones""https://ckan.cdt.dev.datopian.com/api/3/action/datastore_search_sql?sql=SELECT%20%2A%20FROM%20%22e454e20a-16d1-4028-9e4d-4cdc94e508f6%22%20LIMIT%205"SQL queries depend on whether SQL search is enabled by the portal.
OData query
Use the resource's OData URL and its field names for paging, selecting columns, or filtering rows.
ODATA_RESOURCE_URL?$top=5
ODATA_RESOURCE_URL?$skip=5&$top=5
ODATA_RESOURCE_URL?$select=FIELD_NAME&$filter=FIELD_NAME eq 'VALUE'Replace ODATA_RESOURCE_URL, FIELD_NAME, and VALUE with the details for the selected resource. See the OData query options guide (opens in a new tab) for more examples.
Use the API in code
JavaScript (JSONP)
var data = { resource_id: 'e454e20a-16d1-4028-9e4d-4cdc94e508f6', limit: 5, q: 'jones' };
$.ajax({
url: 'https://ckan.cdt.dev.datopian.com/api/3/action/datastore_search',
data: data,
dataType: 'jsonp',
success: function (response) {
console.log(response.result.total, response.result.records);
}
});Python
import json
from urllib.request import urlopen
url = 'https://ckan.cdt.dev.datopian.com/api/3/action/datastore_search?resource_id=e454e20a-16d1-4028-9e4d-4cdc94e508f6&limit=5'
with urlopen(url) as response:
result = json.load(response)['result']
print(result['total'], result['records'])For parameters and response fields, see the CKAN DataStore documentation (opens in a new tab).