Beach Posting and Closures- Advisories
In California there are four types of warnings about beach water conditions: postings, closures, rain advisories, and permanent postings. Postings are the most common type of warning. Postings are triggered when a water sample fails to meet the DHS’ Ocean Water-Contact Sports Standard (California Health and Safety Code Sections 115875-115915). A beach posting is a warning to the public that the bacteria levels in the beach water may cause illness, and local health officers are recommending to the public to stay out of the water in areas where the signs are visible. The most common cause of postings is the dry weather discharge of urban runoff from storm drain systems.
A beach closure is a notice to the public that there has been a sewage discharge that is affecting the beach area. Closures are put in place immediately after a sewage spill is reported that may affect the beach. The closed beach area will be reopened when water samples meet standards. Because closures represent a definite health risk and postings indicate a potential risk, they are tracked separately.
Rain advisories are pre-emptive warnings that people should avoid swimming in ocean waters during a rain event and for three days after rainfall ceases. Rainwater often carries large amounts of bacteria from a variety of sources to the ocean. Rain advisories are issued via county hotlines, newspapers, and radio.
Permanent postings are sites where urban runoff discharges to the beach even during the dry season, and historic data shows that the beach water near the discharge point generally contains elevated bacteria levels.
The Water Board displays the closure and posting data submitted from the County Health Officers on its web site monthly. The Water Board also compiles the information into an annual report. These reports, available on the Water Board’s web site at https://www.waterboards.ca.gov/water_issues/programs/beaches/beach_surveys/, provide additional data on sources of pollution, testing methods, and causes of beach posting and closures.
Data dictionary
Field definitions supplied by the publishing agency in CKAN.
| Column | Type | Label | Description |
|---|---|---|---|
| DURATION CALCULATED | numeric | DURATION CALCULATED | — |
| Regional Board | text | Regional Board | — |
| Advisory id | numeric | Advisory id | — |
| HistoricalStationName | text | HistoricalStationName | — |
| prefix | text | prefix | — |
| mile | numeric | mile | — |
| DateofAdvisory | date | DateofAdvisory | — |
| TimeofAdvisory | text | TimeofAdvisory | — |
| DateOpened | date | DateOpened | — |
| TimeOpened | text | TimeOpened | — |
| AdvisoryType | text | AdvisoryType | — |
| AdvisoryCause | text | AdvisoryCause | — |
| Description | text | Description | — |
| Extent | numeric | Extent | — |
| StartofExtent | numeric | StartofExtent | — |
| StartOfExtentType | text | StartOfExtentType | — |
| EndofExtent | numeric | EndofExtent | — |
| EndOfExtentType | text | EndOfExtentType | — |
| Source | text | Source | — |
| Advisory Comments | text | Advisory Comments | — |
| DescriptionofArea | text | DescriptionofArea | — |
| ActionBy | text | ActionBy | — |
| AffectedLengthUnit | text | AffectedLengthUnit | — |
| SubstanceName | text | SubstanceName | — |
| SubstanceVolume | numeric | SubstanceVolume | — |
| SubstanceUnit | text | SubstanceUnit | — |
| AdditionalAction | text | AdditionalAction | — |
| ActionDate | date | ActionDate | — |
| ActionDescription | text | ActionDescription | — |
| County | text | County | — |
| User_id | numeric | User_id | — |
| Enterococcus | numeric | Enterococcus | — |
| Fecal Coliforms | numeric | Fecal Coliforms | — |
| Total Coliforms | numeric | Total Coliforms | — |
| e_coli | numeric | E.Coli | — |
| Ratio | numeric | Ratio | — |
| Advisory Record Create Date | timestamp | Advisory Record Create Date | — |
| Station_id | numeric | Station_id | — |
| Station_Agency_id | numeric | Station_Agency_id | — |
| BeachName_id | numeric | BeachName_id | — |
| Station_Name | text | Station_Name | — |
| Station_Description | text | Station_Description | — |
| AgencyStationIdentifier | text | AgencyStationIdentifier | — |
| Station_UpperLat | numeric | Station_UpperLat | — |
| Station_UpperLon | numeric | Station_UpperLon | — |
| Station_LowerLat | numeric | Station_LowerLat | — |
| Station_LowerLon | numeric | Station_LowerLon | — |
| SwimSeason | text | SwimSeason | — |
| OffSeason | text | OffSeason | — |
| AsNeededSeason | text | AsNeededSeason | — |
| CountyCode | text | CountyCode | — |
| CountyName | text | CountyName | — |
| Status | text | Status | — |
| UpdateDate | date | UpdateDate | — |
| Advisories Insert Date | date | Advisories Insert Date | — |
| pointZero | numeric | pointZero | — |
| Datum | numeric | Datum | — |
| BeachProfileId | numeric | BeachProfileId | — |
| Beach_AgencyName | text | Beach_AgencyName | — |
| Beach_Name | text | Beach_Name | — |
| BeachDescription | text | BeachDescription | — |
| BeachType | text | BeachType | — |
| Beach Length | numeric | Beach Length | — |
| AttendanceWinter | numeric | AttendanceWinter | — |
| AttendanceSummer | numeric | AttendanceSummer | — |
| NearestCityName | text | NearestCityName | — |
| WaterBodyName | text | WaterBodyName | — |
| WaterBodyClass | text | WaterBodyClass | — |
| AB411Beach | text | AB411Beach | — |
| USEPAID | text | USEPAID | — |
| BeachAccess | text | BeachAccess | — |
| SwimSeasonLength | numeric | SwimSeasonLength | — |
| WaterBodyType | text | WaterBodyType | — |
| WaterShedName | text | WaterShedName | — |
| Beach_UpperLat | numeric | Beach_UpperLat | — |
| Beach_UpperLon | numeric | Beach_UpperLon | — |
| Beach_LowerLat | numeric | Beach_LowerLat | — |
| Beach_LowerLon | numeric | Beach_LowerLon | — |
| Beach_County | text | Beach_County | — |
| Beach_User_id | numeric | Beach_User_id | — |
| Beach_Status | text | Beach_Status | — |
| CountAsBeach | numeric | CountAsBeach | — |
| Agency_id | numeric | Agency_id | — |
| Agency_Code | text | Agency_Code | — |
| Agency_Name | text | Agency_Name | — |
| Agency_Jurisdiction | text | Agency_Jurisdiction | — |
| StreetAddress | text | StreetAddress | — |
| City | text | City | — |
| Advisories Contact Person | text | Advisories Contact Person | — |
| Zip | numeric | Zip | — |
| EstMonCost | text | EstMonCost | — |
| EstCoastlineAdvisoryCost | text | EstCoastlineAdvisoryCost | — |
| EstTotalCost | text | EstTotalCost | — |
| Agency_Comments | text | Agency_Comments | — |
| Agency_County | text | Agency_County | — |
| Agency_User_id | numeric | Agency_User_id | — |
| Regional Board Number | numeric | Regional Board Number | — |
| Regional Board Name | text | Regional Board Name | — |
Resource details
| Format | CSV |
|---|---|
| Size | 29 MB |
| Rows | 35,748 |
| Last updated | Sep 29, 2026 |
| Part of | Beach Advisories (Postings and Closures) and Beach Water Quality Monitoring |
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=d5cd6a23-829c-426d-a63e-689a55a3db9c&limit=5""https://ckan.cdt.dev.datopian.com/api/3/action/datastore_search?resource_id=d5cd6a23-829c-426d-a63e-689a55a3db9c&q=jones""https://ckan.cdt.dev.datopian.com/api/3/action/datastore_search_sql?sql=SELECT%20%2A%20FROM%20%22d5cd6a23-829c-426d-a63e-689a55a3db9c%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: 'd5cd6a23-829c-426d-a63e-689a55a3db9c', 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=d5cd6a23-829c-426d-a63e-689a55a3db9c&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).